https://bugs.webkit.org/show_bug.cgi?id=81761
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
2
3         https://bugs.webkit.org/show_bug.cgi?id=81761
4         Fix Gobject binding for sequence<T> for function return type.
5
6         Reviewed by Kentaro Hara.
7
8         No new tests.
9
10         * bindings/scripts/CodeGeneratorGObject.pm:
11         (SkipFunction): Skip function with sequence<T> return type.
12         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
13         (webkit_dom_test_obj_method_with_sequence_arg):
14         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
15
16 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
17
18         Unreviewed build fix for r111529.
19
20         * inspector/InjectedScriptHost.h:
21         (WebCore):
22
23 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
24
25         Unreviewed, rolling out r111497, r111506, r111508, and
26         r111513.
27         http://trac.webkit.org/changeset/111497
28         http://trac.webkit.org/changeset/111506
29         http://trac.webkit.org/changeset/111508
30         http://trac.webkit.org/changeset/111513
31         https://bugs.webkit.org/show_bug.cgi?id=81774
32
33         It broke 2 tests on all platform (Requested by Ossy on
34         #webkit).
35
36         * css/CSSStyleSelector.cpp:
37         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
38         * css/SelectorChecker.cpp:
39         (WebCore::SelectorChecker::checkOneSelector):
40         * html/HTMLKeygenElement.cpp:
41         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
42         * html/HTMLOptionElement.cpp:
43         (WebCore::HTMLOptionElement::HTMLOptionElement):
44         (WebCore::HTMLOptionElement::create):
45         (WebCore::HTMLOptionElement::attach):
46         (WebCore::HTMLOptionElement::detach):
47         (WebCore::HTMLOptionElement::formControlType):
48         (WebCore):
49         (WebCore::HTMLOptionElement::parseAttribute):
50         (WebCore::HTMLOptionElement::childrenChanged):
51         (WebCore::HTMLOptionElement::insertedIntoTree):
52         * html/HTMLOptionElement.h:
53         (HTMLOptionElement):
54         (WebCore::HTMLOptionElement::ownElementDisabled):
55         * html/HTMLTagNames.in:
56
57 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
58
59         Web Inspector: expose getEventListeners() to console command line API
60         https://bugs.webkit.org/show_bug.cgi?id=81658
61
62         Reviewed by Yury Semikhatsky.
63
64         Test: inspector/console/command-line-api-getEventListeners.html
65
66         * bindings/js/JSInjectedScriptHostCustom.cpp:
67         (WebCore::JSInjectedScriptHost::functionDetails):
68         (WebCore):
69         (WebCore::getJSListenerFunctions):
70         (WebCore::JSInjectedScriptHost::getEventListeners):
71         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
72         (WebCore::getJSListenerFunctions):
73         (WebCore):
74         (WebCore::V8InjectedScriptHost::getEventListenersCallback):
75         * inspector/InjectedScriptHost.cpp:
76         (WebCore::InjectedScriptHost::InjectedScriptHost):
77         (WebCore::InjectedScriptHost::disconnect):
78         (WebCore::InjectedScriptHost::getEventListenersImpl):
79         (WebCore):
80         * inspector/InjectedScriptHost.h:
81         (WebCore):
82         (WebCore::InjectedScriptHost::init):
83         (InjectedScriptHost):
84         * inspector/InjectedScriptHost.idl:
85         * inspector/InjectedScriptSource.js:
86         (.):
87         * inspector/InspectorController.cpp:
88         (WebCore::InspectorController::InspectorController):
89         * inspector/InspectorDOMAgent.cpp:
90         (WebCore::InspectorDOMAgent::getEventListenersForNode):
91         (WebCore::InspectorDOMAgent::getEventListeners):
92         (WebCore):
93         * inspector/InspectorDOMAgent.h:
94         (InspectorDOMAgent):
95         * inspector/WorkerInspectorController.cpp:
96         (WebCore::WorkerInspectorController::WorkerInspectorController):
97
98 2012-03-21  Kentaro Hara  <haraken@chromium.org>
99
100         Unreviewed, rebaselined run-bindings-tests results.
101
102         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
103         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
104         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
105         * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
106
107 2012-03-21  Ian Vollick  <vollick@chromium.org>
108
109         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
110         https://bugs.webkit.org/show_bug.cgi?id=81692
111
112         Reviewed by Adrienne Walker.
113
114         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
115
116         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
117
118 2012-03-21  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
119
120         [Qt] Cookie Jar blocks on fsync in SQLITE
121         https://bugs.webkit.org/show_bug.cgi?id=81755
122
123         Reviewed by Simon Hausmann.
124
125         Set PRAGMA synchronous to OFF, which tells SQLITE to never fsync.
126
127         * platform/qt/CookieJarQt.cpp:
128         (WebCore::SharedCookieJarQt::ensureDatabaseTable):
129
130 2012-03-21  Ian Vollick  <vollick@chromium.org>
131
132         [chromium] Animation events should only be used for synchronizing animation start times
133         https://bugs.webkit.org/show_bug.cgi?id=81484
134
135         Reviewed by Adrienne Walker.
136
137         Tested in CCLayerTreeHostTestSynchronizeAnimationStartTimes
138
139         Eliminated animation finished events. Animations will finish naturally on the
140         main thread and the final values will be set.
141
142         Animation started events are now also used to synchronize the main thread
143         animations' start times with their impl thread equivalents, preventing skew.
144         Until main thread animations receive their synchronized start times, they will
145         apply their initial values (i.e., they will be paused at time zero). This
146         guarantees that we will not jump to the animation's final value on the main
147         thread while we wait for the synchronized start time.
148
149         * WebCore.gypi:
150         * platform/graphics/chromium/LayerChromium.cpp:
151         (WebCore::LayerChromium::notifyAnimationStarted):
152         * platform/graphics/chromium/LayerChromium.h:
153         (WebCore):
154         (LayerChromium):
155         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
156         (WebCore::CCActiveAnimation::CCActiveAnimation):
157         * platform/graphics/chromium/cc/CCActiveAnimation.h:
158         (CCActiveAnimation):
159         (WebCore::CCActiveAnimation::needsSynchronizedStartTime):
160         (WebCore::CCActiveAnimation::setNeedsSynchronizedStartTime):
161         * platform/graphics/chromium/cc/CCAnimationEvents.cpp: Removed.
162         * platform/graphics/chromium/cc/CCAnimationEvents.h:
163         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
164         (CCAnimationStartedEvent):
165         (WebCore):
166         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
167         (WebCore::CCLayerAnimationController::animate):
168         (WebCore::CCLayerAnimationController::notifyAnimationStarted):
169         (WebCore):
170         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
171         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
172         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
173         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
174         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
175         (WebCore::CCLayerAnimationController::tickAnimations):
176         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
177         (CCLayerAnimationController):
178         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
179         (WebCore::CCLayerTreeHost::updateAnimations):
180         (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
181         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
182         (CCLayerTreeHost):
183
184 2012-03-21  Zeno Albisser  <zeno@webkit.org>
185
186         [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
187         https://bugs.webkit.org/show_bug.cgi?id=81113
188
189         The GLContext is created by QWindow/QSurface using
190         QOpenGLContext which is implemented using NSOpenGL functions
191         on mac. Therefore we should use QOpenGLContext as well when
192         querying for the current context. AGL is not supposed
193         to be paired with NSOpenGL.
194         Altering the typedef for GLContext is fine, since
195         the GLContext type is only used as a key in a map.
196
197         Reviewed by Kenneth Rohde Christiansen.
198
199         * platform/graphics/texmap/TextureMapperGL.cpp:
200         (SharedGLData):
201         (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
202
203 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
204
205         Web Inspector: HeapSnapshot: make _bfs twice as fast as the old version.
206         https://bugs.webkit.org/show_bug.cgi?id=81756
207
208         Reviewed by Yury Semikhatsky.
209
210         * inspector/front-end/HeapSnapshot.js:
211         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
212         (WebInspector.HeapSnapshot.prototype._bfs):
213
214 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
215
216         https://bugs.webkit.org/show_bug.cgi?id=81705
217         REGRESSION (r111416): fast/dom/prototype-inheritance-2.html is failing.
218
219         Reviewed by Csaba Osztrogonác.
220
221         No new tests.
222
223         * bindings/js/JSDOMBinding.h: Needs passing globalObject to constructArray().
224         (WebCore::jsArray):
225
226 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
227
228         [BlackBerry] Upstreaming blackberry specific css file
229         https://bugs.webkit.org/show_bug.cgi?id=81650
230
231         Ustream BlackBerry specific css files, including:
232         css/themeBlackBerry.css
233         css/mediaControlsBlackBerry.css
234
235         Reviewed by Nikolas Zimmermann.
236
237         No new tests, this is the initial upstream patch
238         for BlackBerry specific css files.
239
240         * css/mediaControlsBlackBerry.css: Added.
241         (audio):
242         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
243         (video:-webkit-full-page-media::-webkit-media-controls-panel):
244         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
245         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
246         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
247         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
248         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
249         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
250         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
251         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
252         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
253         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
254         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
255         * css/themeBlackBerry.css: Added.
256         (textarea):
257         (input, textarea):
258         (input[type="color"]):
259         (select:focus):
260         (select[size][multiple]):
261         (select[size][multiple]:focus):
262
263 2012-03-21  Levi Weintraub  <leviw@chromium.org>
264
265         Update LayoutUnit usage in descendants of RenderReplaced
266         https://bugs.webkit.org/show_bug.cgi?id=80918
267
268         Reviewed by Eric Seidel.
269
270         Replaced elements have to flow in the new sub-pixel Render Tree, but since the rendering of these
271         often takes place outside of WebCore (or in cases such as foreign objects, in WebCore after
272         passing through platform code), care must be taken to determine the final rendered size and
273         location before render time. This patch brings these classes up to the latest and greatest in the
274         subpixellayout branch.
275
276         See https://trac.webkit.org/wiki/LayoutUnit for more information.
277
278         No new tests. No change in behavior.
279
280         * rendering/RenderFrameBase.cpp:
281         (WebCore::RenderFrameBase::layoutWithFlattening): Build Fix.
282         * rendering/RenderFullScreen.cpp:
283         (RenderFullScreen::createPlaceholder): Ditto.
284         * rendering/RenderFullScreen.h:
285         (RenderFullScreen): Ditto.
286         * rendering/RenderHTMLCanvas.cpp:
287         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Ditto.
288         * rendering/RenderIFrame.cpp:
289         (WebCore::RenderIFrame::computeLogicalHeight): Ditto.
290         (WebCore::RenderIFrame::computeLogicalWidth): Ditto.
291         * rendering/RenderImage.cpp:
292         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded): Intrinsic sizes are always integers, since they
293         originate outside of WebCore.
294         (WebCore::RenderImage::paintIntoRect): Use pixel snapping to paint into an arbitrary rect.
295         (WebCore::RenderImage::computeReplacedLogicalWidth): Intrinsic size is always integral -- rounding
296         values to integers.
297         * rendering/RenderImage.h:
298         (RenderImage):
299         * rendering/RenderVideo.cpp:
300         (WebCore::RenderVideo::videoBox):
301         (WebCore::RenderVideo::paintReplaced): Painting at integer boundaries.
302         * rendering/RenderWidget.cpp:
303         (WebCore):
304         (WebCore::roundedIntRect): Widgets are rendered outside of WebCore, so we always align them to
305         integer boundaries. This means we can actually round the size of our ultimate content box. This
306         function is implemented here specifically to prevent its misuse if we put it elsewhere.
307         (WebCore::RenderWidget::setWidgetGeometry): We simplify layout by taking a LayoutRect and rounding
308         it to its final location within this function.
309         (WebCore::RenderWidget::updateWidgetGeometry): We keep things in LayoutUnits until handing off to
310         setWidgetGeometry.
311         (WebCore::RenderWidget::paint): Rounding the paint location before handing painting off to the
312         widget itself.
313         * rendering/RenderWidget.h:
314         (RenderWidget):
315
316 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
317
318         Web Inspector: HeapProfiler: support distance column in Summary View.
319         https://bugs.webkit.org/show_bug.cgi?id=81675
320
321         In many cases when a page leaked an object we see not only this object
322         but the all objects it retains. It is quite difficult to find out which
323         the object is the root of leak. It'd be simpler to sort the leaked
324         objects by Distance column and track down the first one.
325
326         Reviewed by Yury Semikhatsky.
327
328         * inspector/front-end/DetailedHeapshotGridNodes.js:
329         (WebInspector.HeapSnapshotGenericObjectNode):
330         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
331         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
332         (WebInspector.HeapSnapshotConstructorNode):
333         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
334         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
335         * inspector/front-end/DetailedHeapshotView.js:
336         (WebInspector.HeapSnapshotConstructorsDataGrid):
337         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
338         * inspector/front-end/HeapSnapshot.js:
339         (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
340
341 2012-03-21  Charles Wei  <charles.wei@torchmobile.com.cn>
342
343         [BlackBerry] Remove redundant code in SocketStreamHandler
344         https://bugs.webkit.org/show_bug.cgi?id=81726
345
346         Reviewed by George Staikos.
347
348         No new tests needed. Just remove redundant code.
349
350         * platform/network/blackberry/SocketStreamHandle.h:
351         (SocketStreamHandle):
352         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
353
354 2012-03-20  Eric Seidel  <eric@webkit.org>
355
356         Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
357         https://bugs.webkit.org/show_bug.cgi?id=80911
358
359         Reviewed by Adam Barth.
360
361         * CMakeLists.txt:
362          - Look for headers in Source/WTF as well.
363
364 2012-03-20  Dana Jansens  <danakj@chromium.org>
365
366         [chromium] Use origin transform to transform occlusion from surface content space to its target content space
367         https://bugs.webkit.org/show_bug.cgi?id=81730
368
369         Reviewed by Adrienne Walker.
370
371         Unit test: CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent
372
373         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
374         (WebCore::transformSurfaceOpaqueRegion):
375         (WebCore::::leaveToTargetRenderSurface):
376
377 2012-03-19  Shinya Kawanaka  <shinyak@chromium.org>
378
379         [Crash] RenderMenuList::addChild() in Shadow DOM.
380         https://bugs.webkit.org/show_bug.cgi?id=81201
381
382         Reviewed by Dimitri Glazkov.
383
384         <audio>, <video>, <meter>, <progress>, and <select> are implemented using
385         Shadow DOM having HTMLContentElement. Their renderer children basically should not
386         create a renderer unless they are on the upper shadow encapsulation boundary,
387         which means they are the direct children of the shadow root.
388
389         However, current implementation allows their renderer children to create a renderer
390         even if they are on a lower shadow encapsulation boundary, which means
391         they are distributed elements of HTMLContentElement.
392
393         This patch makes there renderer children not to create a renderer if they are on a lower shadow
394         encapsulation boudary.
395
396         Tests: fast/dom/shadow/content-element-in-media-element.html
397                fast/dom/shadow/content-element-in-meter-element.html
398                fast/dom/shadow/content-element-in-progress-element.html
399                fast/dom/shadow/content-element-in-select-element.html
400
401         * dom/NodeRenderingContext.h:
402         (NodeRenderingContext):
403         (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
404         (WebCore):
405         * html/HTMLMediaElement.cpp:
406         (WebCore::HTMLMediaElement::childShouldCreateRenderer):
407         * html/HTMLMeterElement.cpp:
408         (WebCore::HTMLMeterElement::childShouldCreateRenderer):
409         * html/HTMLProgressElement.cpp:
410         (WebCore::HTMLProgressElement::childShouldCreateRenderer):
411         * html/HTMLSelectElement.cpp:
412         (WebCore::HTMLSelectElement::childShouldCreateRenderer):
413
414 2012-03-20  Dana Jansens  <danakj@chromium.org>
415
416         [chromium] Store origin/screen space transforms for surface and replica in the surface
417         https://bugs.webkit.org/show_bug.cgi?id=81296
418
419         Reviewed by Adrienne Walker.
420
421         Compute and save a number of transforms for render surfaces. The origin
422         tranform for the replica into its target surface. The origin transform
423         for the replica into the screen. And the origin transform for the surface
424         into the screen.
425
426         These transforms will allow us to detect occlusion of render surfaces,
427         allowing us to cull (or partially-cull) the render surface quad during
428         drawing.
429
430         This also fixes a subtle bug in the transforms used by the damage
431         tracking code.
432
433         Unit test: CCLayerTreeHostCommonTest.verifyTransformsForSingleRenderSurface
434                    CCLayerTreeHostCommonTest.verifyTransformsForReplica
435                    CCLayerTreeHostCommonTest.verifyTransformsForRenderSurfaceHierarchy
436
437         * platform/graphics/chromium/RenderSurfaceChromium.h:
438         (WebCore::RenderSurfaceChromium::screenSpaceTransform):
439         (WebCore::RenderSurfaceChromium::setScreenSpaceTransform):
440         (RenderSurfaceChromium):
441         (WebCore::RenderSurfaceChromium::replicaOriginTransform):
442         (WebCore::RenderSurfaceChromium::setReplicaOriginTransform):
443         (WebCore::RenderSurfaceChromium::replicaScreenSpaceTransform):
444         (WebCore::RenderSurfaceChromium::setReplicaScreenSpaceTransform):
445         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
446         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
447         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
448         (WebCore::calculateDrawTransformsAndVisibilityInternal):
449         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
450         (WebCore::damageInSurfaceSpace):
451         * platform/graphics/chromium/cc/CCRenderSurface.h:
452         (WebCore::CCRenderSurface::setDrawTransform):
453         (WebCore::CCRenderSurface::drawTransform):
454         (WebCore::CCRenderSurface::setScreenSpaceTransform):
455         (WebCore::CCRenderSurface::screenSpaceTransform):
456         (CCRenderSurface):
457         (WebCore::CCRenderSurface::setReplicaDrawTransform):
458         (WebCore::CCRenderSurface::replicaDrawTransform):
459         (WebCore::CCRenderSurface::setReplicaOriginTransform):
460         (WebCore::CCRenderSurface::replicaOriginTransform):
461         (WebCore::CCRenderSurface::setReplicaScreenSpaceTransform):
462         (WebCore::CCRenderSurface::replicaScreenSpaceTransform):
463
464 2012-03-20  Yoshifumi Inoue  <yosin@chromium.org>
465
466         [Forms] The option element should not be form associated element.
467         https://bugs.webkit.org/show_bug.cgi?id=79764
468
469         Reviewed by Kent Tamura.
470
471         This patch changes base class of HTMLOptionELement to HTMLElement
472         from HTMLFormControlElement for saving memory space and iteration
473         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
474         and matching the HTML5 specification for ease of maintenance.
475
476         This patch changes behavior of handling of CSS pseudo classes "invalid"
477         and "valid". The "option" elements no longer use these CSS pseudo classes
478         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
479
480         Changes of TextIterator is lead by usage of isFormControlElement. This
481         changes will be replaced with more meaningful predicate as part of
482         https://bugs.webkit.org/show_bug.cgi?id=80381
483
484         No new tests but updated select-live-pseudo-selectors.html test.
485
486         * css/CSSStyleSelector.cpp:
487         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
488         * css/SelectorChecker.cpp:
489         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
490         * html/HTMLKeygenElement.cpp:
491         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
492         * html/HTMLOptionElement.cpp:
493         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
494         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
495         (WebCore::HTMLOptionElement::attach): Changeid base class.
496         (WebCore::HTMLOptionElement::detach): Changed base class.
497         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
498         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
499         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
500         * html/HTMLOptionElement.h:
501         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
502         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
503         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
504
505 2012-03-20  Xiaomei Ji  <xji@chromium.org>
506
507         Crash introduced in r110965.
508         https://bugs.webkit.org/show_bug.cgi?id=81720
509
510         Reviewed by Ryosuke Niwa.
511
512         Since word break iterator just keeps a pointer to the UChar array given to the constructor,
513         we need to allocate the UChar array deeper in the stack than the iterator.
514
515         Test: editing/selection/move-by-word-visually-crash-test-5.html
516
517         * editing/visible_units.cpp:
518         (WebCore::wordBreakIteratorForMinOffsetBoundary):
519         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
520         (WebCore::visualWordPosition):
521
522 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
523
524         [chromium] Convert TouchFlingPlatformGestureCurve to a 2-D Bezier for better control of curve shape.
525         https://bugs.webkit.org/show_bug.cgi?id=81713
526
527         Reviewed by Dirk Pranke.
528
529         Exisiting unit test revised to cover this change.
530
531         Change the fling gesture animation curve to use a 2-D Bezier to obtain greater control
532         over the shape of the curve. Also, change time scaling code to be logarithmic for more
533         natural feel.
534
535         * platform/TouchFlingPlatformGestureCurve.cpp:
536         (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
537         (WebCore::TouchFlingPlatformGestureCurve::apply):
538
539 2012-03-18  Tim Horton  <timothy_horton@apple.com>
540
541         Infinite repaint loop with SVGImageCache and deferred repaint timers
542         https://bugs.webkit.org/show_bug.cgi?id=78315
543         <rdar://problem/10651634>
544
545         Reviewed by Nikolas Zimmermann.
546
547         Only defer image redraw on a timer if we're in layout. This breaks
548         the repaint loop while still preventing us from drawing inside layout.
549
550         Completely disable repaint during relayout inside SVGImage::drawSVGToImageBuffer,
551         preventing deferred repaint timers from being started during that process.
552
553         No new tests, as the problem only occurs in a nonstandard configuration.
554
555         * page/FrameView.cpp:
556         (WebCore::FrameView::FrameView):
557         (WebCore::FrameView::reset):
558         (WebCore::FrameView::repaintContentRectangle):
559         (WebCore::FrameView::endDeferredRepaints):
560         (WebCore::FrameView::startDeferredRepaintTimer):
561         (WebCore):
562         (WebCore::FrameView::doDeferredRepaints):
563         (WebCore::FrameView::deferredRepaintTimerFired):
564         (WebCore::FrameView::beginDisableRepaints):
565         (WebCore::FrameView::endDisableRepaints):
566         * page/FrameView.h:
567         (FrameView):
568         (WebCore::FrameView::repaintsDisabled):
569         * rendering/RenderView.cpp:
570         (WebCore::RenderView::shouldRepaint):
571         * svg/graphics/SVGImage.cpp:
572         (WebCore::SVGImage::drawSVGToImageBuffer):
573         (WebCore::SVGImage::draw):
574         (WebCore::SVGImage::frameView):
575         (WebCore):
576         * svg/graphics/SVGImage.h:
577         (WebCore):
578         * svg/graphics/SVGImageCache.cpp:
579         (WebCore::SVGImageCache::imageContentChanged):
580         (WebCore::SVGImageCache::redraw):
581         (WebCore::SVGImageCache::redrawTimerFired):
582         (WebCore):
583         * svg/graphics/SVGImageCache.h:
584         (SVGImageCache):
585
586 2012-03-20  Adam Klein  <adamk@chromium.org>
587
588         Include fix for dom/xhtml test promised in r111449.
589
590         * dom/ContainerNode.cpp:
591         (WebCore::ContainerNode::replaceChild): Check against next instead of
592         prev when deciding there's no work to do.
593
594 2012-03-20  Jon Lee  <jonlee@apple.com>
595
596         Restrict access to notifications for unique origins and file URLs with no local file access
597         https://bugs.webkit.org/show_bug.cgi?id=79704
598         <rdar://problem/10912430>
599
600         Reviewed by Adam Barth.
601
602         Before checking or requesting permissions, we look at whether we can show notifications based on
603         the security context. If not, we short circuit and do not forward the request to the client.
604
605         * notifications/Notification.cpp:
606         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
607         different logic for checking permissions than when checking permissions through the
608         notification center.
609         * notifications/NotificationCenter.cpp:
610         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
611         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
612         we asynchronously call the callback with that decision. Otherwise we ask the client.
613
614         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
615         requestPermission().
616         * notifications/NotificationCenter.h:
617         (NotificationRequestCallback): Add new private class encapsulating the callback.
618         * notifications/NotificationCenter.cpp:
619         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
620         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
621         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
622         to invoke the callback.
623         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
624         (WebCore::NotificationCenter::NotificationRequest::startTimer):
625         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
626         center.
627         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
628         regardless of any restrictions that might otherwise cause toString() to return "null".
629         * page/SecurityOrigin.cpp:
630         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
631         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
632         universal access, we always let it show. Otherwise the client should be asked.
633         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
634         (WebCore::SecurityOrigin::toRawString):
635
636         Added FIXME's regarding the naming of enforceFilePathSeparation().
637         * dom/Document.cpp:
638         (WebCore::Document::initSecurityContext): Also, tab reformatting.
639
640         * WebCore.exp.in: Export toRawString().
641
642 2012-03-20  Mark Pilgrim  <pilgrim@chromium.org>
643
644         Move webaudio to Modules/webaudio/
645         https://bugs.webkit.org/show_bug.cgi?id=81541
646
647         Reviewed by Kentaro Hara.
648
649         No new tests, all existing tests pass.
650
651         * CMakeLists.txt:
652         * DerivedSources.make:
653         * DerivedSources.pri:
654         * GNUmakefile.am:
655         * GNUmakefile.list.am:
656         * Modules/webaudio: Added.
657         * Modules/webaudio/AsyncAudioDecoder.cpp: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.cpp.
658         * Modules/webaudio/AsyncAudioDecoder.h: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.h.
659         * Modules/webaudio/AudioBasicProcessorNode.cpp: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.cpp.
660         * Modules/webaudio/AudioBasicProcessorNode.h: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.h.
661         * Modules/webaudio/AudioBuffer.cpp: Copied from Source/WebCore/webaudio/AudioBuffer.cpp.
662         * Modules/webaudio/AudioBuffer.h: Copied from Source/WebCore/webaudio/AudioBuffer.h.
663         * Modules/webaudio/AudioBuffer.idl: Copied from Source/WebCore/webaudio/AudioBuffer.idl.
664         * Modules/webaudio/AudioBufferCallback.h: Copied from Source/WebCore/webaudio/AudioBufferCallback.h.
665         * Modules/webaudio/AudioBufferCallback.idl: Copied from Source/WebCore/webaudio/AudioBufferCallback.idl.
666         * Modules/webaudio/AudioBufferSourceNode.cpp: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.cpp.
667         * Modules/webaudio/AudioBufferSourceNode.h: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.h.
668         * Modules/webaudio/AudioBufferSourceNode.idl: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.idl.
669         * Modules/webaudio/AudioChannelMerger.cpp: Copied from Source/WebCore/webaudio/AudioChannelMerger.cpp.
670         * Modules/webaudio/AudioChannelMerger.h: Copied from Source/WebCore/webaudio/AudioChannelMerger.h.
671         * Modules/webaudio/AudioChannelMerger.idl: Copied from Source/WebCore/webaudio/AudioChannelMerger.idl.
672         * Modules/webaudio/AudioChannelSplitter.cpp: Copied from Source/WebCore/webaudio/AudioChannelSplitter.cpp.
673         * Modules/webaudio/AudioChannelSplitter.h: Copied from Source/WebCore/webaudio/AudioChannelSplitter.h.
674         * Modules/webaudio/AudioChannelSplitter.idl: Copied from Source/WebCore/webaudio/AudioChannelSplitter.idl.
675         * Modules/webaudio/AudioContext.cpp: Copied from Source/WebCore/webaudio/AudioContext.cpp.
676         * Modules/webaudio/AudioContext.h: Copied from Source/WebCore/webaudio/AudioContext.h.
677         * Modules/webaudio/AudioContext.idl: Copied from Source/WebCore/webaudio/AudioContext.idl.
678         * Modules/webaudio/AudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/AudioDestinationNode.cpp.
679         * Modules/webaudio/AudioDestinationNode.h: Copied from Source/WebCore/webaudio/AudioDestinationNode.h.
680         * Modules/webaudio/AudioDestinationNode.idl: Copied from Source/WebCore/webaudio/AudioDestinationNode.idl.
681         * Modules/webaudio/AudioGain.h: Copied from Source/WebCore/webaudio/AudioGain.h.
682         * Modules/webaudio/AudioGain.idl: Copied from Source/WebCore/webaudio/AudioGain.idl.
683         * Modules/webaudio/AudioGainNode.cpp: Copied from Source/WebCore/webaudio/AudioGainNode.cpp.
684         * Modules/webaudio/AudioGainNode.h: Copied from Source/WebCore/webaudio/AudioGainNode.h.
685         * Modules/webaudio/AudioGainNode.idl: Copied from Source/WebCore/webaudio/AudioGainNode.idl.
686         * Modules/webaudio/AudioListener.cpp: Copied from Source/WebCore/webaudio/AudioListener.cpp.
687         * Modules/webaudio/AudioListener.h: Copied from Source/WebCore/webaudio/AudioListener.h.
688         * Modules/webaudio/AudioListener.idl: Copied from Source/WebCore/webaudio/AudioListener.idl.
689         * Modules/webaudio/AudioNode.cpp: Copied from Source/WebCore/webaudio/AudioNode.cpp.
690         * Modules/webaudio/AudioNode.h: Copied from Source/WebCore/webaudio/AudioNode.h.
691         * Modules/webaudio/AudioNode.idl: Copied from Source/WebCore/webaudio/AudioNode.idl.
692         * Modules/webaudio/AudioNodeInput.cpp: Copied from Source/WebCore/webaudio/AudioNodeInput.cpp.
693         * Modules/webaudio/AudioNodeInput.h: Copied from Source/WebCore/webaudio/AudioNodeInput.h.
694         * Modules/webaudio/AudioNodeOutput.cpp: Copied from Source/WebCore/webaudio/AudioNodeOutput.cpp.
695         * Modules/webaudio/AudioNodeOutput.h: Copied from Source/WebCore/webaudio/AudioNodeOutput.h.
696         * Modules/webaudio/AudioPannerNode.cpp: Copied from Source/WebCore/webaudio/AudioPannerNode.cpp.
697         * Modules/webaudio/AudioPannerNode.h: Copied from Source/WebCore/webaudio/AudioPannerNode.h.
698         * Modules/webaudio/AudioPannerNode.idl: Copied from Source/WebCore/webaudio/AudioPannerNode.idl.
699         * Modules/webaudio/AudioParam.cpp: Copied from Source/WebCore/webaudio/AudioParam.cpp.
700         * Modules/webaudio/AudioParam.h: Copied from Source/WebCore/webaudio/AudioParam.h.
701         * Modules/webaudio/AudioParam.idl: Copied from Source/WebCore/webaudio/AudioParam.idl.
702         * Modules/webaudio/AudioParamTimeline.cpp: Copied from Source/WebCore/webaudio/AudioParamTimeline.cpp.
703         * Modules/webaudio/AudioParamTimeline.h: Copied from Source/WebCore/webaudio/AudioParamTimeline.h.
704         * Modules/webaudio/AudioProcessingEvent.cpp: Copied from Source/WebCore/webaudio/AudioProcessingEvent.cpp.
705         * Modules/webaudio/AudioProcessingEvent.h: Copied from Source/WebCore/webaudio/AudioProcessingEvent.h.
706         * Modules/webaudio/AudioProcessingEvent.idl: Copied from Source/WebCore/webaudio/AudioProcessingEvent.idl.
707         * Modules/webaudio/AudioSourceNode.h: Copied from Source/WebCore/webaudio/AudioSourceNode.h.
708         * Modules/webaudio/AudioSourceNode.idl: Copied from Source/WebCore/webaudio/AudioSourceNode.idl.
709         * Modules/webaudio/BiquadDSPKernel.cpp: Copied from Source/WebCore/webaudio/BiquadDSPKernel.cpp.
710         * Modules/webaudio/BiquadDSPKernel.h: Copied from Source/WebCore/webaudio/BiquadDSPKernel.h.
711         * Modules/webaudio/BiquadFilterNode.cpp: Copied from Source/WebCore/webaudio/BiquadFilterNode.cpp.
712         * Modules/webaudio/BiquadFilterNode.h: Copied from Source/WebCore/webaudio/BiquadFilterNode.h.
713         * Modules/webaudio/BiquadFilterNode.idl: Copied from Source/WebCore/webaudio/BiquadFilterNode.idl.
714         * Modules/webaudio/BiquadProcessor.cpp: Copied from Source/WebCore/webaudio/BiquadProcessor.cpp.
715         * Modules/webaudio/BiquadProcessor.h: Copied from Source/WebCore/webaudio/BiquadProcessor.h.
716         * Modules/webaudio/ConvolverNode.cpp: Copied from Source/WebCore/webaudio/ConvolverNode.cpp.
717         * Modules/webaudio/ConvolverNode.h: Copied from Source/WebCore/webaudio/ConvolverNode.h.
718         * Modules/webaudio/ConvolverNode.idl: Copied from Source/WebCore/webaudio/ConvolverNode.idl.
719         * Modules/webaudio/DOMWindowWebAudio.idl: Copied from Source/WebCore/webaudio/DOMWindowWebAudio.idl.
720         * Modules/webaudio/DefaultAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp.
721         * Modules/webaudio/DefaultAudioDestinationNode.h: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.h.
722         * Modules/webaudio/DelayDSPKernel.cpp: Copied from Source/WebCore/webaudio/DelayDSPKernel.cpp.
723         * Modules/webaudio/DelayDSPKernel.h: Copied from Source/WebCore/webaudio/DelayDSPKernel.h.
724         * Modules/webaudio/DelayNode.cpp: Copied from Source/WebCore/webaudio/DelayNode.cpp.
725         * Modules/webaudio/DelayNode.h: Copied from Source/WebCore/webaudio/DelayNode.h.
726         * Modules/webaudio/DelayNode.idl: Copied from Source/WebCore/webaudio/DelayNode.idl.
727         * Modules/webaudio/DelayProcessor.cpp: Copied from Source/WebCore/webaudio/DelayProcessor.cpp.
728         * Modules/webaudio/DelayProcessor.h: Copied from Source/WebCore/webaudio/DelayProcessor.h.
729         * Modules/webaudio/DynamicsCompressorNode.cpp: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.cpp.
730         * Modules/webaudio/DynamicsCompressorNode.h: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.h.
731         * Modules/webaudio/DynamicsCompressorNode.idl: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.idl.
732         * Modules/webaudio/HighPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/HighPass2FilterNode.cpp.
733         * Modules/webaudio/HighPass2FilterNode.h: Copied from Source/WebCore/webaudio/HighPass2FilterNode.h.
734         * Modules/webaudio/HighPass2FilterNode.idl: Copied from Source/WebCore/webaudio/HighPass2FilterNode.idl.
735         * Modules/webaudio/JavaScriptAudioNode.cpp: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.cpp.
736         * Modules/webaudio/JavaScriptAudioNode.h: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.h.
737         * Modules/webaudio/JavaScriptAudioNode.idl: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.idl.
738         * Modules/webaudio/LowPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/LowPass2FilterNode.cpp.
739         * Modules/webaudio/LowPass2FilterNode.h: Copied from Source/WebCore/webaudio/LowPass2FilterNode.h.
740         * Modules/webaudio/LowPass2FilterNode.idl: Copied from Source/WebCore/webaudio/LowPass2FilterNode.idl.
741         * Modules/webaudio/MediaElementAudioSourceNode.cpp: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.cpp.
742         * Modules/webaudio/MediaElementAudioSourceNode.h: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.h.
743         * Modules/webaudio/MediaElementAudioSourceNode.idl: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.idl.
744         * Modules/webaudio/OfflineAudioCompletionEvent.cpp: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.cpp.
745         * Modules/webaudio/OfflineAudioCompletionEvent.h: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.h.
746         * Modules/webaudio/OfflineAudioCompletionEvent.idl: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.idl.
747         * Modules/webaudio/OfflineAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp.
748         * Modules/webaudio/OfflineAudioDestinationNode.h: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.h.
749         * Modules/webaudio/RealtimeAnalyser.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyser.cpp.
750         * Modules/webaudio/RealtimeAnalyser.h: Copied from Source/WebCore/webaudio/RealtimeAnalyser.h.
751         * Modules/webaudio/RealtimeAnalyserNode.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.cpp.
752         * Modules/webaudio/RealtimeAnalyserNode.h: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.h.
753         * Modules/webaudio/RealtimeAnalyserNode.idl: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.idl.
754         * Modules/webaudio/WaveShaperDSPKernel.cpp: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.cpp.
755         * Modules/webaudio/WaveShaperDSPKernel.h: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.h.
756         * Modules/webaudio/WaveShaperNode.cpp: Copied from Source/WebCore/webaudio/WaveShaperNode.cpp.
757         * Modules/webaudio/WaveShaperNode.h: Copied from Source/WebCore/webaudio/WaveShaperNode.h.
758         * Modules/webaudio/WaveShaperNode.idl: Copied from Source/WebCore/webaudio/WaveShaperNode.idl.
759         * Modules/webaudio/WaveShaperProcessor.cpp: Copied from Source/WebCore/webaudio/WaveShaperProcessor.cpp.
760         * Modules/webaudio/WaveShaperProcessor.h: Copied from Source/WebCore/webaudio/WaveShaperProcessor.h.
761         * WebCore.gyp/WebCore.gyp:
762         * WebCore.gypi:
763         * WebCore.pri:
764         * WebCore.xcodeproj/project.pbxproj:
765         * webaudio/AsyncAudioDecoder.cpp: Removed.
766         * webaudio/AsyncAudioDecoder.h: Removed.
767         * webaudio/AudioBasicProcessorNode.cpp: Removed.
768         * webaudio/AudioBasicProcessorNode.h: Removed.
769         * webaudio/AudioBuffer.cpp: Removed.
770         * webaudio/AudioBuffer.h: Removed.
771         * webaudio/AudioBuffer.idl: Removed.
772         * webaudio/AudioBufferCallback.h: Removed.
773         * webaudio/AudioBufferCallback.idl: Removed.
774         * webaudio/AudioBufferSourceNode.cpp: Removed.
775         * webaudio/AudioBufferSourceNode.h: Removed.
776         * webaudio/AudioBufferSourceNode.idl: Removed.
777         * webaudio/AudioChannelMerger.cpp: Removed.
778         * webaudio/AudioChannelMerger.h: Removed.
779         * webaudio/AudioChannelMerger.idl: Removed.
780         * webaudio/AudioChannelSplitter.cpp: Removed.
781         * webaudio/AudioChannelSplitter.h: Removed.
782         * webaudio/AudioChannelSplitter.idl: Removed.
783         * webaudio/AudioContext.cpp: Removed.
784         * webaudio/AudioContext.h: Removed.
785         * webaudio/AudioContext.idl: Removed.
786         * webaudio/AudioDestinationNode.cpp: Removed.
787         * webaudio/AudioDestinationNode.h: Removed.
788         * webaudio/AudioDestinationNode.idl: Removed.
789         * webaudio/AudioGain.h: Removed.
790         * webaudio/AudioGain.idl: Removed.
791         * webaudio/AudioGainNode.cpp: Removed.
792         * webaudio/AudioGainNode.h: Removed.
793         * webaudio/AudioGainNode.idl: Removed.
794         * webaudio/AudioListener.cpp: Removed.
795         * webaudio/AudioListener.h: Removed.
796         * webaudio/AudioListener.idl: Removed.
797         * webaudio/AudioNode.cpp: Removed.
798         * webaudio/AudioNode.h: Removed.
799         * webaudio/AudioNode.idl: Removed.
800         * webaudio/AudioNodeInput.cpp: Removed.
801         * webaudio/AudioNodeInput.h: Removed.
802         * webaudio/AudioNodeOutput.cpp: Removed.
803         * webaudio/AudioNodeOutput.h: Removed.
804         * webaudio/AudioPannerNode.cpp: Removed.
805         * webaudio/AudioPannerNode.h: Removed.
806         * webaudio/AudioPannerNode.idl: Removed.
807         * webaudio/AudioParam.cpp: Removed.
808         * webaudio/AudioParam.h: Removed.
809         * webaudio/AudioParam.idl: Removed.
810         * webaudio/AudioParamTimeline.cpp: Removed.
811         * webaudio/AudioParamTimeline.h: Removed.
812         * webaudio/AudioProcessingEvent.cpp: Removed.
813         * webaudio/AudioProcessingEvent.h: Removed.
814         * webaudio/AudioProcessingEvent.idl: Removed.
815         * webaudio/AudioSourceNode.h: Removed.
816         * webaudio/AudioSourceNode.idl: Removed.
817         * webaudio/BiquadDSPKernel.cpp: Removed.
818         * webaudio/BiquadDSPKernel.h: Removed.
819         * webaudio/BiquadFilterNode.cpp: Removed.
820         * webaudio/BiquadFilterNode.h: Removed.
821         * webaudio/BiquadFilterNode.idl: Removed.
822         * webaudio/BiquadProcessor.cpp: Removed.
823         * webaudio/BiquadProcessor.h: Removed.
824         * webaudio/ConvolverNode.cpp: Removed.
825         * webaudio/ConvolverNode.h: Removed.
826         * webaudio/ConvolverNode.idl: Removed.
827         * webaudio/DOMWindowWebAudio.idl: Removed.
828         * webaudio/DefaultAudioDestinationNode.cpp: Removed.
829         * webaudio/DefaultAudioDestinationNode.h: Removed.
830         * webaudio/DelayDSPKernel.cpp: Removed.
831         * webaudio/DelayDSPKernel.h: Removed.
832         * webaudio/DelayNode.cpp: Removed.
833         * webaudio/DelayNode.h: Removed.
834         * webaudio/DelayNode.idl: Removed.
835         * webaudio/DelayProcessor.cpp: Removed.
836         * webaudio/DelayProcessor.h: Removed.
837         * webaudio/DynamicsCompressorNode.cpp: Removed.
838         * webaudio/DynamicsCompressorNode.h: Removed.
839         * webaudio/DynamicsCompressorNode.idl: Removed.
840         * webaudio/HighPass2FilterNode.cpp: Removed.
841         * webaudio/HighPass2FilterNode.h: Removed.
842         * webaudio/HighPass2FilterNode.idl: Removed.
843         * webaudio/JavaScriptAudioNode.cpp: Removed.
844         * webaudio/JavaScriptAudioNode.h: Removed.
845         * webaudio/JavaScriptAudioNode.idl: Removed.
846         * webaudio/LowPass2FilterNode.cpp: Removed.
847         * webaudio/LowPass2FilterNode.h: Removed.
848         * webaudio/LowPass2FilterNode.idl: Removed.
849         * webaudio/MediaElementAudioSourceNode.cpp: Removed.
850         * webaudio/MediaElementAudioSourceNode.h: Removed.
851         * webaudio/MediaElementAudioSourceNode.idl: Removed.
852         * webaudio/OfflineAudioCompletionEvent.cpp: Removed.
853         * webaudio/OfflineAudioCompletionEvent.h: Removed.
854         * webaudio/OfflineAudioCompletionEvent.idl: Removed.
855         * webaudio/OfflineAudioDestinationNode.cpp: Removed.
856         * webaudio/OfflineAudioDestinationNode.h: Removed.
857         * webaudio/RealtimeAnalyser.cpp: Removed.
858         * webaudio/RealtimeAnalyser.h: Removed.
859         * webaudio/RealtimeAnalyserNode.cpp: Removed.
860         * webaudio/RealtimeAnalyserNode.h: Removed.
861         * webaudio/RealtimeAnalyserNode.idl: Removed.
862         * webaudio/WaveShaperDSPKernel.cpp: Removed.
863         * webaudio/WaveShaperDSPKernel.h: Removed.
864         * webaudio/WaveShaperNode.cpp: Removed.
865         * webaudio/WaveShaperNode.h: Removed.
866         * webaudio/WaveShaperNode.idl: Removed.
867         * webaudio/WaveShaperProcessor.cpp: Removed.
868         * webaudio/WaveShaperProcessor.h: Removed.
869
870 2012-03-20  Anders Carlsson  <andersca@apple.com>
871
872         Add a per-ScrollableArea tile cache base class
873         https://bugs.webkit.org/show_bug.cgi?id=81694
874
875         Reviewed by Sam Weinig.
876
877         Add an abstract base class, TiledBacking, that can be used to inform tile caches about changed
878         state in scrollable areas (such as the currently visible rect, whether the page is active or not, etc).
879
880         Make TileCache inherit from TiledBacking and port updating the visible rect over to this new mechanism.
881
882         * WebCore.xcodeproj/project.pbxproj:
883         * page/FrameView.cpp:
884         (WebCore::FrameView::tiledBacking):
885         (WebCore):
886         * page/FrameView.h:
887         (FrameView):
888         * platform/ScrollableArea.h:
889         (WebCore):
890         (ScrollableArea):
891         (WebCore::ScrollableArea::tiledBacking):
892         * platform/graphics/GraphicsLayer.h:
893         (WebCore):
894         (WebCore::GraphicsLayer::tiledBacking):
895         * platform/graphics/TiledBacking.h: Added.
896         (WebCore):
897         (TiledBacking):
898         (WebCore::TiledBacking::~TiledBacking):
899         * platform/graphics/ca/GraphicsLayerCA.cpp:
900         (WebCore::GraphicsLayerCA::tiledBacking):
901         * platform/graphics/ca/GraphicsLayerCA.h:
902         (GraphicsLayerCA):
903         * platform/graphics/ca/PlatformCALayer.h:
904         (PlatformCALayer):
905         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
906         (PlatformCALayer::tiledBacking):
907         * platform/graphics/ca/mac/TileCache.h:
908         (TileCache):
909         * platform/graphics/ca/mac/WebTileCacheLayer.h:
910         (WebCore):
911         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
912         (-[WebTileCacheLayer WebCore::]):
913         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
914         (PlatformCALayer::tiledBacking):
915         * rendering/RenderLayerCompositor.cpp:
916         (WebCore::RenderLayerCompositor::frameViewDidScroll):
917
918 2012-03-20  Xiaomei Ji  <xji@chromium.org>
919
920         visual word movement: crashes on CSS generated content.
921         https://bugs.webkit.org/show_bug.cgi?id=81581
922
923         Reviewed by Ryosuke Niwa.
924
925         Check for null pointer when referencing box->renderer()->node() in previousRootInlineBox and nextRootInlineBox.
926
927         Test: editing/selection/move-by-word-visually-crash-test-css-generated-content.html
928
929         * editing/visible_units.cpp:
930         (WebCore::previousRootInlineBox):
931         (WebCore::nextRootInlineBox):
932
933 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
934
935         Use CSSPrimitiveValue::convertToLength() to handle CSSPropertyWebkitBoxReflect and in createGridTrackBreadth.
936         https://bugs.webkit.org/show_bug.cgi?id=81633
937
938         Reviewed by Andreas Kling.
939
940         No new tests / refactoring only.
941
942         * css/CSSStyleSelector.cpp:
943         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
944
945 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
946
947         Unreviewed, rolling out r111442.
948         http://trac.webkit.org/changeset/111442
949         https://bugs.webkit.org/show_bug.cgi?id=81711
950
951         Causes crashes and image mismatches in canvas tests (Requested
952         by leviw on #webkit).
953
954         * html/HTMLCanvasElement.cpp:
955         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
956         (WebCore::HTMLCanvasElement::reset):
957         (WebCore::HTMLCanvasElement::createImageBuffer):
958         (WebCore::HTMLCanvasElement::clearCopiedImage):
959         * html/HTMLCanvasElement.h:
960         (HTMLCanvasElement):
961         * html/canvas/CanvasRenderingContext2D.cpp:
962         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
963         (WebCore::CanvasRenderingContext2D::unwindStateStack):
964         (WebCore::CanvasRenderingContext2D::reset):
965
966 2012-03-20  Adrienne Walker  <enne@google.com>
967
968         RenderLayerCompositor doesn't properly clip graphics layer sizes
969         https://bugs.webkit.org/show_bug.cgi?id=80372
970
971         Reviewed by Simon Fraser.
972
973         To find the bounds for a composited layer, calculateCompositedBounds
974         iterates through all non-composited child layers using z-order and
975         normal flow lists. This does not preserve clipping from ancestor
976         layers, because a clipping ancestor layer can end up as a sibling to
977         its clipped descendent because it is not a stacking context.
978
979         Fix by explicitly checking cached clip roots.
980
981         Test: compositing/clip-child-by-non-stacking-ancestor.html
982
983         * rendering/RenderLayer.cpp:
984         (WebCore::RenderLayer::localClipRect):
985         (WebCore):
986         * rendering/RenderLayer.h:
987         (RenderLayer):
988         * rendering/RenderLayerCompositor.cpp:
989         (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
990         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
991
992 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
993
994         Unreviewed, rolling out r111445 and r111446.
995         http://trac.webkit.org/changeset/111445
996         http://trac.webkit.org/changeset/111446
997         https://bugs.webkit.org/show_bug.cgi?id=81708
998
999         It broke Qt and GTK build intentionally (Requested by Ossy on
1000         #webkit).
1001
1002         * WebCore.exp.in:
1003         * dom/Document.cpp:
1004         (WebCore::Document::initSecurityContext):
1005         * notifications/Notification.cpp:
1006         (WebCore::Notification::Notification):
1007         * notifications/NotificationCenter.cpp:
1008         (WebCore::NotificationCenter::checkPermission):
1009         (WebCore::NotificationCenter::requestPermission):
1010         * notifications/NotificationCenter.h:
1011         (NotificationCenter):
1012         * page/SecurityOrigin.cpp:
1013         (WebCore::SecurityOrigin::toString):
1014         * page/SecurityOrigin.h:
1015         (SecurityOrigin):
1016
1017 2012-03-20  Adam Klein  <adamk@chromium.org>
1018
1019         Refactor ContainerNode::replaceChild to match other mutation methods and share code
1020         https://bugs.webkit.org/show_bug.cgi?id=81579
1021
1022         Reviewed by Ojan Vafai.
1023
1024         Originally landed as r111310, this fixes a bug in replaceChild
1025         introduced when switching to the insert-before logic.
1026
1027         A future change will make use of the consistency among insertBefore/appendChild/replaceChild
1028         to handle insertion of DocumentFragments more cleanly.
1029
1030         No new tests, no change in behavior.
1031
1032         * dom/ContainerNode.cpp:
1033         (WebCore::ContainerNode::replaceChild): Use collectTargetNodes rather than walking through DocumentFragment children.
1034         Insert before rather than inserting after. Dispatch to other methods to update parent/sibling pointers.
1035         (WebCore::ContainerNode::appendChild): Call appendChildToContainer to update parent/sibling pointers.
1036         (WebCore::ContainerNode::parserAddChild): Use type inference in call to appendChildToContainer.
1037
1038 2012-03-20  Jon Lee  <jonlee@apple.com>
1039
1040         Restrict access to notifications for unique origins and file URLs with no local file access
1041         https://bugs.webkit.org/show_bug.cgi?id=79704
1042         <rdar://problem/10912430>
1043
1044         Reviewed by Adam Barth.
1045
1046         Before checking or requesting permissions, we look at whether we can show notifications based on
1047         the security context. If not, we short circuit and do not forward the request to the client.
1048
1049         * notifications/Notification.cpp:
1050         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
1051         different logic for checking permissions than when checking permissions through the
1052         notification center.
1053         * notifications/NotificationCenter.cpp:
1054         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
1055         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
1056         we asynchronously call the callback with that decision. Otherwise we ask the client.
1057
1058         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
1059         requestPermission().
1060         * notifications/NotificationCenter.h:
1061         (NotificationRequestCallback): Add new private class encapsulating the callback.
1062         * notifications/NotificationCenter.cpp:
1063         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
1064         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
1065         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
1066         to invoke the callback.
1067         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
1068         (WebCore::NotificationCenter::NotificationRequest::startTimer):
1069         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
1070         center.
1071         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
1072         regardless of any restrictions that might otherwise cause toString() to return "null".
1073         * page/SecurityOrigin.cpp:
1074         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
1075         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
1076         universal access, we always let it show. Otherwise the client should be asked.
1077         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
1078         (WebCore::SecurityOrigin::toRawString):
1079
1080         Added FIXME's regarding the naming of enforceFilePathSeparation().
1081         * dom/Document.cpp:
1082         (WebCore::Document::initSecurityContext): Also, tab reformatting.
1083
1084         * WebCore.exp.in: Export toRawString().
1085
1086 2012-03-20  Andreas Kling  <kling@webkit.org>
1087
1088         Remove unused CSSPrimitiveValue constructors.
1089         <http://webkit.org/b/81695>
1090
1091         Reviewed by Antti Koivisto.
1092
1093         Kill off CSSPrimitiveValue constructors that aren't used anywhere.
1094
1095         * css/CSSPrimitiveValue.cpp:
1096         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1097         * css/CSSPrimitiveValue.h:
1098         (CSSPrimitiveValueBase):
1099         (WebCore::CSSPrimitiveValueBase::CSSPrimitiveValueBase):
1100         (CSSPrimitiveValue):
1101         * css/CSSPrimitiveValueMappings.h:
1102
1103 2012-03-20  Sami Kyostila  <skyostil@chromium.org>
1104
1105         Reuse buffer allocation if canvas size does not change
1106         https://bugs.webkit.org/show_bug.cgi?id=80871
1107
1108         Reviewed by Stephen White.
1109
1110         If the user changes the width or height attributes of a canvas element,
1111         the contents of the canvas should be cleared and the context state
1112         should be reset. This has become a common idiom to clear the canvas
1113         "efficiently" at the start of a frame.
1114
1115         Previously, this code path triggered a full reallocation of the image
1116         buffer backing the canvas, leading to reduced performance. This patch
1117         implements an optimization where we reuse the previous image buffer
1118         allocation if the size of the canvas did not change. Also, instead of
1119         clearing the canvas every time its dimensions are touched, we only clear
1120         if anything has been drawn into the canvas since it was previously
1121         cleared.
1122
1123         Note that for now this optimization only applies for 2D canvases,
1124         since it is not entirely clear how touching the dimensions of a WebGL
1125         canvas should work.
1126
1127         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
1128               existing layout tests for canvas resetting.
1129
1130         * html/HTMLCanvasElement.cpp:
1131         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
1132         (WebCore::HTMLCanvasElement::reset):
1133         (WebCore::HTMLCanvasElement::createImageBuffer):
1134         (WebCore::HTMLCanvasElement::clearImageBuffer):
1135         (WebCore):
1136         (WebCore::HTMLCanvasElement::clearCopiedImage):
1137         * html/HTMLCanvasElement.h:
1138         (HTMLCanvasElement):
1139         * html/canvas/CanvasRenderingContext2D.cpp:
1140         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Save the
1141         initial graphics context state so we can restore it without creating a
1142         new context.
1143         (WebCore::CanvasRenderingContext2D::unwindStateStack):
1144         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
1145         compositor when the context is reset, because clearing the image buffer
1146         does the same thing. We can also skip the notification if we did not
1147         have an image buffer at the time of the reset, because the reset will
1148         not have any visual impact in this case. Finally, if the canvas size
1149         did change, the notification is also unnecessary because of the call
1150         to RenderObject::repaint() from HTMLCanvasElement::reset().
1151
1152 2012-03-20  Dana Jansens  <danakj@chromium.org>
1153
1154         [chromium] Allow us to disable overdraw metrics when tracing is off
1155         https://bugs.webkit.org/show_bug.cgi?id=81431
1156
1157         Reviewed by Adrienne Walker.
1158
1159         This change allows us to disable overdraw metrics conditionally in the
1160         future with a one-line change in each LayerTreeHost class.
1161
1162         Unit test: CCQuadCullerTest.verifyWithoutMetrics
1163
1164         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1165         (WebCore::CCLayerTreeHost::paintLayerContents):
1166         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1167         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1168         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1169         (WebCore::::CCOcclusionTrackerBase):
1170         (WebCore):
1171         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1172         (CCOcclusionTrackerBase):
1173         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
1174         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
1175         (WebCore::CCOverdrawMetrics::didCull):
1176         (WebCore::CCOverdrawMetrics::didDraw):
1177         (WebCore::CCOverdrawMetrics::recordMetrics):
1178         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
1179         (WebCore::CCOverdrawMetrics::create):
1180         (CCOverdrawMetrics):
1181
1182 2012-03-20  Robert Hogan  <robert@webkit.org>
1183
1184         Use-after-free of continuation in RenderBlock::paintContinuationOutlines()
1185         https://bugs.webkit.org/show_bug.cgi?id=81276
1186
1187         Reviewed by David Hyatt.
1188
1189         Test: fast/css/relative-positioned-block-crash.html
1190
1191         https://trac.webkit.org/changeset/108185/ allowed anonymous blocks to get their own layer (when they're
1192         relatively positioned). This broke the dependency in addContinuationWithOutline() on the owner of the continuation
1193         table and the renderer getting added to it always being in the same layer. When they're not in the same layer
1194         there's no guarantee that the owner of the continuation table will get painted again and so avoid any stale pointers
1195         in its continuation table should any of the renderers in there get destroyed.
1196
1197         Fix this for now by only adding renderers to the containing block's continuation table if we don't have our own layer.
1198         This fix causes fast/inline/continuation-outlines-with-layers.html to regress as it uses blocks inside relatively positioned
1199         inlines, so skip it on all platforms pending a medium-term fix.
1200
1201         * rendering/RenderBlock.cpp:
1202         (WebCore::RenderBlock::paintObject):
1203
1204 2012-03-20  Adele Peterson  <adele@apple.com>
1205
1206         "Attempt to insert nil value " exception when calling attributed string APIs on content with a custom font
1207         https://bugs.webkit.org/show_bug.cgi?id=81630
1208         <rdar://problem/10650660> 
1209
1210         Reviewed by Alexey Proskuryakov. 
1211
1212         Test: TestWebKitAPI/Tests/mac/AttributedString.mm 
1213
1214         If content is using a custom font, then the platform font will be nil and needs to be nil checked.
1215
1216         * platform/mac/HTMLConverter.mm: (+[WebHTMLConverter editingAttributedStringFromRange:]):
1217
1218 2012-03-20  Julien Chaffraix  <jchaffraix@webkit.org>
1219
1220         Make distributeExtraLogicalHeightToRows return the consumed logical height
1221         https://bugs.webkit.org/show_bug.cgi?id=81678
1222
1223         Reviewed by Tony Chang.
1224
1225         Small refactoring, no change in behavior.
1226
1227         * rendering/RenderTable.cpp:
1228         (WebCore::RenderTable::distributeExtraLogicalHeight):
1229         Remove the consumed logical height from the available height.
1230
1231         * rendering/RenderTableSection.cpp:
1232         (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows):
1233         (WebCore::RenderTableSection::distributeExtraLogicalHeightToAutoRows):
1234         (WebCore::RenderTableSection::distributeRemainingExtraLogicalHeight):
1235         Changed those method to not return anything but remove from the available width.
1236
1237         (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows):
1238         Return the consumed logical height.
1239
1240         * rendering/RenderTableSection.h:
1241         Updated the previous distribute functions signature and the comment about
1242         the returned value from distributeExtraLogicalHeightToRows.
1243
1244 2012-03-20  Jacky Jiang  <zhajiang@rim.com>
1245
1246         [BlackBerry] Dijit crash WebCore::CookieManager::getRawCookies
1247         https://bugs.webkit.org/show_bug.cgi?id=81686
1248
1249         Reviewed by Rob Buis.
1250
1251         HTML plugin element with an empty src caused an ASSERT failure on debug
1252         build and a crash on release build.
1253         When getting cookie, url can be null, so we need to check for it to
1254         avoid the crash.
1255
1256         No new tests as this is covered by
1257         LayoutTests/fast/loader/empty-embed-src-attribute.html.
1258
1259         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
1260         (WebCore::ResourceRequest::initializePlatformRequest):
1261
1262 2012-03-20  Vsevolod Vlasov  <vsevik@chromium.org>
1263
1264         Web Inspector: Tabbed pane drop down should be sorted.
1265         https://bugs.webkit.org/show_bug.cgi?id=81680
1266
1267         Reviewed by Pavel Feldman.
1268
1269         * inspector/front-end/TabbedPane.js:
1270         (WebInspector.TabbedPane.prototype._populateDropDownFromIndex.compareFunction):
1271         (WebInspector.TabbedPane.prototype._populateDropDownFromIndex):
1272
1273 2012-03-20  Vsevolod Vlasov  <vsevik@chromium.org>
1274
1275         Web Inspector: Open resource dialog scripts list should be sorted.
1276         https://bugs.webkit.org/show_bug.cgi?id=81682
1277
1278         Reviewed by Pavel Feldman.
1279
1280         * inspector/front-end/FilteredItemSelectionDialog.js:
1281         (WebInspector.OpenResourceDialog.compareFunction):
1282         (WebInspector.OpenResourceDialog):
1283
1284 2012-03-20  Dana Jansens  <danakj@chromium.org>
1285
1286         [chromium] Use opaque contents for paint culling
1287         https://bugs.webkit.org/show_bug.cgi?id=81676
1288
1289         Reviewed by Adrienne Walker.
1290
1291         UnitTest: CCLayerTreeHostTestContentLayerOcclusion
1292
1293         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1294         (WebCore::CCLayerTreeHost::paintLayerContents):
1295
1296 2012-03-20  Dan Bernstein  <mitz@apple.com>
1297
1298         Build fix after r111419.
1299
1300         * dom/WebKitNamedFlow.cpp:
1301         * dom/WebKitNamedFlow.h:
1302
1303 2012-03-20  Dan Bernstein  <mitz@apple.com>
1304
1305         REGRESSION (r111229): css1/basic/inheritance.html is failing
1306         https://bugs.webkit.org/show_bug.cgi?id=81684
1307
1308         Reverted r111229.
1309
1310         Rubber-stamped by Dave Hyatt.
1311
1312         * dom/Document.cpp:
1313         (WebCore::Document::webkitGetFlowByName):
1314         * dom/Document.h:
1315         (Document):
1316         * dom/Element.cpp:
1317         (WebCore::Element::detach):
1318         * dom/NodeRenderingContext.cpp:
1319         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
1320         * dom/WebKitNamedFlow.cpp:
1321         (WebCore):
1322         * dom/WebKitNamedFlow.h:
1323         (WebCore):
1324         (WebKitNamedFlow):
1325         * dom/WebKitNamedFlow.idl:
1326
1327 2012-03-20  Vineet Chaudhary  <rgf748@motorola.com>
1328
1329         https://bugs.webkit.org/show_bug.cgi?id=80696
1330         Remove custom bindings for attribute type Array.
1331
1332         Reviewed by Kentaro Hara.
1333
1334         No new tests.
1335
1336         * bindings/js/JSConsoleCustom.cpp: Removed custom function.
1337         (WebCore):
1338         * bindings/js/JSDOMBinding.h: Added template jsArray and toNativeArray.
1339         (WebCore):
1340         (WebCore::jsArray):
1341         (WebCore::toNativeArray):
1342         * bindings/scripts/CodeGenerator.pm: Modified codegenerators to generate appropriate code.
1343         (GetArrayType): Added GetArrayType to get return type of attribute interface.
1344         * bindings/scripts/CodeGeneratorGObject.pm: Modified codegenerators to generate appropriate code.
1345         (SkipAttribute):
1346         * bindings/scripts/CodeGeneratorJS.pm: Modified codegenerators to generate appropriate code.
1347         (AddIncludesForType):
1348         (JSValueToNative):
1349         (NativeToJSValue):
1350         * bindings/scripts/CodeGeneratorV8.pm: Modified codegenerators to generate appropriate code.
1351         (GenerateNormalAttrGetter):
1352         (GenerateNormalAttrSetter):
1353         (JSValueToNative):
1354         (NativeToJSValue):
1355         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated results from running binding tests.
1356         (webkit_dom_test_obj_get_property):
1357         (webkit_dom_test_obj_class_init):
1358         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
1359         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
1360         (WebCore::jsTestObjSequenceAttr):
1361         (WebCore::setJSTestObjSequenceAttr):
1362         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
1363         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
1364         (WebCore::TestObjInternal::sequenceAttrAttrGetter):
1365         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
1366         (WebCore::TestObjInternal::methodReturningSequenceCallback):
1367         * bindings/v8/V8Binding.h: Added template v8Array and toNativeArray.
1368         (WebCore):
1369         (WebCore::v8Array):
1370         (WebCore::toNativeArray):
1371         * bindings/v8/custom/V8ConsoleCustom.cpp: Removed custom function.
1372         (WebCore):
1373         * page/Console.idl: Replaced attribute type Array to sequence<SriptProfile> to remove
1374           custom bindings.
1375
1376 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1377
1378         Unreviewed, rolling out r111310.
1379         http://trac.webkit.org/changeset/111310
1380         https://bugs.webkit.org/show_bug.cgi?id=81683
1381
1382         Broke layout test
1383         dom/xhtml/level3/core/nodereplacechild30.xhtml (Requested by
1384         aklein on #webkit).
1385
1386         * dom/ContainerNode.cpp:
1387         (WebCore::ContainerNode::replaceChild):
1388         (WebCore::ContainerNode::appendChild):
1389         (WebCore::ContainerNode::parserAddChild):
1390
1391 2012-03-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1392
1393         Convert hasSpellingMarker to use Internals interface.
1394         https://bugs.webkit.org/show_bug.cgi?id=81300
1395
1396         Reviewed by Ryosuke Niwa.
1397
1398         Remove hasSpellingMarker functions, because it is able to work in the
1399         cross-port way through the Internals interface.
1400
1401         No new tests, since we are improving here the infra-structure
1402         for testing a specific method.
1403
1404         * testing/Internals.cpp:
1405         (WebCore::Internals::hasSpellingMarker):
1406         (WebCore):
1407         * testing/Internals.h:
1408         (Internals):
1409         * testing/Internals.idl:
1410
1411 2012-03-20  Dan Bernstein  <mitz@apple.com>
1412
1413         Build fix.
1414
1415         * history/PageCache.cpp: Fixed an unused function warning introduced in r111391.
1416
1417 2012-03-20  Konrad Piascik  <kpiascik@rim.com>
1418
1419         (r110063) m_mouseDownMayStartDrag is used without being behind the ENABLE(DRAG_SUPPORT) macro
1420         https://bugs.webkit.org/show_bug.cgi?id=81666
1421
1422         Reviewed by Rob Buis.
1423
1424         Compiled with feature disabled and built.
1425
1426         * page/EventHandler.cpp:
1427         (WebCore::EventHandler::selectCursor):
1428
1429 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
1430
1431         [chromium] Tune fling physics curve. [Not for review yet]
1432         https://bugs.webkit.org/show_bug.cgi?id=81398
1433
1434         Reviewed by James Robinson.
1435
1436         Existing tests updated.
1437
1438         Tune physics of curve for better feel.
1439
1440         * platform/TouchFlingPlatformGestureCurve.cpp:
1441         (WebCore::TouchFlingPlatformGestureCurve::apply):
1442
1443 2012-03-20  Alexis Menard  <alexis.menard@openbossa.org>
1444
1445         Implement a fast path when setting CSS properties with keywords from JS.
1446         https://bugs.webkit.org/show_bug.cgi?id=80874
1447
1448         Reviewed by Antti Koivisto.
1449
1450         The idea is to avoid the creation of the CSSParser instance and to run the parser on
1451         a string we know it should be a keyword. When JS calls parseValue we try to check if we can
1452         use the fast path and if the keyword is accepted then we just add it to the declaration directly.
1453         For the sake of maintenance the parseValue function used by CSSGrammar.y is sharing some code with
1454         the fast path (keyword matching mostly).
1455
1456         This patch improves this use case by 20%. Setting keyword properties from JS is used a lot in
1457         Google Maps for example (when zooming or panning).
1458
1459         No new tests : it's a performance improvement, there shouldn't be any behavior change.
1460
1461         * css/CSSParser.cpp:
1462         (WebCore):
1463         (WebCore::isValidKeywordPropertyAndValue):
1464         (WebCore::isKeywordPropertyID):
1465         (WebCore::parseKeywordValue):
1466         (WebCore::CSSParser::parseValue):
1467
1468 2012-03-20  Ian Vollick  <vollick@chromium.org>
1469
1470         [chromium] Infrastructure to allow animating layers to be only partially updated
1471         https://bugs.webkit.org/show_bug.cgi?id=81106
1472
1473         Reviewed by James Robinson
1474
1475         Merged the controller tests in CCLayerAnimationControllerTest
1476
1477         * WebCore.gypi:
1478         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1479         * platform/graphics/chromium/GraphicsLayerChromium.h:
1480         (GraphicsLayerChromium):
1481         * platform/graphics/chromium/LayerChromium.cpp:
1482         (WebCore::LayerChromium::LayerChromium):
1483         (WebCore::LayerChromium::pushPropertiesTo):
1484         (WebCore::LayerChromium::setOpacityFromAnimation):
1485         (WebCore):
1486         (WebCore::LayerChromium::setTransformFromAnimation):
1487         (WebCore::LayerChromium::addAnimation):
1488         (WebCore::LayerChromium::pauseAnimation):
1489         (WebCore::LayerChromium::removeAnimation):
1490         (WebCore::LayerChromium::suspendAnimations):
1491         (WebCore::LayerChromium::resumeAnimations):
1492         (WebCore::LayerChromium::setLayerAnimationController):
1493         (WebCore::LayerChromium::hasActiveAnimation):
1494         (WebCore::LayerChromium::setAnimationEvent):
1495         * platform/graphics/chromium/LayerChromium.h:
1496         (WebCore):
1497         (LayerChromium):
1498         (WebCore::LayerChromium::id):
1499         (WebCore::LayerChromium::opacity):
1500         (WebCore::LayerChromium::transform):
1501         (WebCore::LayerChromium::bounds):
1502         * platform/graphics/chromium/cc/CCActiveAnimation.h:
1503         (CCActiveAnimation):
1504         * platform/graphics/chromium/cc/CCAnimationEvents.cpp:
1505         (WebCore::CCAnimationEvent::CCAnimationEvent):
1506         (WebCore::CCAnimationEvent::toFloatAnimationFinishedEvent):
1507         (WebCore::CCAnimationEvent::toTransformAnimationFinishedEvent):
1508         (WebCore::CCAnimationStartedEvent::create):
1509         (WebCore):
1510         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
1511         (WebCore::CCFloatAnimationFinishedEvent::create):
1512         (WebCore::CCFloatAnimationFinishedEvent::CCFloatAnimationFinishedEvent):
1513         (WebCore::CCFloatAnimationFinishedEvent::~CCFloatAnimationFinishedEvent):
1514         (WebCore::CCFloatAnimationFinishedEvent::type):
1515         (WebCore::CCTransformAnimationFinishedEvent::create):
1516         (WebCore::CCTransformAnimationFinishedEvent::CCTransformAnimationFinishedEvent):
1517         (WebCore::CCTransformAnimationFinishedEvent::~CCTransformAnimationFinishedEvent):
1518         (WebCore::CCTransformAnimationFinishedEvent::type):
1519         * platform/graphics/chromium/cc/CCAnimationEvents.h:
1520         (WebCore):
1521         (WebCore::CCAnimationEvent::targetProperty):
1522         (CCAnimationEvent):
1523         (CCAnimationStartedEvent):
1524         (CCFloatAnimationFinishedEvent):
1525         (WebCore::CCFloatAnimationFinishedEvent::finalValue):
1526         (CCTransformAnimationFinishedEvent):
1527         (WebCore::CCTransformAnimationFinishedEvent::finalValue):
1528         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1529         (WebCore::CCLayerAnimationController::CCLayerAnimationController):
1530         (WebCore::CCLayerAnimationController::create):
1531         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
1532         (WebCore::CCLayerAnimationController::animate):
1533         (WebCore):
1534         (WebCore::CCLayerAnimationController::add):
1535         (WebCore::CCLayerAnimationController::getActiveAnimation):
1536         (WebCore::CCLayerAnimationController::hasActiveAnimation):
1537         (WebCore::CCLayerAnimationController::isAnimatingProperty):
1538         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
1539         (WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
1540         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
1541         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
1542         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
1543         (WebCore::CCLayerAnimationController::resolveConflicts):
1544         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
1545         (WebCore::CCLayerAnimationController::tickAnimations):
1546         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
1547         (WebCore):
1548         (CCLayerAnimationControllerClient):
1549         (WebCore::CCLayerAnimationControllerClient::~CCLayerAnimationControllerClient):
1550         (CCLayerAnimationController):
1551         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp: Removed.
1552         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h: Removed.
1553         * platform/graphics/chromium/cc/CCLayerAnimationDelegate.h:
1554         (CCLayerAnimationDelegate):
1555         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1556         (WebCore::CCLayerImpl::CCLayerImpl):
1557         (WebCore::CCLayerImpl::setOpacityFromAnimation):
1558         (WebCore):
1559         (WebCore::CCLayerImpl::setTransformFromAnimation):
1560         * platform/graphics/chromium/cc/CCLayerImpl.h:
1561         (CCLayerImpl):
1562         (WebCore::CCLayerImpl::id):
1563         (WebCore::CCLayerImpl::layerAnimationController):
1564         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1565         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1566         (WebCore::CCLayerTreeHost::updateAnimations):
1567         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
1568         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
1569         (WebCore::CCLayerTreeHost::animateLayers):
1570         (WebCore):
1571         (WebCore::CCLayerTreeHost::animateLayersRecursive):
1572         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1573         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1574         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1575         (WebCore::CCLayerTreeHostImpl::animateLayersRecursive):
1576         (WebCore::CCLayerTreeHostImpl::animateLayers):
1577         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1578         (CCLayerTreeHostImpl):
1579         * platform/graphics/chromium/cc/CCThreadProxy.h:
1580         (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
1581
1582 2012-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
1583
1584         Web Inspector: REGRESSION Detached DOM Nodes are not highlighted
1585         https://bugs.webkit.org/show_bug.cgi?id=81662
1586
1587         Reviewed by Yury Semikhatsky.
1588
1589         * inspector/front-end/HeapSnapshot.js:
1590         (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTree):
1591
1592 2012-03-20  Gavin Peters  <gavinp@chromium.org>
1593
1594         New PageCache histogram for tracking the highest leverage frame reject reasons.
1595         https://bugs.webkit.org/show_bug.cgi?id=81358
1596
1597         Reviewed by Adam Barth.
1598
1599         The current chromium FrameClientImpl always denies page cache; but
1600         that's easily fixable.  This histogram tracks which rejection
1601         causes occur alone with that cause.  I'm particularly interested
1602         in knowing how many more pages would work in the page cache if we
1603         could get plugins in.
1604
1605         * history/PageCache.cpp:
1606         (WebCore::logCanCachePageDecision):
1607
1608 2012-03-15  Pavel Podivilov  <podivilov@chromium.org>
1609
1610         Web Inspector: support inline source maps.
1611         https://bugs.webkit.org/show_bug.cgi?id=81248
1612
1613         - support optional map.sourcesContent array with sources content
1614         - support data: url as script sourceMapURL, e.g. "//@ sourceMappingURL=data:application/json;base64,<base64-encoded map>"
1615
1616         Reviewed by Pavel Feldman.
1617
1618         * inspector/front-end/CompilerSourceMapping.js:
1619         (WebInspector.ClosureCompilerSourceMapping):
1620         (WebInspector.ClosureCompilerSourceMapping.prototype.loadSourceCode):
1621         (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
1622         (WebInspector.ClosureCompilerSourceMapping.prototype._canonicalizeURL):
1623
1624 2012-03-20  Pavel Feldman  <pfeldman@chromium.org>
1625
1626         Web Inspector: treat Uint* external arrays as arrays in console.
1627         https://bugs.webkit.org/show_bug.cgi?id=81653
1628
1629         Reviewed by Yury Semikhatsky.
1630
1631         * bindings/js/JSInjectedScriptHostCustom.cpp:
1632         (WebCore::JSInjectedScriptHost::type):
1633         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1634         (WebCore::V8InjectedScriptHost::typeCallback):
1635
1636 2012-03-20  Andreas Kling  <kling@webkit.org>
1637
1638         Let CSSImageValue inherit directly from CSSValue.
1639         <http://webkit.org/b/81635>
1640
1641         Reviewed by Antti Koivisto.
1642
1643         This removes the last of the CSSPrimitiveValue subclasses, which will
1644         open up the class to heavier refactoring.
1645
1646         Those CSSImageValues that used to represent the 'none' value are now
1647         simply created as CSSPrimitiveValue identifiers by the parser.
1648
1649         Test: fast/css/image-value-type.html
1650
1651         * css/CSSCursorImageValue.cpp:
1652         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
1653         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
1654         (WebCore::CSSCursorImageValue::cachedImage):
1655         * css/CSSImageValue.cpp:
1656         (WebCore::CSSImageValue::CSSImageValue):
1657         (WebCore::CSSImageValue::cachedOrPendingImage):
1658         (WebCore::CSSImageValue::cachedImage):
1659         (WebCore::CSSImageValue::customCssText):
1660         * css/CSSImageValue.h:
1661         (WebCore::CSSImageValue::url):
1662         * css/CSSParser.cpp:
1663         (WebCore::CSSParser::parseValue):
1664         (WebCore::CSSParser::parseFillImage):
1665         (WebCore::CSSParser::parseBorderImage):
1666         * css/CSSStyleApplyProperty.cpp:
1667         (WebCore::ApplyPropertyCursor::applyValue):
1668         * css/CSSStyleSelector.cpp:
1669         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1670         * css/CSSValue.h:
1671         (WebCore::CSSValue::isPrimitiveValue):
1672
1673 2012-03-20  Pavel Feldman  <pfeldman@chromium.org>
1674
1675         Web Inspector: call .length as the last check when detecting arrays.
1676         https://bugs.webkit.org/show_bug.cgi?id=81335
1677
1678         Reviewed by Yury Semikhatsky.
1679
1680         * inspector/InjectedScriptSource.js:
1681
1682 2012-03-20  Alexander Pavlov  <apavlov@chromium.org>
1683
1684         Web Inspector: newly added CSS rules shouldn't rewrite HTML content in the resources panel
1685         https://bugs.webkit.org/show_bug.cgi?id=81414
1686
1687         Reviewed by Vsevolod Vlasov.
1688
1689         * inspector/front-end/CSSStyleModel.js:
1690         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.setContent):
1691         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
1692
1693 2012-03-20  Yury Semikhatsky  <yurys@chromium.org>
1694
1695         Web Inspector: provide class name filter for "comparison" view in heap profiler
1696         https://bugs.webkit.org/show_bug.cgi?id=81641
1697
1698         Class name filtering now works for both Summary and Comparison views.
1699
1700         Reviewed by Pavel Feldman.
1701
1702         * inspector/front-end/DetailedHeapshotView.js:
1703         (WebInspector.DetailedHeapshotView.prototype._createToolbarWithClassNameFilter):
1704         (WebInspector.DetailedHeapshotView.prototype._changeNameFilter):
1705         * inspector/front-end/heapProfiler.css:
1706         (.detailed-heapshot-view .class-view-grid):
1707         (.detailed-heapshot-view .class-view-toolbar):
1708         (.detailed-heapshot-view .class-view-toolbar input.class-name-filter):
1709
1710 2012-03-20  Nikolas Zimmermann  <nzimmermann@rim.com>
1711
1712         Make animVal support type-safe
1713         https://bugs.webkit.org/show_bug.cgi?id=81640
1714
1715         Reviewed by Antti Koivisto.
1716
1717         Test: svg/animations/force-use-shadow-tree-recreation-while-animating.html
1718
1719         Redesign animVal support in a type-safe fashion, avoiding the SVGGenericAnimatedType
1720         and associated reinterpret_casts, which require all call-sites to assure that the
1721         types are safe to cast, before actually calling the method.
1722
1723         Remove pure virtual animationStarted/Ended/ValueWillChange/ValueDidChange & currentBaseValueVariant methods from SVGAnimatedProperty,
1724         and de-virtualize them in classes that inherit from SVGAnimatedProperty, like SVGAnimatedPropertyTearOff, etc.
1725
1726         Add startAnimValAnimation/stopAnimValAnimation/resetAnimValToBaseVal/animValWillChange/animVallDidChange methods to all
1727         SVGAnimatedXXXAnimator classes that currently support animVal (SVGAnimatedLength/LengthList/Number(OptionalNumber)/NumberList/TransformList).
1728         Those SVGAnimatedLengthAnimator can cast the generic SVGAnimatedProperty* associated with a certain SVG DOM property, to the real type
1729         eg. SVGAnimatedLength (which is a SVGAnimatedPropertyTearOff<SVGLength>). This way we can call those methods, without relying on virtual
1730         function calls. Also it makes the "SVGGenericAnimatedType* currentBaseValueVariant()" accessor needless, as we can just call the method
1731         right on eg. the SVGAnimatedLength, which gives us the "const SVGLength&" object, instead of a generic pointer type, that we have to
1732         reinterpret_cast to some hopefully-matching expected type. The new approach is truly type-safey, but needs a bit more boilerplate code.
1733
1734         To reduce the amount of copy&paste across the SVGAnimatedXXXAnimator classes, all code is placed in template functions in
1735         SVGAnimatedTypeAnimator.h, which can be shared across all SVGAnimatedXXXAnimator classes, that inherit from SVGAnimatedTypeAnimator.
1736
1737         Test: svg/animations/force-use-shadow-tree-recreation-while-animating.html
1738
1739         * svg/SVGAnimateElement.cpp:
1740         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1741         (WebCore::SVGAnimateElement::resetToBaseValue):
1742         (WebCore::SVGAnimateElement::applyResultsToTarget):
1743         (WebCore):
1744         (WebCore::SVGAnimateElement::targetElementWillChange):
1745         * svg/SVGAnimatedLength.cpp:
1746         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
1747         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
1748         (WebCore):
1749         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
1750         (WebCore::SVGAnimatedLengthAnimator::animValWillChange):
1751         (WebCore::SVGAnimatedLengthAnimator::animValDidChange):
1752         * svg/SVGAnimatedLength.h:
1753         (WebCore):
1754         (SVGAnimatedLengthAnimator):
1755         * svg/SVGAnimatedLengthList.cpp:
1756         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
1757         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
1758         (WebCore):
1759         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
1760         (WebCore::SVGAnimatedLengthListAnimator::animValWillChange):
1761         (WebCore::SVGAnimatedLengthListAnimator::animValDidChange):
1762         * svg/SVGAnimatedLengthList.h:
1763         (WebCore):
1764         (SVGAnimatedLengthListAnimator):
1765         * svg/SVGAnimatedNumber.cpp:
1766         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
1767         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
1768         (WebCore):
1769         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
1770         (WebCore::SVGAnimatedNumberAnimator::animValWillChange):
1771         (WebCore::SVGAnimatedNumberAnimator::animValDidChange):
1772         * svg/SVGAnimatedNumber.h:
1773         (WebCore):
1774         (SVGAnimatedNumberAnimator):
1775         * svg/SVGAnimatedNumberList.cpp:
1776         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
1777         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
1778         (WebCore):
1779         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
1780         (WebCore::SVGAnimatedNumberListAnimator::animValWillChange):
1781         (WebCore::SVGAnimatedNumberListAnimator::animValDidChange):
1782         * svg/SVGAnimatedNumberList.h:
1783         (WebCore):
1784         (SVGAnimatedNumberListAnimator):
1785         * svg/SVGAnimatedNumberOptionalNumber.cpp:
1786         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
1787         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
1788         (WebCore):
1789         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
1790         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
1791         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
1792         * svg/SVGAnimatedNumberOptionalNumber.h:
1793         (WebCore):
1794         (SVGAnimatedNumberOptionalNumberAnimator):
1795         * svg/SVGAnimatedTransformList.cpp:
1796         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
1797         (WebCore):
1798         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
1799         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
1800         (WebCore::SVGAnimatedTransformListAnimator::animValWillChange):
1801         (WebCore::SVGAnimatedTransformListAnimator::animValDidChange):
1802         * svg/SVGAnimatedTransformList.h:
1803         (WebCore):
1804         (SVGAnimatedTransformListAnimator):
1805         * svg/SVGAnimatedType.h:
1806         (WebCore):
1807         * svg/SVGAnimatedTypeAnimator.h:
1808         (WebCore):
1809         (SVGAnimatedTypeAnimator):
1810         (WebCore::SVGAnimatedTypeAnimator::startAnimValAnimation):
1811         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimation):
1812         (WebCore::SVGAnimatedTypeAnimator::resetAnimValToBaseVal):
1813         (WebCore::SVGAnimatedTypeAnimator::animValWillChange):
1814         (WebCore::SVGAnimatedTypeAnimator::animValDidChange):
1815         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
1816         (WebCore::SVGAnimatedTypeAnimator::startAnimation):
1817         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
1818         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
1819         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
1820         (WebCore::SVGAnimatedTypeAnimator::constructFromOneBaseValue):
1821         (WebCore::SVGAnimatedTypeAnimator::resetFromOneBaseValue):
1822         (WebCore::SVGAnimatedTypeAnimator::constructFromTwoBaseValues):
1823         (WebCore::SVGAnimatedTypeAnimator::resetFromTwoBaseValues):
1824         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
1825         (WebCore::SVGAnimatedTypeAnimator::collectAnimatedPropertiesFromInstances):
1826         * svg/SVGAnimationElement.cpp:
1827         (WebCore::SVGAnimationElement::applyAnimatedValue):
1828         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
1829         * svg/SVGAnimationElement.h:
1830         (SVGAnimationElement):
1831         * svg/SVGElementInstance.cpp:
1832         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
1833         (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
1834         (WebCore):
1835         (WebCore::SVGElementInstance::InstanceUpdateBlocker::~InstanceUpdateBlocker):
1836         * svg/SVGElementInstance.h:
1837         (WebCore):
1838         (InstanceUpdateBlocker):
1839         (SVGElementInstance):
1840         * svg/properties/SVGAnimatedListPropertyTearOff.h:
1841         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValue):
1842         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
1843         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
1844         (WebCore::SVGAnimatedListPropertyTearOff::animValWillChange):
1845         (WebCore::SVGAnimatedListPropertyTearOff::animValDidChange):
1846         * svg/properties/SVGAnimatedProperty.h:
1847         (WebCore):
1848         * svg/properties/SVGAnimatedPropertyTearOff.h:
1849         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue):
1850         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
1851         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
1852         (WebCore::SVGAnimatedPropertyTearOff::animValWillChange):
1853         (WebCore::SVGAnimatedPropertyTearOff::animValDidChange):
1854         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
1855         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValue):
1856         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
1857         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
1858         (WebCore::SVGAnimatedStaticPropertyTearOff::animValWillChange):
1859         (WebCore::SVGAnimatedStaticPropertyTearOff::animValDidChange):
1860
1861 2012-03-20  Mihnea Ovidenie  <mihnea@adobe.com>
1862
1863         [CSSRegions]Implement NamedFlow::getRegionsByContentNode
1864         https://bugs.webkit.org/show_bug.cgi?id=77746
1865
1866         Reviewed by David Hyatt.
1867
1868         The list of regions returned is a static node list.
1869
1870         Tests: fast/regions/get-regions-by-content-node-horiz-bt.html
1871                fast/regions/get-regions-by-content-node-horiz-tb.html
1872                fast/regions/get-regions-by-content-node-vert-lr.html
1873                fast/regions/get-regions-by-content-node-vert-rl.html
1874                fast/regions/get-regions-by-content-node.html
1875                fast/regions/get-regions-by-content-node2.html
1876
1877         * dom/WebKitNamedFlow.cpp:
1878         (WebCore::WebKitNamedFlow::getRegionsByContentNode):
1879         (WebCore):
1880         * dom/WebKitNamedFlow.h:
1881         (WebKitNamedFlow):
1882         * dom/WebKitNamedFlow.idl:
1883         * rendering/RenderFlowThread.cpp:
1884         (WebCore::RenderFlowThread::regionInRange):
1885         (WebCore):
1886         (WebCore::RenderFlowThread::objectInFlowRegion):
1887         * rendering/RenderFlowThread.h:
1888         * rendering/RenderRegion.h:
1889         (WebCore::RenderRegion::flowThread):
1890
1891 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
1892
1893         Remove min and max parameters from CSSPrimitiveValue's roundForImpreciseConversion function.
1894         https://bugs.webkit.org/show_bug.cgi?id=81629
1895
1896         Reviewed by Andreas Kling.
1897
1898         No new tests / refactoring only.
1899
1900         * css/CSSPrimitiveValue.cpp:
1901         (WebCore::CSSPrimitiveValue::computeLength):
1902         * css/CSSPrimitiveValue.h:
1903         (WebCore::roundForImpreciseConversion):
1904         * rendering/style/RenderStyle.h:
1905         (WebCore::adjustForAbsoluteZoom):
1906
1907 2012-03-20  Jason Liu  <jason.liu@torchmobile.com.cn>
1908
1909         [BlackBerry]Cookies shouldn't be set into each of webcore's request and platform's request. And this makes a regression.
1910         https://bugs.webkit.org/show_bug.cgi?id=80800
1911
1912         FrameLoaderClientBlackBerry::dispatchWillSendRequest sets cookies to resourceRequest's header
1913         list to show cookies in inspector. And NetworkManager::startJob will set cookies to platformRequest's
1914         m_cookieData again. So cookies are set two times. This causes performance issue.
1915
1916         Moreover, platformRequest will copy cookies from the resourceRequest. And then platformRequest has
1917         the same cookies in its header list and m_cookieData. Network will use header list's cookies which
1918         are output as latin1 only. This causes the regression of https://bugs.webkit.org/show_bug.cgi?id=80307.
1919
1920         Now, set cookies in initializePlatformRequest to ensure setting cookies only once.
1921
1922         Reviewed by George Staikos.
1923
1924         Test: http/tests/cookies/resources/setUtf8Cookies.php
1925
1926         * platform/network/blackberry/NetworkManager.cpp:
1927         (WebCore::NetworkManager::startJob):
1928         * platform/network/blackberry/ResourceRequest.h:
1929         (ResourceRequest):
1930         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
1931         (WebCore::ResourceRequest::initializePlatformRequest):
1932
1933 2012-03-19  Benjamin Poulain  <bpoulain@apple.com>
1934
1935         Build fix for Debug build after r111358
1936
1937         Unreviewed.
1938
1939         * bindings/js/CachedScriptSourceProvider.h:
1940         * bindings/js/StringSourceProvider.h:
1941
1942 2012-03-19  Emil A Eklund  <eae@chromium.org>
1943
1944         Add FractionalLayoutUnit version of blend to AnimationUtilities
1945         https://bugs.webkit.org/show_bug.cgi?id=81572
1946
1947         Reviewed by Eric Seidel.
1948         
1949         Add version of blend method that operates on FractionalLayoutUnits. This
1950         will be used in place of the integer version in many places once we
1951         enable support for subpixel layout.
1952
1953         No new tests.
1954
1955         * platform/FractionalLayoutUnit.h:
1956         Include math.h to make GTK build happy.
1957
1958         * platform/animation/AnimationUtilities.h:
1959         (WebCore::blend):
1960
1961 2012-03-19  Adam Barth  <abarth@webkit.org>
1962
1963         Remove support for "magic" iframe
1964         https://bugs.webkit.org/show_bug.cgi?id=81590
1965
1966         Reviewed by Eric Seidel.
1967
1968         This patch removes support for "magic" iframe, which previously allowed
1969         an iframe to be transfered from one document to another without
1970         reloading the iframe.  The idea behind this feature was to let sites
1971         create "pop out" windows that could outlive their parents by
1972         transfering state to these windows via these magic iframes.
1973
1974         Unforuntately, this feature was never implemented by other browsers and
1975         has been the source of a series of security vulnerabilities.  Although
1976         we have fixed each vulnerability as it has been discovered, the feature
1977         is still a complex corner case that isn't widely exercised on the web.
1978         For that reason, it's likely to have more vulnerabilities in the
1979         future.
1980
1981         I'm not aware of any web sites that use this feature anymore.  There
1982         were a handful of them, but we appear to have been successful in
1983         evangalizing them to move away from "magic" iframe.
1984
1985         * dom/Document.cpp:
1986         (WebCore::Document::adoptNode):
1987         * html/HTMLFrameElementBase.cpp:
1988         (WebCore):
1989         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
1990         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
1991         * html/HTMLFrameElementBase.h:
1992         (HTMLFrameElementBase):
1993         * loader/DocumentLoader.cpp:
1994         (WebCore):
1995         * loader/DocumentLoader.h:
1996         (DocumentLoader):
1997         * loader/EmptyClients.h:
1998         (WebCore::EmptyFrameLoaderClient::createFrame):
1999         * loader/FrameLoader.cpp:
2000         (WebCore):
2001         * loader/FrameLoader.h:
2002         (FrameLoader):
2003         * loader/FrameLoaderClient.h:
2004         (FrameLoaderClient):
2005         * loader/ResourceLoadNotifier.cpp:
2006         (WebCore):
2007         * loader/ResourceLoadNotifier.h:
2008         (ResourceLoadNotifier):
2009         * page/Frame.cpp:
2010         (WebCore):
2011         * page/Frame.h:
2012         (Frame):
2013
2014 2012-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
2015
2016         REGRESSION(r110072): Improper repainting on table with overflow: hidden
2017         https://bugs.webkit.org/show_bug.cgi?id=81460
2018
2019         Reviewed by Simon Fraser.
2020
2021         Test: fast/repaint/table-hover-on-link.html
2022
2023         * rendering/RenderTable.cpp:
2024         (WebCore::RenderTable::layout): Add a call to RenderBlock::updateCachedSizeForOverflowClip
2025         so that we properly keep our cached size up to date. This fixes the problem for now but the
2026         real solution is to make sure it is called on all classes that needs to. This is tracked by
2027         bug 81461.
2028
2029 2012-03-19  Pablo Flouret  <pablof@motorola.com>
2030
2031         Add support for crossorigin attribute in script elements
2032         https://bugs.webkit.org/show_bug.cgi?id=81438
2033
2034         Reviewed by Adam Barth.
2035
2036         Works similarly to img and its crossorigin attribute. In the future it
2037         could allow for things like showing full error messages in error
2038         handlers, etc.
2039
2040         Tests: http/tests/security/script-crossorigin-loads-correctly.html
2041                http/tests/security/script-crossorigin-loads-same-origin.html
2042                http/tests/security/script-with-failed-cors-check-fails-to-load.html
2043
2044         * dom/ScriptElement.cpp:
2045         (WebCore::ScriptElement::ScriptElement):
2046         (WebCore::ScriptElement::requestScript):
2047         (WebCore::ScriptElement::notifyFinished):
2048         * dom/ScriptElement.h:
2049         (ScriptElement):
2050         * html/HTMLScriptElement.idl:
2051
2052 2012-03-19  Benjamin Poulain  <benjamin@webkit.org>
2053
2054         Do not copy the script source in the SourceProvider, just reference the existing string
2055         https://bugs.webkit.org/show_bug.cgi?id=81466
2056
2057         Reviewed by Geoffrey Garen.
2058
2059         Instead of creating a copy of the string with 16bits characters, we just return
2060         a shared StringImpl.
2061
2062         * bindings/js/CachedScriptSourceProvider.h:
2063         * bindings/js/StringSourceProvider.h:
2064
2065 2012-03-19  Dana Jansens  <danakj@chromium.org>
2066
2067         A quick early-out for Region::contains() test
2068         https://bugs.webkit.org/show_bug.cgi?id=81625
2069
2070         Reviewed by Anders Carlsson.
2071
2072         If the bounds of region B include a row/column that is outside the bounds of
2073         region A, then region B contains a pixel within that row/column that is
2074         outside of region A.
2075
2076         * platform/graphics/Region.cpp:
2077         (WebCore::Region::contains):
2078
2079 2012-03-19  Eric Seidel  <eric@webkit.org>
2080
2081         Unreviewed attempt to fix the EFL build.
2082
2083         * platform/graphics/efl/IconEfl.cpp:
2084
2085 2012-03-19  Eric Seidel  <eric@webkit.org>
2086
2087         Fix more WTF header include paths in WebCore
2088         https://bugs.webkit.org/show_bug.cgi?id=81602
2089
2090         Reviewed by Martin Robinson.
2091
2092         Chromium, Mac and Win already build w/o including wtf subdirectories
2093         in their include paths for WebCore/WebKit.  Gtk, Qt, and other ports
2094         should eventually do the same.  This patch fixes up a few loose
2095         wtf includes in these ports using some search/replace across WebCore.
2096         If the EWS bots pass this patch doesn't really need any other review.
2097
2098         * accessibility/gtk/AXObjectCacheAtk.cpp:
2099         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
2100         * platform/KURL.cpp:
2101         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2102         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2103         * platform/audio/gtk/AudioBusGtk.cpp:
2104         * platform/clutter/GRefPtrClutter.h:
2105         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
2106         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
2107         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
2108         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2109         * platform/graphics/gtk/ImageBufferGtk.cpp:
2110         * platform/graphics/pango/FontPango.cpp:
2111         * platform/graphics/qt/ImageBufferDataQt.h:
2112         * platform/graphics/wx/ImageBufferDataWx.h:
2113         * platform/gtk/ContextMenuGtk.cpp:
2114         * platform/gtk/ContextMenuItemGtk.cpp:
2115         * platform/gtk/FileSystemGtk.cpp:
2116         * platform/gtk/GOwnPtrGtk.h:
2117         * platform/gtk/GtkAuthenticationDialog.h:
2118         * platform/gtk/GtkPopupMenu.cpp:
2119         * platform/gtk/LanguageGtk.cpp:
2120         * platform/gtk/LocalizedStringsGtk.cpp:
2121         * platform/gtk/PopupMenuGtk.cpp:
2122         * platform/gtk/RenderThemeGtk.cpp:
2123         * platform/gtk/RenderThemeGtk.h:
2124         * platform/network/soup/GOwnPtrSoup.h:
2125         * platform/network/soup/ResourceRequestSoup.cpp:
2126         * platform/network/soup/ResourceResponseSoup.cpp:
2127         * platform/network/soup/SocketStreamHandle.h:
2128         * platform/network/soup/SoupURIUtils.cpp:
2129         * platform/text/TextEncoding.cpp:
2130         * platform/text/gtk/TextBreakIteratorGtk.cpp:
2131         * platform/text/gtk/TextCodecGtk.cpp:
2132         * platform/text/gtk/TextCodecGtk.h:
2133
2134 2012-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
2135
2136         Move the extra logical height distribution into RenderTable as a new step in our layout algorithm
2137         https://bugs.webkit.org/show_bug.cgi?id=81548
2138
2139         Reviewed by Tony Chang.
2140
2141         Refactoring, no expected change in behavior.
2142
2143         Moving the distribution step into RenderTable is needed to implement a better distribution algorithm that would
2144         span several RenderTableSection (which is what IE and FF are doing right now).
2145
2146         * rendering/RenderTable.cpp:
2147         (WebCore::RenderTable::distributeExtraLogicalHeight):
2148         (WebCore::RenderTable::layout):
2149         Moved the distribution step into distributeExtraLogicalHeight. While at it, changed the code to make use of the helper
2150         methods to iterate over the sections and explicitly floor the LayoutUnit before calling distributeExtraLogicalHeight.
2151
2152         * rendering/RenderTable.h:
2153         Added distributeExtraLogicalHeight.
2154
2155         * rendering/RenderTableSection.cpp:
2156         (WebCore::RenderTableSection::layoutRows):
2157         Changed the method signature as it doesn't handle the distribution step anymore.
2158
2159         * rendering/RenderTableSection.h:
2160         Updated layoutRows signature and exposed distributeExtraLogicalHeightToRows for RenderTable use.
2161
2162 2012-03-19  Anders Carlsson  <andersca@apple.com>
2163
2164         Another attempt at fixing the Windows build.
2165
2166         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2167         (WebCore::LayerClient::platformCALayerDeviceScaleFactor):
2168
2169 2012-03-19  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2170
2171         [EFL] Fix build break because of PlatformString.h
2172         https://bugs.webkit.org/show_bug.cgi?id=81619
2173
2174         Unreviewed. Fix build break because of PlatformString.h.
2175
2176         * platform/graphics/efl/IconEfl.cpp: Include PlatformString.h from text directory.
2177
2178 2012-03-19  Eric Seidel  <eric@webkit.org>
2179
2180         Fix CrWin build after r111258.
2181         https://bugs.webkit.org/show_bug.cgi?id=81281
2182
2183         Unreviewed build fix.
2184         I also fixed similarly incorrect wtf/ includes for other ports
2185         (which aren't yet as strict as Chromium about wtf includes).
2186
2187         * platform/blackberry/CookieManager.cpp:
2188         * platform/blackberry/CookieParser.cpp:
2189         * platform/blackberry/ParsedCookie.cpp:
2190         * platform/blackberry/SharedTimerBlackBerry.cpp:
2191         * platform/graphics/qt/GraphicsLayerQt.cpp:
2192         * platform/graphics/texmap/TextureMapperAnimation.cpp:
2193         * rendering/RenderThemeChromiumWin.cpp:
2194         (WebCore):
2195
2196 2012-03-19  Eric Seidel  <eric@webkit.org>
2197
2198         Fix CrWin build after r111258.
2199         https://bugs.webkit.org/show_bug.cgi?id=81281
2200
2201         Unreviewed build fix.
2202
2203         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2204         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2205         * platform/graphics/texmap/TextureMapperAnimation.h:
2206
2207 2012-03-19  Tony Chang  <tony@chromium.org>
2208
2209         add css parsing of flex-line-pack
2210         https://bugs.webkit.org/show_bug.cgi?id=81427
2211
2212         Reviewed by Ojan Vafai.
2213
2214         Spec: http://dev.w3.org/csswg/css3-flexbox/#flex-line-pack
2215
2216         Updated tests in css3/flexbox/css-properties.html
2217
2218         * css/CSSComputedStyleDeclaration.cpp:
2219         (WebCore):
2220         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2221         * css/CSSParser.cpp:
2222         (WebCore::CSSParser::parseValue):
2223         * css/CSSPrimitiveValueMappings.h:
2224         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2225         (WebCore):
2226         (WebCore::CSSPrimitiveValue::operator EFlexLinePack):
2227         * css/CSSProperty.cpp:
2228         (WebCore::CSSProperty::isInheritedProperty):
2229         * css/CSSPropertyNames.in:
2230         * css/CSSStyleApplyProperty.cpp:
2231         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2232         * css/CSSStyleSelector.cpp:
2233         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2234         * css/CSSValueKeywords.in:
2235         * rendering/style/RenderStyle.h:
2236         * rendering/style/RenderStyleConstants.h:
2237         * rendering/style/StyleFlexibleBoxData.cpp:
2238         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
2239         (WebCore::StyleFlexibleBoxData::operator==):
2240         * rendering/style/StyleFlexibleBoxData.h:
2241         (StyleFlexibleBoxData):
2242
2243 2012-03-19  Gustavo Noronha Silva  <gns@gnome.org>
2244
2245         [GTK] libWebCore.la has become too big for make
2246         https://bugs.webkit.org/show_bug.cgi?id=81582
2247
2248         Unreviewed build fix.
2249
2250         * GNUmakefile.am: build an intermediate library for modules, so that the list
2251         of source files used to build WebCore can be split and not reach make's limits;
2252         also try to force relinking libWebCore.la and libWebCoreModules.la when the
2253         GNUmakefile.am or GNUmakefile.list.am change
2254
2255 2012-03-19  Dana Jansens  <danakj@chromium.org>
2256
2257         [chromium] Push culled tiles that are prepainted
2258         https://bugs.webkit.org/show_bug.cgi?id=81552
2259
2260         Reviewed by Adrienne Walker.
2261
2262         If a tile was culled during paint, but then prepainted in the following
2263         idle paint pass, it was still marked as culled (and thus dirty) and not
2264         pushed to the impl side.
2265
2266         Renames tile->m_updateCulled to tile->m_updated. This value is true if
2267         the tile is updated any time during a commit, and remains false if it
2268         is culled every time the layer is painted.
2269
2270         Unit test: TiledLayerChromiumTest.pushIdlePaintedOccludedTiles
2271
2272         * platform/graphics/chromium/TiledLayerChromium.cpp:
2273         (WebCore::UpdatableTile::isDirtyForCurrentFrame):
2274         (UpdatableTile):
2275         (WebCore::UpdatableTile::UpdatableTile):
2276         (WebCore::TiledLayerChromium::updateCompositorResources):
2277         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2278         (WebCore::TiledLayerChromium::resetUpdateState):
2279
2280 2012-03-19  Anders Carlsson  <andersca@apple.com>
2281
2282         Fix Snow Leopard build.
2283
2284         * platform/graphics/ca/mac/TileCache.mm:
2285         (WebCore::TileCache::createTileLayer):
2286
2287 2012-03-19  Michal Mocny  <mmocny@google.com>
2288
2289         [chromium] Adding support for GL_EXT_discard_framebuffer.
2290         https://bugs.webkit.org/show_bug.cgi?id=81383
2291
2292         Reviewed by James Robinson.
2293
2294         * platform/graphics/chromium/Extensions3DChromium.h:
2295
2296 2012-03-19  Adam Klein  <adamk@chromium.org>
2297
2298         Refactor ContainerNode::replaceChild to match other mutation methods and share code
2299         https://bugs.webkit.org/show_bug.cgi?id=81579
2300
2301         Reviewed by Ojan Vafai.
2302
2303         A future change will make use of the consistency among insertBefore/appendChild/replaceChild
2304         to handle insertion of DocumentFragments more cleanly.
2305
2306         No new tests, no change in behavior.
2307
2308         * dom/ContainerNode.cpp:
2309         (WebCore::ContainerNode::replaceChild): Use collectTargetNodes rather than walking through DocumentFragment children.
2310         Insert before rather than inserting after. Dispatch to other methods to update parent/sibling pointers.
2311         (WebCore::ContainerNode::appendChild): Call appendChildToContainer to update parent/sibling pointers.
2312         (WebCore::ContainerNode::parserAddChild): Use type inference in call to appendChildToContainer.
2313
2314 2012-03-19  Ian Vollick  <vollick@chromium.org>
2315
2316         [chromium] Times in the cc should be expressed in seconds.
2317         https://bugs.webkit.org/show_bug.cgi?id=80514
2318
2319         Reviewed by James Robinson.
2320
2321         Updated timer tests to use seconds.
2322
2323         * platform/TouchFlingPlatformGestureCurve.h:
2324         (TouchFlingPlatformGestureCurve):
2325         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
2326         (WebCore::CCActiveGestureAnimation::animate):
2327         * platform/graphics/chromium/cc/CCActiveGestureAnimation.h:
2328         (CCActiveGestureAnimation):
2329         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
2330         (WebCore::CCDelayBasedTimeSource::create):
2331         (WebCore::CCDelayBasedTimeSource::CCDelayBasedTimeSource):
2332         (WebCore::CCDelayBasedTimeSource::setActive):
2333         (WebCore::CCDelayBasedTimeSource::onTimerFired):
2334         (WebCore::CCDelayBasedTimeSource::monotonicallyIncreasingTime):
2335         (WebCore):
2336         (WebCore::CCDelayBasedTimeSource::postNextTickTask):
2337         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
2338         (CCDelayBasedTimeSource):
2339         * platform/graphics/chromium/cc/CCGestureCurve.h:
2340         (CCGestureCurve):
2341         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2342         (WTF):
2343         (WebCore::CCThreadProxy::beginContextRecreation):
2344         (WebCore::CCThreadProxy::tryToRecreateContext):
2345         (WebCore::CCThreadProxy::initializeImplOnImplThread):
2346         * platform/graphics/chromium/cc/CCTimer.cpp:
2347         (WebCore::CCTimer::startOneShot):
2348         * platform/graphics/chromium/cc/CCTimer.h:
2349         (CCTimer):
2350
2351 2012-03-19  Florin Malita  <fmalita@google.com>
2352
2353         Relative-height block SVG root not layed out on container height change
2354         https://bugs.webkit.org/show_bug.cgi?id=81513
2355
2356         Reviewed by Dirk Schulze.
2357
2358         Tests: svg/custom/svg-percent-scale-block-expected.html
2359                svg/custom/svg-percent-scale-block.html
2360
2361         A couple of places still have style()->logical{Min,Max,}Height percent checks,
2362         which do not work for SVG elements. This patch adds a virtual hasRelativeLogicalHeight()
2363         RenderBox method to replace the explicit style checks.
2364
2365         * rendering/RenderBlock.cpp:
2366         (WebCore::RenderBlock::layoutBlockChildren):
2367         Use virtual hasRelativeLogicalHeight() instead of logical height style checks.
2368
2369         * rendering/RenderBox.cpp:
2370         (WebCore::RenderBox::hasRelativeLogicalHeight):
2371         (WebCore):
2372         * rendering/RenderBox.h:
2373         (RenderBox):
2374         Add virtual hasRelativeLogicalHeight().
2375
2376         * rendering/RenderView.cpp:
2377         (WebCore::RenderView::layout):
2378         Use virtual hasRelativeLogicalHeight() instead of logical height style checks, if possible.
2379
2380         * rendering/svg/RenderSVGRoot.cpp:
2381         (WebCore::RenderSVGRoot::hasRelativeLogicalHeight):
2382         (WebCore):
2383         * rendering/svg/RenderSVGRoot.h:
2384         (RenderSVGRoot):
2385         Add hasRelativeLogicalHeight() override.
2386
2387 2012-03-19  Jer Noble  <jer.noble@apple.com>
2388
2389         Assertion failure in RenderBlock::addChildIgnoringAnonymousColumnBlocks when running fullscreen/full-screen-twice-crash.html 
2390         causing "crashes" on the Lion Intel Debug WebKit2 test bots.
2391         https://bugs.webkit.org/show_bug.cgi?id=81171
2392
2393         Reviewed by Dan Bernstein.
2394
2395         No new tests; fixes fullscreen/* tests when running in WebKitTestRunner (WebKit2).
2396
2397         Add a special-case check if the parent anonymous container is a full screen renderer or placeholder.
2398
2399         * rendering/RenderBlock.cpp:
2400         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
2401
2402 2012-03-19  Enrica Casucci  <enrica@apple.com>
2403
2404         WebKit2: create sandbox extensions for files that are dropped in an input control.
2405         https://bugs.webkit.org/show_bug.cgi?id=81153
2406         <rdar://problem/11031207>
2407
2408         Reviewed by Alexey Proskuryakov.
2409
2410         Now the pasteboard access is performed only in the UI process, it is
2411         necessary to create sandbox extensions for each file that is dropped into
2412         an input type=file element. The extensions are created at the time the files
2413         are dropped and consumed immediately.
2414
2415         * page/DragActions.h: Added new drag action to be used by the WebDragClient.
2416         * page/DragController.cpp:
2417         (WebCore::DragController::concludeEditDrag): Added call to the drag client with the new action.
2418
2419 2012-03-19  Eric Seidel  <eric@webkit.org>
2420
2421         Fix Chromium Win
2422         https://bugs.webkit.org/show_bug.cgi?id=81281
2423
2424         Unreviewed build fix.
2425
2426         * platform/graphics/chromium/TransparencyWin.h:
2427
2428 2012-03-19  Eric Seidel  <eric@webkit.org>
2429
2430         Fix the chromium world.
2431         https://bugs.webkit.org/show_bug.cgi?id=81281
2432
2433         Unreviewed build fix.
2434
2435         * rendering/RenderThemeChromiumSkia.cpp:
2436
2437 2012-03-19  Brady Eidson  <beidson@apple.com>
2438
2439         <rdar://problem/10917120> and https://bugs.webkit.org/show_bug.cgi?id=81066
2440         Crash in 3rd party WebKit apps under XHR/Cache code
2441
2442         Reviewed by Antti Koivisto.
2443
2444         No new layout tests.
2445         TestWebKitAPI test MemoryCachePruneWithinResourceLoadDelegate included
2446
2447         A CachedResource representing an XHR was being deleted by cache pruning during a delegate callback.
2448         This worked until http://trac.webkit.org/changeset/98380
2449
2450         * history/PageCache.cpp:
2451         (WebCore::PageCache::releaseAutoreleasedPagesNow): Only trigger pruning after the page cache
2452           autorelease if it was enabled before.
2453
2454         * loader/cache/CachedResourceLoader.cpp:
2455         (WebCore::CachedResourceLoader::loadResource): Disable pruning before loading the resource and
2456           re-enable it afterwards if necessary.
2457
2458         * loader/cache/MemoryCache.h:
2459         (WebCore::MemoryCache::pruneEnabled):
2460
2461 2012-03-19  Anders Carlsson  <andersca@apple.com>
2462
2463         Fix Windows build.
2464
2465         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2466         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDeviceScaleFactor):
2467
2468 2012-03-18  James Robinson  <jamesr@chromium.org>
2469
2470         [chromium] Implement fling-by-wheel on compositor thread
2471         https://bugs.webkit.org/show_bug.cgi?id=81462
2472
2473         Reviewed by Adrienne Walker.
2474
2475         Adds compositor thread support for a fling type implemented as a sequence of wheel scrolls. Covered by new tests
2476         in WebCompositorInputHandlerImplTests.
2477
2478         * platform/graphics/chromium/cc/CCInputHandler.h:
2479         (CCInputHandler):
2480         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2481         (WebCore::CCLayerTreeHostImpl::scheduleAnimation):
2482         (WebCore):
2483         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2484         (CCLayerTreeHostImpl):
2485         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2486         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2487
2488 2012-03-19  Emil A Eklund  <eae@chromium.org>
2489
2490         [mac/chromium] Change platform code to use pixelSnappedRect methods
2491         https://bugs.webkit.org/show_bug.cgi?id=81016
2492
2493         Reviewed by Eric Seidel.
2494
2495         Change platform code to use Node::getPixelSnappedRect,
2496         pixelSnappedBoundingBoxRect and pixelSnappedAbsoluteClippedOverflowRect
2497         to avoid exposing subpixel types to the platform layer.
2498
2499         No new tests.
2500
2501         * WebCore.exp.in:
2502         * rendering/RenderObject.cpp:
2503         (WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect):
2504         Add pixelSnapped version of absoluteClippedOverflowRect
2505         
2506         (WebCore):
2507         * rendering/RenderObject.h:
2508         (RenderObject):
2509
2510 2012-03-19  Brady Eidson  <beidson@apple.com>
2511
2512         <rdar://problem/10848575> and https://bugs.webkit.org/show_bug.cgi?id=81516
2513         REGRESSION (r107435) URLs copied from WebKit apps aren't in the right pasteboard format
2514
2515         Reviewed by Enrica Casucci.
2516
2517         r107435 started saving/restoring URLs as strings.
2518         We need to go back to setting the URL on the pasteboard using AppKit URL pasteboard APIs.
2519
2520         WebKit API test: ContextMenuCanCopyURL
2521         No WebKit2 API test possible at this time.
2522
2523         * platform/mac/PlatformPasteboardMac.mm:
2524         (WebCore::PlatformPasteboard::setURL):
2525
2526 2012-03-19  Anders Carlsson  <andersca@apple.com>
2527
2528         Make the TileCache work with HiDPI again
2529         https://bugs.webkit.org/show_bug.cgi?id=81569
2530         <rdar://problem/11031542>
2531
2532         Reviewed by Sam Weinig.
2533
2534         Set the contentsScale of the individual tile layers to be the same as the device scale factor.
2535         Also, take into account the fact that the value passed to TileCache::setScale is the product of the
2536         page scale factor and the device scale factor, so divide it by the device scale factor before storing
2537         it in m_scale.
2538
2539         * platform/graphics/ca/GraphicsLayerCA.cpp:
2540         (WebCore::GraphicsLayerCA::platformCALayerDeviceScaleFactor):
2541         (WebCore):
2542         * platform/graphics/ca/GraphicsLayerCA.h:
2543         (GraphicsLayerCA):
2544         * platform/graphics/ca/PlatformCALayerClient.h:
2545         (PlatformCALayerClient):
2546         * platform/graphics/ca/mac/TileCache.h:
2547         (TileCache):
2548         * platform/graphics/ca/mac/TileCache.mm:
2549         (WebCore::TileCache::TileCache):
2550         (WebCore::TileCache::setScale):
2551         (WebCore::TileCache::createTileLayer):
2552
2553 2012-03-19  Abhishek Arya  <inferno@chromium.org>
2554
2555         Crash due to layer tree information not updated when moving run-in children.
2556         https://bugs.webkit.org/show_bug.cgi?id=81265
2557
2558         Reviewed by Julien Chaffraix.
2559
2560         We need to do a full removal as the run-in child is getting inserted into
2561         the neighbouring block and |blockRunIn| is going to be destroyed later
2562         in the function.
2563
2564         Test: fast/runin/run-in-layer-not-removed-crash.html
2565
2566         * rendering/RenderBlock.cpp:
2567         (WebCore::RenderBlock::handleRunInChild):
2568
2569 2012-03-19  Dana Jansens  <danakj@chromium.org>
2570
2571         [chromium] Remove misleading double-if
2572         https://bugs.webkit.org/show_bug.cgi?id=81557
2573
2574         Reviewed by Adrienne Walker.
2575
2576         Simple code cleanup, no functionality change.
2577
2578         * platform/graphics/chromium/TiledLayerChromium.cpp:
2579         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2580
2581 2012-03-19  Eric Seidel  <eric@webkit.org>
2582
2583         Fix WTF header include discipline in Chromium WebKit
2584         https://bugs.webkit.org/show_bug.cgi?id=81281
2585
2586         Reviewed by James Robinson.
2587
2588         I also fixed some bad include dicipline for other ports
2589         as well.  Those changes are not yet necessary for those ports
2590         to keep building, but soon should be as those authors
2591         remove all the extra WTF includes from WebCore and other non-WTF projects.
2592
2593         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2594         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
2595         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
2596         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
2597         * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
2598         * bindings/v8/NPV8Object.cpp:
2599         * bindings/v8/SerializedScriptValue.cpp:
2600         * bindings/v8/SerializedScriptValue.h:
2601         * bindings/v8/V8Binding.cpp:
2602         * bindings/v8/V8Binding.h:
2603         * bindings/v8/V8DOMWrapper.cpp:
2604         * bindings/v8/V8Utilities.cpp:
2605         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
2606         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
2607         * bindings/v8/custom/V8AudioContextCustom.cpp:
2608         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2609         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
2610         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
2611         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
2612         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
2613         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
2614         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
2615         * bindings/v8/custom/V8MessagePortCustom.cpp:
2616         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
2617         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
2618         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
2619         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
2620         * bindings/v8/custom/V8WorkerCustom.cpp:
2621         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2622         * bridge/qt/qt_runtime.cpp:
2623         * editing/gtk/FrameSelectionGtk.cpp:
2624         * loader/archive/mhtml/MHTMLArchive.cpp:
2625         * platform/ScrollAnimatorNone.cpp:
2626         * platform/blackberry/CookieMap.h:
2627         * platform/blackberry/CookieParser.h:
2628         * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp:
2629         * platform/chromium/DragImageChromiumSkia.cpp:
2630         * platform/chromium/PlatformCursor.h:
2631         * platform/chromium/PlatformSupport.h:
2632         * platform/chromium/PopupMenuPrivate.h:
2633         * platform/chromium/TraceEvent.h:
2634         * platform/chromium/WidgetChromium.cpp:
2635         * platform/efl/RefPtrEfl.h:
2636         * platform/graphics/cairo/RefPtrCairo.h:
2637         * platform/graphics/chromium/RateLimiter.h:
2638         * platform/graphics/chromium/TiledLayerChromium.cpp:
2639         * platform/graphics/efl/IconEfl.cpp:
2640         * platform/graphics/gstreamer/GStreamerGWorld.h:
2641         * platform/graphics/gtk/IconGtk.cpp:
2642         * platform/graphics/skia/PlatformContextSkia.h:
2643         * platform/graphics/texmap/TextureMapperBackingStore.h:
2644         * platform/graphics/texmap/TextureMapperLayer.cpp:
2645         * platform/graphics/wx/TransformationMatrixWx.cpp:
2646         * platform/gtk/PlatformMouseEventGtk.cpp:
2647         * platform/leveldb/LevelDBSlice.h:
2648         * platform/mediastream/MediaStreamCenter.cpp:
2649         * platform/network/soup/SocketStreamHandleSoup.cpp:
2650         * platform/network/win/ResourceHandleWin.cpp:
2651         * platform/qt/RenderThemeQtMobile.cpp:
2652         * platform/wx/MouseEventWx.cpp:
2653         * platform/wx/wxcode/win/fontprops.cpp:
2654
2655 2012-03-19  Dana Jansens  <danakj@chromium.org>
2656
2657         [chromium] Invalidate/update evicted tiles during commit
2658         https://bugs.webkit.org/show_bug.cgi?id=81529
2659
2660         Reviewed by Adrienne Walker.
2661
2662         A previous change caused a regression where evicted (invalid) tiles
2663         were no longer marked as dirty and updated. The regress was caused
2664         in https://bugs.webkit.org/show_bug.cgi?id=81175 and is fixed here.
2665
2666         Unit test: TiledLayerChromiumTest.pushDeletedTiles
2667
2668         * platform/graphics/chromium/TiledLayerChromium.cpp:
2669         (WebCore::UpdatableTile::copyAndClearDirty):
2670         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2671
2672 2012-03-19  Adam Barth  <abarth@webkit.org>
2673
2674         Remove PLATFORM(TORCHMOBILE) ifdef from MainResourceLoader.cpp
2675         https://bugs.webkit.org/show_bug.cgi?id=81549
2676
2677         Reviewed by Eric Seidel.
2678
2679         This appears to be the only PLATFORM(TORCHMOBILE) ifdef in WebCore.  I
2680         don't believe this ifdef is needed anymore.
2681
2682         * loader/MainResourceLoader.cpp:
2683         (WebCore::shouldLoadAsEmptyDocument):
2684         (WebCore):
2685
2686 2012-03-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2687
2688         Unreviewed, rolling out r111207.
2689         http://trac.webkit.org/changeset/111207
2690         https://bugs.webkit.org/show_bug.cgi?id=81561
2691
2692         Causing chromium unit test failure (Requested by reveman on
2693         #webkit).
2694
2695         * platform/graphics/chromium/Extensions3DChromium.h:
2696         (Extensions3DChromium):
2697
2698 2012-03-19  Anders Carlsson  <andersca@apple.com>
2699
2700         Remove unnecessary CALayer overrides from WebTileCacheLayer
2701         https://bugs.webkit.org/show_bug.cgi?id=81562
2702
2703         Reviewed by Dan Bernstein.
2704
2705         * platform/graphics/ca/mac/TileCache.h:
2706         (TileCache):
2707         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
2708
2709 2012-03-19  Emil A Eklund  <eae@chromium.org>
2710
2711         Correct usage of LayoutUnits in page code in preparation for turning on subpixel layout
2712         https://bugs.webkit.org/show_bug.cgi?id=81538
2713
2714         Reviewed by Eric Seidel.
2715
2716         Fix usage of LayoutUnits and conversions between types in page code.
2717
2718         No new tests.
2719
2720         * page/DOMWindow.cpp:
2721         (WebCore::DOMWindow::innerHeight):
2722         (WebCore::DOMWindow::innerWidth):
2723         Explicitly cast long to int. InspectorInstrumentation requires a long and
2724         FractionalLayoutUnit has no constructor that takes long.
2725         
2726         * page/EventHandler.cpp:
2727         (WebCore::EventHandler::sendContextMenuEventForKey):
2728         Pixel snap overflow rect as selection rects are integer based.
2729         
2730         * page/FrameView.cpp:
2731         (WebCore::FrameView::scrollContentsFastPath):
2732         Pixel snap repaint rects when computing update rect as all scrolling is
2733         done on integer bounds.
2734         
2735         * page/GestureTapHighlighter.cpp:
2736         Change rects vector to IntRect as addFocusRingRects operates on IntRects.
2737         
2738         * page/Page.cpp:
2739         (WebCore::Page::addRelevantRepaintedObject):
2740         (WebCore::Page::addRelevantUnpaintedObject):
2741         Change paint methods to take a LayoutRect paint rect.
2742         
2743         * page/SpatialNavigation.cpp:
2744         (WebCore::distanceDataForNode):
2745         Change distance calculation to use floats instead of converting to float
2746         at the end.
2747
2748 2012-03-19  David Hyatt  <hyatt@apple.com>
2749
2750         https://bugs.webkit.org/show_bug.cgi?id=81553
2751         
2752         [New Multicolumn] Stub out classes to represent sets of column region boxes.
2753
2754         RenderRegionSet is an abstract class representing a set of contiguous anonymous
2755         same-size regions.
2756         
2757         RenderMultiColumnSet derives from RenderRegionSet and represents a set of contiguous
2758         columns. It will also handle unique column behavior like column rule painting.
2759         
2760         Eventually there will be a RenderPageSet derived class for printing/pages, but
2761         that will come later after I finish rebuilding multi-column layout.
2762
2763         Reviewed by Dan Bernstein.
2764
2765         * GNUmakefile.list.am:
2766         * Target.pri:
2767         * WebCore.gypi:
2768         * WebCore.vcproj/WebCore.vcproj:
2769         * WebCore.xcodeproj/project.pbxproj:
2770         * rendering/RenderMultiColumnSet.cpp: Added.
2771         (WebCore):
2772         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
2773         (WebCore::RenderMultiColumnSet::renderName):
2774         * rendering/RenderMultiColumnSet.h: Added.
2775         (WebCore):
2776         (RenderMultiColumnSet):
2777         * rendering/RenderRegionSet.cpp: Added.
2778         (WebCore):
2779         (WebCore::RenderRegionSet::RenderRegionSet):
2780         * rendering/RenderRegionSet.h: Added.
2781         (WebCore):
2782         (RenderRegionSet):
2783
2784 2012-03-19  Raymond Toy  <rtoy@google.com>
2785
2786         Add playback state for AudioBufferSourceNode and add number of active nodes
2787         https://bugs.webkit.org/show_bug.cgi?id=79701
2788
2789         Add a playback state to AudioBufferSourceNode so that the user can
2790         tell if the node is scheduled, playing, or finished.
2791
2792         For an AudioContext, add a count of the number of
2793         AudioBufferSourceNode's that are active (playing audio).
2794
2795         Deleted m_isPlaying and m_hasFinished. For the record, m_isPlaying
2796         is the same as a playbackState of SCHEDULED_STATE or PLAYING_STATE.
2797         m_hasFinished is equivalent to a playbackState of FINISHED_STATE.
2798         
2799         Reviewed by Chris Rogers.
2800
2801         Test: webaudio/audiobuffersource-playbackState.html
2802
2803         * webaudio/AudioBufferSourceNode.cpp:
2804         (WebCore):
2805         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
2806         initialize playbackState, remove m_isPlaying, m_hasFinished.
2807         (WebCore::AudioBufferSourceNode::process): Update playbackState
2808         (WebCore::AudioBufferSourceNode::finish): Update playbackState
2809         (WebCore::AudioBufferSourceNode::noteOn): Update playbackState
2810         (WebCore::AudioBufferSourceNode::noteGrainOn): Update playbackState
2811         (WebCore::AudioBufferSourceNode::noteOff): Use playbackState 
2812         * webaudio/AudioBufferSourceNode.h:
2813         (AudioBufferSourceNode): Define states, remove m_isPlaying, m_hasFinished.
2814         (WebCore::AudioBufferSourceNode::playbackState): Added.
2815         * webaudio/AudioBufferSourceNode.idl: Define constants for the
2816         playback state, add attribute playbackState.
2817         * webaudio/AudioContext.cpp:
2818         (WebCore::AudioContext::activeSourceCount): Added.
2819         (WebCore::AudioContext::incrementActiveSourceCount): Added.
2820         (WebCore::AudioContext::decrementActiveSourceCount): Added.
2821         * webaudio/AudioContext.h:
2822         (AudioContext):
2823         * webaudio/AudioContext.idl: Add attribute activeSourceCount.
2824
2825 2012-03-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2826
2827         Unreviewed, rolling out r109014.
2828         http://trac.webkit.org/changeset/109014
2829         https://bugs.webkit.org/show_bug.cgi?id=81551
2830
2831         Causing crashes (Requested by inferno-sec on #webkit).
2832
2833         * rendering/style/RenderStyle.h:
2834
2835 2012-03-19  Tony Chang  <tony@chromium.org>
2836
2837         Unreviewed, remove headers that no longer exist or moved in WebCore.gypi.
2838
2839         * WebCore.gypi:
2840
2841 2012-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
2842
2843         [CSSRegions]Implement NamedFlow::contentNodes attribute
2844         https://bugs.webkit.org/show_bug.cgi?id=80134
2845
2846         Reviewed by David Hyatt.
2847
2848         The named flow content nodes collection contains those nodes with webkitFlowInto property set to 'flow'.
2849         In the list, the nodes are placed in document order. Nodes with display:none are also part of the list.
2850         The list of nodes is returned as a static node list.
2851
2852         Test: fast/regions/webkit-named-flow-content-nodes.html
2853
2854         * dom/Document.cpp:
2855         (WebCore::Document::webkitGetFlowByName):
2856         * dom/Document.h:
2857         * dom/Element.cpp:
2858         (WebCore::Element::detach):
2859         * dom/NodeRenderingContext.cpp:
2860         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2861         * dom/WebKitNamedFlow.cpp:
2862         (WebCore::WebKitNamedFlow::contentNodes):
2863         (WebCore):
2864         (WebCore::WebKitNamedFlow::registerContentNode):
2865         * dom/WebKitNamedFlow.h:
2866         (WebCore):
2867         (WebKitNamedFlow):
2868         (WebCore::WebKitNamedFlow::unregisterContentNode):
2869         * dom/WebKitNamedFlow.idl:
2870
2871 2012-03-19  Xingnan Wang  <xingnan.wang@intel.com>
2872
2873         ConvolverNode should not incur processing latency
2874         https://bugs.webkit.org/show_bug.cgi?id=75564
2875
2876         Reviewed by Chris Rogers.
2877
2878         Add the DirectConvolver instead of FFTConvolver for the processing of the leading portion of impulse response.
2879
2880         * WebCore.gypi:
2881         * platform/audio/DirectConvolver.cpp: Added.
2882         (WebCore):
2883         (WebCore::DirectConvolver::DirectConvolver):
2884         (WebCore::DirectConvolver::process):
2885         (WebCore::DirectConvolver::reset):
2886         * platform/audio/DirectConvolver.h: Added.
2887         (WebCore):
2888         (DirectConvolver):
2889         (WebCore::DirectConvolver::convolveSize):
2890         * platform/audio/ReverbConvolver.cpp:
2891         (WebCore::ReverbConvolver::ReverbConvolver):
2892         * platform/audio/ReverbConvolver.h:
2893         * platform/audio/ReverbConvolverStage.cpp:
2894         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
2895         (WebCore::ReverbConvolverStage::process):
2896         (WebCore::ReverbConvolverStage::reset):
2897         * platform/audio/ReverbConvolverStage.h:
2898         (WebCore):
2899         (ReverbConvolverStage):
2900
2901 2012-03-19  Anders Carlsson  <andersca@apple.com>
2902
2903         Find in page highlights get out of place when scrolling
2904         https://bugs.webkit.org/show_bug.cgi?id=81543
2905
2906         Reviewed by Sam Weinig.
2907
2908         Remove a now unused function from GraphicsLayer.
2909
2910         * platform/graphics/GraphicsLayer.h:
2911         (GraphicsLayer):
2912         * platform/graphics/ca/GraphicsLayerCA.h:
2913         (GraphicsLayerCA):
2914
2915 2012-03-19  David Hyatt  <hyatt@apple.com>
2916
2917         https://bugs.webkit.org/show_bug.cgi?id=81534
2918
2919         [New Multicolumn] Make the multi-column block re-layout its children when the column width/count change.
2920         Cache the count/width on the multi-column block for easy access.
2921
2922         Reviewed by Antti Koivisto.
2923
2924         * rendering/RenderBlock.cpp:
2925         (WebCore::RenderBlock::recomputeLogicalWidth):
2926         (WebCore::RenderBlock::layoutBlock):
2927         * rendering/RenderBlock.h:
2928         Virtualize the code that recomputes the logical width for a block and sets relayoutChildren to true,
2929         so that column code can subclass the method to also check for changes in the column width/count.
2930
2931         * rendering/RenderMultiColumnBlock.cpp:
2932         (WebCore::RenderMultiColumnBlock::computeColumnCountAndWidth):
2933         The column count/width determination algorithm in one method on the RenderMultiColumnBlock. It's a copy
2934         of the code from RenderBlock (which will be going away eventually).
2935
2936         (WebCore::RenderMultiColumnBlock::recomputeLogicalWidth):
2937         * rendering/RenderMultiColumnBlock.h:
2938         (RenderMultiColumnBlock):
2939         Subclassed method to also check for changes in the column width to set relayoutChildren to true.
2940
2941 2012-03-19  Michal Mocny  <mmocny@google.com>
2942
2943         [chromium] Updating WebGraphicsContext3D MemoryAllocation callback to accept a struct with have backbuffer suggestion.
2944         https://bugs.webkit.org/show_bug.cgi?id=81279
2945
2946         Reviewed by James Robinson.
2947
2948         * platform/graphics/chromium/Extensions3DChromium.h:
2949         (GpuMemoryAllocationCHROMIUM):
2950         (WebCore::Extensions3DChromium::GpuMemoryAllocationCHROMIUM::GpuMemoryAllocationCHROMIUM):
2951         (GpuMemoryAllocationChangedCallbackCHROMIUM):
2952
2953 2012-03-19  Tony Chang  <tony@chromium.org>
2954
2955         flex-item-align: stretch should only grow, never shrink
2956         https://bugs.webkit.org/show_bug.cgi?id=80882
2957
2958         Reviewed by Ojan Vafai.
2959
2960         New test cases in css3/flexbox/flex-align-stretch.html.
2961
2962         * rendering/RenderFlexibleBox.cpp:
2963         (WebCore::RenderFlexibleBox::alignChildren): Move stretch code into a separate function.
2964         (WebCore::RenderFlexibleBox::alignChildStretch): Add an early return if our height is shrinking.
2965         (WebCore):
2966         * rendering/RenderFlexibleBox.h:
2967         (RenderFlexibleBox):
2968
2969 2012-03-19  Vsevolod Vlasov  <vsevik@chromium.org>
2970
2971         Web Inspector: Implement snippets evaluation.
2972         https://bugs.webkit.org/show_bug.cgi?id=81334
2973
2974         Reviewed by Pavel Feldman.
2975
2976         * inspector/front-end/ConsoleView.js:
2977         (WebInspector.ConsoleView.prototype.evaluateUsingTextPrompt):
2978         (WebInspector.ConsoleView.prototype._enterKeyPressed):
2979         * inspector/front-end/ScriptMapping.js:
2980         (WebInspector.MainScriptMapping):
2981         * inspector/front-end/SnippetsModel.js:
2982         * inspector/front-end/externs.js:
2983         (WebInspector.evaluateInConsole):
2984         * inspector/front-end/inspector.js:
2985         (WebInspector.evaluateInConsole):
2986
2987 2012-03-19  Tommy Widenflycht  <tommyw@google.com>
2988
2989         MediaStream API (JSEP): Introducing PeerConnection00Handler
2990         https://bugs.webkit.org/show_bug.cgi?id=81333
2991
2992         Reviewed by Adam Barth.
2993
2994         In preparation of the last WebCore patch that will introduce PeerConnection00 here's its platform representation.
2995
2996         Not possible to test until the entire JSEP feature is commited.
2997
2998         * GNUmakefile.list.am:
2999         * WebCore.gypi:
3000         * platform/mediastream/PeerConnection00Handler.cpp: Added.
3001         (WebCore):
3002         (WebCore::PeerConnection00Handler::create):
3003         (WebCore::PeerConnection00Handler::PeerConnection00Handler):
3004         (WebCore::PeerConnection00Handler::~PeerConnection00Handler):
3005         (WebCore::PeerConnection00Handler::createOffer):
3006         (WebCore::PeerConnection00Handler::createAnswer):
3007         (WebCore::PeerConnection00Handler::setLocalDescription):
3008         (WebCore::PeerConnection00Handler::setRemoteDescription):
3009         (WebCore::PeerConnection00Handler::localDescription):
3010         (WebCore::PeerConnection00Handler::remoteDescription):
3011         (WebCore::PeerConnection00Handler::startIce):
3012         (WebCore::PeerConnection00Handler::processIceMessage):
3013         (WebCore::PeerConnection00Handler::addStream):
3014         (WebCore::PeerConnection00Handler::removeStream):
3015         (WebCore::PeerConnection00Handler::stop):
3016         * platform/mediastream/PeerConnection00Handler.h: Added.
3017         (WebCore):
3018         (PeerConnection00Handler):
3019         * platform/mediastream/PeerConnection00HandlerClient.h: Added.
3020         (WebCore):
3021         (PeerConnection00HandlerClient):
3022         (WebCore::PeerConnection00HandlerClient::~PeerConnection00HandlerClient):
3023
3024 2012-03-19  David Reveman  <reveman@chromium.org>
3025
3026         [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
3027         https://bugs.webkit.org/show_bug.cgi?id=80988
3028
3029         Reviewed by Adrienne Walker.
3030
3031         Expose EXT_occlusion_query API to WebKit compositor. Add
3032         GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
3033         enums.
3034
3035         * platform/graphics/chromium/Extensions3DChromium.h:
3036         (Extensions3DChromium):
3037
3038 2012-03-19  Mike Lawther  <mikelawther@chromium.org>
3039
3040         CSS3 calc: make mask images work with mixed percent/absolute
3041         https://bugs.webkit.org/show_bug.cgi?id=81477
3042
3043         Reviewed by Ojan Vafai.
3044
3045         Test: css3/calc/simple-composited-mask-expected.html
3046
3047         * css/CSSStyleSelector.cpp:
3048         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3049
3050 2012-03-19  Mark Pilgrim  <pilgrim@chromium.org>
3051
3052         Style cleanup in Modules/filesystem/
3053         https://bugs.webkit.org/show_bug.cgi?id=81520
3054
3055         Reviewed by Adam Barth.
3056
3057         No new tests, all existing tests pass.
3058
3059         * Modules/filesystem/AsyncFileWriter.h:
3060         (WebCore::AsyncFileWriter::~AsyncFileWriter):
3061         * Modules/filesystem/AsyncFileWriterClient.h:
3062         (WebCore::AsyncFileWriterClient::~AsyncFileWriterClient):
3063         * Modules/filesystem/DOMFilePath.cpp:
3064         (WebCore::DOMFilePath::getDirectory):
3065         * Modules/filesystem/DOMFilePath.h:
3066         (DOMFilePath):
3067         * Modules/filesystem/DOMFileSystemBase.h:
3068         (DOMFileSystemBase):
3069         * Modules/filesystem/DirectoryEntry.h:
3070         * Modules/filesystem/DirectoryEntrySync.h:
3071         * Modules/filesystem/EntryArray.h:
3072         (EntryArray):
3073         * Modules/filesystem/FileEntry.h:
3074         (FileEntry):
3075         * Modules/filesystem/FileSystemCallbacks.h:
3076         (FileSystemCallbacksBase):
3077         * Modules/filesystem/FileWriter.cpp:
3078         (WebCore::FileWriter::abort):
3079
3080 2012-03-19  Mike Lawther  <mikelawther@chromium.org>
3081
3082         CSS3 calc: background positioning works with mixed percent/absolute expressions
3083         https://bugs.webkit.org/show_bug.cgi?id=81478
3084
3085         Reviewed by Ojan Vafai.
3086
3087         Test: css3/calc/background-position-parsing-expected.html
3088
3089         * css/CSSStyleSelector.cpp:
3090         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3091
3092 2012-03-19  Alexander Færøy  <alexander.faeroy@nokia.com>
3093
3094         Add NodeRenderStyle.h to TouchAdjustment.cpp
3095
3096         Unreviewed build fix after r111185.
3097
3098         * page/TouchAdjustment.cpp:
3099
3100 2012-03-19  Leo Yang  <leo.yang@torchmobile.com.cn>
3101
3102         [BlackBerry] Add PlatformMediaEngineClassName for blackberry in platform/graphics/MediaPlayer.cpp
3103         https://bugs.webkit.org/show_bug.cgi?id=81489
3104
3105         Reviewed by Rob Buis.
3106
3107         * platform/graphics/MediaPlayer.cpp:
3108
3109 2012-03-19  Leo Yang  <leo.yang@torchmobile.com.cn>
3110
3111         [BlackBerry] Upstream the BlackBerry change to platform/PlatformKeyboardEvent.h
3112         https://bugs.webkit.org/show_bug.cgi?id=81312
3113
3114         Reviewed by Rob Buis.
3115
3116         * platform/PlatformKeyboardEvent.h:
3117         (Platform):
3118         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3119         (PlatformKeyboardEvent):
3120         (WebCore::PlatformKeyboardEvent::unmodifiedCharacter):
3121         Add BlackBerry specific constructor and member fields.
3122         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
3123         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3124         Change the parameter type to const reference type to adapt to the declaration.
3125
3126 2012-03-19  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3127
3128         Select best target for tap gesture.
3129         https://bugs.webkit.org/show_bug.cgi?id=78801
3130
3131         Reviewed by Kenneth Rohde Christiansen.
3132         IntRect changes reviewed by Dave Hyatt.
3133
3134         The new API is available through EventHandler::bestClickableNodeForTouchPoint, but
3135         implementation details have been placed in page/TouchAdjustment.
3136
3137         The default hit detection is performed by measuring the distance to the center
3138         lines of the absolute rects of the hit nodes. Absolute rects are used instead
3139         of bounding rects to make hit-detecting against links over line breaks. Distance
3140         to center line is used to make it easier to hit small links next to large links.
3141         For line-rects the distance to the center-line is a better expression of the distance
3142         to a rectangles center than the distance to the center-point.
3143
3144         Tests: touchadjustment/event-triggered-widgets.html
3145                touchadjustment/html-label.html
3146                touchadjustment/nested-touch.html
3147                touchadjustment/touch-inlines.html
3148
3149         * Target.pri:
3150         * page/EventHandler.cpp:
3151         (WebCore::EventHandler::handleGestureTap):
3152         (WebCore::EventHandler::bestClickableNodeForTouchPoint):
3153         * page/EventHandler.h:
3154         * page/TouchAdjustment.cpp: Added.
3155         (WebCore::TouchAdjustment::QuadForHitTest::QuadForHitTest):
3156         (WebCore::TouchAdjustment::QuadForHitTest::node):
3157         (WebCore::TouchAdjustment::QuadForHitTest::quad):
3158         (WebCore::TouchAdjustment::QuadForHitTest::boundingBox):
3159         (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
3160         (WebCore::TouchAdjustment::appendAbsoluteQuadsForNodeToHitTestList):
3161         (WebCore::TouchAdjustment::compileQuadsForHitTesting):
3162         (WebCore::TouchAdjustment::distanceSquaredToQuadCenterLine):
3163         (WebCore::TouchAdjustment::findNodeWithLowestMetric):
3164         (WebCore::findBestClickableCandidate):
3165         * page/TouchAdjustment.h: Added.
3166         * platform/graphics/FloatQuad.h:
3167         (WebCore::FloatQuad::center):
3168         * platform/graphics/IntPoint.h:
3169         (WebCore::IntPoint::distanceSquaredToPoint):
3170         * platform/graphics/IntRect.cpp:
3171         (WebCore::distanceToInterval):
3172         (WebCore::IntRect::differenceToPoint):
3173         (WebCore::IntRect::differenceFromCenterLineToPoint):
3174         * platform/graphics/IntRect.h:
3175         (WebCore::IntRect::distanceSquaredToPoint):
3176         (WebCore::IntRect::distanceSquaredFromCenterLineToPoint):
3177         * platform/graphics/IntSize.h:
3178         (WebCore::IntSize::diagonalLengthSquared):
3179         * testing/Internals.cpp:
3180         (WebCore::Internals::touchPositionAdjustedToBestClickableNode):
3181         (WebCore::Internals::touchNodeAdjustedToBestClickableNode):
3182         * testing/Internals.h:
3183         * testing/Internals.idl:
3184
3185 2012-03-19  Mark Pilgrim  <pilgrim@chromium.org>
3186
3187         Add ENABLED(FILE_SYSTEM) to DOMFilePath.h
3188         https://bugs.webkit.org/show_bug.cgi?id=81393
3189
3190         Reviewed by Kentaro Hara.
3191
3192         No new tests, all existing tests pass.
3193
3194         * Modules/filesystem/DOMFilePath.h:
3195
3196 2012-03-19  Max Vujovic  <mvujovic@adobe.com>
3197
3198         inspector highlight of SVG root element with viewbox does not match dimensions of element
3199         https://bugs.webkit.org/show_bug.cgi?id=78037
3200
3201         Reviewed by Nikolas Zimmermann.
3202
3203         Functions such as RenderBox::absoluteQuads and DOMNodeHighlighter::getOrDrawNodeHighlight
3204         eventually call RenderSVGRoot::mapLocalToContainer, passing along local CSS box coordinates.
3205
3206         However, before this patch, RenderSVGRoot::mapLocalToContainer expected local SVG viewport
3207         coordinates. This caused the inspector highlight to be incorrectly sized and positioned.
3208
3209         Now, RenderSVGRoot::mapLocalToContainer expects local CSS box coordinates, like other HTML
3210         renderers.
3211
3212         Test: inspector/elements/highlight-svg-root.html
3213
3214         * dom/Element.cpp:
3215         (WebCore::Element::getBoundingClientRect):
3216             Now, the SVG root element can use the code path for elements with CSS boxes to calculate
3217             its bounding client rect.
3218
3219         * rendering/svg/RenderSVGRoot.cpp:
3220         (WebCore::RenderSVGRoot::mapLocalToContainer):
3221             RenderSVGRoot::mapLocalToContainer no longer needs to apply the
3222             localToBorderBoxTransform to convert from local SVG viewport coordinates to local CSS
3223             box coordinates. Now, it receives local CSS box coordinates.
3224
3225         * rendering/svg/RenderSVGRoot.h:
3226         (WebCore::RenderSVGRoot::localToBorderBoxTransform):
3227             RenderSVGRoot::localToBorderBoxTransform has been exposed for child elements in the SVG
3228             namespace to use when mapping from local SVG viewport coordinates to local CSS box
3229             coordinates.
3230
3231         (RenderSVGRoot):
3232         * rendering/svg/SVGRenderSupport.cpp:
3233         (WebCore::SVGRenderSupport::mapLocalToContainer):
3234             Elements in the SVG namespace should now apply the localToBorderBoxTransform at the
3235             SVG/HTML boundary (aka RenderSVGRoot) when mapping their coordinates up the render tree.
3236
3237         * svg/SVGSVGElement.cpp:
3238         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
3239             Same as above. This method is eventually used in the SVGLocatable::getScreenCTM
3240             calculation.
3241
3242 2012-03-19  Hironori Bono  <hbono@chromium.org>
3243
3244         Add a copy constructor to CollapsedBorderValue
3245         https://bugs.webkit.org/show_bug.cgi?id=81502
3246
3247         Reviewed by Hajime Morita.
3248
3249         Due to the lack of this copy constructor, GCC (x86) creates a broken copy
3250         constructor and it causes a build break on Google Chrome.
3251
3252         * rendering/style/CollapsedBorderValue.h:
3253         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
3254         (CollapsedBorderValue):
3255
3256 2012-03-18  Matt Falkenhagen  <falken@chromium.org>
3257
3258         Fallback to common script when per-script font setting is the empty string
3259         https://bugs.webkit.org/show_bug.cgi?id=81329
3260
3261         Reviewed by Kent Tamura.
3262
3263         Tests: fast/text/international/font-fallback-to-common-script.html
3264
3265         * page/Settings.cpp:
3266         (WebCore::setGenericFontFamilyForScript): Remove the setting when the per-script font family is the empty string.
3267
3268 2012-03-18  Luke Macpherson   <macpherson@chromium.org>
3269
3270         Remove remnants of code that assume Lengths are 28 bit integers.
3271         https://bugs.webkit.org/show_bug.cgi?id=67976
3272
3273         Reviewed by Eric Seidel.
3274
3275         Test: LayoutTests/fast/table/max-width-integer-overflow-expected.html
3276
3277         * css/CSSPrimitiveValue.cpp:
3278         (WebCore::CSSPrimitiveValue::computeLength):
3279         Bound by INT_MAX and INT_MIN instead of 28 bit bounds.
3280         * css/CSSStyleApplyProperty.cpp:
3281         (WebCore::ApplyPropertyBorderRadius::applyValue):
3282         Use PrimitiveValue::computeLength function directly.
3283         * platform/Length.h:
3284         Remove 28 bit integer limit constants.
3285         * rendering/AutoTableLayout.cpp:
3286         (WebCore::AutoTableLayout::computePreferredLogicalWidths):
3287         Use std::numeric_limits.
3288
3289 2012-03-16  Shinya Kawanaka  <shinyak@chromium.org>
3290
3291         Should remove RuntimeEnabledFeatures::multipleShadowSubtreesEnabled
3292         https://bugs.webkit.org/show_bug.cgi?id=79307
3293
3294         Reviewed by Dimitri Glazkov.
3295
3296         Since RuntimeEnabledFeatures::multipleShadowSubtreesEnabled was introduced for
3297         temporal unstability of multiple shadow roots. We should remove it now, and
3298         enable it by default.
3299
3300         Test: fast/dom/shadow/shadow-root-js-api.html should cover this change.
3301         The other shadow related tests should also covers this change.
3302
3303         * WebCore.exp.in:
3304         * bindings/generic/RuntimeEnabledFeatures.cpp:
3305         (WebCore):
3306         * bindings/generic/RuntimeEnabledFeatures.h:
3307         (RuntimeEnabledFeatures):
3308         * dom/ShadowRoot.cpp:
3309         (WebCore::ShadowRoot::create):
3310         * dom/ShadowTree.cpp:
3311         (WebCore::ShadowTree::addShadowRoot):
3312         * testing/Internals.cpp:
3313         * testing/Internals.h:
3314         (Internals):
3315         * testing/Internals.idl:
3316
3317 2012-03-18  Dana Jansens  <danakj@chromium.org>
3318
3319         [chromium] Don't occlude on main-thread behind layers/surfaces with impl-thread animations
3320         https://bugs.webkit.org/show_bug.cgi?id=81354
3321
3322         Reviewed by Adrienne Walker.
3323
3324         Layers and surfaces can have an animating opacity or translation on the
3325         impl thread. In this case, the main thread does not know their actual
3326         values, and treats these values as "unknowns". This means we can't use
3327         them for marking areas of the screen as occluded, and we can't consider
3328         a part of a layer occluded in a space that we can not reliably transform
3329         to.
3330
3331         Unit test: CCOcclusionTrackerTestAnimationOpacity0OnMainThread
3332                    CCOcclusionTrackerTestAnimationOpacity1OnMainThread
3333                    CCOcclusionTrackerTestAnimationTranslateOnMainThread
3334
3335         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3336         (WebCore::layerOpacityKnown):
3337         (WebCore::layerTransformsToTargetKnown):
3338         (WebCore::layerTransformsToScreenKnown):
3339         (WebCore):
3340         (WebCore::surfaceOpacityUnknown):
3341         (WebCore::surfaceTransformsToTargetUnknown):
3342         (WebCore::surfaceTransformsToScreenUnknown):
3343         (WebCore::::finishedTargetRenderSurface):
3344         (WebCore::contentToScreenSpaceTransform):
3345         (WebCore::contentToTargetSurfaceTransform):
3346         (WebCore::::markOccludedBehindLayer):
3347         (WebCore::::occluded):
3348         (WebCore::::unoccludedContentRect):
3349
3350 2012-03-18  Dana Jansens  <danakj@chromium.org>
3351
3352         [chromium] Animating opacity is not opaque and should create a render surface on main thread
3353         https://bugs.webkit.org/show_bug.cgi?id=81401
3354
3355         Reviewed by James Robinson.
3356
3357         Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy
3358
3359         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3360         (WebCore::layerOpacityIsOpaque):
3361         (WebCore):
3362         (WebCore::subtreeShouldRenderToSeparateSurface):
3363
3364 2012-03-18  Sam Weinig  <sam@webkit.org>
3365
3366         WebCore::BitmapImage::getCGImageRef should not be used off the main thread.
3367         https://bugs.webkit.org/show_bug.cgi?id=81441
3368
3369         Reviewed by Anders Carlsson.
3370
3371         Covered by existing tests.
3372
3373         * loader/cache/MemoryCache.cpp:
3374         (WebCore::memoryCache):
3375         (WebCore::MemoryCache::add):
3376         (WebCore::MemoryCache::revalidationFailed):
3377         (WebCore::MemoryCache::resourceForURL):
3378         (WebCore::MemoryCache::evict):
3379         Add back main thread assertions.
3380
3381         * platform/graphics/cg/PatternCG.cpp:
3382         (PatternCallbackData):
3383         (WebCore::patternCallback):
3384         (WebCore::patternReleaseOnMainThreadCallback):
3385         (WebCore::Pattern::createPlatformPattern):
3386         Instead of pulling out the CGImageRef in the pattern callback, do it upfront.
3387
3388 2012-03-18  Alexander Færøy  <alexander.faeroy@nokia.com>
3389
3390         [Qt] Don't prepare SQL statements when the database is not open
3391         https://bugs.webkit.org/show_bug.cgi?id=81470
3392
3393         Reviewed by Kenneth Rohde Christiansen.
3394
3395         Already covered by existing tests.
3396
3397         * platform/qt/CookieJarQt.cpp:
3398         (WebCore::SharedCookieJarQt::deleteCookiesForHostname):
3399         (WebCore::SharedCookieJarQt::deleteAllCookies):
3400         (WebCore::SharedCookieJarQt::setCookiesFromUrl):
3401         (WebCore::SharedCookieJarQt::loadCookies):
3402
3403 2012-03-18  Kentaro Hara  <haraken@chromium.org>
3404
3405         Unreviewed, rolling out r110994 due to Chromium crash
3406
3407         * CMakeLists.txt:
3408         * DerivedSources.make:
3409         * DerivedSources.pri:
3410         * GNUmakefile.list.am:
3411         * Target.pri:
3412         * WebCore.gypi:
3413         * WebCore.vcproj/WebCore.vcproj:
3414         * WebCore.xcodeproj/project.pbxproj:
3415         * notifications/DOMWindowNotifications.cpp: Removed.
3416         * notifications/DOMWindowNotifications.h: Removed.
3417         * notifications/DOMWindowNotifications.idl: Removed.
3418         * page/DOMWindow.cpp:
3419         (WebCore::DOMWindow::~DOMWindow):
3420         (WebCore::DOMWindow::willDetachPage):
3421         (WebCore::DOMWindow::disconnectDOMWindowProperties):
3422         (WebCore::DOMWindow::clearDOMWindowProperties):
3423         (WebCore):
3424         (WebCore::DOMWindow::webkitNotifications):
3425         (WebCore::DOMWindow::resetNotifications):
3426         * page/DOMWindow.h:
3427         (WebCore):
3428         (DOMWindow):
3429         * page/DOMWindow.idl:
3430         * page/Frame.cpp:
3431         (WebCore::Frame::willDetachPage):
3432         (WebCore::Frame::transferChildFrameToNewDocument):
3433
3434 2012-03-18  Kentaro Hara  <haraken@chromium.org>
3435
3436         Unreviewed, rolling out r111086.
3437         http://trac.webkit.org/changeset/111086
3438         https://bugs.webkit.org/show_bug.cgi?id=81374
3439
3440         Chromium crash
3441
3442         * notifications/DOMWindowNotifications.cpp:
3443         (WebCore::DOMWindowNotifications::disconnectFrame):
3444
3445 2012-03-18  David Reveman  <reveman@chromium.org>
3446
3447         Invalidation issue when creating backing layer for fixed positioned element.
3448         https://bugs.webkit.org/show_bug.cgi?id=80647
3449
3450         Reviewed by James Robinson.
3451
3452         Ensure that root layer is correctly invalidated by handling scroll and
3453         invalidation from movement of fixed position elements prior to creating