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