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