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