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