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