Fix the TextureMapper build for GTK+.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-14  Martin Robinson  <mrobinson@igalia.com>
2
3         Fix the TextureMapper build for GTK+.
4
5         No new tests. This is just a build fix.
6
7         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
8         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
9         * platform/graphics/texmap/TextureMapper.h:
10
11 2012-03-12  Martin Robinson  <mrobinson@igalia.com>
12
13         [GTK] Menulist buttons have separators even when the theme turns them off
14         https://bugs.webkit.org/show_bug.cgi?id=80668
15
16         Reviewed by Daniel Bates.
17
18         No new tests. GTK+ theme differences are notoriously difficult
19         to test, because consistent results depend on having certain themes
20         and certain versions of themes installed.
21
22         Instead of using the GTK_TYPE_BUTTON and GTK_TYPE_SEPARATOR tags to get the
23         style context, use GTK_TYPE_COMBO_BOX which should provide more accurate theme settings.
24
25         * platform/gtk/RenderThemeGtk3.cpp:
26         (WebCore::getComboBoxMetrics): Get metrics from a GTK_TYPE_COMBO_BOX style context.
27         (WebCore::RenderThemeGtk::paintMenuList): Get separator settings from the GTK_TYPE_COMBO_BOX style context.
28
29 2012-03-14  Levi Weintraub  <leviw@chromium.org>
30
31         Implement proper sub-pixel support in RenderFileUploadControl
32         https://bugs.webkit.org/show_bug.cgi?id=80881
33
34         Reviewed by Dimitri Glazkov.
35
36         Correcting improper usage of LayoutUnits when interacting with the graphics context
37         and platform code. Specifically:
38         - pixel snapping the clip rect and paint offsets before sending values to the
39           graphics context in paintObject.
40         - using on-screen (pixel snapped) values to pass off to platform code to determine
41           the max length of the filename to be drawn.
42
43         No new tests. No change in behavior.
44
45         * rendering/RenderFileUploadControl.cpp:
46         (WebCore::nodeWidth):
47         (WebCore::RenderFileUploadControl::maxFilenameWidth):
48         (WebCore::RenderFileUploadControl::paintObject):
49
50 2012-03-14  Joseph Pecoraro  <pecoraro@apple.com>
51
52         [JSC] Web Inspector: CRASH running $0, $1, etc before they are set
53         https://bugs.webkit.org/show_bug.cgi?id=81082
54
55         Don't return an invalid JSValue. Check if the ScriptValue
56         has no value and return undefined in that case.
57
58         Reviewed by Pavel Feldman.
59
60         Updated test: inspector/console/command-line-api.html
61
62         * bindings/js/JSInjectedScriptHostCustom.cpp:
63         (WebCore::JSInjectedScriptHost::inspectedObject):
64
65 2012-03-14  James Robinson  <jamesr@chromium.org>
66
67         [chromium] Remove canRecoverFromContextLoss attribute, it's unused
68         https://bugs.webkit.org/show_bug.cgi?id=81158
69
70         Reviewed by Stephen White.
71
72         Canvas accelerated no longer depends on the canRecoverFromContextLoss attribute after r110716.
73
74         * platform/graphics/GraphicsContext3D.h:
75         (WebCore::GraphicsContext3D::Attributes::Attributes):
76         (Attributes):
77         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
78         (WebCore::SharedGraphicsContext3DImpl::get):
79
80 2012-03-14  Jer Noble  <jer.noble@apple.com>
81
82         Opening a URL in a MediaDocument does not propagate MIME type info to media element
83         https://bugs.webkit.org/show_bug.cgi?id=81148
84
85         Reviewed by Eric Carlson.
86
87         Test: http/tests/media/media-document.html
88
89         Pass through the mime type from the DocumentLoader into the <source type=""> attribute of the
90         generated video element. 
91
92         * html/MediaDocument.cpp:
93         (WebCore::MediaDocumentParser::createDocumentStructure):
94
95 2012-03-14  Stephen White  <senorblanco@chromium.org>
96
97         [chromium] Fix accelerated Canvas2D with threaded compositing.
98         https://bugs.webkit.org/show_bug.cgi?id=80998
99
100         Reviewed by James Robinson.
101
102         Covered by unit tests Canvas2DLayerChromiumTest and
103         TreeSynchronizerTest.
104
105         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
106         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
107         (WebCore):
108         Delay creation of the front texture for double-buffering until the
109         first call to paintContentsIfDirty().
110         * platform/graphics/chromium/Canvas2DLayerChromium.h:
111         (Canvas2DLayerChromium):
112         Remove setTextureManager() and setLayerTreeHost(), since their job
113         has been subsumed by paintContentsIfDirty().
114         * platform/graphics/chromium/TreeSynchronizer.cpp:
115         (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
116         Perform an early-out if the passed-in layer is NULL.
117
118 2012-03-14  Mark Pilgrim  <pilgrim@chromium.org>
119
120         Move EntriesCallback to Modules/filesystem/
121         https://bugs.webkit.org/show_bug.cgi?id=81032
122
123         Reviewed by Adam Barth.
124
125         No new tests, all existing tests pass.
126
127         * CMakeLists.txt:
128         * DerivedSources.make:
129         * DerivedSources.pri:
130         * GNUmakefile.list.am:
131         * Modules/filesystem/EntriesCallback.h: Copied from Source/WebCore/fileapi/EntriesCallback.h.
132         * Modules/filesystem/EntriesCallback.idl: Copied from Source/WebCore/fileapi/EntriesCallback.idl.
133         * Target.pri:
134         * WebCore.gypi:
135         * WebCore.vcproj/WebCore.vcproj:
136         * WebCore.xcodeproj/project.pbxproj:
137         * fileapi/EntriesCallback.h: Removed.
138         * fileapi/EntriesCallback.idl: Removed.
139
140 2012-03-14  Tony Chang  <tony@chromium.org>
141
142         multiline column flexbox with auto height wrap too much
143         https://bugs.webkit.org/show_bug.cgi?id=80929
144
145         Reviewed by David Hyatt.
146
147         Test: css3/flexbox/multiline-column-auto.html
148
149         * rendering/RenderBox.cpp:
150         (WebCore::RenderBox::computeLogicalHeightUsing):
151         (WebCore):
152         (WebCore::RenderBox::computeContentLogicalHeightUsing): Pull out into a separate method.
153         * rendering/RenderBox.h:
154         (RenderBox):
155         * rendering/RenderFlexibleBox.cpp:
156         (WebCore::RenderFlexibleBox::lineBreakLength): Compute the value based on height & max-height for column layout.
157         (WebCore):
158         (WebCore::RenderFlexibleBox::computeNextFlexLine):
159         * rendering/RenderFlexibleBox.h:
160         (RenderFlexibleBox):
161
162 2012-03-14  Xingnan Wang  <xingnan.wang@intel.com>
163
164         Optimize the multiply-add in Biquad.cpp::process
165         https://bugs.webkit.org/show_bug.cgi?id=75528
166
167         Reviewed by Chris Rogers.
168
169         Pipeline the multiply-add with SSE2 instructions and get about 20% improvement for the function.
170
171         * platform/audio/Biquad.cpp:
172         (WebCore::Biquad::process):
173
174 2012-03-14  James Robinson  <jamesr@chromium.org>
175
176         [Chromium] Layout Test compositing/repaint/opacity-between-absolute.html is flaky
177         https://bugs.webkit.org/show_bug.cgi?id=79823
178
179         Reviewed by Adrienne Walker.
180
181         LayerRendererChromium was storing a weak pointer to the current render surface in m_currentRenderSurface and
182         using this in useRenderSurface() to avoid rebinding if we called useRenderSurface() multiple times in a row on
183         the same surface. This pointer was never cleared, so if any subsequent surface landed at the same address this
184         caching would misbehave and we'd fail to correctly initialize the new render surface. The caching wasn't
185         actually buying us anything anyway since we only call useRenderSurface() once per surface per frame and we
186         always set the viewport for the default render surface.
187
188         * platform/graphics/chromium/LayerRendererChromium.cpp:
189         (WebCore::LayerRendererChromium::beginDrawingFrame):
190         (WebCore::LayerRendererChromium::useRenderSurface):
191
192 2012-03-14  Zalan Bujtas  <zbujtas@gmail.com>
193
194         Frame flattening ASSERT(!needsLayout()) in FrameView::paintContents()
195         https://bugs.webkit.org/show_bug.cgi?id=80155
196
197         Reviewed by Antti Koivisto.
198
199         This patch ensures that an iframe only schedules and calls parent's layout,
200         when it is going to be flattened. Non-flattened iframe does not affect
201         parent's layout, so normal layout flow applies. isInSubframeLayoutWithFrameFlattening()
202         function has been added to test whether a particular child frame is changing
203         parent's layout. This function also ensures that scheduleRelayout() and layout()
204         are in sync of checking againts frame flattening.
205
206         Test: fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-with-js-forced-layout.html
207
208         * page/FrameView.cpp:
209         (WebCore::FrameView::avoidScrollbarCreation):
210         (WebCore::FrameView::layout):
211         (WebCore::FrameView::scheduleRelayout):
212         (WebCore::FrameView::isInChildFrameWithFrameFlattening):
213         (WebCore):
214         (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
215         * page/FrameView.h:
216         (FrameView):
217         * rendering/RenderIFrame.h:
218         (RenderIFrame):
219         (WebCore::RenderIFrame::renderName):
220
221 2012-03-14  Anders Carlsson  <andersca@apple.com>
222
223         Don't cap the scroll position if layout happens when a FrameView's overhangAmount is non-zero
224         https://bugs.webkit.org/show_bug.cgi?id=81146
225         <rdar://problem/10850075>
226
227         Reviewed by Beth Dakin.
228
229         If layout happens when a page has a non-zero overhang amount, we shouldn't cap the scroll position
230         to be inside of the valid maximum/minimum scroll offsets because that will cause the page to jump back, which
231         can look really bad if layout happens in response to the page being scrolled.
232
233         * platform/ScrollView.cpp:
234         (WebCore::ScrollView::updateScrollbars):
235
236 2012-03-14  Tommy Widenflycht  <tommyw@google.com>
237
238         MediaStream API (JSEP): Introducing IceCandidate
239         https://bugs.webkit.org/show_bug.cgi?id=80699
240
241         Reviewed by Adam Barth.
242
243         Patch #2 in a series of patches to change the PeerConnection from ROAP to JSEP,
244         see bug 80589 for more information.
245         Adding the JS object IceCandidate and its WebCore/platform sibling IceCandidateDescriptor.
246         This object will be created both from JS and the embedder.
247
248         Not possible to test until the entire JSEP feature is commited.
249
250         * GNUmakefile.list.am:
251         * Modules/mediastream/IceCandidate.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
252         (WebCore):
253         (WebCore::IceCandidate::create):
254         (WebCore::IceCandidate::IceCandidate):
255         (WebCore::IceCandidate::~IceCandidate):
256         (WebCore::IceCandidate::label):
257         (WebCore::IceCandidate::candidateLine):
258         (WebCore::IceCandidate::toSdp):
259         (WebCore::IceCandidate::descriptor):
260         * Modules/mediastream/IceCandidate.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
261         (WebCore):
262         (IceCandidate):
263         * Modules/mediastream/IceCandidate.idl: Added.
264         * WebCore.gypi:
265         * platform/mediastream/IceCandidateDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
266         (WebCore):
267         (WebCore::IceCandidateDescriptor::create):
268         (WebCore::IceCandidateDescriptor::IceCandidateDescriptor):
269         (WebCore::IceCandidateDescriptor::~IceCandidateDescriptor):
270         (WebCore::IceCandidateDescriptor::toSdp):
271         * platform/mediastream/IceCandidateDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
272         (WebCore):
273         (IceCandidateDescriptor):
274         (WebCore::IceCandidateDescriptor::label):
275         (WebCore::IceCandidateDescriptor::candidateLine):
276         * platform/mediastream/MediaStreamCenter.cpp:
277         (WebCore::MediaStreamCenter::constructSdp):
278         (WebCore):
279         * platform/mediastream/MediaStreamCenter.h:
280         (WebCore):
281         (MediaStreamCenter):
282
283 2012-03-14  Simon Fraser  <simon.fraser@apple.com>
284
285         background-visibility:hidden should create a RenderLayer
286         https://bugs.webkit.org/show_bug.cgi?id=81134
287
288         Reviewed by Dean Jackson.
289         
290         Background-visibility:hidden has to create RenderLayers, because it's implemented
291         via compositing and/or paint short-circuiting in RenderLayer code.
292
293         Test: transforms/3d/general/background-visibility-layers.html
294
295         * rendering/RenderBox.h:
296         * rendering/RenderBoxModelObject.h:
297         (WebCore::RenderBoxModelObject::requiresLayer):
298         * rendering/RenderObject.h:
299         (WebCore::RenderObject::hasHiddenBackface):
300         * rendering/RenderTableRow.h:
301
302 2012-03-14  Raul Hudea  <rhudea@adobe.com>
303
304         [CSSRegions][CSSOM] Implement regionLayoutEvent
305         https://bugs.webkit.org/show_bug.cgi?id=78882
306
307         Reviewed by David Hyatt.
308
309         Adding the regionLayoutEvent that is dispatch for all regions after each flow-thread layout.
310
311         Tests: fast/regions/region-event-add-to-flow.html
312                fast/regions/region-event-remove-from-dom.html
313                fast/regions/region-event-remove-from-flow.html
314                fast/regions/region-event.html
315
316         * dom/Document.cpp:
317         (WebCore::Document::addListenerTypeIfNeeded): Added check for regionLayoutUpdate listeners
318         * dom/Document.h:
319         * dom/EventNames.h:
320         (WebCore):
321         * dom/Node.cpp:
322         (WebCore::Node::dispatchRegionLayoutUpdateEvent):
323         (WebCore):
324         * dom/Node.h:
325         (Node):
326         * rendering/RenderFlowThread.cpp:
327         (WebCore::RenderFlowThread::RenderFlowThread):
328         (WebCore::RenderFlowThread::layout): Start the event dispatch timer but only if there are regionLayoutUpdate listeners and there is at least one region that had its layout updated.
329         (WebCore::RenderFlowThread::computeOverflowStateForRegions): Mark regions that might had a layout update
330         (WebCore::RenderFlowThread::regionLayoutUpdateEventTimerFired):
331         (WebCore):
332         * rendering/RenderFlowThread.h:
333         * rendering/RenderRegion.cpp:
334         (WebCore::RenderRegion::RenderRegion):
335         * rendering/RenderRegion.h:
336         (WebCore::RenderRegion::setDispatchRegionLayoutUpdateEvent):
337         (WebCore::RenderRegion::shouldDispatchRegionLayoutUpdateEvent):
338         (RenderRegion):
339
340 2012-03-14  Pierre Rossi  <pierre.rossi@gmail.com>
341
342         [Qt] Add support for vertical sliders in mobile theme
343         https://bugs.webkit.org/show_bug.cgi?id=80179
344
345         This makes sliders using the "slider-vertical" appearance more sensible.
346
347         Reviewed by Simon Hausmann.
348
349         No new tests, since the mobile theme still isn't used in layout tests.
350
351         * platform/qt/RenderThemeQtMobile.cpp:
352         (WebCore):
353         (WebCore::StylePainterMobile::drawProgress):
354         (WebCore::RenderThemeQtMobile::paintSliderTrack):
355         * platform/qt/RenderThemeQtMobile.h:
356         (StylePainterMobile):
357
358 2012-03-14  Jer Noble  <jer.noble@apple.com>
359
360         WebProcess spins beneath [QTMovie movieFileTypes:]
361         https://bugs.webkit.org/show_bug.cgi?id=81133
362
363         Reviewed by Eric Carlson.
364
365         No new tests; speculative fix for top WebProcess spin.
366
367         When checking to see if a given mime type is supported by QuickTime,
368         immediately exclude all types that do not begin with 'audio/' or 'video/'.
369         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
370         (WebCore::MediaPlayerPrivateQTKit::supportsType):
371
372 2012-03-14  Zalan Bujtas  <zbujtas@gmail.com>
373
374         Make RenderIFrame::flattenFrame() return earlier, when frame flattening is disabled.
375         https://bugs.webkit.org/show_bug.cgi?id=80301
376
377         Reviewed by Antti Koivisto.
378
379         Reorganize RenderIFrame flattenFrame() code, so that it returns
380         earlier for the normal use case, when frame flattening is disabled.
381         It also removes leftover null check.
382
383         No new tests, since there's no new functionality.
384
385         * rendering/RenderIFrame.cpp:
386         (WebCore::RenderIFrame::flattenFrame):
387
388 2012-03-14  James Robinson  <jamesr@chromium.org>
389
390         [chromium] Provide explicit polling API to check if the platform is capable of accelerated 2d canvas
391         https://bugs.webkit.org/show_bug.cgi?id=80667
392
393         Reviewed by Darin Fisher.
394
395         Query the platform to see if we can instantiate a context suitable for accelerating 2d canvas. If we can't, for
396         instance if we're on a system that can't preserve a context when the screensaver comes up, then immediately fall
397         back to software.
398
399         Covered by canvas layout tests in the virtual-gpu mode.
400
401         * html/HTMLCanvasElement.cpp:
402         (WebCore::HTMLCanvasElement::shouldAccelerate):
403         * platform/chromium/PlatformSupport.h:
404
405 2012-03-14  Carlos Garcia Campos  <cgarcia@igalia.com>
406
407         [GTK] Handle printing errors in WebKit2
408         https://bugs.webkit.org/show_bug.cgi?id=77197
409
410         Reviewed by Gustavo Noronha Silva.
411
412         * platform/gtk/ErrorsGtk.cpp:
413         (WebCore::printError): Create a generic print error.
414         (WebCore::printerNotFoundError): Create a print error to notify
415         that the selected printer could not be found.
416         (WebCore::invalidPageRangeToPrint): Create a print error when the
417         selected page range is invalid and there are no pages to print.
418         * platform/gtk/ErrorsGtk.h:
419         (WebCore): Add print error doamin.
420
421 2012-03-14  Nikolas Zimmermann  <nzimmermann@rim.com>
422
423         Make SVGUseElement respect & support externalResourcesRequired
424         https://bugs.webkit.org/show_bug.cgi?id=81109
425
426         Reviewed by Rob Buis.
427
428         Generalize the existing externalResourcesRequired support from SVGScriptElement
429         into SVGExternalResourcesRequired, so it can be shared with SVGUseElement, which
430         was lacking proper externalResourcesRequired support.
431
432         <use xlink:href="external.svg" onload="alert('hi')" externalResourcesRequired="true"/>
433         The onload handler now fires _after_ the external resources loaded, making it possible
434         to write reliable tests that switch from internal to external resources or the other
435         way around. Converted the new tests in svg/dynamic-updates/SVGUseElement* to listen
436         to SVGLoad events, to make them reliable.
437
438         We may be able to generalize this to cover SVGImageElement as well (the only other class which
439         is currently supporting externalResourcesRequired - but that's more involved, so I left it TODO).
440
441         Covered by existing tests and the changes to the new SVGUseElement tests.
442
443         * svg/SVGElement.h:
444         (SVGElement): Make haveLoadedRequiredResources() public so SVGExternalResourcesRequired can call it.
445         * svg/SVGExternalResourcesRequired.cpp: Refactored code from SVGScriptElement, 1:1 copies w/o changes.
446         (WebCore::SVGExternalResourcesRequired::handleAttributeChange):
447         (WebCore::SVGExternalResourcesRequired::dispatchLoadEvent):
448         (WebCore::SVGExternalResourcesRequired::insertedIntoDocument):
449         (WebCore::SVGExternalResourcesRequired::finishParsingChildren):
450         (WebCore::SVGExternalResourcesRequired::haveLoadedRequiredResources):
451         * svg/SVGExternalResourcesRequired.h: Add new virtual functions, that must be available in classes that inherit from SVGExternalResourcesRequired.
452         (WebCore::SVGExternalResourcesRequired::setHaveFiredLoadEvent):
453         (WebCore::SVGExternalResourcesRequired::isParserInserted):
454         (WebCore::SVGExternalResourcesRequired::haveFiredLoadEvent):
455         * svg/SVGScriptElement.cpp: Refactored externalResourcesRequired handling into SVGExternalResourcesRequired.
456         (WebCore::SVGScriptElement::svgAttributeChanged):
457         (WebCore::SVGScriptElement::insertedIntoDocument):
458         (WebCore::SVGScriptElement::finishParsingChildren):
459         * svg/SVGScriptElement.h: Ditto.
460         (WebCore::SVGScriptElement::haveLoadedRequiredResources):
461         (WebCore::SVGScriptElement::dispatchLoadEvent):
462         (WebCore::SVGScriptElement::setHaveFiredLoadEvent):
463         (WebCore::SVGScriptElement::isParserInserted):
464         (WebCore::SVGScriptElement::haveFiredLoadEvent):
465         * svg/SVGTests.cpp: Fix obvious typo, that leads to an assertion. Always return true if we know the attributeName.
466         (WebCore::SVGTests::handleAttributeChange):
467         * svg/SVGTests.h:
468         * svg/SVGTextPathElement.cpp:
469         (WebCore::SVGTextPathElement::insertedIntoDocument): Remove ambigous call warning.
470         * svg/SVGUseElement.cpp: Support externalResourcesRequired="true/false" + dynamic changes of it. Covered by existing tests.
471         (WebCore::SVGUseElement::SVGUseElement):
472         (WebCore::SVGUseElement::create):
473         (WebCore::SVGUseElement::insertedIntoDocument):
474         (WebCore::SVGUseElement::svgAttributeChanged):
475         (WebCore::SVGUseElement::notifyFinished):
476         (WebCore::SVGUseElement::finishParsingChildren):
477         (WebCore):
478         * svg/SVGUseElement.h: Ditto.
479         (WebCore::SVGUseElement::haveLoadedRequiredResources):
480         (WebCore::SVGUseElement::setHaveFiredLoadEvent):
481         (WebCore::SVGUseElement::isParserInserted):
482         (WebCore::SVGUseElement::haveFiredLoadEvent):
483         * svg/svgtags.in: Pass "bool wasInsertedByParser" to SVGUseElement constructor.
484
485 2012-03-14  Andrew Lo  <anlo@rim.com>
486
487         [BlackBerry] Implement REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR using AnimationFrameRateController
488         https://bugs.webkit.org/show_bug.cgi?id=81000
489
490         Add BlackBerry port for DisplayRefreshMonitor using AnimationFrameRateController.
491         Moved refreshDisplayOnMainThread to platform independant part of header.
492
493         Reviewed by Antonio Gomes.
494
495         requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
496
497         * PlatformBlackBerry.cmake:
498         * platform/graphics/DisplayRefreshMonitor.cpp:
499         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
500         * platform/graphics/DisplayRefreshMonitor.h:
501         (WebCore):
502         (DisplayAnimationClient):
503         (WebCore::DisplayAnimationClient::~DisplayAnimationClient):
504         (DisplayRefreshMonitor):
505         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp: Added.
506         (WebCore):
507         (WebCore::DisplayAnimationClient::DisplayAnimationClient):
508         (WebCore::DisplayAnimationClient::animationFrameChanged):
509         (WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
510         (WebCore::DisplayRefreshMonitor::startAnimationClient):
511         (WebCore::DisplayRefreshMonitor::stopAnimationClient):
512         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
513         (WebCore::DisplayRefreshMonitor::displayLinkFired):
514
515 2012-03-14  Yury Semikhatsky  <yurys@chromium.org>
516
517         Web Inspector: use class name indexes instead of class names when evaluating aggregates
518         https://bugs.webkit.org/show_bug.cgi?id=81100
519
520         Class name and type name indexes are now used when calculating class aggregates
521         in heap snapshots instead of string lookup followed by a string comparison.
522
523         Class names like "Window / www.webkit.org" are now left as is in the UI (it used
524         to be trimed to just "Window").
525
526         Reviewed by Pavel Feldman.
527
528         * inspector/front-end/HeapSnapshot.js:
529         (WebInspector.HeapSnapshotNode.prototype.get classNameIndex):
530         (WebInspector.HeapSnapshotNode.prototype.hasType):
531         (WebInspector.HeapSnapshot.prototype._init):
532         (WebInspector.HeapSnapshot.prototype._buildAggregates):
533
534 2012-03-14  Andrey Kosyakov  <caseq@chromium.org>
535
536         Web Inspector: add didCancelFrame timeline event
537         https://bugs.webkit.org/show_bug.cgi?id=80994
538
539         Reviewed by Pavel Feldman.
540
541         - add an ability to cancel certain timeline events, unless they've been followed by other events.
542         - implement didCancelFrame() event, fired when a platform decides not to render frame after didBeginFrame() was called.
543
544         Test: inspector/timeline/timeline-frames.html
545
546         * WebCore.exp.in:
547         * inspector/InspectorInstrumentation.cpp:
548         (WebCore::InspectorInstrumentation::didCancelFrameImpl):
549         (WebCore):
550         * inspector/InspectorInstrumentation.h:
551         (InspectorInstrumentation):
552         (WebCore::InspectorInstrumentation::didCancelFrame):
553         (WebCore):
554         * inspector/InspectorTimelineAgent.cpp:
555         (WebCore::InspectorTimelineAgent::didBeginFrame):
556         (WebCore):
557         (WebCore::InspectorTimelineAgent::didCancelFrame):
558         (WebCore::InspectorTimelineAgent::appendRecord):
559         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
560         (WebCore::InspectorTimelineAgent::pushCancelableRecord):
561         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
562         (WebCore::InspectorTimelineAgent::cancelRecord):
563         * inspector/InspectorTimelineAgent.h:
564         (InspectorTimelineAgent):
565         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
566         (TimelineRecordEntry):
567         * testing/Internals.cpp:
568         (WebCore::Internals::emitInspectorDidBeginFrame):
569         (WebCore):
570         (WebCore::Internals::emitInspectorDidCancelFrame):
571         * testing/Internals.h:
572         (Internals):
573         * testing/Internals.idl:
574
575 2012-03-14  Dana Jansens  <danakj@chromium.org>
576
577         Region can acquire an empty span by subtracting an empty Region
578         https://bugs.webkit.org/show_bug.cgi?id=81074
579
580         Reviewed by Anders Carlsson.
581
582         Subtracting an empty Region B from a Region A can cause A to end
583         up with an empty span. This violates the rule that two Regions
584         that cover the exact same area should have equal spans and segments.
585
586         Unit test: RegionTest.emptySpan
587
588         * platform/graphics/Region.cpp:
589         (WebCore::Region::subtract):
590
591 2012-03-14  Simon Hausmann  <simon.hausmann@nokia.com>
592
593         [Textmap] Disable driver based BGRA swizzling for OpenGL/ES
594
595         Reviewed by Noam Rosenthal.
596
597         The current way of detecting swizzling support (check for GL_EXT_texture_format_BGRA8888)
598         is unfortunately not reliable. We need a better way of detection that (filed bug 81103).
599         In the meantime this patch reverts back to doing the swizzling in the texture mapper to
600         get pixels back onto the screen.
601
602         * platform/graphics/texmap/TextureMapperGL.cpp:
603         (WebCore::driverSupportsBGRASwizzling):
604         (WebCore::BitmapTextureGL::updateContents):
605
606 2012-03-14  Leo Yang  <leo.yang@torchmobile.com.cn>
607
608         [BlackBerry] Upstream the BlackBerry change to platform/Cursor.h
609         https://bugs.webkit.org/show_bug.cgi?id=81086
610
611         Reviewed by Rob Buis.
612
613         * platform/Cursor.h:
614         (WebCore):
615         (WebCore::Cursor::Cursor):
616         Add the BlackBerry specific PlatformCursor.
617         * platform/blackberry/PageClientBlackBerry.h:
618         There was an alias named PlatformCursorHandle for PlatformCursor
619         in the internal version of Cursor.h. But it's not necessary so it's
620         not included in the upstreaming version of Cursor.h. As a result,
621         use PlatformCursor directly in this file.
622         (PageClientBlackBerry):
623
624 2012-03-14  Simon Hausmann  <simon.hausmann@nokia.com>
625
626         [Qt] RunLoopQt is missing reentrancy guards
627         https://bugs.webkit.org/show_bug.cgi?id=80982
628
629         Reviewed by Tor Arne Vestbø.
630
631         Avoid recursive calls to RunLoop::performWork() with a simple
632         counting mechanism, to avoid out-of-order message dispatching.
633
634         * platform/qt/RunLoopQt.cpp:
635         (WebCore::RunLoop::TimerObject::TimerObject):
636         (WebCore::RunLoop::TimerObject::performWork):
637         (RunLoop::TimerObject):
638
639 2012-03-14  Ilya Tikhonovsky  <loislo@chromium.org>
640
641         Web Inspector: small improvement for HeapSnapshot performance ~12%.
642         https://bugs.webkit.org/show_bug.cgi?id=81033
643
644         Reviewed by Yury Semikhatsky.
645
646         * inspector/front-end/HeapSnapshot.js:
647         (WebInspector.HeapSnapshot.prototype.get nodeCount):
648         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
649         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
650         (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
651         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
652
653 2012-03-14  Kentaro Hara  <haraken@chromium.org>
654
655         Return null when shouldAllowAccessToNode() fails
656         https://bugs.webkit.org/show_bug.cgi?id=80205
657
658         Reviewed by Adam Barth.
659
660         shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
661         and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
662         requires that they should return null when the security check fails.
663         Thus this patch changes the return value from undefined to null.
664
665         http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
666         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
667
668         Tests: http/tests/security/local-iFrame-from-remote.html
669                http/tests/security/cross-frame-access-frameelement.html
670                http/tests/security/cross-frame-access-put.html
671
672         * bindings/scripts/CodeGeneratorJS.pm:
673         (GenerateImplementation):
674         * bindings/scripts/CodeGeneratorV8.pm:
675         (GenerateNormalAttrGetter):
676         (GenerateFunctionCallback):
677
678         * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
679         (WebCore::jsTestObjContentDocument):
680         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
681         * bindings/scripts/test/V8/V8TestObj.cpp:
682         (WebCore::TestObjInternal::contentDocumentAttrGetter):
683         (WebCore::TestObjInternal::getSVGDocumentCallback):
684
685 2012-03-14  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
686
687         Build error: DNSSoup.cpp:30: fatal error: CString.h: No such file or
688         directory
689         https://bugs.webkit.org/show_bug.cgi?id=81093
690
691         Reviewed by Philippe Normand.
692
693         Fix build error introduced by r110669.
694
695         * platform/network/soup/DNSSoup.cpp:
696
697 2012-03-14  Marja Hölttä  <marja@google.com>
698
699         WebHTTPBody: Keep track of whether the data includes passwords.
700         https://bugs.webkit.org/show_bug.cgi?id=81003
701
702         Reviewed by Darin Fisher.
703
704         This change enables Chrome to save HTTP bodies selectively, only
705         if they don't contain passwords.
706
707         * loader/FormSubmission.cpp:
708         (WebCore::FormSubmission::create): Check if the data contains passwords.
709         * platform/network/FormData.cpp:
710         (WebCore::FormData::FormData): Added containsPasswordData, setContainsPasswordData.
711         * platform/network/FormData.h:
712         (WebCore::FormData::containsPasswordData): Added.
713         (WebCore::FormData::setHasPasswordData): Added.
714         (FormData):
715
716 2012-03-14  Vsevolod Vlasov  <vsevik@chromium.org>
717
718         Web Inspector: Add snippets tab to scripts navigator.
719         https://bugs.webkit.org/show_bug.cgi?id=81018
720
721         Reviewed by Pavel Feldman.
722
723         * English.lproj/localizedStrings.js:
724         * inspector/front-end/ScriptsNavigator.js:
725         (WebInspector.ScriptsNavigator):
726         (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
727         (WebInspector.ScriptsNavigator.prototype.focus):
728         (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
729         (WebInspector.ScriptsNavigator.prototype.reset):
730         (WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement):
731         (WebInspector.ScriptsNavigator.prototype._createFolderTreeElement):
732         (WebInspector.ScriptsNavigator.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
733         (WebInspector.ScriptsNavigator.prototype._scriptFolderIdentifier):
734         (WebInspector.NavigatorTreeOutline):
735         * inspector/front-end/ScriptsPanel.js:
736         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
737         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
738         * inspector/front-end/SnippetsModel.js:
739
740 2012-03-14  Pavel Feldman  <pfeldman@chromium.org>
741
742         Web Inspector: Copy on the Console gives a mangled result.
743         https://bugs.webkit.org/show_bug.cgi?id=81091
744
745         Reviewed by Vsevolod Vlasov.
746
747         * inspector/front-end/ConsoleMessage.js:
748         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
749         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
750
751 2012-03-14  Nikolas Zimmermann  <nzimmermann@rim.com>
752
753         External <use> xlink:href references do not work
754         https://bugs.webkit.org/show_bug.cgi?id=12499
755
756         Reviewed by Zoltan Herczeg.
757
758         Follow-up fix after r110676.
759         Assertions are firing due last minute changes in isExternalURIReference.
760
761         Fix detecting local resources properly, when the given iri contains a /complex/path.
762         Use document->completeURL() instead, and compare with the document->url() to decide
763         if its a local reference or not.
764
765         If an external document load fails with an error (eg. file missing) don't assert
766         in debug builds, instead handle it gracefully.
767
768         I decided to clean the code up as well, to make it more safe & obvious.
769
770         Test: svg/custom/use-external-crash.svg
771
772         * svg/SVGURIReference.cpp:
773         (WebCore::SVGURIReference::targetElementFromIRIString):
774         * svg/SVGURIReference.h:
775         (WebCore::SVGURIReference::isExternalURIReference):
776         * svg/SVGUseElement.cpp:
777         (WebCore::SVGUseElement::externalDocument):
778         (WebCore::SVGUseElement::buildPendingResource):
779
780 2012-03-14  Lars Knudsen  <lars.knudsen@nokia.com>
781
782         3D transformed surfaces with z>0 gets cropped
783         https://bugs.webkit.org/show_bug.cgi?id=81009
784
785         Reviewed by Noam Rosenthal.
786
787         The scissor clipping in TextureMapperGL didn't take 3D transforms 
788         into account when calculating the clipping region.
789         Now, it will bail out early if the transform is not affine.
790
791         No new tests. Tested by current compositing layout tests.
792
793         * platform/graphics/texmap/TextureMapperGL.cpp:
794         (WebCore::TextureMapperGL::beginScissorClip):
795
796 2012-03-14  Hajime Morrita  <morrita@chromium.org>
797
798         Unreviewed build fix.
799
800         * html/track/TextTrackList.cpp:
801         (TextTrackList::append):
802         (TextTrackList::remove):
803         (TextTrackList::owner): Changed return type from HTMLMediaElement* to Node* and uninlined.
804         * html/track/TextTrackList.h:
805         (TextTrackList):
806
807 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
808
809         Web Inspector: [InspectorIndexedDB] Remote object should be released when data view is removed/updated.
810         https://bugs.webkit.org/show_bug.cgi?id=81022
811
812         Reviewed by Pavel Feldman.
813
814         * inspector/front-end/IndexedDBViews.js:
815         (WebInspector.IDBDataView):
816         (WebInspector.IDBDataView.prototype._updateData.callback):
817         (WebInspector.IDBDataView.prototype._updateData):
818         (WebInspector.IDBDataView.prototype.get statusBarItems):
819         (WebInspector.IDBDataView.prototype.clear):
820         * inspector/front-end/ResourcesPanel.js:
821         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
822         (WebInspector.IDBDatabaseTreeElement.prototype.update):
823         (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
824         (WebInspector.IDBDatabaseTreeElement.prototype._objectStoreRemoved):
825         (WebInspector.IDBDatabaseTreeElement.prototype.clear):
826         (WebInspector.IDBObjectStoreTreeElement.prototype.update):
827         (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
828         (WebInspector.IDBObjectStoreTreeElement.prototype._indexRemoved):
829         (WebInspector.IDBObjectStoreTreeElement.prototype.clear):
830         (WebInspector.IDBIndexTreeElement.prototype.onselect):
831         (WebInspector.IDBIndexTreeElement.prototype.clear):
832
833 2012-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
834
835         Web Inspector: Introduce SnippetsScriptMapping.
836         https://bugs.webkit.org/show_bug.cgi?id=80890
837
838         Reviewed by Pavel Feldman.
839
840         * inspector/front-end/ScriptMapping.js:
841         (WebInspector.MainScriptMapping):
842         (WebInspector.MainScriptMapping.prototype.addScript):
843         (WebInspector.MainScriptMapping.prototype._mappingForScript):
844         * inspector/front-end/SnippetsModel.js:
845         (WebInspector.SnippetsModel.prototype.snippetForId):
846         (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
847         (WebInspector.SnippetsScriptMapping):
848         (WebInspector.SnippetsScriptMapping.prototype.uiSourceCodeList):
849         (WebInspector.SnippetsScriptMapping.prototype.addScript):
850         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
851         (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript.get if):
852         (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript):
853         (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted.get this):
854         (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted):
855         (WebInspector.SnippetsScriptMapping.prototype.reset):
856         (WebInspector.SnippetContentProvider):
857
858 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
859
860         Unreviewed, rolling out r110673.
861         http://trac.webkit.org/changeset/110673
862         https://bugs.webkit.org/show_bug.cgi?id=81090
863
864         "Qt minimal build broken" (Requested by yurys on #webkit).
865
866         * inspector/CodeGeneratorInspector.py:
867         (CommandReturnPassModel.ByPointer.get_set_return_condition):
868         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
869         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
870         (Generator.process_event):
871         (Generator.process_command):
872         * inspector/ContentSearchUtils.cpp:
873         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
874         (WebCore::ContentSearchUtils::searchInTextByLines):
875         * inspector/ContentSearchUtils.h:
876         (ContentSearchUtils):
877         * inspector/InjectedScript.cpp:
878         (WebCore::InjectedScript::evaluate):
879         (WebCore::InjectedScript::callFunctionOn):
880         (WebCore::InjectedScript::evaluateOnCallFrame):
881         (WebCore::InjectedScript::makeEvalCall):
882         * inspector/InjectedScript.h:
883         (InjectedScript):
884         * inspector/InspectorDOMDebuggerAgent.cpp:
885         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
886         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
887         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
888         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
889         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
890         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
891         * inspector/InspectorDebuggerAgent.cpp:
892         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
893         (WebCore::InspectorDebuggerAgent::setBreakpoint):
894         (WebCore::InspectorDebuggerAgent::searchInContent):
895         (WebCore::InspectorDebuggerAgent::setScriptSource):
896         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
897         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
898         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
899         (WebCore::InspectorDebuggerAgent::didPause):
900         (WebCore::InspectorDebuggerAgent::breakProgram):
901         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
902         * inspector/InspectorDebuggerAgent.h:
903         (InspectorDebuggerAgent):
904         * inspector/InspectorPageAgent.cpp:
905         (WebCore::buildObjectForCookie):
906         (WebCore::buildArrayForCookies):
907         (WebCore::InspectorPageAgent::getCookies):
908         (WebCore::InspectorPageAgent::getResourceTree):
909         (WebCore::InspectorPageAgent::searchInResource):
910         (WebCore::InspectorPageAgent::searchInResources):
911         (WebCore::InspectorPageAgent::buildObjectForFrame):
912         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
913         * inspector/InspectorPageAgent.h:
914         * inspector/InspectorRuntimeAgent.cpp:
915         (WebCore::InspectorRuntimeAgent::evaluate):
916         (WebCore::InspectorRuntimeAgent::callFunctionOn):
917
918 2012-03-14  Renata Hodovan  <reni@webkit.org>
919
920         External <use> xlink:href references do not work
921         https://bugs.webkit.org/show_bug.cgi?id=12499
922
923         Reviewed by Nikolas Zimmermann.
924
925         This is a follow-up patch after r108785.
926         In this patch we bind the previously introduced CachedSVGDocument class
927         into the caching mechanism of SVGUseElement. The mode how external resources
928         are handled is similar to the processing of internal ones. We build the instance
929         and shadow tree the same way but we have to keep in mind that the requested resources
930         maybe not loaded yet. We can check it with cachedDocumentIsStillLoading() function.
931
932         SVGURIReference::targetElementFromIRIString() also need to be extended. The baseURI
933         computation needs to take the referenced documents URL into account, instead of the current documents.
934
935         The patch affects a lot of tests which have external resources especially in svg/batik. Because
936         of the size of that test refactor they will be commited in a follow-up patch.
937
938         Tests: svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg
939                svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t.svg
940                svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t.svg
941                svg/custom/use-extern-href.svg
942                svg/custom/use-referencing-an-image-expected.svg
943                svg/custom/use-referencing-an-image.svg
944                svg/custom/use-referencing-indirectly-itself-expected.svg
945                svg/custom/use-referencing-indirectly-itself.svg
946                svg/custom/use-referencing-itself-expected.svg
947                svg/custom/use-referencing-itself.svg
948                svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
949                svg/dynamic-updates/SVGUseElement-dom-href2-attr.html
950                svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html
951                svg/dynamic-updates/SVGUseElement-svgdom-href2-prop.html
952
953         * loader/cache/CachedResourceLoader.cpp:
954         (WebCore):
955         (WebCore::CachedResourceLoader::requestSVGDocument):
956         * loader/cache/CachedResourceLoader.h:
957         (WebCore):
958         (CachedResourceLoader):
959         * page/ContentSecurityPolicy.h:
960         * platform/KURL.cpp:
961         (WebCore::equalIgnoringFragmentIdentifier):
962         * platform/network/chromium/ResourceRequest.h:
963         * svg/SVGURIReference.cpp:
964         (WebCore::urlFromIRIStringWithFragmentIdentifier):
965         (WebCore):
966         (WebCore::SVGURIReference::targetElementFromIRIString):
967         * svg/SVGURIReference.h:
968         (SVGURIReference):
969         (WebCore::SVGURIReference::isExternalURIReference):
970         * svg/SVGUseElement.cpp:
971         (WebCore::SVGUseElement::SVGUseElement):
972         (WebCore::SVGUseElement::~SVGUseElement):
973         (WebCore):
974         (WebCore::SVGUseElement::referencedDocument):
975         (WebCore::SVGUseElement::externalDocument):
976         (WebCore::SVGUseElement::svgAttributeChanged):
977         (WebCore::dumpInstanceTree):
978         (WebCore::SVGUseElement::buildPendingResource):
979         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
980         (WebCore::SVGUseElement::hasCycleUseReferencing):
981         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
982         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
983         (WebCore::SVGUseElement::notifyFinished):
984         (WebCore::SVGUseElement::cachedDocumentIsStillLoading):
985         (WebCore::SVGUseElement::instanceTreeIsLoading):
986         * svg/SVGUseElement.h:
987         (WebCore):
988         (SVGUseElement):
989
990 2012-03-14  Peter Rybin  <peter.rybin@gmail.com>
991
992         Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
993         https://bugs.webkit.org/show_bug.cgi?id=80789
994
995         Reviewed by Yury Semikhatsky.
996
997         OptOutput class is added for optional return parameters.
998
999         Strict mode added to Generator that makes all parameter types strict
1000         and drop pre-set default values for return parameters.
1001
1002         Debugger and Page domain is switched to strict mode.
1003
1004
1005         * inspector/CodeGeneratorInspector.py:
1006         (CommandReturnPassModel.ByPointer):
1007         (CommandReturnPassModel):
1008         (CommandReturnPassModel.OptOutput):
1009         (CommandReturnPassModel.OptOutput.__init__):
1010         (CommandReturnPassModel.OptOutput.get_return_var_type):
1011         (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
1012         (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
1013         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
1014         (CommandReturnPassModel.OptOutput.get_set_return_condition):
1015         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
1016         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
1017         (OptOutput):
1018         (Generator.process_event):
1019         (Generator.process_command):
1020         * inspector/ContentSearchUtils.cpp:
1021         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1022         (WebCore::ContentSearchUtils::searchInTextByLines):
1023         * inspector/ContentSearchUtils.h:
1024         (ContentSearchUtils):
1025         * inspector/InjectedScript.cpp:
1026         (WebCore::InjectedScript::evaluate):
1027         (WebCore::InjectedScript::callFunctionOn):
1028         (WebCore::InjectedScript::evaluateOnCallFrame):
1029         (WebCore::InjectedScript::makeEvalCall):
1030         * inspector/InjectedScript.h:
1031         (InjectedScript):
1032         * inspector/InspectorDOMDebuggerAgent.cpp:
1033         (WebCore):
1034         * inspector/InspectorDebuggerAgent.cpp:
1035         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
1036         (WebCore::InspectorDebuggerAgent::setBreakpoint):
1037         (WebCore::InspectorDebuggerAgent::searchInContent):
1038         (WebCore::InspectorDebuggerAgent::setScriptSource):
1039         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
1040         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
1041         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
1042         (WebCore::InspectorDebuggerAgent::didPause):
1043         (WebCore::InspectorDebuggerAgent::breakProgram):
1044         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
1045         * inspector/InspectorDebuggerAgent.h:
1046         (InspectorDebuggerAgent):
1047         * inspector/InspectorPageAgent.cpp:
1048         (WebCore::buildObjectForCookie):
1049         (WebCore::buildArrayForCookies):
1050         (WebCore::InspectorPageAgent::getCookies):
1051         (WebCore::InspectorPageAgent::getResourceTree):
1052         (WebCore::InspectorPageAgent::searchInResource):
1053         (WebCore::InspectorPageAgent::searchInResources):
1054         (WebCore::InspectorPageAgent::buildObjectForFrame):
1055         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
1056         * inspector/InspectorPageAgent.h:
1057         * inspector/InspectorRuntimeAgent.cpp:
1058         (WebCore::InspectorRuntimeAgent::evaluate):
1059         (WebCore::InspectorRuntimeAgent::callFunctionOn):
1060
1061 2012-03-14  Sergio Villar Senin  <svillar@igalia.com>
1062
1063         Unreviewed. Build fix for EFL after r110669.
1064
1065         * PlatformEfl.cmake: added DNSSoup.cpp
1066
1067 2012-03-13  Sergio Villar Senin  <svillar@igalia.com>
1068
1069         [GTK] Use the same DNS prefetching path than the other ports.
1070         https://bugs.webkit.org/show_bug.cgi?id=80997
1071
1072         Reviewed by Martin Robinson.
1073
1074         This patch basically reverts r56128. There is no need to add an
1075         special code path for GTK+ DNS pre-fetching because the main
1076         reason to do that (some potential changes in libsoup) is not
1077         going to happen. It also reduces the amount of DNS queries by
1078         adding a NULL hostname check.
1079
1080         No need for new tests as this just moves code around.
1081
1082         * GNUmakefile.list.am:
1083         * html/HTMLAnchorElement.cpp:
1084         (WebCore::HTMLAnchorElement::parseAttribute):
1085         * html/HTMLLinkElement.cpp:
1086         * loader/LinkLoader.cpp:
1087         (WebCore::LinkLoader::loadLink):
1088         * page/Chrome.cpp:
1089         (WebCore::Chrome::mouseDidMoveOverElement):
1090         * platform/network/DNS.h:
1091         (WebCore):
1092         * platform/network/ResourceHandle.cpp:
1093         * platform/network/ResourceHandle.h:
1094         (ResourceHandle):
1095         * platform/network/chromium/DNSChromium.cpp:
1096         * platform/network/soup/DNSSoup.cpp: restored.
1097         (WebCore):
1098         (WebCore::prefetchDNS):
1099         * platform/network/soup/ResourceHandleSoup.cpp:
1100
1101 2012-03-14  Kentaro Hara  <haraken@chromium.org>
1102
1103         Return null when shouldAllowAccessToNode() fails
1104         https://bugs.webkit.org/show_bug.cgi?id=80205
1105
1106         Reviewed by Adam Barth.
1107
1108         shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
1109         and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
1110         requires that they should return null when the security check fails.
1111         Thus this patch changes the return value from undefined to null.
1112
1113         http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
1114         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
1115
1116         Tests: http/tests/security/local-iFrame-from-remote.html
1117                http/tests/security/cross-frame-access-frameelement.html
1118                http/tests/security/cross-frame-access-put.html
1119
1120         * bindings/scripts/CodeGeneratorJS.pm:
1121         (GenerateImplementation):
1122         * bindings/scripts/CodeGeneratorV8.pm:
1123         (GenerateNormalAttrGetter):
1124         (GenerateFunctionCallback):
1125
1126         * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
1127         (WebCore::jsTestObjContentDocument):
1128         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
1129         * bindings/scripts/test/V8/V8TestObj.cpp:
1130         (WebCore::TestObjInternal::contentDocumentAttrGetter):
1131         (WebCore::TestObjInternal::getSVGDocumentCallback):
1132
1133 2012-03-13  Yosifumi Inoue  <yosin@chromium.org>
1134
1135         [Forms] Hidden input element should not have labels. 
1136         https://bugs.webkit.org/show_bug.cgi?id=80403
1137
1138         Reviewed by Kent Tamura.
1139
1140         This patch changes "labels" attribute behavior for hidden input type.
1141         It returns null instead of NodeList of labels or empty node list.
1142
1143         Note: The HTML5 specification isn't clear for non-labelable element's "labels"
1144         attribute return value. Firefox and Opera return empty node list. IE returns null.
1145
1146         No new tests. Existing tests are updated.
1147
1148         * html/HTMLInputElement.cpp:
1149         (WebCore::HTMLInputElement::isLabelable): Added. Dispatch to InputType.
1150         * html/HiddenInputType.h:  Added isLabelable returning false.
1151         * html/InputType.cpp:
1152         (WebCore::InputType::isLabelable): Added. Returning true for all input types except for "hidden" type.
1153         (WebCore):
1154         * html/InputType.h:
1155         (InputType): Added isLabelable declaration.
1156
1157 2012-03-13  Yosifumi Inoue  <yosin@chromium.org>
1158
1159         [Forms] The "output" element should have labels.
1160         https://bugs.webkit.org/show_bug.cgi?id=80466
1161
1162         Reviewed by Kent Tamura.
1163
1164         This patch enables functionality of "labels" attribute for
1165         HTMLOutputElement implemented in LabelableElement which use
1166         isLabelable predicate whether an element can have label or not.
1167
1168         Update existing tests in fast/forms/label/ directory to cover
1169         the "output" element with the "labels" attribute.
1170
1171         * html/HTMLOutputElement.h: Implement virtual method isLabelable.
1172
1173 2012-03-13  Luke Macpherson   <macpherson@chromium.org>
1174
1175         Move opacity clamping into RenderStyle setter.
1176         https://bugs.webkit.org/show_bug.cgi?id=76966
1177
1178         Reviewed by Eric Seidel.
1179
1180         Covered by existing tests.
1181
1182         * css/CSSStyleSelector.cpp:
1183         (WebCore::CSSStyleSelector::applyProperty):
1184         * rendering/style/RenderStyle.h:
1185         (WebCore::RenderStyleBitfields::setOpacity):
1186
1187 2012-03-12  Igor Oliveira  <igor.o@sisa.samsung.com>
1188
1189         Split the extra logic out of RenderObjectChildList::updateBeforeAfterContent
1190         https://bugs.webkit.org/show_bug.cgi?id=80856
1191
1192         Extra part of the generated content handling logic out of RenderObjectChildList::updateBeforeAfterContent
1193
1194         Reviewed by Julien Chaffraix.
1195
1196         No change in behavior expected.
1197
1198         * rendering/RenderObjectChildList.cpp:
1199         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
1200         (WebCore::createRenderForBeforeAfterContent):
1201         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
1202         * rendering/RenderObjectChildList.h:
1203         (WebCore):
1204         (RenderObjectChildList):
1205
1206 2012-03-13  Simon Fraser  <simon.fraser@apple.com>
1207
1208         Fix potential crash when loading test results
1209         https://bugs.webkit.org/show_bug.cgi?id=81062
1210         <rdar://problem/11041732>
1211         
1212         Reviewed by Dean Jackson.
1213
1214         If RenderLayerBacking::isSimpleContainerCompositingLayer() is called early,
1215         before the document has a documentElement(), then it crashes. Fix with
1216         a null check on documentElement().
1217         
1218         No test because it's timing dependent.
1219
1220         * rendering/RenderLayerBacking.cpp:
1221         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
1222
1223 2012-03-13  Dan Bernstein  <mitz@apple.com>
1224
1225         <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com
1226         https://bugs.webkit.org/show_bug.cgi?id=81051
1227
1228         Reviewed by Simon Fraser.
1229
1230         Test: ManualTests/inline-repaint-container.html.
1231
1232         * rendering/RenderInline.cpp:
1233         (WebCore::RenderInline::clippedOverflowRectForRepaint): This function was not handling the
1234         case of the repaint container being a descendant of the containing block correctly, leading
1235         to the assertion failure, but also to a correctness bug seen in the new test. If the repaint
1236         container is a descendant of the containing block, just return the rect in the repaint
1237         container coordinates.
1238
1239 2012-03-13  Dan Bernstein  <mitz@apple.com>
1240
1241         <rdar://problem/11025217> [Mac] Assertion failure in collectComplexTextRunsForCharactersCoreText
1242         https://bugs.webkit.org/show_bug.cgi?id=77044
1243
1244         Reviewed by Sam Weinig.
1245
1246         Test: platform/mac/fast/text/core-text-fallback-to-unknown-font.html
1247
1248         Handle the case of Core Text choosing a fallback font that NSFontManager cannot find by name.
1249
1250         * platform/graphics/FontCache.h:
1251         (FontCache): Made ComplexTextController a friend class.
1252         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
1253         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Removed the
1254         failing assertion, which was not true, and added code to handle the case where a font
1255         cannot be found by name by using the font as returned from Core Text.
1256
1257 2012-03-13  Erik Arvidsson  <arv@chromium.org>
1258
1259         [V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
1260         https://bugs.webkit.org/show_bug.cgi?id=80880
1261
1262         Reviewed by Adam Barth.
1263
1264         We used to add a hidden property in the getter to the returned wrapper.
1265         With this patch we instead handle the liveness of the wrapper in the GC phase by
1266         calling v8::V8::AddHiddenReference.
1267
1268         To reduce the amount of custom code we need, the V8 code generator now supports
1269         GenerateIsReachable (as well as CustomIsReachable) which, even though different
1270         from the JSC attribute, is used in the same cases and takes the same values (even though
1271         at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
1272         also have a dependent life time (just like if V8DependentLifetime was present).
1273
1274         Second try. This time with an added include in TextTrackList.cpp.
1275
1276         No new tests. Covered by existing tests.
1277
1278         * Target.pri:
1279         * UseV8.cmake:
1280         * WebCore.gypi:
1281         * bindings/scripts/CodeGeneratorJS.pm:
1282         (GetGenerateIsReachable):
1283         (GetCustomIsReachable):
1284         (GenerateHeader):
1285         (GenerateImplementation):
1286         * bindings/scripts/CodeGeneratorV8.pm:
1287         (NeedsToVisitDOMWrapper):
1288         (GetGenerateIsReachable):
1289         (GetCustomIsReachable):
1290         (GenerateVisitDOMWrapper):
1291         (GenerateHeader):
1292         (GenerateNamedConstructorCallback):
1293         (GenerateImplementation):
1294         * bindings/scripts/IDLAttributes.txt:
1295         * bindings/scripts/test/V8/V8Float64Array.cpp:
1296         (WebCore):
1297         * bindings/scripts/test/V8/V8Float64Array.h:
1298         (V8Float64Array):
1299         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1300         (WebCore):
1301         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1302         (V8TestActiveDOMObject):
1303         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1304         (WebCore):
1305         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1306         (V8TestCustomNamedGetter):
1307         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1308         (WebCore):
1309         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1310         (V8TestEventConstructor):
1311         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1312         (WebCore):
1313         * bindings/scripts/test/V8/V8TestEventTarget.h:
1314         (V8TestEventTarget):
1315         * bindings/scripts/test/V8/V8TestInterface.cpp:
1316         (WebCore):
1317         * bindings/scripts/test/V8/V8TestInterface.h:
1318         (V8TestInterface):
1319         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1320         (WebCore):
1321         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1322         (V8TestMediaQueryListListener):
1323         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1324         (WebCore):
1325         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1326         (V8TestNamedConstructor):
1327         * bindings/scripts/test/V8/V8TestObj.cpp:
1328         (WebCore):
1329         * bindings/scripts/test/V8/V8TestObj.h:
1330         (V8TestObj):
1331         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1332         (WebCore):
1333         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1334         (V8TestSerializedScriptValueInterface):
1335         * bindings/v8/NPV8Object.cpp:
1336         (WebCore::npObjectTypeInfo):
1337         * bindings/v8/V8GCController.cpp:
1338         (WebCore::GrouperVisitor::visitDOMWrapper):
1339         * bindings/v8/WrapperTypeInfo.h:
1340         (WebCore):
1341         (WrapperTypeInfo):
1342         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
1343         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1344         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
1345         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1346         (WebCore):
1347         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1348         * bindings/v8/custom/V8StyleSheetCustom.cpp:
1349         (WebCore::toV8):
1350         * css/CSSStyleSheet.idl:
1351         * css/StyleSheet.idl:
1352         * dom/DOMStringMap.idl:
1353         * dom/NamedNodeMap.idl:
1354         * html/DOMTokenList.idl:
1355         * html/track/TextTrackList.cpp:
1356         * html/track/TextTrackList.idl:
1357
1358 2012-03-13  Jacky Jiang  <zhajiang@rim.com>
1359
1360         MathML crash in WebCore::Node::previousSibling()
1361         https://bugs.webkit.org/show_bug.cgi?id=80773
1362
1363         Reviewed by Julien Chaffraix.
1364
1365         When adding child for msub render, if the child is mtr or mtd render,
1366         we will creat an anonymous render as the container. As the anonymous
1367         render's node is 0, accessing it directly can cause crash.
1368         We should do a valid check of the node before using. In addition to
1369         that, for msub, attach the anonymous render and it's children to render
1370         tree. For msubsup, such kind of situation should never happen based on
1371         the current codebase.
1372
1373         Test: mathml/msub-anonymous-child-render-crash.html
1374
1375         * rendering/mathml/RenderMathMLSubSup.cpp:
1376         (WebCore::RenderMathMLSubSup::addChild):
1377
1378 2012-03-13  Mihnea Ovidenie  <mihnea@adobe.com>
1379
1380         [CSSRegions]NamedFlow::getRegionsByContentNode should not return a live NodeList
1381         https://bugs.webkit.org/show_bug.cgi?id=81021
1382
1383         Reviewed by Ryosuke Niwa.
1384
1385         Reverting the original patch as we need a better solution.
1386
1387         * CMakeLists.txt:
1388         * GNUmakefile.list.am:
1389         * Target.pri:
1390         * WebCore.gypi:
1391         * WebCore.vcproj/WebCore.vcproj:
1392         * WebCore.xcodeproj/project.pbxproj:
1393         * dom/Node.cpp:
1394         (WebCore::NodeListsNodeData::invalidateCaches):
1395         (WebCore::NodeListsNodeData::isEmpty):
1396         * dom/Node.h:
1397         (Node):
1398         * dom/NodeRareData.h:
1399         (NodeListsNodeData):
1400         * dom/RegionNodeList.cpp: Removed.
1401         * dom/RegionNodeList.h: Removed.
1402         * dom/WebKitNamedFlow.cpp:
1403         * dom/WebKitNamedFlow.h:
1404         (WebKitNamedFlow):
1405         * dom/WebKitNamedFlow.idl:
1406         * rendering/RenderFlowThread.cpp:
1407         * rendering/RenderFlowThread.h:
1408         * rendering/RenderRegion.h:
1409         (RenderRegion):
1410
1411 2012-03-13  Shawn Singh  <shawnsingh@chromium.org>
1412
1413         [chromium] wrong transform causing incorrect culling
1414         https://bugs.webkit.org/show_bug.cgi?id=80471
1415
1416         Reviewed by James Robinson.
1417
1418         Unit test added to CCRenderSurfaceTest.cpp
1419
1420         In addition to using originTransform() instead of drawTransform(),
1421         this patch shuffles a bit of code so that a unit test can be
1422         easily added.
1423
1424         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1425         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
1426         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1427         (WebCore::CCRenderSurface::createSharedQuadState):
1428         (WebCore):
1429         * platform/graphics/chromium/cc/CCRenderSurface.h:
1430         (CCRenderSurface):
1431
1432 2012-03-13  Dave Tharp  <dtharp@codeaurora.org>
1433
1434         Alternate xml-stylesheets with no title are loaded, in violation of the CSSOM draft
1435         https://bugs.webkit.org/show_bug.cgi?id=77549
1436
1437         Reviewed by David Hyatt.
1438
1439         Amended code to ignore alternate stylesheets that do not have a title attribute.
1440
1441         Test: fast/css/xml-stylesheet-alternate-no-title.xhtml
1442
1443         * dom/ProcessingInstruction.cpp:
1444         (WebCore::ProcessingInstruction::checkStyleSheet):
1445
1446 2012-03-13  Levi Weintraub  <leviw@chromium.org>
1447
1448         Revert RenderLayer::absoluteBoundingBox to an IntRect
1449         https://bugs.webkit.org/show_bug.cgi?id=81017
1450
1451         Reviewed by Eric Seidel.
1452
1453         Reverting RenderLayer::absoluteBoundingBox to an (pixel snapped) IntRect. Whenever
1454         possible, we use integers representing for absolute coordinates. This is especially
1455         relevant for methods, such as this one, that are exported and used in platform code.
1456
1457         No new tests. No change in behavior.
1458
1459         * rendering/RenderLayer.cpp:
1460         (WebCore::RenderLayer::absoluteBoundingBox):
1461         * rendering/RenderLayer.h:
1462         (RenderLayer):
1463         * rendering/RenderLayerCompositor.cpp:
1464         (WebCore::RenderLayerCompositor::requiresCompositingForPosition): This intersects
1465         the absolute bounding box with the FrameView, which uses all integer values. It's
1466         the only use of absoluteBoundingBox in WebCore.
1467
1468 2012-03-13  Nat Duca  <nduca@chromium.org>
1469
1470         [chromium] vsync ticks are needed in invisible tabs when we are still updating resources
1471         https://bugs.webkit.org/show_bug.cgi?id=80910
1472
1473         Reviewed by James Robinson.
1474
1475         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
1476         (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
1477
1478 2012-03-13  Dave Tharp  <dtharp@codeaurora.org>
1479
1480         Alternate stylesheets (without title attribute) are loaded on refresh
1481         https://bugs.webkit.org/show_bug.cgi?id=24354
1482
1483         Reviewed by David Hyatt.
1484
1485         Alternate stylesheets are now ignored in <link> tags if 
1486         they have no title attribute (per spec).
1487
1488         Tests: fast/css/link-alternate-stylesheet-1.html
1489                fast/css/link-alternate-stylesheet-2.html
1490                fast/css/link-alternate-stylesheet-3.html
1491                fast/css/link-alternate-stylesheet-4.html
1492                fast/css/link-alternate-stylesheet-5.html
1493
1494         * dom/Document.cpp:
1495         (WebCore::Document::collectActiveStylesheets):
1496
1497 2012-03-13  Dana Jansens  <danakj@chromium.org>
1498
1499         Region::contains(IntPoint) is slow
1500         https://bugs.webkit.org/show_bug.cgi?id=81008
1501
1502         Reviewed by Anders Carlsson.
1503
1504         Speed up Region::contains(IntPoint) by directly testing if the point
1505         is inside the Region's shape, rather than using a temporary 1x1 Region
1506         for the test.
1507
1508         Unit test: RegionTest.containsPoint
1509
1510         * platform/graphics/Region.cpp:
1511         (WebCore::Region::contains):
1512
1513 2012-03-13  Adrienne Walker  <enne@google.com>
1514
1515         [chromium] Mark root layer scrollbars as always opaque to disable blending
1516         https://bugs.webkit.org/show_bug.cgi?id=79951
1517
1518         Reviewed by James Robinson.
1519
1520         Now that scrollbar layers exist, mark non-overlay root scrollbars as
1521         opaque. This disables blending for correctness and performance.
1522
1523         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1524         (WebCore::scrollbarLayerDidChange):
1525         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
1526         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
1527         * platform/graphics/chromium/LayerRendererChromium.cpp:
1528         (WebCore::LayerRendererChromium::drawTileQuad):
1529
1530 2012-03-13  Gavin Peters  <gavinp@chromium.org>
1531
1532         Remove vestigal abortEvent from image attribute.
1533         https://bugs.webkit.org/show_bug.cgi?id=80795
1534
1535         Reviewed by Adam Barth.
1536
1537         It seems we installed a listener for the abort event on images,
1538         but never ever raised them.  So this patch removes it.  This could
1539         cause different behaviour if the user sends abort events directly
1540         at an image element, although addEventListener will still work.
1541
1542         * html/HTMLImageElement.cpp:
1543         (WebCore::HTMLImageElement::parseAttribute):
1544
1545 2012-03-13  Nate Chapin  <japhet@chromium.org>
1546
1547         Rework how a CachedRawResource decides if it can be reused
1548         for a given ResourceRequest. Ensure method, body, cookie policy,
1549         and all headers match.
1550         http://bugs.webkit.org/show_bug.cgi?id=79325
1551
1552         Reviewed by Oliver Hunt.
1553
1554         Test: http/tests/cache/xhr-body.html
1555
1556         * loader/cache/CachedRawResource.cpp:
1557         (WebCore::CachedRawResource::canReuse):
1558         * loader/cache/CachedRawResource.h: Take a ResourceRequest in canReuse().
1559         * loader/cache/CachedResourceLoader.cpp:
1560         (WebCore::CachedResourceLoader::determineRevalidationPolicy): Remove Range header
1561             check, since it is now redundant.
1562
1563 2012-03-13  Rob Buis  <rbuis@rim.com>
1564
1565         Fix cast-align GCC warning
1566         https://bugs.webkit.org/show_bug.cgi?id=80790
1567
1568         Reviewed by Dan Bates.
1569
1570         This touches unpackOneRowOfBGRA8ToRGBA8.
1571
1572         * platform/graphics/GraphicsContext3D.cpp:
1573         (WebCore):
1574
1575 2012-03-12  Simon Fraser  <simon.fraser@apple.com>
1576
1577         Refactor some code that is used to check whether a layer needs backing store
1578         https://bugs.webkit.org/show_bug.cgi?id=80917
1579
1580         Reviewed by Dean Jackson.
1581
1582         Move some code out of isSimpleContainerCompositingLayer() in two new
1583         methods to make the code more self-descriptive.
1584         
1585         No behavior change, so no tests.
1586
1587         * rendering/RenderLayerBacking.cpp:
1588         (WebCore::RenderLayerBacking::paintsBoxDecorations):
1589         (WebCore::RenderLayerBacking::paintsChildren):
1590         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
1591         * rendering/RenderLayerBacking.h:
1592         (RenderLayerBacking):
1593
1594 2012-03-13  Daniel Bates  <dbates@webkit.org>
1595
1596         REGRESSION(r99369): File input button doesn't highlight when pressed
1597         https://bugs.webkit.org/show_bug.cgi?id=79385
1598
1599         Reviewed by Kent Tamura.
1600
1601         Fixes an issue where the file input button doesn't highlight on mouse press.
1602
1603         Currently we always override the active state of the button with whether
1604         a dragged file is being hovered over the file input control (i.e. can the control
1605         receive a dropped file; HTMLInputElement::canReceiveDroppedFiles()).
1606         Instead, we should only override the active state of the button when the state
1607         changes for whether we can receive dropped files (e.g. during a drag) so that
1608         we honor the active state of the button when it is pressed.
1609
1610         Test: fast/forms/file/file-input-pressed-state.html
1611
1612         * rendering/RenderFileUploadControl.cpp:
1613         (WebCore::RenderFileUploadControl::RenderFileUploadControl):
1614         (WebCore::RenderFileUploadControl::updateFromElement):
1615         * rendering/RenderFileUploadControl.h:
1616         (RenderFileUploadControl):
1617
1618 2012-03-13  Dana Jansens  <danakj@chromium.org>
1619
1620         [chromium] Use CCOcclusionTracker for draw culling
1621         https://bugs.webkit.org/show_bug.cgi?id=80743
1622
1623         Reviewed by Adrienne Walker.
1624
1625         In this CL we enable the use of CCOcclusionTracker for draw-side
1626         culling. This means moving from a per-quad culling model to a
1627         per-layer model.
1628
1629         When calculating RenderPasses, we construct the set of passes,
1630         then iterate over layers in front-to-back order. We make
1631         CCQuadCuller instantiable, and pass it to the layer
1632         appendQuads() methods instead of the bare list, where it can
1633         filter quads before the end up in the list.
1634
1635         Covered by existing tests.
1636
1637         * platform/graphics/chromium/LayerRendererChromium.cpp:
1638         (WebCore::LayerRendererChromium::drawRenderPass):
1639         * platform/graphics/chromium/LayerRendererChromium.h:
1640         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
1641         (WebCore::CCCanvasLayerImpl::appendQuads):
1642         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
1643         (CCCanvasLayerImpl):
1644         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1645         (WebCore::CCLayerImpl::appendQuads):
1646         (WebCore::CCLayerImpl::appendGutterQuads):
1647         (WebCore::CCLayerImpl::appendDebugBorderQuad):
1648         * platform/graphics/chromium/cc/CCLayerImpl.h:
1649         (WebCore):
1650         (CCLayerImpl):
1651         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1652         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1653         (WebCore::CCLayerTreeHostImpl::drawLayers):
1654         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1655         (CCLayerTreeHostImpl):
1656         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
1657         (WebCore::CCPluginLayerImpl::appendQuads):
1658         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
1659         (CCPluginLayerImpl):
1660         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1661         (WebCore::CCQuadCuller::CCQuadCuller):
1662         (WebCore::CCQuadCuller::append):
1663         * platform/graphics/chromium/cc/CCQuadCuller.h:
1664         (WebCore):
1665         (CCQuadCuller):
1666         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1667         (WebCore::CCRenderPass::appendQuadsForLayer):
1668         * platform/graphics/chromium/cc/CCRenderPass.h:
1669         (WebCore):
1670         (CCQuadList):
1671         (WebCore::CCQuadList::backToFrontBegin):
1672         (WebCore::CCQuadList::backToFrontEnd):
1673         (CCRenderPass):
1674         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1675         (WebCore::CCScrollbarLayerImpl::appendQuads):
1676         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1677         (CCScrollbarLayerImpl):
1678         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1679         (WebCore::CCSolidColorLayerImpl::appendQuads):
1680         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1681         (CCSolidColorLayerImpl):
1682         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1683         (WebCore::CCTiledLayerImpl::appendQuads):
1684         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1685         (CCTiledLayerImpl):
1686         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1687         (WebCore::CCVideoLayerImpl::appendQuads):
1688         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1689         (CCVideoLayerImpl):
1690
1691 2012-03-13  Adam Barth  <abarth@webkit.org> && Benjamin Poulain  <bpoulain@apple.com>
1692
1693         Always enable ENABLE(CLIENT_BASED_GEOLOCATION)
1694         https://bugs.webkit.org/show_bug.cgi?id=78853
1695
1696         Reviewed by Adam Barth.
1697
1698         * CMakeLists.txt:
1699         * Configurations/FeatureDefines.xcconfig:
1700         * GNUmakefile.am:
1701         * GNUmakefile.list.am:
1702         * Modules/geolocation/Geolocation.cpp:
1703         (WebCore):
1704         (WebCore::createPositionError):
1705         (WebCore::Geolocation::Geolocation):
1706         (WebCore::Geolocation::stop):
1707         (WebCore::Geolocation::lastPosition):
1708         (WebCore::Geolocation::requestPermission):
1709         (WebCore::Geolocation::startUpdating):
1710         (WebCore::Geolocation::stopUpdating):
1711         * Modules/geolocation/Geolocation.h:
1712         (WebCore):
1713         (Geolocation):
1714         * Modules/geolocation/GeolocationController.cpp:
1715         * Modules/geolocation/GeolocationController.h:
1716         * Modules/geolocation/GeolocationError.h:
1717         * Modules/geolocation/GeolocationPosition.h:
1718         * Target.pri:
1719         * WebCore.exp.in:
1720         * WebCore.gypi:
1721         * WebCore.vcproj/WebCore.vcproj:
1722         * bindings/js/JSGeolocationCustom.cpp:
1723         * loader/EmptyClients.h:
1724         (EmptyChromeClient):
1725         * page/ChromeClient.h:
1726         (ChromeClient):
1727         * page/Page.cpp:
1728         (WebCore::Page::Page):
1729         * page/Page.h:
1730         (Page):
1731         * platform/GeolocationService.cpp: Removed.
1732         * platform/GeolocationService.h: Removed.
1733         * platform/mock/GeolocationClientMock.cpp:
1734         * platform/mock/GeolocationClientMock.h:
1735         * platform/mock/GeolocationServiceMock.cpp: Removed.
1736         * platform/mock/GeolocationServiceMock.h: Removed.
1737
1738 2012-03-12  Antonio Gomes  <agomes@rim.com>
1739
1740         Convert nodesFromRect tests to use Internals interface
1741         https://bugs.webkit.org/show_bug.cgi?id=80886
1742
1743         Reviewed by Ryosuke Niwa.
1744
1745         Add Internals::nodesFromRect implementation to unify
1746         the codepath for testing Document::nodesFromRect in a
1747         cross port way.
1748
1749         No new tests, since we are improving here the infra-structure
1750         for testing a specific method.
1751
1752         * testing/Internals.cpp:
1753         (WebCore::Internals::nodesFromRect):
1754         (WebCore):
1755         * testing/Internals.h:
1756         (Internals):
1757         * testing/Internals.idl:
1758
1759 2012-03-13  Philip Rogers  <pdr@google.com>
1760
1761         Fix the use of stale text fragments
1762         https://bugs.webkit.org/show_bug.cgi?id=80729
1763
1764         Reviewed by Nikolas Zimmermann.
1765
1766         Previously, we were allowing SVGTextFragments to get out of sync with the
1767         actual text in RenderSVGInlineTextBox. This patch reuses the dirty line
1768         box code in RenderText::setTextWithOffset to force
1769         clearTextFragments() when setTextWithOffset is called, preventing the use
1770         of stale SVGTextFragments.
1771
1772         Test: svg/custom/delete-text-crash.html
1773
1774         * rendering/InlineBox.h:
1775         (InlineBox):
1776         * rendering/svg/SVGInlineTextBox.cpp:
1777         (WebCore::SVGInlineTextBox::dirtyLineBoxes):
1778         (WebCore):
1779         * rendering/svg/SVGInlineTextBox.h:
1780         (SVGInlineTextBox):
1781
1782 2012-03-13  Nikolas Zimmermann  <nzimmermann@rim.com>
1783
1784         SVG Animations update baseVal instead of animVal
1785         https://bugs.webkit.org/show_bug.cgi?id=12437
1786
1787         Reviewed by Dirk Schulze.
1788
1789         Blind fix for some GC related assertions firing on v8.
1790
1791         Assure that animationStarted/animationEnded calls are happening
1792         on the same SVGAnimatedProperty. Always call animationEnded(),
1793         even if we shouldn't do anything for the target element, as its
1794         destructed, as we still have to reset m_isAnimating.
1795
1796         * svg/SVGAnimateElement.cpp:
1797         (WebCore::SVGAnimateElement::SVGAnimateElement):
1798         (WebCore::SVGAnimateElement::resetToBaseValue):
1799         (WebCore::SVGAnimateElement::targetElementWillChange):
1800         * svg/SVGAnimateElement.h:
1801         (SVGAnimateElement):
1802         * svg/properties/SVGAnimatedPropertyTearOff.h:
1803         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
1804
1805 2012-03-13  Mark Pilgrim  <pilgrim@chromium.org>
1806
1807         Move DirectoryEntry and DirectoryReader to new Modules/filesystem/ directory
1808         https://bugs.webkit.org/show_bug.cgi?id=80625
1809
1810         Reviewed by Adam Barth.
1811
1812         No new tests, all existing tests pass.
1813
1814         * CMakeLists.txt:
1815         * DerivedSources.make:
1816         * DerivedSources.pri:
1817         * GNUmakefile.am:
1818         * GNUmakefile.list.am:
1819         * Modules/filesystem: Added.
1820         * Modules/filesystem/DirectoryEntry.cpp: Copied from Source/WebCore/fileapi/DirectoryEntry.cpp.
1821         * Modules/filesystem/DirectoryEntry.h: Copied from Source/WebCore/fileapi/DirectoryEntry.h.
1822         * Modules/filesystem/DirectoryEntry.idl: Copied from Source/WebCore/fileapi/DirectoryEntry.idl.
1823         * Modules/filesystem/DirectoryEntrySync.cpp: Copied from Source/WebCore/fileapi/DirectoryEntrySync.cpp.
1824         * Modules/filesystem/DirectoryEntrySync.h: Copied from Source/WebCore/fileapi/DirectoryEntrySync.h.
1825         * Modules/filesystem/DirectoryEntrySync.idl: Copied from Source/WebCore/fileapi/DirectoryEntrySync.idl.
1826         * Modules/filesystem/DirectoryReader.cpp: Copied from Source/WebCore/fileapi/DirectoryReader.cpp.
1827         * Modules/filesystem/DirectoryReader.h: Copied from Source/WebCore/fileapi/DirectoryReader.h.
1828         * Modules/filesystem/DirectoryReader.idl: Copied from Source/WebCore/fileapi/DirectoryReader.idl.
1829         * Modules/filesystem/DirectoryReaderBase.h: Copied from Source/WebCore/fileapi/DirectoryReaderBase.h.
1830         * Modules/filesystem/DirectoryReaderSync.cpp: Copied from Source/WebCore/fileapi/DirectoryReaderSync.cpp.
1831         * Modules/filesystem/DirectoryReaderSync.h: Copied from Source/WebCore/fileapi/DirectoryReaderSync.h.
1832         * Modules/filesystem/DirectoryReaderSync.idl: Copied from Source/WebCore/fileapi/DirectoryReaderSync.idl.
1833         * Target.pri:
1834         * WebCore.gyp/WebCore.gyp:
1835         * WebCore.gypi:
1836         * WebCore.pri:
1837         * WebCore.vcproj/WebCore.vcproj:
1838         * WebCore.xcodeproj/project.pbxproj:
1839         * fileapi/DirectoryEntry.cpp: Removed.
1840         * fileapi/DirectoryEntry.h: Removed.
1841         * fileapi/DirectoryEntry.idl: Removed.
1842         * fileapi/DirectoryEntrySync.cpp: Removed.
1843         * fileapi/DirectoryEntrySync.h: Removed.
1844         * fileapi/DirectoryEntrySync.idl: Removed.
1845         * fileapi/DirectoryReader.cpp: Removed.
1846         * fileapi/DirectoryReader.h: Removed.
1847         * fileapi/DirectoryReader.idl: Removed.
1848         * fileapi/DirectoryReaderBase.h: Removed.
1849         * fileapi/DirectoryReaderSync.cpp: Removed.
1850         * fileapi/DirectoryReaderSync.h: Removed.
1851         * fileapi/DirectoryReaderSync.idl: Removed.
1852
1853 2012-03-13  Igor Oliveira  <igor.o@sisa.samsung.com>
1854
1855         animation-iteration-count does not handle floating point values correctly.
1856         https://bugs.webkit.org/show_bug.cgi?id=69531
1857
1858         Implements support for non-integers animation-iteration-count numbers.
1859         Non-integer numbers will cause the animation to end part-way through a cycle.
1860
1861         Reviewed by Dean Jackson.
1862
1863         Tests: animations/fill-mode-iteration-count-non-integer.html
1864                animations/keyframes-iteration-count-non-integer.html
1865
1866         * css/CSSComputedStyleDeclaration.cpp:
1867         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1868         * css/CSSParser.cpp:
1869         (WebCore::CSSParser::parseAnimationIterationCount):
1870         * css/CSSStyleApplyProperty.cpp:
1871         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1872         * css/CSSStyleSelector.cpp:
1873         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1874         * page/animation/AnimationBase.cpp:
1875         (WebCore::AnimationBase::fractionalTime):
1876         (WebCore::AnimationBase::progress):
1877         * page/animation/CompositeAnimation.cpp:
1878         (WebCore::CompositeAnimation::pauseAnimationAtTime):
1879         * platform/animation/Animation.h:
1880         (WebCore::Animation::iterationCount):
1881         (WebCore::Animation::setIterationCount):
1882         (Animation):
1883         (WebCore::Animation::initialAnimationIterationCount):
1884
1885 2012-03-13  Tommy Widenflycht  <tommyw@google.com>
1886
1887         MediaStream API: Rename PeerConnection to DeprecatedPeerConnection
1888         https://bugs.webkit.org/show_bug.cgi?id=80692
1889
1890         Reviewed by Adam Barth.
1891
1892         First patch in a series of patches to change the PeerConnection from ROAP to JSEP,
1893         see bug 80589 for more information.
1894
1895         Patch covered by modified existing tests.
1896
1897         * GNUmakefile.list.am:
1898         * Modules/mediastream/DOMWindowMediaStream.idl:
1899         * Modules/mediastream/DeprecatedPeerConnection.cpp: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.cpp.
1900         (WebCore):
1901         (WebCore::DeprecatedPeerConnection::create):
1902         (WebCore::DeprecatedPeerConnection::DeprecatedPeerConnection):
1903         (WebCore::DeprecatedPeerConnection::~DeprecatedPeerConnection):
1904         (WebCore::DeprecatedPeerConnection::processSignalingMessage):
1905         (WebCore::DeprecatedPeerConnection::readyState):
1906         (WebCore::DeprecatedPeerConnection::send):
1907         (WebCore::DeprecatedPeerConnection::addStream):
1908         (WebCore::DeprecatedPeerConnection::removeStream):
1909         (WebCore::DeprecatedPeerConnection::localStreams):
1910         (WebCore::DeprecatedPeerConnection::remoteStreams):
1911         (WebCore::DeprecatedPeerConnection::close):
1912         (WebCore::DeprecatedPeerConnection::didCompleteICEProcessing):
1913         (WebCore::DeprecatedPeerConnection::didGenerateSDP):
1914         (WebCore::DeprecatedPeerConnection::didReceiveDataStreamMessage):
1915         (WebCore::DeprecatedPeerConnection::didAddRemoteStream):
1916         (WebCore::DeprecatedPeerConnection::didRemoveRemoteStream):
1917         (WebCore::DeprecatedPeerConnection::interfaceName):
1918         (WebCore::DeprecatedPeerConnection::scriptExecutionContext):
1919         (WebCore::DeprecatedPeerConnection::stop):
1920         (WebCore::DeprecatedPeerConnection::eventTargetData):
1921         (WebCore::DeprecatedPeerConnection::ensureEventTargetData):
1922         (WebCore::DeprecatedPeerConnection::scheduleInitialNegotiation):
1923         (WebCore::DeprecatedPeerConnection::initialNegotiationTimerFired):
1924         (WebCore::DeprecatedPeerConnection::ensureStreamChangeScheduled):
1925         (WebCore::DeprecatedPeerConnection::streamChangeTimerFired):
1926         (WebCore::DeprecatedPeerConnection::scheduleReadyStateChange):
1927         (WebCore::DeprecatedPeerConnection::readyStateChangeTimerFired):
1928         (WebCore::DeprecatedPeerConnection::changeReadyState):
1929         * Modules/mediastream/DeprecatedPeerConnection.h: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.h.
1930         (WebCore):
1931         (DeprecatedPeerConnection):
1932         (WebCore::DeprecatedPeerConnection::didChangeState):
1933         (WebCore::DeprecatedPeerConnection::refEventTarget):
1934         (WebCore::DeprecatedPeerConnection::derefEventTarget):
1935         * Modules/mediastream/DeprecatedPeerConnection.idl: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.idl.
1936         * Modules/mediastream/SignalingCallback.h:
1937         (WebCore):
1938         (SignalingCallback):
1939         * Modules/mediastream/SignalingCallback.idl:
1940         * WebCore.gypi:
1941         * bindings/generic/RuntimeEnabledFeatures.h:
1942         (WebCore::RuntimeEnabledFeatures::webkitDeprecatedPeerConnectionEnabled):
1943         * bindings/js/JSDeprecatedPeerConnectionCustom.cpp: Renamed from Source/WebCore/bindings/js/JSPeerConnectionCustom.cpp.
1944         (WebCore):
1945         (WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):
1946         * dom/EventTarget.h:
1947         (WebCore):
1948         * dom/EventTargetFactory.in:
1949         * platform/mediastream/DeprecatedPeerConnectionHandler.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandler.h.
1950         (WebCore):
1951         (DeprecatedPeerConnectionHandler):
1952         * platform/mediastream/DeprecatedPeerConnectionHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h.
1953         (WebCore):
1954         (DeprecatedPeerConnectionHandlerClient):
1955         (WebCore::DeprecatedPeerConnectionHandlerClient::~DeprecatedPeerConnectionHandlerClient):
1956         * platform/mediastream/gstreamer/DeprecatedPeerConnectionHandler.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/PeerConnectionHandler.cpp.
1957         (WebCore):
1958         (WebCore::DeprecatedPeerConnectionHandler::create):
1959         (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
1960         (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
1961         (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
1962         (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
1963         (WebCore::DeprecatedPeerConnectionHandler::processSDP):
1964         (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
1965         (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
1966         (WebCore::DeprecatedPeerConnectionHandler::stop):
1967
1968 2012-03-13  Pavel Feldman  <pfeldman@chromium.org>
1969
1970         Web Inspector: front-end compilation was broken while supporting large arrays.
1971         https://bugs.webkit.org/show_bug.cgi?id=81013
1972
1973         Reviewed by Vsevolod Vlasov.
1974
1975         * inspector/front-end/ExtensionPanel.js:
1976         * inspector/front-end/ObjectPropertiesSection.js:
1977         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.buildObjectFragment):
1978         * inspector/front-end/RemoteObject.js:
1979
1980 2012-03-13  Tony Chang  <tony@chromium.org>
1981
1982         flexbox's computePreferredLogicalWidth needs to take multiline into account
1983         https://bugs.webkit.org/show_bug.cgi?id=80931
1984
1985         Reviewed by Ojan Vafai.
1986
1987         Tests: css3/flexbox/multiline-shrink-to-fit-expected.html
1988                css3/flexbox/multiline-shrink-to-fit.html
1989
1990         * rendering/RenderFlexibleBox.cpp:
1991         (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): Set min/max preferredLogicalWidth based on always breaking or never breaking.
1992         (WebCore::RenderFlexibleBox::computeNextFlexLine): Add a FIXME.
1993         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Don't change the width after computePreferredWidth has been called.
1994
1995 2012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
1996
1997         Unreviewed, rolling out r110469.
1998         http://trac.webkit.org/changeset/110469
1999         https://bugs.webkit.org/show_bug.cgi?id=81010
2000
2001         This patch still appears to crash (Requested by abarth on
2002         #webkit).
2003
2004         * page/FrameView.cpp:
2005         (WebCore::FrameView::FrameView):
2006         (WebCore::FrameView::reset):
2007         (WebCore::FrameView::repaintContentRectangle):
2008         (WebCore):
2009         (WebCore::FrameView::endDeferredRepaints):
2010         (WebCore::FrameView::doDeferredRepaints):
2011         (WebCore::FrameView::deferredRepaintTimerFired):
2012         * page/FrameView.h:
2013         (FrameView):
2014         * rendering/RenderView.cpp:
2015         (WebCore::RenderView::shouldRepaint):
2016         * svg/graphics/SVGImage.cpp:
2017         (WebCore::SVGImage::drawSVGToImageBuffer):
2018         (WebCore::SVGImage::draw):
2019         * svg/graphics/SVGImage.h:
2020         * svg/graphics/SVGImageCache.cpp:
2021         (WebCore::SVGImageCache::imageContentChanged):
2022         (WebCore::SVGImageCache::redrawTimerFired):
2023         * svg/graphics/SVGImageCache.h:
2024         (SVGImageCache):
2025
2026 2012-03-13  Max Vujovic  <mvujovic@adobe.com>
2027
2028         Add a method to window.internals to enable testing of inspector highlight rects
2029         https://bugs.webkit.org/show_bug.cgi?id=80338
2030
2031         Reviewed by Pavel Feldman.
2032
2033         Add window.internals.inspectorHighlightRects, a method which makes it possible to test the
2034         positions and sizes of inspector highlight rects.
2035
2036         Test: inspector/elements/highlight-node.html
2037
2038         * WebCore.exp.in: Export symbols.
2039         * testing/Internals.cpp:
2040         (WebCore::Internals::inspectorHighlightRects): Call InspectorController::getHighlight and
2041         return the highlight's quads as a ClientRectList.
2042         (WebCore):
2043         * testing/Internals.h:
2044         (WebCore):
2045         (Internals):
2046         * testing/Internals.idl:
2047
2048             Add inspectorHighlightRects to the window.internals interface.
2049
2050 2012-03-13  Konrad Piascik  <kpiascik@rim.com>
2051
2052         [BlackBerry] Remove sublayers before clamping just in case the layer already exists
2053         https://bugs.webkit.org/show_bug.cgi?id=80989
2054
2055         Reviewed by Antonio Gomes.
2056
2057         Discovered when trying to add a highlight sublayer for web inspector.  Since that layer
2058         may already exist in the tree we need to see if it will be pruned before we clamp on the
2059         size.
2060
2061         This was manually tested during the writing of another patch to add web inspector highlights
2062         to accelrated compositing.
2063
2064         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2065         (WebCore::LayerWebKitThread::insertSublayer):
2066
2067 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
2068
2069         Web Inspector: Add snippets model.
2070         https://bugs.webkit.org/show_bug.cgi?id=80863
2071
2072         Reviewed by Yury Semikhatsky.
2073
2074         Test: inspector/debugger/snippets-model.html
2075
2076         * WebCore.gypi:
2077         * WebCore.vcproj/WebCore.vcproj:
2078         * inspector/compile-front-end.py:
2079         * inspector/front-end/Settings.js:
2080         (WebInspector.ExperimentsSettings):
2081         * inspector/front-end/SnippetsModel.js: Added.
2082         * inspector/front-end/WebKit.qrc:
2083         * inspector/front-end/inspector.html:
2084         * inspector/front-end/inspector.js:
2085
2086 2012-03-13  'Pavel Feldman'  <pfeldman@chromium.org>
2087
2088         Not reviewed: chromium build fix.
2089
2090         * history/CachedFrame.cpp:
2091
2092 2012-03-13  Peter Rybin  <peter.rybin@gmail.com>
2093
2094         Web Inspector: CodeGeneratorInspector.py: refactor copy-paste getter methods
2095         https://bugs.webkit.org/show_bug.cgi?id=80923
2096
2097         Reviewed by Yury Semikhatsky.
2098
2099         Several methods are combined in one using C++ templates.
2100
2101         * inspector/CodeGeneratorInspector.py:
2102
2103 2012-03-13  Rob Buis  <rbuis@rim.com>
2104
2105         [BlackBerry] Fix cast-align warning in QuotesData.cpp
2106         https://bugs.webkit.org/show_bug.cgi?id=80601
2107
2108         Reviewed by Nikolas Zimmermann.
2109
2110         Fix warning by adding variable of correct return type.
2111
2112         * rendering/style/QuotesData.cpp:
2113         (WebCore::QuotesData::create):
2114
2115 2012-03-12  Brady Eidson  <beidson@apple.com>
2116
2117         <rdar://problem/7908830> and https://bugs.webkit.org/show_bug.cgi?id=34679
2118         Location and other objects are dysfunctional after a document gets restored from page cache
2119
2120         Reviewed by Adam Barth.
2121
2122         Test: fast/loader/window-properties-restored-from-page-cache.html
2123
2124         Give DOMWindowProperties the ability to reconnect to their Frame:
2125         * page/DOMWindowProperty.cpp:
2126         (WebCore::DOMWindowProperty::reconnectFrame):
2127         * page/DOMWindowProperty.h:
2128         (DOMWindowProperty):
2129
2130         Let ApplicationCache do some extra work when reconnecting:
2131         * loader/appcache/DOMApplicationCache.cpp:
2132         (WebCore::DOMApplicationCache::reconnectFrame):
2133         (WebCore):
2134         * loader/appcache/DOMApplicationCache.h:
2135         (DOMApplicationCache):
2136
2137         Let IndexDB do some extra work when reconnecting:
2138         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
2139         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
2140         (WebCore::DOMWindowIndexedDatabase::reconnectFrame):
2141         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
2142         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
2143         (DOMWindowIndexedDatabase):
2144
2145         Tell the DOMWindow to suspend to the page cache:
2146         * history/CachedFrame.cpp:
2147         (WebCore::CachedFrame::CachedFrame):
2148
2149         Tell the DOMWindow to resume from the page cache:
2150         * loader/FrameLoader.cpp:
2151         (WebCore::FrameLoader::open):
2152
2153         * page/DOMWindow.cpp:
2154         (WebCore::DOMWindow::DOMWindow):
2155         (WebCore::DOMWindow::~DOMWindow): Call clearDOMWindowProperties directly instead of clear()
2156         (WebCore::DOMWindow::frameDestroyed): Ditto.
2157         (WebCore::DOMWindow::clear): Only clear if the DOMWindow is not suspended for the page cache.
2158         (WebCore::DOMWindow::suspendForPageCache): Disconnect properties and set the page cache flag.
2159         (WebCore::DOMWindow::resumeFromPageCache): Reconnect properties and revert the page cache flag.
2160         (WebCore::DOMWindow::disconnectDOMWindowProperties): Only disconnect the registered properties.
2161         (WebCore::DOMWindow::reconnectDOMWindowProperties):
2162         (WebCore::DOMWindow::clearDOMWindowProperties): Disconnect the registered properties then clear them out.
2163
2164         For all of the following, if the DOMWindow is not displayed in a frame (i.e., it is suspended), do nothing:
2165         (WebCore::DOMWindow::screen):
2166         (WebCore::DOMWindow::history):
2167         (WebCore::DOMWindow::crypto):
2168         (WebCore::DOMWindow::locationbar):
2169         (WebCore::DOMWindow::menubar):
2170         (WebCore::DOMWindow::personalbar):
2171         (WebCore::DOMWindow::scrollbars):
2172         (WebCore::DOMWindow::statusbar):
2173         (WebCore::DOMWindow::toolbar):
2174         (WebCore::DOMWindow::console):
2175         (WebCore::DOMWindow::applicationCache):
2176         (WebCore::DOMWindow::navigator):
2177         (WebCore::DOMWindow::performance):
2178         (WebCore::DOMWindow::location):
2179         (WebCore::DOMWindow::sessionStorage):
2180         (WebCore::DOMWindow::localStorage):
2181         (WebCore::DOMWindow::webkitNotifications):
2182         (WebCore::DOMWindow::postMessageTimerFired):
2183         (WebCore::DOMWindow::getSelection):
2184         (WebCore::DOMWindow::styleMedia):
2185         (WebCore::DOMWindow::webkitStorageInfo):
2186         * page/DOMWindow.h:
2187
2188 2012-03-13  Dana Jansens  <danakj@chromium.org>
2189
2190         [chromium] Use projectQuad to apply inverse mapRect
2191         https://bugs.webkit.org/show_bug.cgi?id=80741
2192
2193         Reviewed by Adrienne Walker.
2194
2195         Unit test: CCOcclusionTrackerTest3dTransform
2196                    CCOcclusionTrackerTestPerspectiveTransform
2197                    CCOcclusionTrackerTestPerspectiveTransformBehindCamera
2198
2199         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2200         (WebCore::projectQuad):
2201         (WebCore):
2202         (WebCore::computeUnoccludedContentRect):
2203
2204 2012-03-13  Gavin Peters  <gavinp@chromium.org>
2205
2206         New PageCache histogram which counts failures ignoring Settings.
2207         https://bugs.webkit.org/show_bug.cgi?id=80864
2208
2209         Reviewed by Brady Eidson.
2210
2211         Chrome has a command line switch to turn on the page cache.
2212         Currently it doesn't work, but it can cause the PageCache reasons
2213         for failure count to read lower than it should.  Add a new
2214         histogram to report the corrected value.
2215
2216         * history/PageCache.cpp:
2217         (WebCore::logCanCachePageDecision):
2218
2219 2012-03-13  George Staikos  <staikos@webkit.org>
2220
2221         Fix signed/unsigned mismatch compiler warnings.
2222         https://bugs.webkit.org/show_bug.cgi?id=80790
2223
2224         Reviewed by Alexey Proskuryakov.
2225
2226         * loader/icon/IconDatabase.cpp:
2227         (WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
2228         * platform/network/MIMESniffing.cpp:
2229
2230 2012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
2231
2232         Unreviewed, rolling out r110510.
2233         http://trac.webkit.org/changeset/110510
2234         https://bugs.webkit.org/show_bug.cgi?id=80987
2235
2236         depends on chromium r 125700, which isn't rolled into webkit
2237         yet :-/ (Requested by thakis_ on #webkit).
2238
2239         * WebCore.gyp/mac/adjust_visibility.sh:
2240
2241 2012-03-13  Gavin Peters  <gavinp@chromium.org>
2242
2243         Make ApplicationCacheHost::canCacheInPageCache() non-const.
2244         https://bugs.webkit.org/show_bug.cgi?id=80904
2245
2246         Reviewed by Alexey Proskuryakov.
2247
2248         A const pointer to a large object like ApplicationCacheHost is not our standard
2249         practice; so remove this (implicit) one.  See also https://bugs.webkit.org/show_bug.cgi?id=80898
2250
2251         * loader/appcache/ApplicationCacheHost.cpp:
2252         (WebCore::ApplicationCacheHost::canCacheInPageCache):
2253         * loader/appcache/ApplicationCacheHost.h:
2254         (ApplicationCacheHost):
2255
2256 2012-03-13  Stephen Chenney  <schenney@chromium.org>
2257
2258         Crash in WebCore::GraphicsContext::paintingDisabled
2259         https://bugs.webkit.org/show_bug.cgi?id=80669
2260
2261         Reviewed by Nikolas Zimmermann.
2262
2263         The SVGImageBufferTools::clipToImageBuffer method deletes the clip
2264         image when it thinks it is not needed. However, there are cases when
2265         it is in fact still needed, particularly when the clip buffer is
2266         coming from higher up in the stack where it may be needed again.
2267
2268         So this patch adds a flag to only allow deletion of the image buffer
2269         if it was created at the most recent call site.
2270
2271         Tests: svg/custom/circular-clip-path-references-crash-expected.svg
2272                svg/custom/circular-clip-path-references-crash.svg
2273
2274         * rendering/svg/RenderSVGResourceClipper.cpp:
2275         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
2276         * rendering/svg/RenderSVGResourceGradient.cpp:
2277         (WebCore::clipToTextMask):
2278         * rendering/svg/RenderSVGResourceMasker.cpp:
2279         (WebCore::RenderSVGResourceMasker::applyResource):
2280         * rendering/svg/SVGImageBufferTools.cpp:
2281         (WebCore::SVGImageBufferTools::clipToImageBuffer):
2282         * rendering/svg/SVGImageBufferTools.h:
2283         (SVGImageBufferTools):
2284
2285 2012-03-13  Gavin Peters  <gavinp@chromium.org>
2286
2287         Fix an enumeration name in ReasonsFrameCannotBeInPageCache.
2288         https://bugs.webkit.org/show_bug.cgi?id=80849
2289
2290         Reviewed by Brady Eidson.
2291
2292         It seems that somebody goofed, and named one of the
2293         ReasonsFrameCannotBeInPageCache antonymically.
2294
2295         * history/PageCache.cpp:
2296         (WebCore::logCanCacheFrameDecision):
2297
2298 2012-03-12  Kinuko Yasuda  <kinuko@chromium.org>
2299
2300         File upload control should use File.name() rather than File.path() to show chosen filenames
2301         https://bugs.webkit.org/show_bug.cgi?id=80970
2302
2303         In some rare cases (e.g. files from FileSystem API or files created
2304         using the newly added WebKit API) File.name has different displayName
2305         from the basename of file.path, and in the file uploader controller we
2306         should use File.name rather than File.path.
2307
2308         Reviewed by Kent Tamura.
2309
2310         No new tests: existing tests should pass as this should not change
2311         behavior in regular use cases.  (New behavior where File.name differs
2312         from File.path can be only tested in chromeos environment, therefore
2313         not adding new tests for that)
2314
2315         * platform/gtk/RenderThemeGtk.cpp:
2316         (WebCore::RenderThemeGtk::fileListNameForWidth): Updated to handle FileList.
2317         * platform/gtk/RenderThemeGtk.h:
2318         * platform/qt/RenderThemeQt.cpp:
2319         (WebCore::RenderThemeQt::fileListNameForWidth): Updated to handle FileList.
2320         * platform/qt/RenderThemeQt.h:
2321         * rendering/RenderFileUploadControl.cpp:
2322         (WebCore::RenderFileUploadControl::fileTextValue): Changed to pass FileList rather than FileList->paths().
2323         * rendering/RenderTheme.cpp:
2324         (WebCore::RenderTheme::fileListNameForWidth): Updated to handle FileList and use File.name for displaying the file name.
2325         * rendering/RenderTheme.h:
2326         * rendering/RenderThemeMac.h:
2327         * rendering/RenderThemeMac.mm:
2328         (WebCore::RenderThemeMac::fileListNameForWidth): Updated to handle FileList.
2329
2330 2012-03-13  Kinuko Yasuda  <kinuko@chromium.org>
2331
2332         Allow WebFileChooser to return extra file info (like displayName) in addition to mere file paths
2333         https://bugs.webkit.org/show_bug.cgi?id=80719
2334
2335         Reviewed by Kent Tamura.
2336
2337         No new tests: this change itself shouldn't change existing behavior.
2338
2339         * fileapi/File.cpp:
2340         (WebCore::createBlobDataForFileWithName): Renamed from createBlobDataForFileSystemFile.
2341         * fileapi/File.h:
2342         * html/FileInputType.cpp:
2343         (WebCore::FileInputType::saveFormControlState): Updated to handle File.name.
2344         (WebCore::FileInputType::restoreFormControlState): Ditto.
2345         (WebCore::FileInputType::setFileList): Changed the signature to take
2346         FileChooserFileInfo.
2347         (WebCore::FileInputType::filesChosen): Ditto.
2348         (WebCore::FileInputType::receiveDroppedFiles):
2349         * html/FileInputType.h:
2350         (FileInputType):
2351         * platform/FileChooser.cpp:
2352         (WebCore::FileChooser::chooseFiles): Added an overloaded method that
2353         takes FileChooserFileInfo.
2354         (WebCore):
2355         * platform/FileChooser.h:
2356         (WebCore::FileChooserFileInfo::FileChooserFileInfo): Added.
2357         * platform/MIMETypeRegistry.cpp:
2358         (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Removed surrouonding ifdefs as this function is now used even if FILE_SYSTEM is not enabled.
2359         * platform/MIMETypeRegistry.h:
2360         (MIMETypeRegistry):
2361
2362 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
2363
2364         Unreviewed inspector compilation module name fix after r110550.
2365
2366         * inspector/compile-front-end.py:
2367
2368 2012-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
2369
2370         Web Inspector: Changes to the list of scripts for front-end compilation should not require update of number of scripts in module.
2371         https://bugs.webkit.org/show_bug.cgi?id=80872
2372
2373         Reviewed by Pavel Feldman.
2374
2375         * inspector/compile-front-end.py: Added.
2376         * inspector/compile-front-end.sh:
2377
2378 2012-03-12  Pavel Podivilov  <podivilov@chromium.org>
2379
2380         Web Inspector: move ResourceScriptMapping to a separate file.
2381         https://bugs.webkit.org/show_bug.cgi?id=80859
2382
2383         Reviewed by Vsevolod Vlasov.
2384
2385         * WebCore.gypi:
2386         * WebCore.vcproj/WebCore.vcproj:
2387         * inspector/compile-front-end.sh:
2388         * inspector/front-end/ResourceScriptMapping.js: Copied from Source/WebCore/inspector/front-end/ScriptMapping.js.
2389         (WebInspector.ResourceScriptMapping):
2390         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
2391         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
2392         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeListChanged):
2393         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeListChanged):
2394         (WebInspector.ResourceScriptMapping.prototype._bindScriptToRawSourceCode):
2395         (WebInspector.ResourceScriptMapping.prototype.setFormatSource):
2396         (WebInspector.ResourceScriptMapping.prototype.forceUpdateSourceMapping):
2397         (WebInspector.ResourceScriptMapping.prototype.reset):
2398         * inspector/front-end/ScriptMapping.js:
2399         * inspector/front-end/WebKit.qrc:
2400         * inspector/front-end/inspector.html:
2401
2402 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2403
2404         Rename OptionsObject to Dictionary
2405         https://bugs.webkit.org/show_bug.cgi?id=80802
2406
2407         Reviewed by Adam Barth.
2408
2409         For clarification, rename OptionsObject.{h,cpp} to Dictionary.{h,cpp}.
2410         This patch just renames and sorts alphabetically.
2411
2412         No tests. No change in behavior.
2413
2414         * GNUmakefile.list.am:
2415         * Modules/indexeddb/IDBDatabase.cpp:
2416         (WebCore::IDBDatabase::createObjectStore):
2417         * Modules/indexeddb/IDBDatabase.h:
2418         (WebCore::IDBDatabase::createObjectStore):
2419         (IDBDatabase):
2420         * Modules/indexeddb/IDBDatabase.idl:
2421         * Modules/indexeddb/IDBKeyRange.h:
2422         * Modules/indexeddb/IDBObjectStore.cpp:
2423         (WebCore::IDBObjectStore::createIndex):
2424         * Modules/indexeddb/IDBObjectStore.h:
2425         (WebCore::IDBObjectStore::createIndex):
2426         (IDBObjectStore):
2427         * Modules/indexeddb/IDBObjectStore.idl:
2428         * Target.pri:
2429         * UseV8.cmake:
2430         * WebCore.gypi:
2431         * WebCore.vcproj/WebCore.vcproj:
2432         * bindings/js/Dictionary.h: Renamed from Source/WebCore/bindings/js/OptionsObject.h.
2433         (WebCore):
2434         (Dictionary):
2435         (WebCore::Dictionary::Dictionary):
2436         (WebCore::Dictionary::isObject):
2437         (WebCore::Dictionary::isUndefinedOrNull):
2438         (WebCore::Dictionary::get):
2439         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
2440         * bindings/js/IDBBindingUtilities.cpp:
2441         (WebCore::createDictionaryFromValue):
2442         * bindings/js/IDBBindingUtilities.h:
2443         (WebCore):
2444         * bindings/scripts/CodeGeneratorJS.pm:
2445         (JSValueToNative):
2446         * bindings/scripts/CodeGeneratorV8.pm:
2447         (GenerateHeader):
2448         (GenerateParametersCheck):
2449         (GenerateEventConstructorCallback):
2450         (GetNativeType):
2451         (JSValueToNative):
2452         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2453         (WebDOMTestObj::optionsObject):
2454         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2455         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2456         (webkit_dom_test_obj_options_object):
2457         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2458         * bindings/scripts/test/JS/JSTestObj.cpp:
2459         (WebCore::jsTestObjPrototypeFunctionIdbKey):
2460         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
2461         * bindings/scripts/test/ObjC/DOMTestObj.h:
2462         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2463         (-[DOMTestObj optionsObject:ooo:]):
2464         * bindings/scripts/test/TestObj.idl:
2465         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2466         (WebCore::V8TestEventConstructor::constructorCallback):
2467         (WebCore::fillTestEventConstructorInit):
2468         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2469         (WebCore):
2470         * bindings/scripts/test/V8/V8TestObj.cpp:
2471         (WebCore::TestObjInternal::optionsObjectCallback):
2472         * bindings/v8/Dictionary.cpp: Renamed from Source/WebCore/bindings/v8/OptionsObject.cpp.
2473         (WebCore):
2474         (WebCore::Dictionary::Dictionary):
2475         (WebCore::Dictionary::~Dictionary):
2476         (WebCore::Dictionary::operator=):
2477         (WebCore::Dictionary::isObject):
2478         (WebCore::Dictionary::isUndefinedOrNull):
2479         (WebCore::Dictionary::getKey):
2480         (WebCore::Dictionary::get):
2481         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
2482         * bindings/v8/Dictionary.h: Renamed from Source/WebCore/bindings/v8/OptionsObject.h.
2483         (WebCore):
2484         (Dictionary):
2485         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
2486         (WebCore::V8WebKitMutationObserver::observeCallback):
2487
2488 2012-03-12  Nikolas Zimmermann  <nzimmermann@rim.com>
2489
2490         SVG Animations update baseVal instead of animVal
2491         https://bugs.webkit.org/show_bug.cgi?id=12437
2492
2493         Reviewed by Dirk Schulze.
2494
2495         Begin implementing the last missing core piece of the SVG DOM: proper animVal support.
2496         Most SVG DOM interfaces exposing eg. lengths use SVGAnimatedLength. eg. from SVGRectElement:
2497         "readonly attribute SVGAnimatedLength x;" SVGAnimatedXXX contains following methods:
2498         "readonly attribute SVGLength baseVal; readonly attribute SVGLength animVal;"
2499         From SVG DOM perspective, animVal and baseVal are two distinctive objects, animVal != baseVal.
2500         Its underlying value is the same though, if no animation is running on that attribute.
2501
2502         As soon as a SMIL animation starts animating an SVGAnimated* target attribute, its
2503         baseVal and animVal may begin to differ. The animVal always reflect the current animated
2504         value (including all effects of additive/accumulated animations) which is shown on screen
2505         when eg animating the width of a <rect>. The baseVal is is equal to the underlying XML
2506         property value / SVG DOM value, but may be influenced through dynamic changes.
2507         (Consider changing rect1.width.baseVal.value while 'width' is animated)
2508
2509         During the last year we prepared our animation code to turn on animVal support.
2510         This patch adds the last missing pieces to turn on animVal support for the SVGLength.
2511         SVGLengthList and all other types will follow, one after the other.
2512
2513         I've decided to write an exhaustive ChangeLog, as this as the base for any future
2514         work in this area - hopefully making this more reviewable.
2515
2516         Tests: svg/animations/additive-from-to-width-animation.html
2517                svg/animations/additive-values-width-animation.html
2518                svg/animations/change-baseVal-while-animating-fill-freeze-2.html
2519                svg/animations/change-baseVal-while-animating-fill-freeze.html
2520                svg/animations/change-baseVal-while-animating-fill-remove-2.html
2521                svg/animations/change-baseVal-while-animating-fill-remove.html
2522                svg/animations/change-target-while-animating-SVG-property.html
2523                svg/animations/multiple-animations-fill-freeze.html
2524                svg/animations/remove-animation-element-while-animation-is-running.html
2525                svg/repaint/repainting-after-animation-element-removal.svg
2526
2527         * svg/SVGAnimateElement.cpp: Remove unnecessary std namespace inclusion.
2528         (WebCore::SVGAnimateElement::SVGAnimateElement): Remove now-obsolete m_aboutToStopAnimation.
2529         (WebCore::SVGAnimateElement::calculateAnimatedValue): Swap assertion order, to test hasTagName() _before_ casting.
2530         (WebCore::SVGAnimateElement::resetToBaseValue):
2531             Stop relying on the cached baseValue (breaking additive="sum"+values animation) for SVG DOM primitive animations.
2532             Avoid any string roundtrips previously needed to reset the SVGAnimatedType to the base value. Just grab the
2533             currentBaseValue() from the associated SVGAnimatedProperty, which includes all dynamic changes to the baseVal
2534             either by SVG DOM or setAttribute() calls - this way we don't need to utilize the buggy cache in SMILTimeContainer,
2535             which can be removed once all SVG DOM primitive types switched to the new animVal concept.
2536
2537             NOTE: When multiple animations of the same attribute are applied to a target element, resetToBaseValue() will be called
2538             for the highest priority SVGSMILElement, on every animation step! Consider two <animate> elements, applied to a target
2539             <rect> which both animate the 'x' attribute, one from 0s to 2s, the other from 4s to 6s. The last <animate> element
2540             will reuse the SVGAnimatedType m_animatedType from the first <animate> element, and never create an own m_animatedType.
2541             When the animation starts the first time at 0s, we update the rect.x.animVals SVGLength* pointer, to point to the
2542             SVGAnimatedType of the first <animate> element, owning the m_animatedType. From that point on each call to rect.x.animVal
2543             will always return the same value as the SVGAnimatedType of the first <animate> element holds. Now after 2s the first
2544             <animate> element becomes inactive, but its m_animatedType remains alive. The bindings don't notice this change at all.
2545             Now at 4s, the second animation element gets active. It reuses the SVGAnimatedType of the first <animate> element, and
2546             applies its animation changes to that SVGAnimatedType, which is immediately reflected in the bindings w/o any additional
2547             work. It's very important for the understanding when animationStarted/animationEnded need to be called.
2548
2549         (WebCore::SVGAnimateElement::applyResultsToTarget): Remove now-obsolete m_aboutToStopAnimation logic. No need to know it at this point.
2550         (WebCore::SVGAnimateElement::targetElementWillChange):
2551             Renamed from targetElementDidChange(). This method is called from SVGSMILElement for following conditions:
2552             - animation element is destructed
2553             - animation element is removed from document
2554             - target element of animation is destructed
2555             - target element of animation is removed from document
2556             - target element of animation changes id
2557
2558             Whenever any of this happens, we need to reset the animVal. Resetting the animVal involves resetting the PropertyType* pointer,
2559             eg. SVGLength*, from the animVal property tear off, belonging to a certain SVGAnimatedProperty (eg. rect.x) to the initial
2560             value again, which is the 'm_x' of the SVGRectElement. This is needed as the SVGAnimatedType the animVal currently points to,
2561             if an animation is/was running, is destructed in targetElementWillChange(), to reset the SVGAnimateElement to the initial
2562             state before it received a target. This is the only place which destructed the m_animatedType, and thus the only place that
2563             needs to take care of resetting the animVal pointers.
2564
2565         * svg/SVGAnimatedLength.cpp:
2566         (WebCore::SVGAnimatedLengthAnimator::constructFromCopy):
2567             Add a new constructFromCopy(SVGGenericAnimatedType) function to SVGAnimatedLengthAnimator.
2568             It takes a type-unsafe SVGGenericAnimatedType - the caller has to guarantee the type matches.
2569             This is strictly enforced for the single caller of constructFromCopy, and guaranteed to be safe.
2570
2571         * svg/SVGAnimatedLength.h: Add new constructFromCopy method, which is used to avoid string-roundtrips when resetting to base values.
2572         * svg/SVGAnimatedType.cpp:
2573         (WebCore::SVGAnimatedType::supportsAnimVal): Only returns true for AnimatedLength, for now.
2574         (WebCore::SVGAnimatedType::setVariantValue): Takes a SVGGenericAnimatedType, assuming the type matches. Callers have to guarantee type-safety!
2575         * svg/SVGAnimatedType.h:
2576         (SVGAnimatedType): Add new static supportsAnimVal(AnimatedPropertyType) function.
2577         (WebCore::SVGAnimatedType::variantValue): Add a generic accessor for all animated types, called variant(). Only one place uses this.
2578         * svg/SVGAnimatedTypeAnimator.h:
2579         (WebCore::SVGAnimatedTypeAnimator::constructFromCopy):
2580             New method to construct an eg. SVGAnimatedLengthAnimator right from a SVGLength, instead of a String.
2581             In that case the SVGAnimatedType just stores a pointer to the underlying SVGLength, no copying and or other roundtrips involved.
2582
2583         * svg/SVGAnimationElement.cpp:
2584         (WebCore::SVGAnimationElement::svgAttributeChanged):
2585             Implement this instead of attributeChanged. The previous implementation reset the animation state to Inactive, causing a full
2586             rebuild, whenever any attribute changes, even though it might not be related for the animation element, eg.
2587             animate.setAttribute("stdDeviationX", "foobar"). Fix that by checking if we support the attribute (keyTimes/keySplines/etc..)
2588             , if not pass it on to SVGSMILElement (which supports begin/end/etc..) to check if it can handle that.
2589
2590         (WebCore::SVGAnimationElement::animationAttributeChanged):
2591             Called from our svgAttributeChanged, and/or from SVGSMILElement::svgAttributeChanged, whenever a _known_ attribute has changed.
2592             This sledgehammer should be used with care, instead of each time attributeChanged() is called :-)
2593
2594         (WebCore::setTargetAttributeAnimatedCSSValue):
2595             Remove support for removing properties from the override style sheet. I've added this optimization too early, we should reevaluate
2596             this once more types support animVal. It currently complexifies the logic too much, requiring setAttributeAnimatedValue to know
2597             if the animation ends (and that's not easy to figure out, at least not using started/endedActiveInterval, as I anticipated).
2598
2599         (WebCore::findMatchingAnimatedProperty):
2600             Add helper functions which retrieves a SVGAnimatedProperty* for a given SVGElement* targetElement, an attributeName, and an attribute
2601             type. eg. findMatchingAnimatedProperty(myRectElement, SVGNames::xAttr, AnimatedLength) returns the SVGAnimatedProperty which is
2602             exposed to JS, that holds: SVGProperty* baseVal, and SVGProperty* animVal. (Lazily created if they got accessed from JS.). This is
2603             used to update the animVal pointing to a new eg. SVGLength* value, once animation has started, to make rect->x() return that new
2604             SVGLength* value (internally), and to reflect the current animated value in rect.x.animVal.value from JS.
2605
2606         (WebCore::SVGAnimationElement::applyAnimatedValue): Refactored from setTargetAttributeAnimatedValue, to simplify the code.
2607         (WebCore::notifyAnimatedPropertyAboutAnimationBeginEnd):
2608             Helper function to share code betweeen animationStarted/animationEnded.
2609             It takes a SVGAnimatedProperty* and a SVGAnimatedType* which may be zero, indicating that the animation ended.
2610             It calls animationStarted/animationEnded on the given SVGAnimatedProperty, to update the animVal state.
2611             It also figures out all instances of the target element, and their SVGAnimatedProperties that may need updating.
2612
2613         (WebCore::SVGAnimationElement::animationStarted): Uses the helper above, passing on the given animatedType.
2614         (WebCore::SVGAnimationElement::animationEnded): Uses the helper above, passing 0 as animatedType.
2615         (WebCore::InstanceUpdateBlocker::InstanceUpdateBlocker):
2616             Added new helper struct, doing element->setInstancesUpdatedBlock(true) on construction and setInstancesUpdatesBlocked(false) on
2617             destruction, making it impossible to forget one. If we ever rewrite svgAttributeChanged & co to auto-update the cloned instances,
2618             this can go away.
2619
2620         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
2621             Now takes an SVGAnimatedType* instead of a String parameter. In order to avoid string-roundtrips for animVal support, let us
2622             decide if we need to construct a String out of it, or not. For animations supporting animVal (only SVGLength) we don't need
2623             to update any attribute or animVal pointer here, that happens automatically! We only need to notify the targetElement eg,
2624             that its xAttr changed! Previously we had to call targetElement->setAttribute("x", "...") on every animation step for
2625             SVGLength animations - that's gone now! The SVGAnimatedType pointers remains the same during the whole animation, so there's
2626             no need to call animationStarted() at each animated step!
2627
2628         (WebCore::SVGAnimationElement::animatedPropertyForType):
2629             Helper function returning a SVGAnimatedProperty* for the current target element & current target attribute, if the
2630             current animation is running on a type supporting animVal (SVGLength), or returning 0. This is needed for SVGAnimateElement.
2631             Reuses the existing findMatchingAnimatedProperty code.
2632
2633         * svg/SVGAnimationElement.h:
2634         * svg/animation/SMILTimeContainer.cpp:
2635         (WebCore::SMILTimeContainer::updateAnimations):
2636             Add comment to clarify why caching baseValues is just wrong. For SVGLength animations the problem is now gone.
2637             This is exercised using the new additive-from-to-width-animation.html & additive-values-width-animation.html tests.
2638
2639         * svg/animation/SVGSMILElement.cpp:
2640         (WebCore::SVGSMILElement::removedFromDocument):
2641             Since animVal requires that the SVGAnimatedProperties are correctly reset if an animation element is removed from the document,
2642             we have to call targetElementWillChange(0) from here. That requires to move the "m_attributeName = anyQName()" line down,
2643             otherwise targetElementWillChange() would early exit, as no valid attributeName was specified.
2644             
2645             This is verified using the new svg/animations/remove-animation-element-while-animation-is-running.html
2646             and svg/repaint/repainting-after-animation-element-removal.svg tests.
2647
2648         (WebCore::SVGSMILElement::isSupportedAttribute): Add function like all SVG*Elements have identifying their supported attributes.
2649         (WebCore::SVGSMILElement::svgAttributeChanged):
2650             Implement svgAttributeChanged instead of attributeChanged. Only take action if the attribute is actually supported.
2651             If one of the common attributes like begin/end/etc. changed, be sure to call animationAttributeChanged() so that our
2652             ancestor-classes get notified about this and can take action as well. NOTE: This is not about animating begin/end attributes,
2653             but about pure DOM changes. begin/end/et.. are not exposed to the SVG DOM, we still reuse the svgAttributeChanged logic
2654             for consistency. (This does NOT make those attributes animatable, nothing this here as it came up while reviewing).
2655     
2656         (WebCore::SVGSMILElement::targetElement): Adapt logic to targetElementDidChange -> targetElementWillChange change.
2657         (WebCore::SVGSMILElement::targetElementWillChange):
2658             Renamed from targetElementDidChange. Added "oldTarget" as parameter as well. Our ancestor-classes like SVGAnimateElement
2659             use this to properly deregister the animVal in the old target, before resetting the SVGAnimatedType, otherwise we'd leave
2660             dangling pointers around (verified manually by guard malloc runs, that none of this happens).
2661
2662             Also add a default implementation here in targetElementWillChange, that ancestor classes have to call.
2663             Now we properly call endedActiveInterval() if the m_activeState is currently Active, so that animations are shut-down
2664             just like if the animation properly ends (use the same cleanup routines, etc.). Not doing that now leads to assertions.
2665
2666         (WebCore::SVGSMILElement::resetTargetElement):
2667             Instead of forcing m_activeState to be inactive, use the standard methods to end the animation.
2668             targetElementWillChange(m_targetElement, 0) and animationAttributeChanged().
2669
2670             resetTargetElement() is only called by SVGDocumentExtensions::removeAllAnimationElementsFromTarget() for following conditions:
2671             - targetElement gets destructed
2672             - targetElement gets removed from the document
2673             - targetElement id changes
2674
2675             If the targetElement gets destructed or removed, no actions need to be taken, as the SVGAnimatedPropertys are teared down
2676             as well. But if only the id changes, we still have to properly disconnect the animVals - this is all handled through
2677             targetElementWillChange now - that's why this has to be called from here as well.
2678             That explains why targetElementWillChange() now needs to check if the targetElement is destructing or not.
2679
2680         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
2681             Pass the AnimatedPropertyType from the SVGPropertyInfo to the SVGAnimatedProperties.
2682             Requires mechanic changes in all SVGAnimated* classes. We need acccess to the AnimatedPropertyType
2683             to verify the SVGAnimatedType objects, passed to animationStarted, match our type. This is to enforce
2684             strict type-checking, whenever SVGGenericAnimatedTypes are passed around.
2685
2686         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
2687         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
2688         * svg/properties/SVGAnimatedListPropertyTearOff.h: Ditto.
2689         (WebCore::SVGAnimatedListPropertyTearOff::create):
2690         (WebCore::SVGAnimatedListPropertyTearOff::SVGAnimatedListPropertyTearOff):
2691         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Ditto.
2692         (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
2693         (WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):
2694         * svg/properties/SVGAnimatedProperty.h: Store AnimatedPropertyType, add accessors.
2695         (WebCore::SVGAnimatedProperty::animatedPropertyType): Add accessor.
2696         (WebCore::SVGAnimatedProperty::animationValueChanged): New animVal related functions to be implemented in the animated tear offs.
2697         (WebCore::SVGAnimatedProperty::animationStarted): Ditto.
2698         (WebCore::SVGAnimatedProperty::animationEnded): Ditto.
2699         (WebCore::SVGAnimatedProperty::currentBaseValue):
2700             Generic accessor for the baseVal: returns a SVGGenericAnimatedType.
2701             It takes an AnimatedPropertyType as input, that's only needed to verify that the type we're returning matches
2702             the expectation of the caller. If not, return 0 to avoid any potential casting mistakes, which would lead to crashes.
2703
2704         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): Store m_animatedPropertyType.
2705         * svg/properties/SVGAnimatedPropertyTearOff.h:
2706         (WebCore::SVGAnimatedPropertyTearOff::create): Same changes as in the other tear offs: pass around AnimatedPropertyType.
2707         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue): Returns &m_property, if the type matches (see above).
2708         (SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
2709         (WebCore::SVGAnimatedPropertyTearOff::animationValueChanged): No-op for non list types, don't need to do anything here.
2710         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
2711         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
2712             Store the currently animated value in the animVal() property tear off, that's also re-used as-is for the JS bindings.
2713             As this is important, here's an example of how this affects methods like rect->x() used in the renderers.
2714
2715             Setting m_isAnimating to true, redirects any rect->x() calls that previously returned rect->m_x, to
2716             rect->xAnimated()->animVal()->propertyReference() (which returns the same SVGLength& that the SVGAnimatedElement
2717             m_animatedType contains). Calling rect->setXBaseValue() still modifies rect->m_x, and is used by all parseAttribute()
2718             methods in svg/ as setAttribute() calls only ever modify the "baseValue", never the current animated value.
2719             rect.x.baseVal will return a SVGLength object corresponding to rect->m_x.
2720             rect.x.animVal will return a SVGLength object corresponding to rect->xAnimated()->animVal()->propertyReference().
2721
2722             These implementation details are all hidden in the SVGAnimatedPropertyMacros. Here's an example from SVGRectElement:
2723             DECLARE_ANIMATED_LENGTH(X, x) -> Replace PropertyType with 'SVGLength', LowerProperty with 'x', and UpperProperty with 'X'.
2724
2725             PropertyType& LowerProperty() const
2726             {
2727                 if (TearOffType* wrapper = SVGAnimatedProperty::lookupWrapper<UseOwnerType, TearOffType, IsDerivedFromSVGElement<UseOwnerType>::value>(this, LowerProperty##PropertyInfo())) {
2728                     if (wrapper->isAnimating())
2729                         return wrapper->currentAnimatedValue();
2730                 }
2731                 return m_##LowerProperty.value;
2732             }
2733
2734             PropertyType& LowerProperty##BaseValue() const
2735             {
2736                 return m_##LowerProperty.value;
2737             }
2738
2739             void set##UpperProperty##BaseValue(const PropertyType& type)
2740             {
2741                 m_##LowerProperty.value = type;
2742             }
2743
2744             Any code outside of svg/, eg. in rendering/svg, does not need to care about any baseVal/animVal differences.
2745             During layout eg. RenderSVGRect calls rect->x().value(someLengthContext) to get the current 'x' as float. If an animation
2746             is running on that rect element it will automatically retrieve the last set animated value here - all under the hood.
2747             I hope that sheds some light in those myserious functions, they were designed with animVal in mind, but we never had that until now :-)
2748
2749         (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
2750         (WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff): Add destructor to debug builds veryifing that m_isAnimating is false.
2751         * svg/properties/SVGAnimatedStaticPropertyTearOff.h: Ditto.
2752         (WebCore::SVGAnimatedStaticPropertyTearOff::create):
2753         (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
2754         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Ditto.
2755         (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
2756         (WebCore::SVGAnimatedTransformListPropertyTearOff::SVGAnimatedTransformListPropertyTearOff):
2757         * svg/properties/SVGPropertyInfo.h: Add SVGGenericAnimatedType definition.
2758         * svg/properties/SVGPropertyTearOff.h: Remove obsolete updateAnimVal method - switched to using setValue directly.
2759
2760 2012-03-13  Luke Macpherson   <macpherson@chromium.org>
2761
2762         Implement CSSPropertyTextOverflow in CSSStyleApplyProperty.
2763         https://bugs.webkit.org/show_bug.cgi?id=80934
2764
2765         Reviewed by Andreas Kling.
2766
2767         No new tests / refactoring only.
2768
2769         * css/CSSStyleApplyProperty.cpp:
2770         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2771         * css/CSSStyleSelector.cpp:
2772         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2773
2774 2012-03-12  Matt Falkenhagen  <falken@chromium.org>
2775
2776         Switch Chromium from LocaleToScriptMappingICU.cpp to LocaleToScriptMappingDefault.cpp
2777         https://bugs.webkit.org/show_bug.cgi?id=80935
2778
2779         Reviewed by Kent Tamura.
2780
2781         ICU seems to have issues with non-well-formed locale strings.
2782         Currently, the only port that uses LocaleToScriptMappingICU.cpp is
2783         Chromium.
2784
2785         No new tests. LocaleToScriptMappingDefault.cpp is already used by
2786         other ports and covered by existing tests.
2787
2788         * WebCore.gyp/WebCore.gyp:
2789
2790 2012-03-12  Benjamin Poulain  <bpoulain@apple.com>
2791
2792         Fix IndexedDB build with JSC
2793         https://bugs.webkit.org/show_bug.cgi?id=80207
2794
2795         Reviewed by Adam Barth.
2796
2797         This fixes the build of WebKit when IndexedDB is enabled. Most functions were added
2798         empty implementation, it compiles but IndexedDB is not working.
2799
2800         * DerivedSources.make: Added missing IDL files.
2801         * Modules/indexeddb/IDBDatabaseBackendImpl.h: Fix warnings and build errors.
2802         (IDBDatabaseBackendImpl):
2803         * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: ditto.
2804         (WebCore::IDBDatabaseCallbacksImpl::unregisterDatabase): ditto.
2805         * Modules/indexeddb/IDBFactoryBackendImpl.cpp: ditto.
2806         (WebCore::IDBFactoryBackendImpl::openBackingStore):
2807         * Modules/indexeddb/IDBIndexBackendImpl.cpp: ditto.
2808         (WebCore::IDBIndexBackendImpl::countInternal):
2809         * Modules/indexeddb/IDBKeyPathBackendImpl.cpp: Fix the method signature and add
2810         an empty implementation.
2811         (WebCore):
2812         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
2813         (WebCore::IDBKeyPathBackendImpl::injectIDBKeyIntoSerializedValue):
2814         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Fix warnings.
2815         (WebCore::IDBObjectStoreBackendImpl::countInternal):
2816         * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: ditto.
2817         (WebCore::transactions):
2818         * Modules/indexeddb/IDBRequest.cpp: ditto.
2819         (WebCore::IDBRequest::resetReadyState):
2820         * Modules/indexeddb/IDBRequest.h: ditto.
2821         (WebCore::IDBRequest::onSuccessWithPrefetch):
2822         (WebCore):
2823         (WebCore::JSIDBVersionChangeRequest::visitChildren):
2824         * WebCore.xcodeproj/project.pbxproj:
2825         * bindings/js/IDBBindingUtilities.cpp:
2826         (WebCore::createIDBKeyFromValue): Fix the creation of IDBKeys.
2827         (WebCore::createOptionsObjectFromValue): Add an empty implementation of
2828         the handling of database options (IDBObjectStoreParameters).
2829         (WebCore):
2830         * bindings/js/IDBBindingUtilities.h:
2831         (WebCore):
2832         * bindings/js/JSIDBAnyCustom.cpp:
2833         (WebCore::toJS): Add the missing IDBAny's types.
2834         * bindings/js/JSIDBKeyCustom.cpp:
2835         (WebCore::toJS): Add the missing IDBKey's types.
2836         * bindings/js/JSIDBVersionChangeRequestCustom.cpp: Added.
2837         IDBVersionChangeRequest has the attribute EventTarget so it requires
2838         the visitChildren() function. An empty implementation was added.
2839         * bindings/js/OptionsObject.h: Add an empty implementation.
2840         (WebCore):
2841         (OptionsObject):
2842         (WebCore::OptionsObject::OptionsObject):
2843         (WebCore::OptionsObject::isObject):
2844         (WebCore::OptionsObject::isUndefinedOrNull):
2845         (WebCore::OptionsObject::get):
2846         (WebCore::OptionsObject::getWithUndefinedOrNullCheck):
2847         * bindings/js/SerializedScriptValue.cpp: Add the missing functions needed by IndexedDB.
2848         (WebCore):
2849         (WebCore::SerializedScriptValue::create):
2850         (WebCore::SerializedScriptValue::toWireString):
2851         (WebCore::SerializedScriptValue::createFromWire):
2852         (WebCore::SerializedScriptValue::numberValue):
2853         (WebCore::SerializedScriptValue::deserialize):
2854         * bindings/js/SerializedScriptValue.h:
2855         (SerializedScriptValue):
2856         * bindings/scripts/CodeGeneratorJS.pm: Modify the code generator to:
2857         -Support the IDBKey type correctly.
2858         -Support the OptionsObject type.
2859         -Generate valid function call for static functions.
2860         (GenerateImplementationFunctionCall):
2861         (JSValueToNative):
2862         (NativeToJSValue):
2863         * inspector/InspectorIndexedDBAgent.cpp:
2864         (WebCore):
2865
2866 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2867
2868         Unreviewed, rolling out r110529.
2869         http://trac.webkit.org/changeset/110529
2870         https://bugs.webkit.org/show_bug.cgi?id=80969
2871
2872         breaks mac build (Requested by morrita on #webkit).
2873
2874         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2875         (WebCore::computeUnoccludedContentRect):
2876
2877 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2878
2879         Unreviewed, rolling out r110524.
2880         http://trac.webkit.org/changeset/110524
2881         https://bugs.webkit.org/show_bug.cgi?id=80936
2882
2883         breaks chromium win build. (Requested by morrita on #webkit).
2884
2885         * Target.pri:
2886         * UseV8.cmake:
2887         * WebCore.gypi:
2888         * bindings/scripts/CodeGeneratorJS.pm:
2889         (GenerateHeader):
2890         (GenerateImplementation):
2891         * bindings/scripts/CodeGeneratorV8.pm:
2892         (GenerateHeader):
2893         (GenerateNamedConstructorCallback):
2894         (GenerateImplementation):
2895         * bindings/scripts/IDLAttributes.txt:
2896         * bindings/scripts/test/V8/V8Float64Array.cpp:
2897         (WebCore):
2898         * bindings/scripts/test/V8/V8Float64Array.h:
2899         (V8Float64Array):
2900         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2901         (WebCore):
2902         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2903         (V8TestActiveDOMObject):
2904         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2905         (WebCore):
2906         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2907         (V8TestCustomNamedGetter):
2908         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2909         (WebCore):
2910         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2911         (V8TestEventConstructor):
2912         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2913         (WebCore):
2914         * bindings/scripts/test/V8/V8TestEventTarget.h:
2915         (V8TestEventTarget):
2916         * bindings/scripts/test/V8/V8TestInterface.cpp:
2917         (WebCore):
2918         * bindings/scripts/test/V8/V8TestInterface.h:
2919         (V8TestInterface):
2920         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2921         (WebCore):
2922         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2923         (V8TestMediaQueryListListener):
2924         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2925         (WebCore):
2926         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2927         (V8TestNamedConstructor):
2928         * bindings/scripts/test/V8/V8TestObj.cpp:
2929         (WebCore):
2930         * bindings/scripts/test/V8/V8TestObj.h:
2931         (V8TestObj):
2932         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2933         (WebCore):
2934         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2935         (V8TestSerializedScriptValueInterface):
2936         * bindings/v8/NPV8Object.cpp:
2937         (WebCore::npObjectTypeInfo):
2938         * bindings/v8/V8GCController.cpp:
2939         (WebCore::GrouperVisitor::visitDOMWrapper):
2940         * bindings/v8/WrapperTypeInfo.h:
2941         (WebCore):
2942         (WrapperTypeInfo):
2943         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2944         (WebCore):
2945         (WebCore::toV8):
2946         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2947         (WebCore::toV8):
2948         (WebCore):
2949         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2950         (WebCore):
2951         (WebCore::toV8):
2952         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2953         (WebCore):
2954         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2955         (WebCore::toV8):
2956         (WebCore):
2957         * bindings/v8/custom/V8StyleSheetCustom.cpp:
2958         (WebCore::toV8):
2959         * css/CSSStyleSheet.idl:
2960         * css/StyleSheet.idl:
2961         * dom/DOMStringMap.idl:
2962         * dom/NamedNodeMap.idl:
2963         * html/DOMTokenList.idl:
2964         * html/track/TextTrackList.idl:
2965
2966 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2967
2968         [V8][Refactoring] Remove getCachedWrapperSlow() from V8Bindings.cpp
2969         https://bugs.webkit.org/show_bug.cgi?id=80924
2970
2971         Reviewed by Adam Barth.
2972
2973         getCachedWrapperSlow() is called by getCachedWrapper() only,
2974         and getCachedWrapperSlow() just calls getCachedWrapperInline().
2975         Thus, this patch expands getCachedWrapperInline() into getCachedWrapper(),
2976         and removes getCachedWrapperSlow().
2977
2978         No tests. No change in behavior.
2979
2980         * bindings/v8/V8DOMWrapper.cpp:
2981         * bindings/v8/V8DOMWrapper.h:
2982         (WebCore::V8DOMWrapper::getCachedWrapper):
2983
2984 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2985
2986         [V8][Refactoring] Remove existingWrapper() from generated code
2987         https://bugs.webkit.org/show_bug.cgi?id=80927
2988
2989         Reviewed by Adam Barth.
2990
2991         Currently wrap() calls existingWrapper(), and existingWrapper()
2992         just calls getCachedWrapper(). We can remove existingWrapper() from the generated code.
2993
2994         Test: bindings/scripts/test/*
2995
2996         * bindings/scripts/CodeGeneratorV8.pm: Removed existingWrapper().
2997         (GenerateHeader):
2998         (GenerateNormalAttrGetter):
2999
3000         * bindings/scripts/test/V8/V8Float64Array.h: Updated run-bindings-tests results.
3001         (V8Float64Array):
3002         (WebCore::V8Float64Array::wrap):
3003         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3004         (V8TestActiveDOMObject):
3005         (WebCore::V8TestActiveDOMObject::wrap):
3006         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3007         (V8TestCustomNamedGetter):
3008         (WebCore::V8TestCustomNamedGetter::wrap):
3009         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3010         (V8TestEventConstructor):
3011         (WebCore::V8TestEventConstructor::wrap):
3012         * bindings/scripts/test/V8/V8TestEventTarget.h:
3013         (V8TestEventTarget):
3014         (WebCore::V8TestEventTarget::wrap):
3015         * bindings/scripts/test/V8/V8TestInterface.h:
3016         (V8TestInterface):
3017         (WebCore::V8TestInterface::wrap):
3018         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3019         (V8TestMediaQueryListListener):
3020         (WebCore::V8TestMediaQueryListListener::wrap):
3021         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3022         (V8TestNamedConstructor):
3023         (WebCore::V8TestNamedConstructor::wrap):
3024         * bindings/scripts/test/V8/V8TestObj.cpp:
3025         (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
3026         (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
3027         (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
3028         * bindings/scripts/test/V8/V8TestObj.h:
3029         (V8TestObj):
3030         (WebCore::V8TestObj::wrap):
3031         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3032         (V8TestSerializedScriptValueInterface):
3033         (WebCore::V8TestSerializedScriptValueInterface::wrap):
3034
3035 2012-03-12  Dana Jansens  <danakj@chromium.org>
3036
3037         [chromium] Use tileRect instead of pointer derefs
3038         https://bugs.webkit.org/show_bug.cgi?id=80919
3039
3040         Reviewed by Adrienne Walker.
3041
3042         Covered by existing tests.
3043
3044         * platform/graphics/chromium/LayerRendererChromium.cpp:
3045         (WebCore::LayerRendererChromium::drawTileQuad):
3046
3047 2012-03-12  Hans Muller  <hmuller@adobe.com>
3048
3049         SVG should support transform-origin and relative values
3050         https://bugs.webkit.org/show_bug.cgi?id=79068
3051
3052         Reviewed by Dirk Schulze.
3053
3054         Added SVG support for the CSS 'transform-origin' property and for percentage
3055         values in the transform translate function.  The changes conform to
3056         http://dev.w3.org/csswg/css3-transforms/.
3057
3058         Tests: svg/transforms/percent-transform-values.xhtml
3059                svg/transforms/transform-origin-css-property.xhtml
3060
3061         * css/svg.css:
3062         (*):
3063         (html|* > svg):
3064         Default transform-origin for SVG elements is 0 0.
3065
3066         * platform/Length.h:
3067         (WebCore::Length::calcFloatValue):
3068         Added a calcFloatValue overload whose max parameter (for percent lengths) is a float.
3069         The original version will be obsolete when the sub-pixel layout support is completed.
3070
3071         * rendering/style/RenderStyle.cpp:
3072         * rendering/style/RenderStyle.h:
3073         (WebCore):
3074         (WebCore::requireTransformOrigin):
3075         Transforms that only include translations don't depend on the transform-origin.
3076
3077         (WebCore::RenderStyle::applyTransform):
3078         SVG elements interpret non-percentage/keyword transform-origin values relative to their viewport,
3079         unlike HTML which interprets all transform-origin values relative to the element's origin.
3080         The new FloatRect applyTransform() function handles SVG semantics. Similarly, SVG elements interpret
3081         percentage/keyword transform-origin values relative to the origin of their objectBoundingBox(), HTML
3082         uses the borderBox.  All this per http://dev.w3.org/csswg/css3-transforms/.
3083
3084         * svg/SVGStyledTransformableElement.cpp:
3085         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
3086
3087 2012-03-12  Dana Jansens  <danakj@chromium.org>
3088
3089         [chromium] Use projectQuad to apply inverse mapRect
3090         https://bugs.webkit.org/show_bug.cgi?id=80741
3091
3092         Reviewed by Adrienne Walker.
3093
3094         Unit test: CCOcclusionTrackerTest3dTransform
3095                    CCOcclusionTrackerTestPerspectiveTransform
3096                    CCOcclusionTrackerTestPerspectiveTransformBehindCamera
3097
3098         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3099         (WebCore::projectQuad):
3100         (WebCore):
3101         (WebCore::computeUnoccludedContentRect):
3102
3103 2012-03-12  Leo Yang  <leo.yang@torchmobile.com.cn>
3104
3105         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FontPlatformData.h
3106         https://bugs.webkit.org/show_bug.cgi?id=80820
3107
3108         Reviewed by Rob Buis.
3109
3110         The BlackBerry is using the FontPlatformData from Chromium porting.
3111
3112         * platform/graphics/FontPlatformData.h:
3113
3114 2012-03-12  Zhenyao Mo  <zmo@google.com>
3115
3116         After webgl canvas resize, bindings might be lost
3117         https://bugs.webkit.org/show_bug.cgi?id=80895
3118
3119         Reviewed by Stephen White.
3120
3121         Test: fast/canvas/webgl/texture-bindings-uneffected-on-resize.html
3122
3123         * html/canvas/WebGLRenderingContext.cpp:
3124         (WebCore):
3125         (WebCore::WebGLRenderingContext::reshape): recover bindings after reshape.
3126
3127 2012-03-12  Kentaro Hara  <haraken@chromium.org>
3128
3129         [V8][Refactoring] Remove getWrapper() and getWrapperSlow()
3130         https://bugs.webkit.org/show_bug.cgi?id=80920
3131
3132         Reviewed by Adam Barth.
3133
3134         Now getWrapper() is the same as getExistingWrapper().
3135         getWrapperSlow() is the same as getExistingWrapperSlow().
3136         This patch removes getWrapper() and getWrapperSlow().
3137         Also this patch renames getExistingWrapper() to getCachedWrapper().
3138
3139         No tests. No change in behavior.
3140
3141         * bindings/scripts/CodeGeneratorV8.pm:
3142         (GenerateHeader):
3143         * bindings/v8/V8DOMWrapper.cpp:
3144         (WebCore::V8DOMWrapper::getWrapperSlow):
3145         * bindings/v8/V8DOMWrapper.h:
3146         (WebCore::V8DOMWrapper::getWrapper):
3147         (V8DOMWrapper):
3148         * bindings/v8/custom/V8NodeCustom.cpp:
3149         (WebCore::toV8Slow):
3150
3151 2012-03-12  Erik Arvidsson  <arv@chromium.org>
3152
3153         [V8] Use v8::V8::AddHiddenReferences instead of SetHiddenValue
3154         https://bugs.webkit.org/show_bug.cgi?id=80880
3155
3156         Reviewed by Adam Barth.
3157
3158         We used to add a hidden property in the getter to the returned wrapper.
3159         With this patch we instead handle the liveness of the wrapper in the GC phase by
3160         calling v8::V8::AddHiddenReference.
3161
3162         To reduce the amount of custom code we need, the V8 code generator now supports
3163         GenerateIsReachable (as well as CustomIsReachable) which, even though different
3164         from the JSC attribute, is used in the same cases and takes the same values (even though
3165         at the moment not all JSC values are supported by V8).
3166
3167         No new tests. Covered by existing tests.
3168
3169         * Target.pri:
3170         * UseV8.cmake:
3171         * WebCore.gypi:
3172         * bindings/scripts/CodeGeneratorJS.pm:
3173         (GetGenerateIsReachable):
3174         (GetCustomIsReachable):
3175         (GenerateHeader):
3176         (GenerateImplementation):
3177         * bindings/scripts/CodeGeneratorV8.pm:
3178         (NeedsToVisitDOMWrapper):
3179         (GetGenerateIsReachable):
3180         (GetCustomIsReachable):
3181         (GenerateVisitDOMWrapper):
3182         (GenerateHeader):
3183         (GenerateNamedConstructorCallback):
3184         (GenerateImplementation):
3185         * bindings/scripts/IDLAttributes.txt:
3186         * bindings/scripts/test/V8/V8Float64Array.cpp:
3187         (WebCore):
3188         * bindings/scripts/test/V8/V8Float64Array.h:
3189         (V8Float64Array):
3190         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3191         (WebCore):
3192         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3193         (V8TestActiveDOMObject):
3194         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3195         (WebCore):
3196         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3197         (V8TestCustomNamedGetter):
3198         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3199         (WebCore):
3200         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3201         (V8TestEventConstructor):
3202         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3203         (WebCore):
3204         * bindings/scripts/test/V8/V8TestEventTarget.h:
3205         (V8TestEventTarget):
3206         * bindings/scripts/test/V8/V8TestInterface.cpp:
3207         (WebCore):
3208         * bindings/scripts/test/V8/V8TestInterface.h:
3209         (V8TestInterface):
3210         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3211         (WebCore):
3212         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3213         (V8TestMediaQueryListListener):
3214         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3215         (WebCore):
3216         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3217         (V8TestNamedConstructor):
3218         * bindings/scripts/test/V8/V8TestObj.cpp:
3219         (WebCore):
3220         * bindings/scripts/test/V8/V8TestObj.h:
3221         (V8TestObj):
3222         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3223         (WebCore):
3224         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3225         (V8TestSerializedScriptValueInterface):
3226         * bindings/v8/NPV8Object.cpp:
3227         (WebCore::npObjectTypeInfo):
3228         * bindings/v8/V8GCController.cpp:
3229         (WebCore::GrouperVisitor::visitDOMWrapper):
3230         * bindings/v8/WrapperTypeInfo.h:
3231         (WebCore):
3232         (WrapperTypeInfo):
3233         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
3234         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3235         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
3236         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3237         (WebCore):
3238         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3239         * bindings/v8/custom/V8StyleSheetCustom.cpp:
3240         (WebCore::toV8):
3241         * css/CSSStyleSheet.idl:
3242         * css/StyleSheet.idl:
3243         * dom/DOMStringMap.idl:
3244         * dom/NamedNodeMap.idl:
3245         * html/DOMTokenList.idl:
3246         * html/track/TextTrackList.idl:
3247
3248 2012-03-12  Kentaro Hara  <haraken@chromium.org>
3249
3250         [V8][Refactoring] Make getWrapperSlow() and getExistingWrapperSlow() same
3251         https://bugs.webkit.org/show_bug.cgi?id=80916
3252
3253         Reviewed by Adam Barth.
3254
3255         This is one of the steps for fixing bug 80841.
3256         This patch makes getWrapperSlow() and getExistingWrapperSlow() same.
3257         In the next patch, we will remove getExistingWrapper() and getExistingWrapperSlow().
3258
3259         No tests. No change in behavior.
3260
3261         * bindings/scripts/CodeGeneratorV8.pm:
3262         (GenerateHeader):
3263         * bindings/v8/V8DOMWrapper.cpp:
3264         (WebCore::V8DOMWrapper::getWrapperSlow):
3265
3266 2012-03-12  Kentaro Hara  <haraken@chromium.org>
3267
3268         [V8] Refactor some header includes in V8 bindings
3269         https://bugs.webkit.org/show_bug.cgi?id=80913
3270
3271         Reviewed by Adam Barth.
3272
3273         This patch refactors some header includes in V8 bindings
3274         required for fixing bug 80841.
3275
3276         No tests. No change in behavior.
3277
3278         * bindings/v8/DOMDataStore.h:
3279         (DOMDataStore):
3280         * bindings/v8/V8DOMMap.h:
3281         * bindings/v8/V8DOMWrapper.cpp:
3282         * bindings/v8/V8IsolatedContext.cpp:
3283         (WebCore::V8IsolatedContext::isolatedContext):
3284         * bindings/v8/V8IsolatedContext.h:
3285         (WebCore::V8IsolatedContext::getEntered):
3286         (V8IsolatedContext):
3287         * bindings/v8/WorldContextHandle.cpp:
3288
3289 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
3290
3291         Unreviewed, rolling out r110501.
3292         http://trac.webkit.org/changeset/110501
3293         https://bugs.webkit.org/show_bug.cgi?id=80908
3294
3295         Broke the Apple-Win build (Requested by abarth on #webkit).
3296
3297         * CMakeLists.txt:
3298         * DerivedSources.make:
3299         * DerivedSources.pri:
3300         * GNUmakefile.am:
3301         * GNUmakefile.list.am:
3302         * Target.pri:
3303         * WebCore.gyp/WebCore.gyp:
3304         * WebCore.gypi:
3305         * WebCore.pri:
3306         * WebCore.xcodeproj/project.pbxproj:
3307         * fileapi/DirectoryEntry.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.cpp.
3308         (WebCore):
3309         (WebCore::DirectoryEntry::DirectoryEntry):
3310         (WebCore::DirectoryEntry::createReader):
3311         (WebCore::DirectoryEntry::getFile):
3312         (WebCore::DirectoryEntry::getDirectory):
3313         (WebCore::DirectoryEntry::removeRecursively):
3314         * fileapi/DirectoryEntry.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.h.
3315         (WebCore):
3316         (DirectoryEntry):
3317         (WebCore::DirectoryEntry::create):
3318         (WebCore::DirectoryEntry::isDirectory):
3319         * fileapi/DirectoryEntry.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.idl.
3320         * fileapi/DirectoryEntrySync.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.cpp.
3321         (WebCore):
3322         (WebCore::DirectoryEntrySync::DirectoryEntrySync):
3323         (WebCore::DirectoryEntrySync::createReader):
3324         (WebCore::DirectoryEntrySync::getFile):
3325         (WebCore::DirectoryEntrySync::getDirectory):
3326         (WebCore::DirectoryEntrySync::removeRecursively):
3327         * fileapi/DirectoryEntrySync.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.h.
3328         (WebCore):
3329         (DirectoryEntrySync):
3330         (WebCore::DirectoryEntrySync::create):
3331         (WebCore::DirectoryEntrySync::isDirectory):
3332         * fileapi/DirectoryEntrySync.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl.
3333         * fileapi/DirectoryReader.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.cpp.
3334         (WebCore):
3335         (WebCore::DirectoryReader::DirectoryReader):
3336         (WebCore::DirectoryReader::readEntries):
3337         * fileapi/DirectoryReader.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.h.
3338         (WebCore):
3339         (DirectoryReader):
3340         (WebCore::DirectoryReader::create):
3341         (WebCore::DirectoryReader::filesystem):
3342         * fileapi/DirectoryReader.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.idl.
3343         * fileapi/DirectoryReaderBase.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderBase.h.
3344         (WebCore):
3345         (DirectoryReaderBase):
3346         (WebCore::DirectoryReaderBase::filesystem):
3347         (WebCore::DirectoryReaderBase::setHasMoreEntries):
3348         (WebCore::DirectoryReaderBase::DirectoryReaderBase):
3349         * fileapi/DirectoryReaderSync.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.cpp.
3350         (WebCore):
3351         (WebCore::DirectoryReaderSync::DirectoryReaderSync):
3352         (WebCore::DirectoryReaderSync::readEntries):
3353         * fileapi/DirectoryReaderSync.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.h.
3354         (WebCore):
3355         (DirectoryReaderSync):
3356         (WebCore::DirectoryReaderSync::create):
3357         * fileapi/DirectoryReaderSync.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl.
3358
3359 2012-03-12  Nico Weber  <thakis@chromium.org>
3360
3361         [chromium/mac] Make sure libWebKitSystemInterface.a doesn't contain ppc object files.
3362         https://bugs.webkit.org/show_bug.cgi?id=80902
3363
3364         Reviewed by Adam Barth.
3365
3366         Follow-up to http://codereview.chromium.org/9638015/
3367
3368         No intended behavior change.
3369
3370         * WebCore.gyp/mac/adjust_visibility.sh:
3371
3372 2012-03-12  Jer Noble  <jer.noble@apple.com>
3373
3374         WebCore: Add support for AudioNode "tailTime()" and "latencyTime()"
3375         https://bugs.webkit.org/show_bug.cgi?id=74750
3376
3377         Reviewed by Chris Rogers.
3378
3379         No new tests; optimization of existing code path, so covered by existing tests.
3380
3381         To account for AudioNodes which may generate non-silent audio when fed silent input
3382         for a certain amount of time after the last non-silent audio data, add two new virtual
3383         functions tailTime() and latencyTime().
3384
3385         * webaudio/AudioNode.h:
3386         (WebCore::AudioNode::tailTime): Added. Pure virtual.
3387         (WebCore::AudioNode::latencyTime): Added. Pure virtual.
3388         * platform/audio/AudioProcessor.h:
3389         (WebCore::AudioProcessor::tailTime): Added. Pure virtual.
3390         (WebCore::AudioProcessor::latencyTime): Added. Pure virtual.
3391         * platform/audio/AudioDSPKernel.h:
3392         (WebCore::AudioDSPKernel::tailTime): Added. Pure virtual.
3393         (WebCore::AudioDSPKernel::latencyTime): Added. Pure virtual.
3394
3395         Added tailTime() and latencyTime() overrides to the following classes:
3396         * platform/audio/AudioDSPKernelProcessor.cpp:
3397         (WebCore::AudioDSPKernelProcessor::tailTime):
3398         (WebCore::AudioDSPKernelProcessor::latencyTime):
3399         * platform/audio/AudioDSPKernelProcessor.h:
3400         * platform/audio/DynamicsCompressor.h:
3401         (WebCore::DynamicsCompressor::tailTime):
3402         (WebCore::DynamicsCompressor::latencyTime):
3403         * platform/audio/EqualPowerPanner.h:
3404         * platform/audio/HRTFPanner.cpp:
3405         (WebCore::HRTFPanner::tailTime):
3406         (WebCore::HRTFPanner::latencyTime):
3407         * platform/audio/HRTFPanner.h:
3408         * platform/audio/Panner.h:
3409         * webaudio/AudioBasicProcessorNode.cpp:
3410         (WebCore::AudioBasicProcessorNode::tailTime):
3411         (WebCore::AudioBasicProcessorNode::latencyTime):
3412         * webaudio/AudioBasicProcessorNode.h:
3413         * webaudio/AudioChannelMerger.h:
3414         * webaudio/AudioChannelSplitter.h:
3415         * webaudio/AudioDestinationNode.h:
3416         * webaudio/AudioGainNode.h:
3417         * webaudio/AudioPannerNode.h:
3418         * webaudio/AudioSourceNode.h:
3419         * webaudio/BiquadDSPKernel.cpp: