Make Length Calculation functions non-inline
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-22  Joe Thomas  <joethomas@motorola.com>
2
3         Make Length Calculation functions non-inline
4         https://bugs.webkit.org/show_bug.cgi?id=81733
5
6         Currently length calculation functions in LengthFunctions.h are inline. These functions are pretty big to be inline.
7         And these functions are expected to grow again when new length units will be introduced in bug 27160.
8
9         A decent rule of thumb is to not inline a function if it is more than 10 lines long. Also it's typically not cost effective to inline
10         functions with loops or switch statements. (Reference: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inline_Functions).
11
12         Ran PerformanceTests/Parser/html5-full-render.html on Mac Snow-Leopard with and without the patch and did not see much performance difference.
13
14         Reviewed by Antti Koivisto.
15
16         * CMakeLists.txt:
17         * GNUmakefile.list.am:
18         * Target.pri:
19         * WebCore.gypi:
20         * WebCore.vcproj/WebCore.vcproj:
21         * WebCore.xcodeproj/project.pbxproj:
22         * css/LengthFunctions.cpp: Added.
23         (WebCore):
24         (WebCore::miminumValueForLength):
25         (WebCore::valueForLength):
26         (WebCore::floatValueForLength):
27         * css/LengthFunctions.h:
28         (WebCore):
29
30 2012-03-22  Alexis Menard  <alexis.menard@openbossa.org>
31
32         Increase code sharing between CSSParser and CSSPropertyLonghand.
33         https://bugs.webkit.org/show_bug.cgi?id=81587
34
35         Reviewed by Antti Koivisto.
36
37         Expose the longhands declaration for a given shorthand in CSSPropertyLonghand and
38         make CSSParser use them. It will make the declaration of longhands in one place only.
39         Remove the map of CSSPropertyLonghand and replace it by a regular switch/case.
40         The map doesn't bring much here and it's cleaner and faster to use the switch.
41         It also shows a little performance improvement in CSS/CSSPropertySetterGetter.html.
42
43         No new tests : no behavior change.
44
45         * css/CSSParser.cpp:
46         (WebCore::CSSParser::parseValue):
47         (WebCore::CSSParser::parseAnimationShorthand):
48         (WebCore::CSSParser::parseTransitionShorthand):
49         (WebCore::CSSParser::parseShorthand):
50         Modify the prototype of this function to directly use the CSSPropertyLonghand.
51         * css/CSSParser.h:
52         (WebCore):
53         (CSSParser):
54         * css/CSSPropertyLonghand.cpp:
55         (WebCore):
56         (WebCore::backgroundLonghand):
57         (WebCore::backgroundPositionLonghand):
58         (WebCore::backgroundRepeatLonghand):
59         (WebCore::borderLonghand):
60         (WebCore::borderBottomLonghand):
61         (WebCore::borderColorLonghand):
62         (WebCore::borderImageLonghand):
63         (WebCore::borderLeftLonghand):
64         (WebCore::borderRadiusLonghand):
65         (WebCore::borderRightLonghand):
66         (WebCore::borderSpacingLonghand):
67         (WebCore::borderStyleLonghand):
68         (WebCore::borderTopLonghand):
69         (WebCore::borderWidthLonghand):
70         (WebCore::listStyleLonghand):
71         (WebCore::fontLonghand):
72         (WebCore::marginLonghand):
73         (WebCore::outlineLonghand):
74         (WebCore::overflowLonghand):
75         (WebCore::paddingLonghand):
76         (WebCore::webkitAnimationLonghand):
77         (WebCore::webkitBorderAfterLonghand):
78         (WebCore::webkitBorderBeforeLonghand):
79         (WebCore::webkitBorderEndLonghand):
80         (WebCore::webkitBorderStartLonghand):
81         (WebCore::webkitColumnsLonghand):
82         (WebCore::webkitColumnRuleLonghand):
83         (WebCore::webkitFlexFlowLonghand):
84         (WebCore::webkitMarginCollapseLonghand):
85         (WebCore::webkitMarqueeLonghand):
86         (WebCore::webkitMaskLonghand):
87         (WebCore::webkitMaskPositionLonghand):
88         (WebCore::webkitMaskRepeatLonghand):
89         (WebCore::webkitTextEmphasisLonghand):
90         (WebCore::webkitTextStrokeLonghand):
91         (WebCore::webkitTransitionLonghand):
92         (WebCore::webkitTransformOriginLonghand):
93         (WebCore::webkitWrapLonghand):
94         (WebCore::longhandForProperty):
95         * css/CSSPropertyLonghand.h:
96         (WebCore):
97
98 2012-03-22  Emil A Eklund  <eae@chromium.org>
99
100         Unreviewed, touching file to force bots to pick up CSS_SHADERS flag change. 
101
102         * css/CSSStyleSelector.h:
103         (CSSStyleSelector):
104
105 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
106
107         ReverbConvolver::latencyFrames() should return 0.
108         https://bugs.webkit.org/show_bug.cgi?id=81806
109
110         Reviewed by Chris Rogers.
111
112         * platform/audio/ReverbConvolver.cpp:
113         (WebCore::ReverbConvolver::latencyFrames):
114
115 2012-03-22  Tony Chang  <tony@chromium.org>
116
117         refactor flexbox in preparation for flex-line-pack
118         https://bugs.webkit.org/show_bug.cgi?id=81843
119
120         Reviewed by Ojan Vafai.
121
122         Replace WrapReverseContext with a vector of LineContexts that contain
123         the same information, plus values needed for flex-align.
124
125         alignChildren has been moved to after all the lines have been
126         positioned. We want to align children after flex-line-pack has changed
127         the size of each line to avoid unnecessary layouts.
128
129         Take 2: Remove the assert. If there are no children, then there are no
130         flex lines. Instead, assert that child is not null.
131
132         No new tests, just refactoring.
133
134         * rendering/RenderFlexibleBox.cpp:
135         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
136         holds information needed for wrap-reverse and aligning children.
137         (RenderFlexibleBox::LineContext):
138         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
139         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
140         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
141         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
142         * rendering/RenderFlexibleBox.h:
143
144 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
145
146         Event dispatching in XMLHttpRequestProgressEventThrottle should go through XMLHttpRequestProgressEventThrottle::dispatchEvent
147         https://bugs.webkit.org/show_bug.cgi?id=46743
148
149         Reviewed by Julien Chaffraix
150         Based on original patch by Anton D'Auria
151
152         In preparation for platform-specific queuing of XMLHttpRequest events,
153         this patch changes all calls to m_target->dispatchEvent to
154         XMLHttpRequestProgressEventThrottle::dispatchEvent.
155         Currently, we queue only one progress event on suspend() if we have
156         throttled progress events. We should be able to queue all XHR events
157         that can be generated after suspend(), if the platform network layer
158         continues to receive data.
159         XMLHttpRequest uses XMLHttpRequestProgressEventThrottle to dispatch only
160         download events, so this doesn't change behavior of upload events, which
161         aren't throttled or queued.
162
163         * xml/XMLHttpRequest.cpp:
164         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
165         * xml/XMLHttpRequestProgressEventThrottle.cpp:
166         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
167         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
168         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
169         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchPausedEvent):
170         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
171         * xml/XMLHttpRequestProgressEventThrottle.h:
172         (XMLHttpRequestProgressEventThrottle):
173
174 2012-03-22  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
175
176         [EFL] Map BackSpace key code to Unicode value
177         https://bugs.webkit.org/show_bug.cgi?id=81130
178
179         Reviewed by Gustavo Noronha Silva.
180
181         Test: fast/events/backspace-navigates-back.html
182
183         * platform/efl/EflKeyboardUtilities.cpp:
184         (WebCore::createKeyMap): Map BackSpace to Unicode value
185
186 2012-03-22  Abhishek Arya  <inferno@chromium.org>
187
188         Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
189         https://bugs.webkit.org/show_bug.cgi?id=80297
190
191         Reviewed by Julien Chaffraix.
192
193         beforeChild might share the same anonymous block parent with other previous
194         siblings. Before moving the children across ruby bases, we need to make sure
195         to split the tree across the beforeChild correctly.
196
197         Test: fast/ruby/ruby-text-before-child-split.html
198
199         * rendering/RenderRubyBase.cpp:
200         (WebCore::RenderRubyBase::moveChildren):
201
202 2012-03-22  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
203
204         [Qt] Fix Qt minimal build after r111692
205
206         Reviewed by Csaba Osztrogonác.
207
208         * bindings/js/JSScriptProfileNodeCustom.cpp:
209
210 2012-03-22  Adrienne Walker  <enne@google.com>
211
212         [chromium] Fix scrollbar layers holding onto invalid textures after lost context
213         https://bugs.webkit.org/show_bug.cgi?id=81841
214
215         Reviewed by James Robinson.
216
217         Unit test: CCLayerTreeHostImplTest.scrollbarLayerLostContext
218
219         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
220         (WebCore::CCScrollbarLayerImpl::willDraw):
221
222 2012-03-22  Philippe Normand  <pnormand@igalia.com>
223
224         [GTK] ASSERT bug in WebAudio (AudioFileReader)
225         https://bugs.webkit.org/show_bug.cgi?id=81777
226
227         Reviewed by Martin Robinson.
228
229         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
230         (WebCore::AudioFileReader::decodeAudioForBusCreation): Don't steal
231         the GstBus floating reference.
232         (WebCore::AudioFileReader::createBus): Ditto.
233
234 2012-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
235
236         Unreviewed: Web Inspector: fix syntax error in text.
237
238         * English.lproj/localizedStrings.js:
239         * inspector/front-end/HeapSnapshotProxy.js:
240         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
241
242 2012-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
243
244         Unreviewed, rolling out r111688.
245         http://trac.webkit.org/changeset/111688
246         https://bugs.webkit.org/show_bug.cgi?id=81912
247
248         "Heap profiler test fails" (Requested by yurys on #webkit).
249
250         * inspector/front-end/HeapSnapshot.js:
251         (WebInspector.HeapSnapshot.prototype._buildRetainers):
252
253 2012-03-22  Dana Jansens  <danakj@chromium.org>
254
255         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
256         https://bugs.webkit.org/show_bug.cgi?id=81437
257
258         Reviewed by Adrienne Walker.
259
260         Split CCLayerTreeHostImpl::drawLayers() into two phases:
261         prepareToDraw() and drawLayers().
262
263         When calculating a RenderPass, and we checkerboard a quad on a
264         layer, bubble this info back up to CCLayerTreeHostImpl. If the
265         layer is transforming in an animation, then abort the prepareToDraw()
266         phase and cause it to return false back to the thread proxy.
267
268         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
269
270         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
271         (WebCore::CCLayerImpl::appendQuads):
272         * platform/graphics/chromium/cc/CCLayerImpl.h:
273         (CCLayerImpl):
274         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
275         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
276         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
277         (WebCore):
278         (WebCore::CCLayerTreeHostImpl::drawLayers):
279         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
280         (CCLayerTreeHostImpl):
281         (FrameData):
282         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
283         (WebCore::CCQuadCuller::append):
284         * platform/graphics/chromium/cc/CCQuadCuller.h:
285         (CCQuadCuller):
286         * platform/graphics/chromium/cc/CCRenderPass.cpp:
287         (WebCore::CCRenderPass::appendQuadsForLayer):
288         * platform/graphics/chromium/cc/CCRenderPass.h:
289         (CCRenderPass):
290         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
291         (WebCore::CCScrollbarLayerImpl::appendQuads):
292         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
293         (CCScrollbarLayerImpl):
294         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
295         (WebCore::CCSingleThreadProxy::doComposite):
296         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
297         (WebCore::CCSolidColorLayerImpl::appendQuads):
298         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
299         (CCSolidColorLayerImpl):
300         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
301         (WebCore::CCTextureLayerImpl::appendQuads):
302         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
303         (CCTextureLayerImpl):
304         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
305         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
306         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
307         (WebCore::CCTiledLayerImpl::appendQuads):
308         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
309         (CCTiledLayerImpl):
310         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
311         (WebCore::CCVideoLayerImpl::appendQuads):
312         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
313         (CCVideoLayerImpl):
314
315 2012-03-22  Levi Weintraub  <leviw@chromium.org>
316
317         Correct LayoutUnit usage in Accessibility code
318         https://bugs.webkit.org/show_bug.cgi?id=81789
319
320         Reviewed by Eric Seidel.
321
322         Reverting Accessibility hit testing code back to integers. Accessibility hit tests originate from
323         the embedder and don't accumulate offsets, so we get nothing from using LayoutUnits, and needlessly
324         expose them to the embedder.
325
326         No new tests. No change in behavior.
327
328         * accessibility/AccessibilityListBox.cpp:
329         (WebCore::AccessibilityListBox::elementAccessibilityHitTest): See above.
330         * accessibility/AccessibilityListBox.h:
331         (AccessibilityListBox):
332         * accessibility/AccessibilityObject.cpp:
333         (WebCore::AccessibilityObject::clickPoint): This value is only ever used to display a context menu,
334         which is always done with integer coordinates.
335         (WebCore::AccessibilityObject::boundingBoxForQuads): This is a bounding box built from floats. We
336         don't pixel snap floats, so we return an integer bounding box.
337         (WebCore::AccessibilityObject::elementAccessibilityHitTest): See above.
338         (WebCore::AccessibilityObject::scrollToMakeVisible): Pixel snapping the bounding box and simplifying
339         up the code to position it at (0,0).
340         * accessibility/AccessibilityObject.h:
341         (WebCore::AccessibilityObject::accessibilityHitTest): See above.
342         (AccessibilityObject):
343         (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect): Convenience method for embedder callers.
344         * accessibility/AccessibilityRenderObject.cpp:
345         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): The point passed in here is comes from
346         screen coordinates and originates in embedder code. Reverting it to take an integer.
347         (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): See above.
348         (WebCore::AccessibilityRenderObject::accessibilityHitTest): See above.
349         * accessibility/AccessibilityRenderObject.h:
350         (AccessibilityRenderObject):
351         * accessibility/AccessibilityScrollView.cpp:
352         (WebCore::AccessibilityScrollView::accessibilityHitTest): See above.
353         * accessibility/AccessibilityScrollView.h:
354         (AccessibilityScrollView):
355         * accessibility/AccessibilitySlider.cpp:
356         (WebCore::AccessibilitySlider::elementAccessibilityHitTest): See above.
357         * accessibility/AccessibilitySlider.h:
358         (AccessibilitySlider):
359
360 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
361
362         Web Inspector: HeapProfiler: Heap snapshot worker has to report the errors to the front-end
363         https://bugs.webkit.org/show_bug.cgi?id=81804
364
365         Sometimes the worker process of HeapSnapshot does some wrong thing and throw an Exception.
366         At this momemnt we have no way to see the error in the front-end.
367
368         Reviewed by Yury Semikhatsky.
369
370         * English.lproj/localizedStrings.js:
371         * inspector/front-end/HeapSnapshotProxy.js: check the exception field and dump it into front-end's console.
372         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
373         * inspector/front-end/HeapSnapshotWorkerDispatcher.js: catch the exception and transfer it's text to requester's side.
374         (WebInspector.HeapSnapshotWorkerDispatcher.prototype.dispatchMessage):
375
376 2012-03-22  Carlos Garcia Campos  <cgarcia@bb-webkit-rel-64.local.igalia.com>
377
378         [GTK] Use the angle-bracket form to include wtf headers
379         https://bugs.webkit.org/show_bug.cgi?id=81884
380
381         Reviewed by Eric Seidel.
382
383         Use #include <wtf/foo> instead of #include "foo".
384
385         * platform/graphics/freetype/FontPlatformData.h:
386         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
387         * platform/gtk/DataObjectGtk.h:
388         * platform/network/ResourceHandleInternal.h:
389         * platform/network/soup/SocketStreamHandleSoup.cpp:
390
391 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
392
393         Web Inspector: Case of the elements of the xml document should be shown as it is in the console
394         https://bugs.webkit.org/show_bug.cgi?id=81902
395
396         When registering a detached root, DOMAgent always presumes it is a node,
397         while it can also be a document.
398
399         Reviewed by Vsevolod Vlasov.
400
401         Test: inspector/console/console-xml-document.html
402
403         * inspector/front-end/ConsoleMessage.js:
404         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
405         * inspector/front-end/DOMAgent.js:
406         (WebInspector.DOMAgent.prototype._setDetachedRoot):
407
408 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
409
410         Web Inspector: Introduce ScriptBound/ScriptUnbound events in ScriptMapping.
411         https://bugs.webkit.org/show_bug.cgi?id=81904
412
413         Reviewed by Pavel Feldman.
414
415         This is another step on the way to cleaner BreakpointManager logic.
416         Here we extract ScriptBound/ScriptUnbound events from UISourceCodeListChanged event.
417         This allows us to handle script-uiSourceCode binding separately from
418         uiSourceCode creation/deletion and to handle unbinding that was not
419         possible at all before.
420
421         * inspector/front-end/CompilerScriptMapping.js:
422         (WebInspector.CompilerScriptMapping.prototype._uiSourceCodesForSourceMap):
423         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
424         (WebInspector.CompilerScriptMapping.prototype.addScript):
425         (WebInspector.CompilerScriptMapping.prototype.reset):
426         * inspector/front-end/ResourceScriptMapping.js:
427         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
428         * inspector/front-end/ScriptMapping.js:
429         (WebInspector.MainScriptMapping):
430         (WebInspector.MainScriptMapping.prototype._updateLiveLocation):
431         (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
432         (WebInspector.MainScriptMapping.prototype._handleScriptBound):
433         (WebInspector.MainScriptMapping.prototype._handleScriptUnbound):
434         * inspector/front-end/SnippetsModel.js:
435         (WebInspector.SnippetsScriptMapping.prototype.addScript.get this):
436         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
437         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
438         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
439         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
440         (WebInspector.SnippetsScriptMapping.prototype.reset):
441
442 2012-03-22  Vineet Chaudhary  <rgf748@motorola.com>
443
444         https://bugs.webkit.org/show_bug.cgi?id=81893
445         Remove custom bindings form ScriptProfileNode.idl of attribute type Array.
446
447         Reviewed by Kentaro Hara.
448
449         Replace [CustomGetter] Array with sequence<ScriptProfileNode>.
450         To remove the custom bindings code.
451
452         Test: No new tests. LayoutTests/fast/profiler/* test are enough for this.
453
454         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed custom function.
455         (WebCore::JSScriptProfileNode::callUID):
456         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed custom function.
457         (WebCore):
458         * inspector/ScriptProfileNode.idl: Replaced Array with sequence<ScriptProfileNode>.
459
460 2012-03-22  Andrey Kosyakov  <caseq@chromium.org>
461
462         Web Inspector: only update timeline overview categories strips when these are visible
463         https://bugs.webkit.org/show_bug.cgi?id=81903
464
465         Reviewed by Pavel Feldman.
466
467         - factor out category strips update into a separate method;
468         - only invoke it when "Timeline" overview mode is selected.
469
470         * inspector/front-end/TimelineOverviewPane.js:
471         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
472         (WebInspector.TimelineOverviewPane.prototype.update):
473         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
474
475 2012-03-22  Levi Weintraub  <leviw@chromium.org>
476
477         Update LayoutUnit usage in FrameSelection
478         https://bugs.webkit.org/show_bug.cgi?id=81754
479
480         Reviewed by Eric Seidel.
481
482         FrameSelection stores its caret and repaint bounds in absolute coordinates. Absolute coordinates
483         we treat as pixel values, so this patch changes these values to integers. Sub-pixel precision
484         will still be used when these coordinates are passed down and used locally.
485
486         No new tests. No change in behavior.
487
488         * editing/FrameSelection.cpp:
489         (WebCore::absoluteCaretY): Uses absolute coordinates, which are ints.
490         (WebCore::FrameSelection::modify): Uses absolute coordinates to handle vertical selection
491         modification. Sub-pixel precision will be used when these values are converted to local ones.
492         (WebCore::CaretBase::absoluteBoundsForLocalRect): Absolute coordinates -> ints.
493         (WebCore::FrameSelection::absoluteCaretBounds): Ditto.
494         (WebCore::CaretBase::caretRepaintRect): The caret repaint rect is stored in absolute coordinates.
495         Reverting the values to ints.
496         (WebCore::FrameSelection::recomputeCaretRect): Ditto.
497         * editing/FrameSelection.h:
498         (FrameSelection):
499         * editing/mac/FrameSelectionMac.mm:
500         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Switching to store absolute
501         coordinates as integers.
502
503 2012-03-22  Alexei Filippov  <alexeif@chromium.org>
504
505         Web Inspector: Speed up the build retainers phase.
506         https://bugs.webkit.org/show_bug.cgi?id=81763
507
508         Replacing the edge iterator with a raw loop makes it
509         faster by more than 10 times.
510
511         Reviewed by Yury Semikhatsky.
512
513         * inspector/front-end/HeapSnapshot.js:
514         (WebInspector.HeapSnapshot.prototype._buildRetainers):
515
516 2012-03-22  No'am Rosenthal  <noam.rosenthal@nokia.com>
517
518         [Qt][WK2] The background appears to have one extra pixel from the contents
519         https://bugs.webkit.org/show_bug.cgi?id=81830
520
521         Reviewed by Kenneth Rohde Christiansen.
522
523         TextureMapperGL applied a 1-offset that was covering for another bug,
524         which was already fixed.
525
526         No new tests, this would be tested once we test GL rendering results.
527
528         * platform/graphics/texmap/TextureMapperGL.cpp:
529         (WebCore::TextureMapperGLData::SharedGLData::scissorClip):
530
531 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
532
533         Rename touchpad fling curve, add curve parameters to constructor.
534         https://bugs.webkit.org/show_bug.cgi?id=81820
535
536         Reviewed by Adrienne Walker.
537
538         Covered by existing unit tests.
539
540         * GNUmakefile.list.am:
541         * WebCore.gypi:
542         * platform/ScrollAnimatorNone.cpp:
543         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
544         * platform/TouchpadFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.cpp.
545         (WebCore):
546         (WebCore::TouchpadFlingPlatformGestureCurve::create):
547         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
548         (WebCore::TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve):
549         (WebCore::TouchpadFlingPlatformGestureCurve::apply):
550         * platform/TouchpadFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.h.
551         (WebCore):
552         (TouchpadFlingPlatformGestureCurve):
553
554 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
555
556         Web Inspector: make CSS and JavaScript files editable by default.
557         https://bugs.webkit.org/show_bug.cgi?id=81787
558
559         Reviewed by Vsevolod Vlasov.
560
561         This change removes cancelEditing and setReadOnly capabilities from source frame.
562         It removes dblclick handler as well since one does not need to enter editing mode.
563         It also establishes proper content dispatching so that views are updated with the
564         resource content. All these are inter-dependent, need to be landed simultaneously.
565         Drive-by follow up to the r111675 where range is modified prior to the exiting
566         edit mode.
567
568         * inspector/front-end/JavaScriptSourceFrame.js:
569         (WebInspector.JavaScriptSourceFrame):
570         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
571         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
572         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
573         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
574         (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
575         * inspector/front-end/ResourceView.js:
576         (WebInspector.ResourceSourceFrame):
577         (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
578         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
579         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
580         (WebInspector.EditableResourceSourceFrame.prototype.editContent.callbackWrapper):
581         (WebInspector.EditableResourceSourceFrame.prototype.editContent):
582         (WebInspector.EditableResourceSourceFrame.prototype._contentChanged):
583         * inspector/front-end/ResourcesPanel.js:
584         (WebInspector.ResourcesPanel.prototype._innerShowView):
585         (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
586         * inspector/front-end/ScriptsPanel.js:
587         (WebInspector.ScriptsPanel.prototype.setScriptSourceIsDirty):
588         * inspector/front-end/Settings.js:
589         (WebInspector.ExperimentsSettings):
590         * inspector/front-end/SourceFrame.js:
591         (WebInspector.SourceFrame):
592         (WebInspector.SourceFrame.prototype.wasShown):
593         (WebInspector.SourceFrame.prototype.willHide):
594         (WebInspector.SourceFrame.prototype.beforeTextChanged):
595         (WebInspector.SourceFrame.prototype.setContent):
596         (WebInspector.SourceFrame.prototype.commitEditing):
597         (WebInspector.SourceFrame.prototype.didEditContent):
598         (WebInspector.SourceFrame.prototype.editContent):
599         * inspector/front-end/TextPrompt.js:
600         (WebInspector.TextPrompt.prototype._startEditing):
601         (WebInspector.TextPrompt.prototype._stopEditing):
602         * inspector/front-end/TextViewer.js:
603         (WebInspector.TextViewer):
604         (WebInspector.TextViewer.prototype._registerShortcuts):
605         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
606
607 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
608
609         [Qt] Enable FAST_MOBILE_SCROLLING when scrolling is delegated.
610         https://bugs.webkit.org/show_bug.cgi?id=81889
611
612         Reviewed by Kenneth Rohde Christiansen.
613
614         On the Qt platform only enable the fast mobile scroll feature when scrolling is delegated.
615
616         * rendering/RenderObject.cpp:
617         (WebCore::RenderObject::styleWillChange):
618
619 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
620
621         Web Inspector: dispatch styleSheetChanged event synchronously.
622         https://bugs.webkit.org/show_bug.cgi?id=81892
623
624         Reviewed by Vsevolod Vlasov.
625
626         Today, backend generates stylesheet change event synchronously from within set* command.
627         But CSSStyleModel defers its dispatching until the stylesheet content is available. This
628         prevents us from ignoring update events from within commands that initiated those updates.
629
630         This change makes stylesheet change event dispatch synchronously and delegates stylesheet
631         content fetching to the event client.
632
633         * inspector/front-end/CSSStyleModel.js:
634         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
635         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
636         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
637         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent.callbackWrapper):
638         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
639         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.callback):
640         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
641         (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
642
643 2012-03-21  Ian Vollick  <vollick@chromium.org>
644
645         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
646         https://bugs.webkit.org/show_bug.cgi?id=81692
647
648         Reviewed by Adrienne Walker.
649
650         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
651
652         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
653
654 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
655
656         Web Inspector: allow on-hover popover while in edit mode.
657         https://bugs.webkit.org/show_bug.cgi?id=81898
658
659         Reviewed by Vsevolod Vlasov.
660
661         This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
662         concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
663
664         * inspector/front-end/DetailedHeapshotView.js:
665         * inspector/front-end/ElementsPanel.js:
666         * inspector/front-end/JavaScriptSourceFrame.js:
667         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
668         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
669         (WebInspector.JavaScriptSourceFrame.prototype._onKeyDown):
670         * inspector/front-end/NetworkPanel.js:
671         * inspector/front-end/ObjectPopoverHelper.js:
672         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
673         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
674         * inspector/front-end/Popover.js:
675         (WebInspector.PopoverHelper.prototype.isPopoverVisible):
676         * inspector/front-end/TimelinePanel.js:
677
678 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
679
680         Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
681         https://bugs.webkit.org/show_bug.cgi?id=81896
682
683         Reviewed by Vsevolod Vlasov.
684
685         There is a bug that collapses selection prior to exiting change mode, we should never
686         collapse edit area prior committing.
687
688         * inspector/front-end/TextEditorModel.js:
689         (WebInspector.TextEditorModel.endsWithBracketRegex.):
690         * inspector/front-end/TextViewer.js:
691         (WebInspector.TextViewer):
692         (WebInspector.TextEditorMainPanel.prototype.highlightLine):
693         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback):
694         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
695
696 2012-03-22  Zoltan Herczeg  <zherczeg@webkit.org>
697
698         Merge SVGImageBufferTools to SVGRenderingContext
699         https://bugs.webkit.org/show_bug.cgi?id=81890
700
701         Reviewed by Nikolas Zimmermann.
702
703         Copy the code to SVGRenderingContext and delete
704         SVGImageBufferTools[.cpp.h]. Update build systems,
705         no functionality change. This is the first step
706         towards making SVGImageBufferTools stageful.
707
708         Existing tests cover this issue.
709
710         * CMakeLists.txt:
711         * GNUmakefile.list.am:
712         * Target.pri:
713         * WebCore.gypi:
714         * WebCore.xcodeproj/project.pbxproj:
715         * platform/graphics/filters/FETile.cpp:
716         (WebCore::FETile::platformApplySoftware):
717         * rendering/svg/RenderSVGAllInOne.cpp:
718         * rendering/svg/RenderSVGInlineText.cpp:
719         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
720         * rendering/svg/RenderSVGResourceClipper.cpp:
721         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
722         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
723         * rendering/svg/RenderSVGResourceFilter.cpp:
724         (WebCore::RenderSVGResourceFilter::applyResource):
725         * rendering/svg/RenderSVGResourceGradient.cpp:
726         (WebCore::createMaskAndSwapContextForTextGradient):
727         (WebCore::clipToTextMask):
728         * rendering/svg/RenderSVGResourceMasker.cpp:
729         (WebCore::RenderSVGResourceMasker::applyResource):
730         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
731         * rendering/svg/RenderSVGResourcePattern.cpp:
732         (WebCore::RenderSVGResourcePattern::applyResource):
733         (WebCore::RenderSVGResourcePattern::createTileImage):
734         * rendering/svg/SVGImageBufferTools.cpp: Removed.
735         * rendering/svg/SVGImageBufferTools.h: Removed.
736         * rendering/svg/SVGInlineTextBox.cpp:
737         * rendering/svg/SVGRenderingContext.cpp:
738         (WebCore::currentContentTransformation):
739         (WebCore):
740         (WebCore::SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem):
741         (WebCore::SVGRenderingContext::createImageBuffer):
742         (WebCore::SVGRenderingContext::createImageBufferForPattern):
743         (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
744         (WebCore::SVGRenderingContext::clipToImageBuffer):
745         (WebCore::SVGRenderingContext::clampedAbsoluteTargetRect):
746         (WebCore::SVGRenderingContext::clampedAbsoluteSize):
747         (WebCore::SVGRenderingContext::clear2DRotation):
748         * rendering/svg/SVGRenderingContext.h:
749         (SVGRenderingContext):
750         (WebCore::SVGRenderingContext::calculateImageBufferRect):
751         * svg/graphics/filters/SVGFEImage.cpp:
752         (WebCore::FEImage::platformApplySoftware):
753
754 2012-03-22  Hyowon Kim  <hw1008.kim@samsung.com>
755
756         [EFL] Add PageClientEfl to WebCoreSupport.
757         https://bugs.webkit.org/show_bug.cgi?id=80748
758
759         Reviewed by Noam Rosenthal.
760
761         * platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
762         (WebCore):
763         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
764         (WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
765         * plugins/efl/PluginViewEfl.cpp:
766         (WebCore::PluginView::platformGetValue): Use PageClientEfl.
767
768 2012-03-22  Kaustubh Atrawalkar  <kaustubh@motorola.com>
769
770         blur() on shadow host should work when a shadow host contains a focused element in its shadow DOM subtrees
771         https://bugs.webkit.org/show_bug.cgi?id=81102
772
773         Reviewed by Hajime Morita.
774
775         This implementation will support blur for a focused element when its shadowHost's blur() is called.
776         To achieve this Element::blur() function is modified to blur the focused node in it's treeScope.
777
778         Test: fast/dom/shadow/shadow-root-blur.html
779
780         * dom/Element.cpp:
781         (WebCore::Element::blur): Modified to blur current treeScope's focused node.
782         * dom/ShadowRoot.h:
783         (WebCore::ShadowRoot::activeElement): Rework for code sharing.
784         * dom/TreeScope.cpp:
785         (WebCore::TreeScope::focusedNode): Added new function to share code for getting focused node.
786         * dom/TreeScope.h:
787         (TreeScope): New function declartion.
788         * html/HTMLDocument.cpp:
789         (WebCore::HTMLDocument::activeElement): Rework for code sharing.
790
791 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
792
793         Web Inspector: RawSourceCode does not need uiSourceCode lists because it never has more than one.
794         https://bugs.webkit.org/show_bug.cgi?id=81894
795
796         RawSourceCode never has more than one uiSourceCode, uiSourceCodeList
797         are just remains of older implementation. This patch switches RawSourceCode
798         and SourceMappings from uiSourceCodeList to uiSourceCode.
799
800         Reviewed by Pavel Feldman.
801
802         * inspector/front-end/RawSourceCode.js:
803         (WebInspector.RawSourceCode.prototype.uiSourceCode):
804         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
805         (WebInspector.RawSourceCode.SourceMapping.prototype.uiLocationToRawLocation):
806         (WebInspector.RawSourceCode.SourceMapping.prototype.uiSourceCode):
807         (WebInspector.RawSourceCode.PlainSourceMapping):
808         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
809         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
810         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiSourceCode):
811         (WebInspector.RawSourceCode.FormattedSourceMapping):
812         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
813         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
814         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiSourceCode):
815         * inspector/front-end/ResourceScriptMapping.js:
816         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
817         (WebInspector.ResourceScriptMapping.prototype.addScript):
818         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
819         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
820         (WebInspector.ResourceScriptMapping.prototype.reset):
821
822 2012-03-22  Mario Sanchez Prada  <msanchez@igalia.com>
823
824         [GTK] Fix the only remaining coding style issue in GTK accessibility code
825         https://bugs.webkit.org/show_bug.cgi?id=81885
826
827         Reviewed by Xan Lopez.
828
829         Add needed extra line and remove an unneeded one.
830
831         * accessibility/gtk/AccessibilityObjectAtk.cpp:
832
833 2012-03-22  Kent Tamura  <tkent@chromium.org>
834
835         Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect().
836         https://bugs.webkit.org/show_bug.cgi?id=81866
837
838         Reviewed by Hajime Morita.
839
840         We need to expand the controlClipRect because the existing shadow
841         tree of a text field can be wrapped by another shadow tree. e.g.
842
843         A current situation:
844
845         <input>
846           ┗ ShadowRoot
847              ┗ container element
848         ┌────────────┐<input>'s border box
849         │┌──────────┐│
850         ││container box       ││
851         │└──────────┘│
852         └────────────┘
853
854         Wrapped by another ShadowRoot:
855
856         <input>
857           ┗ New ShadowRoot
858              ┣ <shadow> represents the existing shadow tree
859              ┃  ┗ container element
860              ┗ D: an additional decoration element
861         ┌────────────┐<input>'s border box
862         │┌───────┬──┐│
863         ││container box │ D  ││
864         │└───────┴──┘│
865         └────────────┘
866         In this case, if we clip child renderers by container box, D is not
867         drawn. We should clip by the content box of the <input>.
868
869         A search field has an exceptional behavior. It can have the container
870         box of which height is taller than the content box height. The
871         controlClipRect should contain both of the container box and the content
872         box in this case. In other cases, the container box is equivalent to the
873         content box. So the code always unites them.
874
875         No new tests. This won't make any behavior change for now.
876
877         * rendering/RenderTextControlSingleLine.cpp:
878         (WebCore::RenderTextControlSingleLine::controlClipRect):
879
880 2012-03-22  Yoshifumi Inoue  <yosin@chromium.org>
881
882         [Forms] The option element should not be form associated element.
883         https://bugs.webkit.org/show_bug.cgi?id=79764
884
885         Reviewed by Kent Tamura.
886
887         This patch changes base class of HTMLOptionELement to HTMLElement
888         from HTMLFormControlElement for saving memory space and iteration
889         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
890         and matching the HTML5 specification for ease of maintenance.
891
892         This patch changes behavior of handling of CSS pseudo classes "invalid"
893         and "valid". The "option" elements no longer use these CSS pseudo classes
894         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
895
896         Changes of TextIterator is lead by usage of isFormControlElement. This
897         changes will be replaced with more meaningful predicate as part of
898         https://bugs.webkit.org/show_bug.cgi?id=80381
899
900         No new tests but updated select-live-pseudo-selectors.html test.
901
902         * css/CSSStyleSelector.cpp:
903         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
904         * css/SelectorChecker.cpp:
905         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
906         * html/HTMLKeygenElement.cpp:
907         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
908         * html/HTMLOptionElement.cpp:
909         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
910         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
911         (WebCore::HTMLOptionElement::attach): Changeid base class.
912         (WebCore::HTMLOptionElement::detach): Changed base class.
913         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
914         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
915         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
916         * html/HTMLOptionElement.h:
917         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
918         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
919         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
920
921 2012-03-21  Pavel Podivilov  <podivilov@chromium.org>
922
923         Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.
924         https://bugs.webkit.org/show_bug.cgi?id=81780
925
926         Reviewed by Pavel Feldman.
927
928         * WebCore.gypi:
929         * WebCore.vcproj/WebCore.vcproj:
930         * inspector/compile-front-end.py:
931         * inspector/front-end/CompilerScriptMapping.js:
932         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
933         (WebInspector.SourceMapParserPayload):
934         (WebInspector.SourceMapParser):
935         (WebInspector.SourceMapParser.prototype.load):
936         (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation):
937         (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation):
938         (WebInspector.SourceMapParser.prototype.sources):
939         (WebInspector.SourceMapParser.prototype.loadSourceCode):
940         (WebInspector.SourceMapParser.prototype._findMapping):
941         (WebInspector.SourceMapParser.prototype._parseMappingPayload):
942         (WebInspector.SourceMapParser.prototype._parseSections):
943         (WebInspector.SourceMapParser.prototype._parseMap):
944         (WebInspector.SourceMapParser.prototype._isSeparator):
945         (WebInspector.SourceMapParser.prototype._decodeVLQ):
946         (WebInspector.SourceMapParser.prototype._canonicalizeURL):
947         (WebInspector.SourceMapParser.StringCharIterator):
948         (WebInspector.SourceMapParser.StringCharIterator.prototype.next):
949         (WebInspector.SourceMapParser.StringCharIterator.prototype.peek):
950         (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext):
951         * inspector/front-end/CompilerSourceMapping.js: Removed.
952         * inspector/front-end/WebKit.qrc:
953         * inspector/front-end/inspector.html:
954
955 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
956
957         Web Inspector: IndexedDB transaction is not closed when requesting data.
958         https://bugs.webkit.org/show_bug.cgi?id=81837
959
960         Reviewed by Pavel Feldman.
961
962         * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call.
963         (WebCore):
964
965 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
966
967         Web Inspector: event listeners section is broken for about:blank page
968         https://bugs.webkit.org/show_bug.cgi?id=81795
969
970         Parse about:blank as a valid URL.
971
972         Reviewed by Pavel Feldman.
973
974         Test: inspector/elements/event-listeners-about-blank.html
975
976         * inspector/front-end/utilities.js:
977         (String.prototype.asParsedURL):
978
979 2012-03-21  Dan Bernstein  <mitz@apple.com>
980
981         REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests
982         https://bugs.webkit.org/show_bug.cgi?id=81870
983
984         Reverted r111635, the fix for bug 81843.
985
986         * rendering/RenderFlexibleBox.cpp:
987         (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext):
988         (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
989         (RenderFlexibleBox::WrapReverseContext):
990         (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
991         (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta):
992         (WebCore::RenderFlexibleBox::layoutFlexItems):
993         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
994         (WebCore::RenderFlexibleBox::alignChildren):
995         (WebCore::RenderFlexibleBox::flipForWrapReverse):
996         * rendering/RenderFlexibleBox.h:
997
998 2012-03-21  Emil A Eklund  <eae@chromium.org>
999
1000         Unreviewed change touching CustomFilterProgram.h to try
1001         to force the chromium-win bots to rebuilt it and pick up
1002         on the fact that CSS_SHADERS is not set (since r111610). 
1003
1004         * platform/graphics/filters/CustomFilterProgram.h:
1005
1006 2012-03-21  Vangelis Kokkevis  <vangelis@chromium.org>
1007
1008         [chromium] FPS counter causes garbage to be displayed at top left corner
1009         https://bugs.webkit.org/show_bug.cgi?id=81851
1010
1011         The HUD expects the PlatformCanvas it paints on to be cleared on creation which is
1012         no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 .
1013         This patch does an explicit clearRect before the HUD contents are painted.
1014
1015         Reviewed by Adrienne Walker.
1016
1017         TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly.
1018
1019         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1020         (WebCore::CCHeadsUpDisplay::draw):
1021
1022 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
1023
1024         Touch a file to make Chromium Windows bots happy.
1025
1026         * css/CSSValueKeywords.in:
1027
1028 2012-03-19  Igor Oliveira  <igor.o@sisa.samsung.com>
1029
1030         Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2)
1031         https://bugs.webkit.org/show_bug.cgi?id=38025
1032
1033         Implement updateAnimationTimerForRender. This reduces unnecessary animation
1034         steps on the current RenderObject by checking the value of timeToNextService
1035         before starting a new timer.
1036
1037         Reviewed by Dean Jackson.
1038
1039         Test: animations/animation-welcome-safari.html
1040
1041         * page/animation/AnimationController.cpp:
1042         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
1043         (WebCore):
1044         (WebCore::AnimationController::updateAnimations):
1045         * page/animation/AnimationControllerPrivate.h:
1046         (AnimationControllerPrivate):
1047
1048 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1049
1050         Unreviewed, rolling out r111616.
1051         http://trac.webkit.org/changeset/111616
1052         https://bugs.webkit.org/show_bug.cgi?id=81862
1053
1054         broke chromium mac (Requested by eae on #webkit).
1055
1056         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1057         (WebCore::CCLayerImpl::appendQuads):
1058         * platform/graphics/chromium/cc/CCLayerImpl.h:
1059         (CCLayerImpl):
1060         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1061         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1062         (WebCore::CCLayerTreeHostImpl::drawLayers):
1063         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1064         (CCLayerTreeHostImpl):
1065         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1066         (WebCore::CCQuadCuller::append):
1067         * platform/graphics/chromium/cc/CCQuadCuller.h:
1068         (CCQuadCuller):
1069         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1070         (WebCore::CCRenderPass::appendQuadsForLayer):
1071         * platform/graphics/chromium/cc/CCRenderPass.h:
1072         (CCRenderPass):
1073         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1074         (WebCore::CCScrollbarLayerImpl::appendQuads):
1075         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1076         (CCScrollbarLayerImpl):
1077         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1078         (WebCore::CCSingleThreadProxy::doComposite):
1079         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1080         (WebCore::CCSolidColorLayerImpl::appendQuads):
1081         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1082         (CCSolidColorLayerImpl):
1083         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1084         (WebCore::CCTextureLayerImpl::appendQuads):
1085         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1086         (CCTextureLayerImpl):
1087         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1088         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
1089         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1090         (WebCore::CCTiledLayerImpl::appendQuads):
1091         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1092         (CCTiledLayerImpl):
1093         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1094         (WebCore::CCVideoLayerImpl::appendQuads):
1095         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1096         (CCVideoLayerImpl):
1097
1098 2012-03-21  Beth Dakin  <bdakin@apple.com>
1099
1100         https://bugs.webkit.org/show_bug.cgi?id=80322
1101         Implement image-set
1102
1103         Reviewed by Dean Jackson.
1104
1105         This initial implementation of -webkit-image-set. 
1106         http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html
1107         The idea behind the feature is to allow authors to provide multiple variants 
1108         of the same image at differing resolutions, and to allow the User Agent to 
1109         choose the resource that is most appropriate at the time. This patch will 
1110         choose the most appropriate image based on device scale factor.
1111
1112         CSSImageSetValue inherits from CSSValueList and behaves a lot like 
1113         CSSImageValue.
1114         * WebCore.xcodeproj/project.pbxproj:
1115         * css/CSSImageSetValue.h: Added.
1116         (WebCore):
1117         (CSSImageSetValue):
1118         (WebCore::CSSImageSetValue::create):
1119         (WebCore::CSSImageSetValue::isPending):
1120         (ImageWithScale):
1121         (WebCore::CSSImageSetValue::compareByScaleFactor):
1122         * css/CSSImageSetValue.cpp: Added.
1123         (WebCore):
1124         (WebCore::CSSImageSetValue::CSSImageSetValue):
1125         (WebCore::CSSImageSetValue::~CSSImageSetValue):
1126         (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
1127         (WebCore::CSSImageSetValue::customCssText):
1128
1129         fillImageSet() iterates through the value list and turns the information into 
1130         a sorted Vector of ImageWithScales (which is a struct containing image URLs 
1131         and scale factors).
1132         (WebCore::CSSImageSetValue::fillImageSet):
1133
1134         cachedImageSet() finds which image is most appropriate based on the device 
1135         scale factor, and it loads only that image. In the future, additional scale 
1136         factors will be taken into account.
1137         (WebCore::CSSImageSetValue::bestImageForScaleFactor):
1138         (WebCore::CSSImageSetValue::cachedImageSet):
1139
1140         parseImageSet() is called everywhere in the CSSParser that a regular image or 
1141         generated image can be found.
1142         * css/CSSParser.cpp:
1143         (WebCore::CSSParser::parseValue):
1144         (WebCore::CSSParser::parseContent):
1145         (WebCore::CSSParser::parseFillImage):
1146         (WebCore::CSSParser::parseBorderImage):
1147         (WebCore):
1148         (WebCore::CSSParser::parseImageSet):
1149         * css/CSSParser.h:
1150
1151         Since CSSImageSetValue is implemented as a value list, 
1152         ApplyPropertyFillLayer::applyValue() needs to be more specific when it's 
1153         looking for a list of multiple URLs.
1154         * css/CSSStyleApplyProperty.cpp:
1155         (WebCore::ApplyPropertyFillLayer::applyValue):
1156
1157         Handle image-set as a valid image value.
1158         * css/CSSStyleSelector.cpp:
1159         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1160         * css/CSSStyleSelector.h:
1161         (CSSStyleSelector):
1162         * css/CSSValue.cpp:
1163         (WebCore::CSSValue::cssText):
1164         (WebCore::CSSValue::destroy):
1165         * css/CSSValue.h:
1166         (CSSValue):
1167         (WebCore::CSSValue::isImageSetValue):
1168
1169         computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image.
1170         * loader/cache/CachedImage.cpp:
1171         (WebCore::CachedImage::computeIntrinsicDimensions):
1172         * loader/cache/CachedImage.h:
1173         (CachedImage):
1174         * platform/graphics/GeneratedImage.h:
1175         (GeneratedImage):
1176         * platform/graphics/GeneratorGeneratedImage.cpp:
1177         (WebCore::GeneratedImage::computeIntrinsicDimensions):
1178         * platform/graphics/Image.cpp:
1179         (WebCore::Image::computeIntrinsicDimensions):
1180         * platform/graphics/Image.h:
1181         (Image):
1182         * platform/graphics/cg/PDFDocumentImage.cpp:
1183         (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
1184         * platform/graphics/cg/PDFDocumentImage.h:
1185         (PDFDocumentImage):
1186         * svg/graphics/SVGImage.cpp:
1187         (WebCore::SVGImage::computeIntrinsicDimensions):
1188         * svg/graphics/SVGImage.h:
1189         (SVGImage):
1190
1191         Inherits from StyleImage and returns a scaled size for imageSize() and 
1192         computeIntrinsicDimensions().
1193         * rendering/style/StyleCachedImageSet.cpp: Added.
1194         (WebCore):
1195         (WebCore::StyleCachedImageSet::StyleCachedImageSet):
1196         (WebCore::StyleCachedImageSet::cssValue):
1197         (WebCore::StyleCachedImageSet::canRender):
1198         (WebCore::StyleCachedImageSet::isLoaded):
1199         (WebCore::StyleCachedImageSet::errorOccurred):
1200         (WebCore::StyleCachedImageSet::imageSize):
1201         (WebCore::StyleCachedImageSet::imageHasRelativeWidth):
1202         (WebCore::StyleCachedImageSet::imageHasRelativeHeight):
1203         (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
1204         (WebCore::StyleCachedImageSet::usesImageContainerSize):
1205         (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
1206         (WebCore::StyleCachedImageSet::addClient):
1207         (WebCore::StyleCachedImageSet::removeClient):
1208         (WebCore::StyleCachedImageSet::image):
1209         * rendering/style/StyleCachedImageSet.h: Added.
1210         (WebCore):
1211         (StyleCachedImageSet):
1212         (WebCore::StyleCachedImageSet::create):
1213         (WebCore::StyleCachedImageSet::data):
1214         (WebCore::StyleCachedImageSet::cachedImage):
1215
1216         Handle image-set.
1217         * rendering/style/StyleImage.h:
1218         (WebCore::StyleImage::isCachedImageSet):
1219         (WebCore::StyleImage::StyleImage):
1220         (StyleImage):
1221         * rendering/style/StylePendingImage.h:
1222         (StylePendingImage):
1223         (WebCore::StylePendingImage::cssImageSetValue):
1224
1225 2012-03-21  David Barton  <dbarton@mathscribe.com>
1226
1227         MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
1228         https://bugs.webkit.org/show_bug.cgi?id=81850
1229
1230         Reviewed by Eric Seidel.
1231
1232         This prepares these files for bug fixes, and eventually combining their common code. To
1233         understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's
1234         simpler than RenderMathMLRoot.cpp.
1235
1236         No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this.
1237
1238         * rendering/mathml/RenderMathMLRoot.cpp:
1239         (WebCore):
1240         (WebCore::RenderMathMLRoot::addChild):
1241         (WebCore::RenderMathMLRoot::paint):
1242         (WebCore::RenderMathMLRoot::layout):
1243         * rendering/mathml/RenderMathMLRoot.h:
1244         (WebCore):
1245         (RenderMathMLRoot):
1246         * rendering/mathml/RenderMathMLSquareRoot.cpp:
1247         (WebCore):
1248         (WebCore::RenderMathMLSquareRoot::paint):
1249         (WebCore::RenderMathMLSquareRoot::layout):
1250         * rendering/mathml/RenderMathMLSquareRoot.h:
1251         (WebCore):
1252         (RenderMathMLSquareRoot):
1253         * rendering/mathml/RenderMathMLSubSup.h:
1254         (WebCore):
1255
1256 2012-03-21  Tony Chang  <tony@chromium.org>
1257
1258         refactor flexbox in preparation for flex-line-pack
1259         https://bugs.webkit.org/show_bug.cgi?id=81843
1260
1261         Reviewed by Ojan Vafai.
1262
1263         Replace WrapReverseContext with a vector of LineContexts that contain
1264         the same information, plus values needed for flex-align.
1265
1266         alignChildren has been moved to after all the lines have been
1267         positioned. We want to align children after flex-line-pack has changed
1268         the size of each line to avoid unnecessary layouts.
1269
1270         No new tests, just refactoring.
1271
1272         * rendering/RenderFlexibleBox.cpp:
1273         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
1274         holds information needed for wrap-reverse and aligning children.
1275         (RenderFlexibleBox::LineContext):
1276         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
1277         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
1278         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
1279         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
1280         * rendering/RenderFlexibleBox.h:
1281
1282 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
1283
1284         BDI element should have dir=auto by default
1285         https://bugs.webkit.org/show_bug.cgi?id=68773
1286
1287         Reviewed by Daniel Bates.
1288
1289         Treat bdi elements without dir content attribute as if they have dir=auto per spec:
1290         http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element
1291
1292         The patch tries to encapsulate the logic to look for dir content attribute and dir=auto.
1293
1294         It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set
1295         selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like
1296         directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi
1297         elements can be overridden by dir content attribute, we must change and only change the default value.
1298
1299         Tests: fast/text/international/bdi-dir-default-to-auto-expected.html
1300                fast/text/international/bdi-dir-default-to-auto.html
1301
1302         * GNUmakefile.list.am:
1303         * Target.pri:
1304         * WebCore.gypi:
1305         * WebCore.vcproj/WebCore.vcproj:
1306         * WebCore.xcodeproj/project.pbxproj:
1307         * css/CSSStyleSelector.cpp:
1308         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1309         * html/HTMLBDIElement.h: Added.
1310         (WebCore):
1311         (HTMLBDIElement):
1312         (WebCore::HTMLBDIElement::create):
1313         (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because
1314         bdi elements are treated as if it has dir=auto by default.
1315         * html/HTMLElement.cpp:
1316         (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or
1317         has dir content attribute.
1318         (WebCore):
1319         (WebCore::setHasDirAutoFlagRecursively):
1320         (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated
1321         as if it has dir=auto (bdi or element with dir=auto).
1322         (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
1323         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
1324         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
1325         * html/HTMLElement.h:
1326         (HTMLElement):
1327         * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element
1328         to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding.
1329
1330 2012-03-21  Luke Macpherson  <macpherson@chromium.org>
1331
1332         Use CSSPrimitiveValue::convertToLength() in a few places.
1333         https://bugs.webkit.org/show_bug.cgi?id=81492
1334
1335         Reviewed by Eric Seidel.
1336
1337         No new tests - refactoring only.
1338
1339         CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated
1340         in many places in CSSStyleSelector. This patch removes some of that code duplication.
1341
1342         * css/CSSStyleApplyProperty.cpp:
1343         (WebCore::ApplyPropertyVerticalAlign::applyValue):
1344         * css/CSSStyleSelector.cpp:
1345         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1346
1347 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
1348
1349         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601.
1350
1351         * rendering/svg/RenderSVGRoot.cpp:
1352
1353 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
1354
1355         Build fix for !ENABLE(INSPECTOR) after r104831.
1356
1357         * bindings/js/ScriptDebugServer.cpp:
1358         (WebCore::ScriptDebugServer::dispatchDidParseSource):
1359
1360 2012-03-21  Xiaomei Ji  <xji@chromium.org>
1361
1362         visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox
1363         https://bugs.webkit.org/show_bug.cgi?id=81408
1364
1365         Reviewed by Ryosuke Niwa.
1366
1367         Cache logically ordered leaf boxes under a particular root box.
1368         Also, move 'Vector<UChar, 1024> string' declared in visualWordPosition() to outside of loop (it is always
1369         clear-ed before use).
1370
1371         * editing/visible_units.cpp:
1372         (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box.
1373         (WebCore::CachedLogicallyOrderedLeafBoxes::size):
1374         (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox):
1375         (WebCore):
1376         (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
1377         (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox):
1378         (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox):
1379         (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes):
1380         (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
1381         (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around.
1382         (WebCore::logicallyNextBox):
1383         (WebCore::wordBreakIteratorForMinOffsetBoundary):
1384         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
1385         (WebCore::visualWordPosition):
1386
1387 2012-03-21  Dana Jansens  <danakj@chromium.org>
1388
1389         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
1390         https://bugs.webkit.org/show_bug.cgi?id=81437
1391
1392         Reviewed by Adrienne Walker.
1393
1394         Split CCLayerTreeHostImpl::drawLayers() into two phases:
1395         prepareToDraw() and drawLayers().
1396
1397         When calculating a RenderPass, and we checkerboard a quad on a
1398         layer, bubble this info back up to CCLayerTreeHostImpl. If the
1399         layer is transforming in an animation, then abort the prepareToDraw()
1400         phase and cause it to return false back to the thread proxy.
1401
1402         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
1403
1404         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1405         (WebCore::CCLayerImpl::appendQuads):
1406         * platform/graphics/chromium/cc/CCLayerImpl.h:
1407         (CCLayerImpl):
1408         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1409         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1410         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1411         (WebCore):
1412         (WebCore::CCLayerTreeHostImpl::drawLayers):
1413         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1414         (CCLayerTreeHostImpl):
1415         (FrameData):
1416         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1417         (WebCore::CCQuadCuller::append):
1418         * platform/graphics/chromium/cc/CCQuadCuller.h:
1419         (CCQuadCuller):
1420         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1421         (WebCore::CCRenderPass::appendQuadsForLayer):
1422         * platform/graphics/chromium/cc/CCRenderPass.h:
1423         (CCRenderPass):
1424         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1425         (WebCore::CCScrollbarLayerImpl::appendQuads):
1426         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1427         (CCScrollbarLayerImpl):
1428         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1429         (WebCore::CCSingleThreadProxy::doComposite):
1430         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1431         (WebCore::CCSolidColorLayerImpl::appendQuads):
1432         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1433         (CCSolidColorLayerImpl):
1434         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1435         (WebCore::CCTextureLayerImpl::appendQuads):
1436         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1437         (CCTextureLayerImpl):
1438         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1439         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
1440         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1441         (WebCore::CCTiledLayerImpl::appendQuads):
1442         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1443         (CCTiledLayerImpl):
1444         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1445         (WebCore::CCVideoLayerImpl::appendQuads):
1446         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1447         (CCVideoLayerImpl):
1448
1449 2012-03-21  Enrica Casucci  <enrica@apple.com>
1450
1451         WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
1452         https://bugs.webkit.org/show_bug.cgi?id=81835
1453         <rdar://problem/11082749>
1454
1455         Reviewed by Brady Eidson.
1456
1457         When writing the URL in the pasteboard for the WebURLWithTitles format,
1458         we use the user visible string instead of the original URL.
1459         In case of URL with Unicode characters, we lose the encoding.
1460         
1461         Added TestWebKitAPI test.
1462
1463         * platform/mac/PasteboardMac.mm:
1464         (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
1465
1466 2012-03-21  Levi Weintraub  <leviw@chromium.org>
1467
1468         Correct LayoutUnit usage in VisiblePosition.cpp
1469         https://bugs.webkit.org/show_bug.cgi?id=81775
1470
1471         Reviewed by Eric Seidel.
1472
1473         Correcting a mismatch between the .h and .cpp for the definition of localCaretRect,
1474         and properly using LayoutUnits for local coordinates.
1475
1476         No new tests. No change in behavior.
1477
1478         * editing/VisiblePosition.cpp:
1479         (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the
1480         header. Local coordinates are in LayoutUnits.
1481         (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect.
1482         (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto.
1483
1484 2012-03-21  Adam Klein  <adamk@chromium.org>
1485
1486         "this" argument for MutationCallbacks should be the MutationObserver
1487         https://bugs.webkit.org/show_bug.cgi?id=81712
1488
1489         Reviewed by Adam Barth.
1490
1491         Test: fast/mutation/callback-arguments.html
1492
1493         * bindings/js/JSCallbackData.cpp:
1494         (WebCore::JSCallbackData::invokeCallback): Add an overload that takes
1495         an explicit this argument and have the old method call the new one.
1496         * bindings/js/JSCallbackData.h:
1497         (JSCallbackData):
1498         * bindings/js/JSMutationCallbackCustom.cpp:
1499         (WebCore::JSMutationCallback::handleEvent): Call the new overload.
1500         * bindings/v8/custom/V8CustomVoidCallback.cpp:
1501         (WebCore::invokeCallback): Add an overload that takes an explicit this
1502         argument and have the old method call the new one.
1503         * bindings/v8/custom/V8CustomVoidCallback.h:
1504         (WebCore):
1505         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
1506         (WebCore::V8MutationCallback::handleEvent): Call the new overload.
1507
1508 2012-03-21  Alexandru Chiculita  <achicu@adobe.com>
1509
1510         [CSS Shaders] Make CSS Shaders compile on Chromium
1511         https://bugs.webkit.org/show_bug.cgi?id=81435
1512
1513         Reviewed by Stephen White.
1514
1515         This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled.
1516         The only way to test the functionality now is to use the overridePreference from dump render tree.
1517
1518         Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the
1519         HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter
1520         get recreated anyway.
1521
1522         No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results.
1523         I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force 
1524         enable the feature at runtime. 
1525
1526         * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium.
1527         (WebCore::cachedResourceTypeToTargetType):
1528
1529         * platform/graphics/filters/FECustomFilter.cpp:
1530         (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly.
1531         (WebCore::FECustomFilter::create):
1532         (WebCore::FECustomFilter::initializeContext):
1533         (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute.
1534         Other drivers didn't complain about it, but it was clearly a bug.
1535         (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the
1536         projection matrix only on Chromium, so that we get the correct result.
1537
1538         * rendering/FilterEffectRenderer.cpp:
1539         (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document.
1540
1541 2012-03-21  Mark Pilgrim  <pilgrim@chromium.org>
1542
1543         Realphabetize about webaudio move
1544         https://bugs.webkit.org/show_bug.cgi?id=81825
1545
1546         Reviewed by Adam Barth.
1547
1548         No new tests, all existing tests pass.
1549
1550         * CMakeLists.txt:
1551
1552 2012-03-21  Anders Carlsson  <andersca@apple.com>
1553
1554         Evict tiles from pages in background tabs
1555         https://bugs.webkit.org/show_bug.cgi?id=81829
1556         <rdar://problem/10866152>
1557
1558         Reviewed by Andreas Kling.
1559
1560         When the tile cache for a page is no longer in a window (which happens when it's moved to 
1561         a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation 
1562         will ensure that tiles outside of the visible rect will be dropped.
1563
1564         * platform/graphics/ca/mac/TileCache.h:
1565         (TileCache):
1566         * platform/graphics/ca/mac/TileCache.mm:
1567         (WebCore::TileCache::tileCacheLayerBoundsChanged):
1568         (WebCore::TileCache::setIsInWindow):
1569         (WebCore::TileCache::tileCoverageRect):
1570         (WebCore):
1571         (WebCore::TileCache::scheduleTileRevalidation):
1572         (WebCore::TileCache::revalidateTiles):
1573
1574 2012-03-21  Stephen Chenney  <schenney@chromium.org>
1575
1576         SVG layout leaves objects still needing layout
1577         https://bugs.webkit.org/show_bug.cgi?id=81006
1578
1579         Reviewed by Nikolas Zimmermann.
1580
1581         Change the layout of SVG objects such that resources that trigger
1582         layout of other objects are handled in a distinct pass, and then
1583         objects still requiring layout are laid out again.
1584
1585         Test: svg/custom/delete-text-innerText-crash.html
1586
1587         * rendering/svg/RenderSVGResourceContainer.cpp:
1588         (WebCore::RenderSVGResourceContainer::layout):
1589         * rendering/svg/RenderSVGResourceMarker.cpp:
1590         (WebCore::RenderSVGResourceMarker::layout):
1591         * rendering/svg/RenderSVGRoot.cpp:
1592         (WebCore::RenderSVGRoot::layout):
1593         (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
1594         (WebCore):
1595         * rendering/svg/RenderSVGRoot.h:
1596         (RenderSVGRoot):
1597
1598 2012-03-21  Tim Horton  <timothy_horton@apple.com>
1599
1600         Make use of CG rounded-rect primitives
1601         https://bugs.webkit.org/show_bug.cgi?id=79932
1602         <rdar://problem/9274953>
1603
1604         Reviewed by Simon Fraser.
1605
1606         Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman.
1607
1608         Dispatch to potentially platform-specific rounded rectangle path
1609         construction from addPathForRoundedRect. Make use of this to call
1610         wkCGPathAddRoundedRect on Lion and above, as long as the rounded
1611         corners are all equivalent.
1612
1613         The origin of the stroke dash differs between the bezier approach
1614         and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect()
1615         takes a new parameter allowing code which is sensitive to stroke dash
1616         origin (i.e. SVG) to fall back to the old behavior if need be.
1617
1618         Make use of the new Path::addRoundedRect() parameter to fall back to
1619         the old (bezier) rounded-rect behavior when constructing a dashed SVG path,
1620         in order to continue complying with the spec.
1621
1622         No new tests, as this is covered by many that use rounded corners,
1623         and is only a performance improvement.
1624
1625         * WebCore.exp.in:
1626         * platform/graphics/Path.cpp:
1627         (WebCore::Path::addRoundedRect):
1628         (WebCore):
1629         (WebCore::Path::addPathForRoundedRect):
1630         * platform/graphics/Path.h:
1631         (Path):
1632         * platform/graphics/cg/PathCG.cpp:
1633         (WebCore::Path::platformAddPathForRoundedRect):
1634         (WebCore):
1635         * platform/mac/WebCoreSystemInterface.h:
1636         * platform/mac/WebCoreSystemInterface.mm:
1637         * rendering/svg/SVGPathData.cpp:
1638         (WebCore::updatePathFromRectElement):
1639
1640 2012-03-21  David Reveman  <reveman@chromium.org>
1641
1642         [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
1643         https://bugs.webkit.org/show_bug.cgi?id=80988
1644
1645         Reviewed by Adrienne Walker.
1646
1647         Expose EXT_occlusion_query API to WebKit compositor. Add
1648         GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
1649         enums.
1650
1651         * platform/graphics/chromium/Extensions3DChromium.h:
1652         (Extensions3DChromium):
1653
1654 2012-03-21  Tony Chang  <tony@chromium.org>
1655
1656         compute the sign of flexibility for new flexbox
1657         https://bugs.webkit.org/show_bug.cgi?id=81722
1658
1659         Reviewed by Ojan Vafai.
1660
1661         This implements the computation of the sign of flexibility used by the
1662         new flexing algorithm.
1663         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
1664
1665         No new tests, we don't use the sign of flexibility yet.
1666
1667         * rendering/RenderFlexibleBox.cpp:
1668         (WebCore::RenderFlexibleBox::layoutFlexItems):
1669         (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
1670         adjusted for min/max as well as not adjusted.
1671         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
1672         spec text better.
1673         * rendering/RenderFlexibleBox.h: Added enum for flex sign.
1674
1675 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
1676
1677         Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
1678         https://bugs.webkit.org/show_bug.cgi?id=81669
1679
1680         Reviewed by Pavel Feldman.
1681
1682         * inspector/front-end/BreakpointManager.js:
1683         (WebInspector.BreakpointManager.get for):
1684         (WebInspector.BreakpointManager):
1685         (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
1686         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
1687         (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
1688         (WebInspector.BreakpointManager.prototype.setBreakpoint):
1689         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
1690         (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
1691         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
1692         (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
1693         (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
1694         (WebInspector.BreakpointManager.prototype._uiBreakpoints):
1695         (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
1696         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
1697         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
1698         (WebInspector.BreakpointManager.prototype._breakpoints):
1699         (WebInspector.BreakpointManager.prototype._breakpoint):
1700         (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
1701         (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
1702         (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
1703         (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
1704         (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
1705         (WebInspector.BreakpointManager.prototype.debuggerReset):
1706         (WebInspector.Breakpoint.prototype.serialize):
1707         (WebInspector.Breakpoint.prototype.get uiBreakpoint):
1708         (WebInspector.Breakpoint.prototype.createUIBreakpoint):
1709         (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
1710         (WebInspector.UIBreakpoint):
1711         * inspector/front-end/DebuggerPresentationModel.js:
1712         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
1713         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
1714         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
1715         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
1716         * inspector/front-end/ScriptsPanel.js:
1717
1718 2012-03-21  Anders Carlsson  <andersca@apple.com>
1719
1720         TileCache needs to know if its containing page is in a window
1721         https://bugs.webkit.org/show_bug.cgi?id=81821
1722
1723         Reviewed by Andreas Kling.
1724
1725         This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
1726
1727         * page/FrameView.cpp:
1728         (WebCore::FrameView::didMoveOnscreen):
1729         (WebCore::FrameView::willMoveOffscreen):
1730         * page/Page.cpp:
1731         (WebCore::Page::Page):
1732         (WebCore::Page::didMoveOnscreen):
1733         (WebCore::Page::willMoveOffscreen):
1734         * page/Page.h:
1735         (WebCore::Page::isOnscreen):
1736         (Page):
1737         * platform/graphics/TiledBacking.h:
1738         (TiledBacking):
1739         * platform/graphics/ca/mac/TileCache.h:
1740         (TileCache):
1741         * platform/graphics/ca/mac/TileCache.mm:
1742         (WebCore::TileCache::TileCache):
1743         (WebCore::TileCache::setIsInWindow):
1744         (WebCore):
1745         * rendering/RenderLayerBacking.cpp:
1746         (WebCore::RenderLayerBacking::RenderLayerBacking):
1747
1748 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
1749
1750         Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
1751         https://bugs.webkit.org/show_bug.cgi?id=81744
1752
1753         Reviewed by Chris Rogers.
1754
1755         * platform/audio/ReverbConvolverStage.cpp:
1756         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
1757
1758 2012-03-21  Xiaomei Ji  <xji@chromium.org>
1759
1760         [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
1761         https://bugs.webkit.org/show_bug.cgi?id=79961
1762
1763         Reviewed by Adam Barth.
1764
1765         Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
1766
1767         * platform/graphics/Font.h:
1768         (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
1769         * platform/graphics/mac/ComplexTextController.cpp:
1770         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
1771         * platform/graphics/win/UniscribeController.cpp:
1772         (WebCore::UniscribeController::shapeAndPlaceItem):
1773
1774 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
1775
1776         Build fix for !ENABLE(INSPECTOR) after r111005.
1777
1778         * inspector/ContentSearchUtils.h:
1779
1780 2012-03-21  Ulan Degenbaev  <ulan@chromium.org>
1781
1782         [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
1783         https://bugs.webkit.org/show_bug.cgi?id=81200
1784
1785         Reviewed by Adam Barth.
1786
1787         Pass a hint to V8::IdleNotification that requests more aggressive GC
1788         when a main frame context is disposed and requests incremental GC otherwise.
1789
1790         * bindings/v8/V8DOMWindowShell.cpp:
1791         (WebCore::V8DOMWindowShell::disposeContextHandles):
1792         * bindings/v8/V8GCForContextDispose.cpp:
1793         (WebCore::V8GCForContextDispose::V8GCForContextDispose):
1794         (WebCore::V8GCForContextDispose::notifyContextDisposed):
1795         (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
1796         * bindings/v8/V8GCForContextDispose.h:
1797         (V8GCForContextDispose):
1798
1799 2012-03-21  Nat Duca  <nduca@chromium.org>
1800
1801         [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
1802         https://bugs.webkit.org/show_bug.cgi?id=81790
1803
1804         Reviewed by James Robinson.
1805
1806         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1807         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
1808
1809 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
1810
1811         Add multichannel support in RealtimeAnalyser
1812         https://bugs.webkit.org/show_bug.cgi?id=81745
1813
1814         Reviewed by Chris Rogers.
1815
1816         * Modules/webaudio/RealtimeAnalyser.cpp:
1817         (WebCore::RealtimeAnalyser::writeInput):
1818         (WebCore):
1819
1820 2012-03-21  Eric Carlson  <eric.carlson@apple.com>
1821
1822         Removing HTMLTrackElement does not delete TextTrack
1823         https://bugs.webkit.org/show_bug.cgi?id=80873
1824
1825         Reviewed by Antti Koivisto.
1826
1827         No new tests, but media/track/track-language-preference.html has been updated
1828         to test this fix.
1829
1830         * html/HTMLMediaElement.cpp:
1831         (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
1832         (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
1833         called before the track is removed, to allow the TextTrack to be removed.
1834         * html/HTMLMediaElement.h:
1835
1836         * html/HTMLTrackElement.cpp:
1837         (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
1838         (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
1839         * html/HTMLTrackElement.h:
1840
1841         * html/track/LoadableTextTrack.cpp:
1842         (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
1843         document in the calcualtion.
1844
1845 2012-03-21  Zeno Albisser  <zeno@webkit.org>
1846
1847         [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
1848         https://bugs.webkit.org/show_bug.cgi?id=81750
1849
1850         Building WebCore on mac currently creates an archive that is bigger than
1851         4GB. But ranlib fails to create a symbol table for such a big archive,
1852         even on 64bit machines.
1853         Therefore we start using SVGAllInOne.cpp when building debug
1854         on mac. This reduces the size of the archive by about 300MB.
1855
1856         Reviewed by Tor Arne Vestbø.
1857
1858         * Target.pri:
1859
1860 2012-03-21  Tommy Widenflycht  <tommyw@google.com>
1861
1862         [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
1863         https://bugs.webkit.org/show_bug.cgi?id=81339
1864
1865         Reviewed by Adam Barth.
1866
1867         Not possible to test until the entire JSEP feature is commited.
1868
1869         * Modules/mediastream/IceCandidate.cpp:
1870         (WebCore::IceCandidate::toSdp):
1871         * Modules/mediastream/SessionDescription.cpp:
1872         (WebCore::SessionDescription::toSdp):
1873         * platform/mediastream/IceCandidateDescriptor.cpp:
1874         (WebCore::IceCandidateDescriptor::toSDP):
1875         * platform/mediastream/IceCandidateDescriptor.h:
1876         (IceCandidateDescriptor):
1877         * platform/mediastream/MediaStreamCenter.cpp:
1878         (WebCore::MediaStreamCenter::constructSDP):
1879         * platform/mediastream/MediaStreamCenter.h:
1880         (MediaStreamCenter):
1881         * platform/mediastream/SessionDescriptionDescriptor.cpp:
1882         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
1883         (WebCore::SessionDescriptionDescriptor::toSDP):
1884         (WebCore::SessionDescriptionDescriptor::initialSDP):
1885         * platform/mediastream/SessionDescriptionDescriptor.h:
1886         (SessionDescriptionDescriptor):
1887
1888 2012-03-21  Yuta Kitamura  <yutak@chromium.org>
1889
1890         Use RFC version of WebSocket protocol by default
1891         https://bugs.webkit.org/show_bug.cgi?id=81718
1892
1893         Reviewed by Kent Tamura.
1894
1895         Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
1896         RFC version of WebSocket protocol by default.
1897
1898         All the existing ports already use the RFC protocol as of now, so this change will not make
1899         any impact (hopefully).
1900
1901         No new tests. No change in functionality.
1902
1903         * page/Settings.cpp:
1904         (WebCore::Settings::Settings):
1905
1906 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
1907
1908         Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
1909         https://bugs.webkit.org/show_bug.cgi?id=81798
1910
1911         Reviewed by Pavel Feldman.
1912
1913         * bindings/js/JSInjectedScriptHostCustom.cpp:
1914         (WebCore::getJSListenerFunctions):
1915         * bindings/js/ScriptEventListener.cpp:
1916         (WebCore::eventListenerHandlerBody):
1917         (WebCore::eventListenerHandlerLocation):
1918         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1919         (WebCore::getJSListenerFunctions):
1920         * inspector/InspectorDOMAgent.cpp:
1921         (WebCore::InspectorDOMAgent::getEventListeners):
1922
1923 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
1924
1925         EventListener::Type enum has unused member InspectorDOMAgentType
1926         https://bugs.webkit.org/show_bug.cgi?id=81794
1927
1928         Reviewed by Pavel Feldman.
1929
1930         * dom/EventListener.h:
1931
1932 2012-03-21  Tom Hudson  <tomhudson@google.com>
1933
1934         Incremental cleanup of BitmapImage: inlined virtual functions
1935         https://bugs.webkit.org/show_bug.cgi?id=81688
1936
1937         Reviewed by James Robinson.
1938
1939         No change in functionality, so no new tests.
1940
1941         Move virtual functions defined in headers into .cpp files.
1942
1943         * WebCore.gypi:
1944         * platform/graphics/BitmapImage.cpp:
1945         (WebCore::BitmapImage::isBitmapImage):
1946         (WebCore):
1947         (WebCore::BitmapImage::hasSingleSecurityOrigin):
1948         (WebCore::BitmapImage::nativeImageForCurrentFrame):
1949         (WebCore::BitmapImage::currentFrameHasAlpha):
1950         (WebCore::BitmapImage::notSolidColor):
1951         (WebCore::BitmapImage::decodedSize):
1952         (WebCore::BitmapImage::mayFillWithSolidColor):
1953         (WebCore::BitmapImage::solidColor):
1954         * platform/graphics/BitmapImage.h:
1955         (BitmapImage):
1956         * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
1957         (WebCore):
1958         (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
1959         (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
1960         (WebCore::BitmapImageSingleFrameSkia::size):
1961         (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
1962         (WebCore::BitmapImageSingleFrameSkia::decodedSize):
1963         (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
1964         (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
1965         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
1966         (BitmapImageSingleFrameSkia):
1967
1968 2012-03-21  Alexey Proskuryakov  <ap@apple.com>
1969
1970         Remove obsolete File attributes
1971         https://bugs.webkit.org/show_bug.cgi?id=79383
1972
1973         Reviewed by Hajime Morita.
1974
1975         * bindings/objc/PublicDOMInterfaces.h:
1976         * fileapi/File.h:
1977         * fileapi/File.idl:
1978         Removed fileName and fileSize, they have different names now.
1979
1980         * html/FileInputType.cpp:
1981         (WebCore::FileInputType::appendFormData):
1982         (WebCore::FileInputType::getTypeSpecificValue):
1983         (WebCore::FileInputType::defaultToolTip):
1984         Updated to use new function names.
1985
1986 2012-03-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1987
1988         TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect.
1989         https://bugs.webkit.org/show_bug.cgi?id=81762
1990
1991         Reviewed by Kenneth Rohde Christiansen.
1992
1993         The first round of tiles should cover completely the visible rect.
1994         Creating the tiles synchronously allows us to get the new tiles immediately
1995         and prevents an extra AC layers sync to be able to remove the old tiles.
1996
1997         At some point it might also make sense to remove the tile creation timer
1998         completely.
1999
2000         * platform/graphics/TiledBackingStore.cpp:
2001         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
2002
2003 2012-03-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2004
2005         TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once.
2006         https://bugs.webkit.org/show_bug.cgi?id=81519
2007
2008         Reviewed by Kenneth Rohde Christiansen.
2009
2010         Both visibleRect and coverageRatio call mapFromContents on the input rect,
2011         this woulc cause the coverageRatio to never reach 1.0 when the contents is
2012         scaled up.
2013
2014         * platform/graphics/TiledBackingStore.cpp:
2015         (WebCore::TiledBackingStore::visibleAreaIsCovered):
2016
2017 2012-03-21  Mao Yujie  <yujie.mao@intel.com>
2018
2019         MediaStream API: Need to support MediaStream constructor for JSC
2020         https://bugs.webkit.org/show_bug.cgi?id=78781
2021
2022         Reviewed by Adam Barth.
2023
2024         No new tests.
2025
2026         * Modules/mediastream/DOMWindowMediaStream.idl:
2027         * bindings/generic/RuntimeEnabledFeatures.h:
2028         (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled):
2029
2030 2012-03-21  Philip Rogers  <pdr@google.com>
2031
2032         Skip building resources if SVGTRef is not in a document
2033         https://bugs.webkit.org/show_bug.cgi?id=81473
2034
2035         Reviewed by Nikolas Zimmermann.
2036
2037         We can skip the building of pending resources in SVGTRef if we're not
2038         yet in a document. This mirrors the nearly identical logic in
2039         SVGUseElement::buildPendingResource() and
2040         SVGFEImageElement::buildPendingResource().
2041
2042         Test: http/tests/svg/tref-adoptNode-crash.html
2043
2044         * svg/SVGTRefElement.cpp:
2045         (WebCore::SVGTRefElement::buildPendingResource):
2046
2047 2012-03-21  Sami Kyostila  <skyostil@chromium.org>
2048
2049         [chromium] Use floating point scroll deltas for layers
2050         https://bugs.webkit.org/show_bug.cgi?id=81546
2051
2052         Reviewed by James Robinson.
2053
2054         Use floating point scroll deltas for layers instead of integral scroll
2055         deltas. This is because due to page scaling it may be necessary to
2056         scroll layers in sub-CSS-pixel steps to avoid visible jumps. When the
2057         floating point scroll offset is committed to the main thread, it is
2058         truncated to integer, but the fractional part is kept on the CC side to
2059         make sure fractional scroll offsets are accumulated correctly over
2060         multiple commits.
2061
2062         Test: CCLayerTreeHostTestFractionalScroll
2063
2064         * platform/graphics/FloatPoint.h:
2065         (WebCore::toSize):
2066         (WebCore):
2067         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2068         (WebCore::CCLayerImpl::scrollBy):
2069         (WebCore::CCLayerImpl::setScrollDelta):
2070         * platform/graphics/chromium/cc/CCLayerImpl.h:
2071         (WebCore::CCLayerImpl::scrollDelta):
2072         (CCLayerImpl):
2073         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2074         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
2075         (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange):
2076         (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
2077         (WebCore::CCLayerTreeHostImpl::animatePageScale):
2078
2079 2012-03-21  Li Yin  <li.yin@intel.com>
2080
2081         [WebSocket]The Sec-WebSocket-Accept MUST NOT appear more than once in an HTTP response
2082         https://bugs.webkit.org/show_bug.cgi?id=81655
2083
2084         Reviewed by Adam Barth.
2085
2086         Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header.html
2087
2088         * Modules/websockets/WebSocketHandshake.cpp:
2089         (WebCore::WebSocketHandshake::readHTTPHeaders):
2090
2091 2012-03-21  Alexei Filippov  <alexeif@chromium.org>
2092
2093         Web Inspector: Speedup heap snapshot loading.
2094         https://bugs.webkit.org/show_bug.cgi?id=81788
2095
2096         Reviewed by Yury Semikhatsky.
2097
2098         * inspector/front-end/HeapSnapshot.js:
2099         (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
2100
2101 2012-03-21  Pavel Feldman  <pfeldman@chromium.org>
2102
2103         Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element.
2104         https://bugs.webkit.org/show_bug.cgi?id=81766
2105
2106         Reviewed by Yury Semikhatsky.
2107
2108         We should check event target and its ancestors for being edited, not use some
2109         global property. This change also introduces Event.prototype.consume so that we
2110         were consistently consuming events.
2111
2112         * inspector/front-end/AdvancedSearchController.js:
2113         (WebInspector.SearchView.prototype._onKeyDown):
2114         * inspector/front-end/BreakpointsSidebarPane.js:
2115         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked):
2116         * inspector/front-end/CSSSelectorProfileView.js:
2117         * inspector/front-end/Checkbox.js:
2118         (WebInspector.Checkbox.prototype.addEventListener):
2119         * inspector/front-end/ConsoleView.js:
2120         (WebInspector.ConsoleView.prototype._enterKeyPressed):
2121         (WebInspector.ConsoleGroup.prototype._titleClicked):
2122         * inspector/front-end/ContextMenu.js:
2123         (WebInspector.ContextMenu.prototype.show):
2124         * inspector/front-end/DataGrid.js:
2125         (WebInspector.DataGrid.prototype._keyDown):
2126         * inspector/front-end/DatabaseQueryView.js:
2127         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
2128         * inspector/front-end/DetailedHeapshotView.js:
2129         (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
2130         (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
2131         (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
2132         (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
2133         * inspector/front-end/Dialog.js:
2134         (WebInspector.Dialog.prototype._onKeyDown):
2135         * inspector/front-end/Drawer.js:
2136         (WebInspector.Drawer.prototype._startStatusBarDragging):
2137         (WebInspector.Drawer.prototype._statusBarDragging):
2138         (WebInspector.Drawer.prototype._endStatusBarDragging):
2139         * inspector/front-end/EventListenersSidebarPane.js:
2140         (WebInspector.EventListenersSidebarPane.get if):
2141         * inspector/front-end/HelpScreen.js:
2142         (WebInspector.HelpScreen.prototype._onKeyDown):
2143         * inspector/front-end/InspectorView.js:
2144         (WebInspector.InspectorView.prototype._keyDown):
2145         * inspector/front-end/MetricsSidebarPane.js:
2146         (WebInspector.MetricsSidebarPane.prototype._highlightDOMNode):
2147         * inspector/front-end/NetworkPanel.js:
2148         * inspector/front-end/Object.js:
2149         (WebInspector.Event.prototype.preventDefault):
2150         (WebInspector.Event.prototype.consume):
2151         * inspector/front-end/ObjectPropertiesSection.js:
2152         (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
2153         * inspector/front-end/ProfileView.js:
2154         * inspector/front-end/SearchController.js:
2155         (WebInspector.SearchController.prototype._onKeyDown):
2156         * inspector/front-end/Section.js:
2157         (WebInspector.Section.prototype.handleClick):
2158         * inspector/front-end/Settings.js:
2159         (WebInspector.ExperimentsSettings):
2160         * inspector/front-end/SoftContextMenu.js:
2161         (.WebInspector.SoftContextMenu.prototype.show):
2162         (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
2163         (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
2164         (.WebInspector.SoftContextMenu.prototype._discardMenu):
2165         * inspector/front-end/Spectrum.js:
2166         (WebInspector.Spectrum.draggable.consume):
2167         (WebInspector.Spectrum.draggable.start):
2168         (WebInspector.Spectrum.draggable.stop):
2169         (WebInspector.Spectrum.draggable):
2170         (WebInspector.Spectrum.prototype._onKeyDown):
2171         * inspector/front-end/StylesSidebarPane.js:
2172         (WebInspector.StylesSidebarPane.muteEventListener):
2173         (WebInspector.StylesSidebarPane):
2174         (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
2175         (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
2176         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
2177         (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
2178         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
2179         (WebInspector.StylePropertyTreeElement.prototype):
2180         * inspector/front-end/TextPrompt.js:
2181         (WebInspector.TextPrompt.prototype.onKeyDown):
2182         (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
2183         (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown):
2184         * inspector/front-end/TextViewer.js:
2185         (WebInspector.TextViewer.prototype._handleKeyDown):
2186         * inspector/front-end/Toolbar.js:
2187         (WebInspector.ToolbarDropdown.prototype._onKeyDown):
2188         * inspector/front-end/UIUtils.js:
2189         (WebInspector.isBeingEdited):
2190         (WebInspector.startEditing):
2191         * inspector/front-end/View.js:
2192         (WebInspector.View.prototype._doLoadCSS):
2193         * inspector/front-end/WatchExpressionsSidebarPane.js:
2194         (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
2195         (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
2196         * inspector/front-end/inspector.js:
2197         (WebInspector.documentClick.followLink):
2198         (WebInspector.documentClick):
2199         (WebInspector.documentKeyDown):
2200         (WebInspector.postDocumentKeyDown):
2201         (WebInspector.addMainEventListeners):
2202         * inspector/front-end/treeoutline.js:
2203         (TreeOutline.prototype._treeKeyPress):
2204         (TreeOutline.prototype._treeKeyDown):
2205         (TreeOutline.prototype._searchInputKeyDown):
2206         (TreeElement.treeElementToggled):
2207         (TreeElement.prototype.selectOnMouseDown):
2208         * inspector/front-end/utilities.js:
2209         (Event.prototype.consume):
2210
2211 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
2212
2213         Web Inspector: event listener section doesn't show all event listeners of the element ancestors
2214         https://bugs.webkit.org/show_bug.cgi?id=81782
2215
2216         Event listeners section now contains all event listeners for the selected
2217         element ancestors chain (in case option "All Nodes" is selected).
2218
2219         Reviewed by Pavel Feldman.
2220
2221         * inspector/InspectorDOMAgent.cpp:
2222         (WebCore::InspectorDOMAgent::getEventListenersForNode):
2223         * inspector/front-end/EventListenersSidebarPane.js:
2224         (WebInspector.EventListenersSidebarPane.prototype.update.callback):
2225         (WebInspector.EventListenersSidebarPane.prototype.update):
2226         (WebInspector.EventListenersSidebarPane.prototype):
2227
2228 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
2229
2230         Web Inspector: HeapSnapshot: move all builders and calculation calls to HeapSnapshot._init function.
2231         https://bugs.webkit.org/show_bug.cgi?id=81784
2232
2233         Reviewed by Yury Semikhatsky.
2234
2235         * inspector/front-end/HeapSnapshot.js:
2236         (WebInspector.HeapSnapshot.prototype._init):
2237         (WebInspector.HeapSnapshot.prototype.dispose):
2238         (WebInspector.HeapSnapshot.prototype._retainersForNode):
2239         (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
2240         (WebInspector.HeapSnapshot.prototype._flagsOfNode):
2241         (WebInspector.HeapSnapshot.prototype.aggregates):
2242         (WebInspector.HeapSnapshot.prototype._buildRetainers):
2243         (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
2244
2245 2012-03-21  Jessie Berlin  <jberlin@apple.com>
2246
2247         WTF headers should be in $(ConfigurationBuildDir)\include\private\wtf, not
2248         $(ConfigurationBuildDir)\include\private\JavaScriptCore\wtf.
2249         https://bugs.webkit.org/show_bug.cgi?id=81739
2250
2251         Reviewed by Dan Bernstein.
2252
2253         * WebCore.vcproj/WebCore.vcproj:
2254         Look for AtomicString.cpp, StringBuilder.cpp, StringImpl.cpp, and WTFString.cpp in the wtf
2255         subdirectory of the build output, not the JavaScriptCore/wtf subdirectory.
2256
2257 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2258
2259         [BlackBerry] Credential save and autofill implemetation
2260         https://bugs.webkit.org/show_bug.cgi?id=80401
2261
2262         Reviewed by Rob Buis.
2263
2264         Added interface function authenticationChallenge() and
2265         notifyShouldSaveCredential() into PageClientBlackBerry.
2266         As this class is our platform specific interface,
2267         by doing this we don't need to add an interface function
2268         in class FrameLoaderClient which is a platform
2269         independent interface.
2270
2271         No new tests.
2272
2273         * platform/blackberry/PageClientBlackBerry.h:
2274         (WebCore):
2275         * platform/network/blackberry/NetworkJob.cpp:
2276         (WebCore::NetworkJob::sendRequestWithCredentials):
2277
2278 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
2279
2280         Web Inspector: HeapProfiler: DOM node id can overflow Int32.
2281         https://bugs.webkit.org/show_bug.cgi?id=81776
2282
2283         Reviewed by Pavel Feldman.
2284
2285         * inspector/front-end/HeapSnapshot.js:
2286         (WebInspector.Uint32Array):
2287         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
2288         (WebInspector.HeapSnapshot.prototype._buildReverseIndex.var):
2289         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
2290         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
2291
2292 2012-03-21  Tim Dresser  <tdresser@chromium.org>
2293
2294         [chromium] Increase size of Combo Box Options for touch and high DPI devices
2295         https://bugs.webkit.org/show_bug.cgi?id=80027
2296
2297         Reviewed by Darin Fisher.
2298
2299         Scale Combo box popups by defaultDeviceScaleFactor, and add padding to
2300         <option> elements when touch is enabled.
2301
2302         Manually tested with --default-device-scale-factor=1,2 and unset.
2303         Each of these were tested with RuntimeEnabledFeatures::touchEnabled
2304         set to true and false.
2305
2306         * platform/chromium/PopupListBox.cpp:
2307         (WebCore::PopupListBox::paint):
2308         (WebCore::PopupListBox::paintRow):
2309         (WebCore::PopupListBox::getRowHeight):
2310         * platform/chromium/PopupListBox.h:
2311         (PopupContainerSettings):
2312         * platform/chromium/PopupMenuChromium.cpp:
2313         (WebCore):
2314         (WebCore::PopupMenuChromium::show):
2315         * platform/chromium/PopupMenuChromium.h:
2316         (WebCore::PopupMenuChromium::optionPaddingForTouch):
2317         (WebCore::PopupMenuChromium::setOptionPaddingForTouch):
2318         (PopupMenuChromium):
2319         * rendering/RenderMenuList.cpp:
2320         (WebCore::RenderMenuList::showPopup):
2321
2322 2012-03-21  Takashi Toyoshima  <toyoshim@chromium.org>
2323
2324         [Chromium] [WebSocket] provide WebFrameClient with a chance of
2325         accessing to opening WebSocketStreamHandle.
2326         https://bugs.webkit.org/show_bug.cgi?id=78459
2327
2328         Reviewed by Kent Tamura and Darin Fisher.
2329
2330         Add willOpenSocketStream client function to WebFrameClient with an
2331         argument representing an opening SocketStreamHandle.
2332         These mechanisms provide embedders with a chance to bind arbitrary
2333         data to a WebSocketStreamHandle from WebFrameClient to which the
2334         WebSocket object having the WebSocketStreamHandle belongs.
2335
2336         No new tests because this change just provide mechanisms to embedders.
2337
2338         * Modules/websockets/WebSocketChannel.cpp: Implement willOpenSocketStream to call a client function in WebFrameClient.
2339         (WebCore::WebSocketChannel::willOpenSocketStream):
2340         (WebCore):
2341         * Modules/websockets/WebSocketChannel.h: Add willOpenSocketStream declaration.
2342         (WebSocketChannel):
2343         * loader/FrameLoaderClient.h: Add dispatchWillOpenSocketStream declaration.
2344         (WebCore):
2345         (FrameLoaderClient):
2346         (WebCore::FrameLoaderClient::dispatchWillOpenSocketStream):
2347         * platform/network/SocketStreamHandleClient.h: Add willOpenSocketStream declaration.
2348         (WebCore::SocketStreamHandleClient::willOpenSocketStream):
2349
2350 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
2351
2352         https://bugs.webkit.org/show_bug.cgi?id=81761
2353         Fix Gobject binding for sequence<T> for function return type.
2354
2355         Reviewed by Kentaro Hara.
2356
2357         No new tests.
2358
2359         * bindings/scripts/CodeGeneratorGObject.pm:
2360         (SkipFunction): Skip function with sequence<T> return type.
2361         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2362         (webkit_dom_test_obj_method_with_sequence_arg):
2363         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2364
2365 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
2366
2367         Unreviewed build fix for r111529.
2368
2369         * inspector/InjectedScriptHost.h:
2370         (WebCore):
2371
2372 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2373
2374         Unreviewed, rolling out r111497, r111506, r111508, and
2375         r111513.
2376         http://trac.webkit.org/changeset/111497
2377         http://trac.webkit.org/changeset/111506
2378         http://trac.webkit.org/changeset/111508
2379         http://trac.webkit.org/changeset/111513
2380         https://bugs.webkit.org/show_bug.cgi?id=81774
2381
2382         It broke 2 tests on all platform (Requested by Ossy on
2383         #webkit).
2384
2385         * css/CSSStyleSelector.cpp:
2386         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2387         * css/SelectorChecker.cpp:
2388         (WebCore::SelectorChecker::checkOneSelector):
2389         * html/HTMLKeygenElement.cpp:
2390         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
2391         * html/HTMLOptionElement.cpp:
2392         (WebCore::HTMLOptionElement::HTMLOptionElement):
2393         (WebCore::HTMLOptionElement::create):
2394         (WebCore::HTMLOptionElement::attach):
2395         (WebCore::HTMLOptionElement::detach):
2396         (WebCore::HTMLOptionElement::formControlType):
2397         (WebCore):
2398         (WebCore::HTMLOptionElement::parseAttribute):
2399         (WebCore::HTMLOptionElement::childrenChanged):
2400         (WebCore::HTMLOptionElement::insertedIntoTree):
2401         * html/HTMLOptionElement.h:
2402         (HTMLOptionElement):
2403         (WebCore::HTMLOptionElement::ownElementDisabled):
2404         * html/HTMLTagNames.in:
2405
2406 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
2407
2408         Web Inspector: expose getEventListeners() to console command line API
2409         https://bugs.webkit.org/show_bug.cgi?id=81658
2410
2411         Reviewed by Yury Semikhatsky.
2412
2413         Test: inspector/console/command-line-api-getEventListeners.html
2414
2415         * bindings/js/JSInjectedScriptHostCustom.cpp:
2416         (WebCore::JSInjectedScriptHost::functionDetails):
2417         (WebCore):
2418         (WebCore::getJSListenerFunctions):
2419         (WebCore::JSInjectedScriptHost::getEventListeners):
2420         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2421         (WebCore::getJSListenerFunctions):
2422         (WebCore):
2423         (WebCore::V8InjectedScriptHost::getEventListenersCallback):
2424         * inspector/InjectedScriptHost.cpp:
2425         (WebCore::InjectedScriptHost::InjectedScriptHost):
2426         (WebCore::InjectedScriptHost::disconnect):
2427         (WebCore::InjectedScriptHost::getEventListenersImpl):
2428         (WebCore):
2429         * inspector/InjectedScriptHost.h:
2430         (WebCore):
2431         (WebCore::InjectedScriptHost::init):
2432         (InjectedScriptHost):
2433         * inspector/InjectedScriptHost.idl:
2434         * inspector/InjectedScriptSource.js:
2435         (.):
2436         * inspector/InspectorController.cpp:
2437         (WebCore::InspectorController::InspectorController):
2438         * inspector/InspectorDOMAgent.cpp:
2439         (WebCore::InspectorDOMAgent::getEventListenersForNode):
2440         (WebCore::InspectorDOMAgent::getEventListeners):
2441         (WebCore):
2442         * inspector/InspectorDOMAgent.h:
2443         (InspectorDOMAgent):
2444         * inspector/WorkerInspectorController.cpp:
2445         (WebCore::WorkerInspectorController::WorkerInspectorController):
2446
2447 2012-03-21  Kentaro Hara  <haraken@chromium.org>
2448
2449         Unreviewed, rebaselined run-bindings-tests results.
2450
2451         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
2452         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
2453         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
2454         * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
2455
2456 2012-03-21  Ian Vollick  <vollick@chromium.org>
2457
2458         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
2459         https://bugs.webkit.org/show_bug.cgi?id=81692
2460
2461         Reviewed by Adrienne Walker.
2462
2463         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
2464
2465         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2466
2467 2012-03-21  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2468
2469         [Qt] Cookie Jar blocks on fsync in SQLITE
2470         https://bugs.webkit.org/show_bug.cgi?id=81755
2471
2472         Reviewed by Simon Hausmann.
2473
2474         Set PRAGMA synchronous to OFF, which tells SQLITE to never fsync.
2475
2476         * platform/qt/CookieJarQt.cpp:
2477         (WebCore::SharedCookieJarQt::ensureDatabaseTable):
2478
2479 2012-03-21  Ian Vollick  <vollick@chromium.org>
2480
2481         [chromium] Animation events should only be used for synchronizing animation start times
2482         https://bugs.webkit.org/show_bug.cgi?id=81484
2483
2484         Reviewed by Adrienne Walker.
2485
2486         Tested in CCLayerTreeHostTestSynchronizeAnimationStartTimes
2487
2488         Eliminated animation finished events. Animations will finish naturally on the
2489         main thread and the final values will be set.
2490
2491         Animation started events are now also used to synchronize the main thread
2492         animations' start times with their impl thread equivalents, preventing skew.
2493         Until main thread animations receive their synchronized start times, they will
2494         apply their initial values (i.e., they will be paused at time zero). This
2495         guarantees that we will not jump to the animation's final value on the main
2496         thread while we wait for the synchronized start time.
2497
2498         * WebCore.gypi:
2499         * platform/graphics/chromium/LayerChromium.cpp:
2500         (WebCore::LayerChromium::notifyAnimationStarted):
2501         * platform/graphics/chromium/LayerChromium.h:
2502         (WebCore):
2503         (LayerChromium):
2504         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
2505         (WebCore::CCActiveAnimation::CCActiveAnimation):
2506         * platform/graphics/chromium/cc/CCActiveAnimation.h:
2507         (CCActiveAnimation):
2508         (WebCore::CCActiveAnimation::needsSynchronizedStartTime):
2509         (WebCore::CCActiveAnimation::setNeedsSynchronizedStartTime):
2510         * platform/graphics/chromium/cc/CCAnimationEvents.cpp: Removed.
2511         * platform/graphics/chromium/cc/CCAnimationEvents.h:
2512         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
2513         (CCAnimationStartedEvent):
2514         (WebCore):
2515         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2516         (WebCore::CCLayerAnimationController::animate):
2517         (WebCore::CCLayerAnimationController::notifyAnimationStarted):
2518         (WebCore):
2519         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
2520         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
2521         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
2522         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
2523         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
2524         (WebCore::CCLayerAnimationController::tickAnimations):
2525         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2526         (CCLayerAnimationController):
2527         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2528         (WebCore::CCLayerTreeHost::updateAnimations):
2529         (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
2530         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2531         (CCLayerTreeHost):
2532
2533 2012-03-21  Zeno Albisser  <zeno@webkit.org>
2534
2535         [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
2536         https://bugs.webkit.org/show_bug.cgi?id=81113
2537
2538         The GLContext is created by QWindow/QSurface using
2539         QOpenGLContext which is implemented using NSOpenGL functions
2540         on mac. Therefore we should use QOpenGLContext as well when
2541         querying for the current context. AGL is not supposed
2542         to be paired with NSOpenGL.
2543         Altering the typedef for GLContext is fine, since
2544         the GLContext type is only used as a key in a map.
2545
2546         Reviewed by Kenneth Rohde Christiansen.
2547
2548         * platform/graphics/texmap/TextureMapperGL.cpp:
2549         (SharedGLData):
2550         (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
2551
2552 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
2553
2554         Web Inspector: HeapSnapshot: make _bfs twice as fast as the old version.
2555         https://bugs.webkit.org/show_bug.cgi?id=81756
2556
2557         Reviewed by Yury Semikhatsky.
2558
2559         * inspector/front-end/HeapSnapshot.js:
2560         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
2561         (WebInspector.HeapSnapshot.prototype._bfs):
2562
2563 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
2564
2565         https://bugs.webkit.org/show_bug.cgi?id=81705
2566         REGRESSION (r111416): fast/dom/prototype-inheritance-2.html is failing.
2567
2568         Reviewed by Csaba Osztrogonác.
2569
2570         No new tests.
2571
2572         * bindings/js/JSDOMBinding.h: Needs passing globalObject to constructArray().
2573         (WebCore::jsArray):
2574
2575 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2576
2577         [BlackBerry] Upstreaming blackberry specific css file
2578         https://bugs.webkit.org/show_bug.cgi?id=81650
2579
2580         Ustream BlackBerry specific css files, including:
2581         css/themeBlackBerry.css
2582         css/mediaControlsBlackBerry.css
2583
2584         Reviewed by Nikolas Zimmermann.
2585
2586         No new tests, this is the initial upstream patch
2587         for BlackBerry specific css files.
2588
2589         * css/mediaControlsBlackBerry.css: Added.
2590         (audio):
2591         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
2592         (video:-webkit-full-page-media::-webkit-media-controls-panel):
2593         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2594         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
2595         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2596         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
2597         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
2598         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
2599         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
2600         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
2601         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2602         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
2603         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
2604         * css/themeBlackBerry.css: Added.
2605         (textarea):
2606         (input, textarea):
2607         (input[type="color"]):
2608         (select:focus):
2609         (select[size][multiple]):
2610         (select[size][multiple]:focus):
2611
2612 2012-03-21  Levi Weintraub  <leviw@chromium.org>
2613
2614         Update LayoutUnit usage in descendants of RenderReplaced
2615         https://bugs.webkit.org/show_bug.cgi?id=80918
2616
2617         Reviewed by Eric Seidel.
2618
2619         Replaced elements have to flow in the new sub-pixel Render Tree, but since the rendering of these
2620         often takes place outside of WebCore (or in cases such as foreign objects, in WebCore after
2621         passing through platform code), care must be taken to determine the final rendered size and
2622         location before render time. This patch brings these classes up to the latest and greatest in the
2623         subpixellayout branch.
2624
2625         See https://trac.webkit.org/wiki/LayoutUnit for more information.
2626
2627         No new tests. No change in behavior.
2628
2629         * rendering/RenderFrameBase.cpp:
2630         (WebCore::RenderFrameBase::layoutWithFlattening): Build Fix.
2631         * rendering/RenderFullScreen.cpp:
2632         (RenderFullScreen::createPlaceholder): Ditto.
2633         * rendering/RenderFullScreen.h:
2634         (RenderFullScreen): Ditto.
2635         * rendering/RenderHTMLCanvas.cpp:
2636         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Ditto.
2637         * rendering/RenderIFrame.cpp:
2638         (WebCore::RenderIFrame::computeLogicalHeight): Ditto.
2639         (WebCore::RenderIFrame::computeLogicalWidth): Ditto.
2640         * rendering/RenderImage.cpp:
2641         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded): Intrinsic sizes are always integers, since they
2642         originate outside of WebCore.
2643         (WebCore::RenderImage::paintIntoRect): Use pixel snapping to paint into an arbitrary rect.
2644         (WebCore::RenderImage::computeReplacedLogicalWidth): Intrinsic size is always integral -- rounding
2645         values to integers.
2646         * rendering/RenderImage.h:
2647         (RenderImage):
2648         * rendering/RenderVideo.cpp:
2649         (WebCore::RenderVideo::videoBox):
2650         (WebCore::RenderVideo::paintReplaced): Painting at integer boundaries.
2651         * rendering/RenderWidget.cpp:
2652         (WebCore):
2653         (WebCore::roundedIntRect): Widgets are rendered outside of WebCore, so we always align them to
2654         integer boundaries. This means we can actually round the size of our ultimate content box. This
2655         function is implemented here specifically to prevent its misuse if we put it elsewhere.
2656         (WebCore::RenderWidget::setWidgetGeometry): We simplify layout by taking a LayoutRect and rounding
2657         it to its final location within this function.
2658         (WebCore::RenderWidget::updateWidgetGeometry): We keep things in LayoutUnits until handing off to
2659         setWidgetGeometry.
2660         (WebCore::RenderWidget::paint): Rounding the paint location before handing painting off to the
2661         widget itself.
2662         * rendering/RenderWidget.h:
2663         (RenderWidget):
2664
2665 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
2666
2667         Web Inspector: HeapProfiler: support distance column in Summary View.
2668         https://bugs.webkit.org/show_bug.cgi?id=81675
2669
2670         In many cases when a page leaked an object we see not only this object
2671         but the all objects it retains. It is quite difficult to find out which
2672         the object is the root of leak. It'd be simpler to sort the leaked
2673         objects by Distance column and track down the first one.
2674
2675         Reviewed by Yury Semikhatsky.
2676
2677         * inspector/front-end/DetailedHeapshotGridNodes.js:
2678         (WebInspector.HeapSnapshotGenericObjectNode):
2679         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
2680         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
2681         (WebInspector.HeapSnapshotConstructorNode):
2682         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
2683         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
2684         * inspector/front-end/DetailedHeapshotView.js:
2685         (WebInspector.HeapSnapshotConstructorsDataGrid):
2686         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
2687         * inspector/front-end/HeapSnapshot.js:
2688         (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
2689
2690 2012-03-21  Charles Wei  <charles.wei@torchmobile.com.cn>
2691
2692         [BlackBerry] Remove redundant code in SocketStreamHandler
2693         https://bugs.webkit.org/show_bug.cgi?id=81726
2694
2695         Reviewed by George Staikos.
2696
2697         No new tests needed. Just remove redundant code.
2698
2699         * platform/network/blackberry/SocketStreamHandle.h:
2700         (SocketStreamHandle):
2701         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
2702
2703 2012-03-20  Eric Seidel  <eric@webkit.org>
2704
2705         Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
2706         https://bugs.webkit.org/show_bug.cgi?id=80911
2707
2708         Reviewed by Adam Barth.
2709
2710         * CMakeLists.txt:
2711          - Look for headers in Source/WTF as well.
2712
2713 2012-03-20  Dana Jansens  <danakj@chromium.org>
2714
2715         [chromium] Use origin transform to transform occlusion from surface content space to its target content space
2716         https://bugs.webkit.org/show_bug.cgi?id=81730
2717
2718         Reviewed by Adrienne Walker.
2719
2720         Unit test: CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent
2721
2722         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2723         (WebCore::transformSurfaceOpaqueRegion):
2724         (WebCore::::leaveToTargetRenderSurface):
2725
2726 2012-03-19  Shinya Kawanaka  <shinyak@chromium.org>
2727
2728         [Crash] RenderMenuList::addChild() in Shadow DOM.
2729         https://bugs.webkit.org/show_bug.cgi?id=81201
2730
2731         Reviewed by Dimitri Glazkov.
2732
2733         <audio>, <video>, <meter>, <progress>, and <select> are implemented using
2734         Shadow DOM having HTMLContentElement. Their renderer children basically should not
2735         create a renderer unless they are on the upper shadow encapsulation boundary,
2736         which means they are the direct children of the shadow root.
2737
2738         However, current implementation allows their renderer children to create a renderer
2739         even if they are on a lower shadow encapsulation boundary, which means
2740         they are distributed elements of HTMLContentElement.
2741
2742         This patch makes there renderer children not to create a renderer if they are on a lower shadow
2743         encapsulation boudary.
2744
2745         Tests: fast/dom/shadow/content-element-in-media-element.html
2746                fast/dom/shadow/content-element-in-meter-element.html
2747                fast/dom/shadow/content-element-in-progress-element.html
2748                fast/dom/shadow/content-element-in-select-element.html
2749
2750         * dom/NodeRenderingContext.h:
2751         (NodeRenderingContext):
2752         (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
2753         (WebCore):
2754         * html/HTMLMediaElement.cpp:
2755         (WebCore::HTMLMediaElement::childShouldCreateRenderer):
2756         * html/HTMLMeterElement.cpp:
2757         (WebCore::HTMLMeterElement::childShouldCreateRenderer):
2758         * html/HTMLProgressElement.cpp:
2759         (WebCore::HTMLProgressElement::childShouldCreateRenderer):
2760         * html/HTMLSelectElement.cpp:
2761         (WebCore::HTMLSelectElement::childShouldCreateRenderer):
2762
2763 2012-03-20  Dana Jansens  <danakj@chromium.org>
2764
2765         [chromium] Store origin/screen space transforms for surface and replica in the surface
2766         https://bugs.webkit.org/show_bug.cgi?id=81296
2767
2768         Reviewed by Adrienne Walker.
2769
2770         Compute and save a number of transforms for render surfaces. The origin
2771         tranform for the replica into its target surface. The origin transform
2772         for the replica into the screen. And the origin transform for the surface
2773         into the screen.
2774
2775         These transforms will allow us to detect occlusion of render surfaces,
2776         allowing us to cull (or partially-cull) the render surface quad during
2777         drawing.
2778
2779         This also fixes a subtle bug in the transforms used by the damage
2780         tracking code.
2781
2782         Unit test: CCLayerTreeHostCommonTest.verifyTransformsForSingleRenderSurface
2783                    CCLayerTreeHostCommonTest.verifyTransformsForReplica
2784                    CCLayerTreeHostCommonTest.verifyTransformsForRenderSurfaceHierarchy
2785
2786         * platform/graphics/chromium/RenderSurfaceChromium.h:
2787         (WebCore::RenderSurfaceChromium::screenSpaceTransform):
2788         (WebCore::RenderSurfaceChromium::setScreenSpaceTransform):
2789         (RenderSurfaceChromium):
2790         (WebCore::RenderSurfaceChromium::replicaOriginTransform):
2791         (WebCore::RenderSurfaceChromium::setReplicaOriginTransform):
2792         (WebCore::RenderSurfaceChromium::replicaScreenSpaceTransform):
2793         (WebCore::RenderSurfaceChromium::setReplicaScreenSpaceTransform):
2794         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
2795         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
2796         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2797         (WebCore::calculateDrawTransformsAndVisibilityInternal):
2798         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2799         (WebCore::damageInSurfaceSpace):
2800         * platform/graphics/chromium/cc/CCRenderSurface.h:
2801         (WebCore::CCRenderSurface::setDrawTransform):
2802         (WebCore::CCRenderSurface::drawTransform):
2803         (WebCore::CCRenderSurface::setScreenSpaceTransform):
2804         (WebCore::CCRenderSurface::screenSpaceTransform):
2805         (CCRenderSurface):
2806         (WebCore::CCRenderSurface::setReplicaDrawTransform):
2807         (WebCore::CCRenderSurface::replicaDrawTransform):
2808         (WebCore::CCRenderSurface::setReplicaOriginTransform):
2809         (WebCore::CCRenderSurface::replicaOriginTransform):
2810         (WebCore::CCRenderSurface::setReplicaScreenSpaceTransform):
2811         (WebCore::CCRenderSurface::replicaScreenSpaceTransform):
2812
2813 2012-03-20  Yoshifumi Inoue  <yosin@chromium.org>
2814
2815         [Forms] The option element should not be form associated element.
2816         https://bugs.webkit.org/show_bug.cgi?id=79764
2817
2818         Reviewed by Kent Tamura.
2819
2820         This patch changes base class of HTMLOptionELement to HTMLElement
2821         from HTMLFormControlElement for saving memory space and iteration
2822         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
2823         and matching the HTML5 specification for ease of maintenance.
2824
2825         This patch changes behavior of handling of CSS pseudo classes "invalid"
2826         and "valid". The "option" elements no longer use these CSS pseudo classes
2827         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
2828
2829         Changes of TextIterator is lead by usage of isFormControlElement. This
2830         changes will be replaced with more meaningful predicate as part of
2831         https://bugs.webkit.org/show_bug.cgi?id=80381
2832
2833         No new tests but updated select-live-pseudo-selectors.html test.
2834
2835         * css/CSSStyleSelector.cpp:
2836         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
2837         * css/SelectorChecker.cpp:
2838         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
2839         * html/HTMLKeygenElement.cpp:
2840         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
2841         * html/HTMLOptionElement.cpp:
2842         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
2843         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
2844         (WebCore::HTMLOptionElement::attach): Changeid base class.
2845         (WebCore::HTMLOptionElement::detach): Changed base class.
2846         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
2847         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
2848         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
2849         * html/HTMLOptionElement.h:
2850         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
2851         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
2852         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
2853
2854 2012-03-20  Xiaomei Ji  <xji@chromium.org>
2855
2856         Crash introduced in r110965.
2857         https://bugs.webkit.org/show_bug.cgi?id=81720
2858
2859         Reviewed by Ryosuke Niwa.
2860
2861         Since word break iterator just keeps a pointer to the UChar array given to the constructor,
2862         we need to allocate the UChar array deeper in the stack than the iterator.
2863
2864         Test: editing/selection/move-by-word-visually-crash-test-5.html
2865
2866         * editing/visible_units.cpp:
2867         (WebCore::wordBreakIteratorForMinOffsetBoundary):
2868         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
2869         (WebCore::visualWordPosition):
2870
2871 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
2872
2873         [chromium] Convert TouchFlingPlatformGestureCurve to a 2-D Bezier for better control of curve shape.
2874         https://bugs.webkit.org/show_bug.cgi?id=81713
2875
2876         Reviewed by Dirk Pranke.
2877
2878         Exisiting unit test revised to cover this change.
2879
2880         Change the fling gesture animation curve to use a 2-D Bezier to obtain greater control
2881         over the shape of the curve. Also, change time scaling code to be logarithmic for more
2882         natural feel.
2883
2884         * platform/TouchFlingPlatformGestureCurve.cpp:
2885         (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
2886         (WebCore::TouchFlingPlatformGestureCurve::apply):
2887
2888 2012-03-18  Tim Horton  <timothy_horton@apple.com>
2889
2890         Infinite repaint loop with SVGImageCache and deferred repaint timers
2891         https://bugs.webkit.org/show_bug.cgi?id=78315
2892         <rdar://problem/10651634>
2893
2894         Reviewed by Nikolas Zimmermann.
2895
2896         Only defer image redraw on a timer if we're in layout. This breaks
2897         the repaint loop while still preventing us from drawing inside layout.
2898
2899         Completely disable repaint during relayout inside SVGImage::drawSVGToImageBuffer,
2900         preventing deferred repaint timers from being started during that process.
2901
2902         No new tests, as the problem only occurs in a nonstandard configuration.
2903
2904         * page/FrameView.cpp:
2905         (WebCore::FrameView::FrameView):
2906         (WebCore::FrameView::reset):
2907         (WebCore::FrameView::repaintContentRectangle):
2908         (WebCore::FrameView::endDeferredRepaints):
2909         (WebCore::FrameView::startDeferredRepaintTimer):
2910         (WebCore):
2911         (WebCore::FrameView::doDeferredRepaints):
2912         (WebCore::FrameView::deferredRepaintTimerFired):
2913         (WebCore::FrameView::beginDisableRepaints):
2914         (WebCore::FrameView::endDisableRepaints):
2915         * page/FrameView.h:
2916         (FrameView):
2917         (WebCore::FrameView::repaintsDisabled):
2918         * rendering/RenderView.cpp:
2919         (WebCore::RenderView::shouldRepaint):
2920         * svg/graphics/SVGImage.cpp:
2921         (WebCore::SVGImage::drawSVGToImageBuffer):
2922         (WebCore::SVGImage::draw):
2923         (WebCore::SVGImage::frameView):
2924         (WebCore):
2925         * svg/graphics/SVGImage.h:
2926         (WebCore):
2927         * svg/graphics/SVGImageCache.cpp:
2928         (WebCore::SVGImageCache::imageContentChanged):
2929         (WebCore::SVGImageCache::redraw):
2930         (WebCore::SVGImageCache::redrawTimerFired):
2931         (WebCore):
2932         * svg/graphics/SVGImageCache.h:
2933         (SVGImageCache):
2934
2935 2012-03-20  Adam Klein  <adamk@chromium.org>
2936
2937         Include fix for dom/xhtml test promised in r111449.
2938
2939         * dom/ContainerNode.cpp:
2940         (WebCore::ContainerNode::replaceChild): Check against next instead of
2941         prev when deciding there's no work to do.
2942
2943 2012-03-20  Jon Lee  <jonlee@apple.com>
2944
2945         Restrict access to notifications for unique origins and file URLs with no local file access
2946         https://bugs.webkit.org/show_bug.cgi?id=79704
2947         <rdar://problem/10912430>
2948
2949         Reviewed by Adam Barth.
2950
2951         Before checking or requesting permissions, we look at whether we can show notifications based on
2952         the security context. If not, we short circuit and do not forward the request to the client.
2953
2954         * notifications/Notification.cpp:
2955         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
2956         different logic for checking permissions than when checking permissions through the
2957         notification center.
2958         * notifications/NotificationCenter.cpp:
2959         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
2960         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
2961         we asynchronously call the callback with that decision. Otherwise we ask the client.
2962
2963         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
2964         requestPermission().
2965         * notifications/NotificationCenter.h:
2966         (NotificationRequestCallback): Add new private class encapsulating the callback.
2967         * notifications/NotificationCenter.cpp:
2968         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
2969         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
2970         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
2971         to invoke the callback.
2972         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
2973         (WebCore::NotificationCenter::NotificationRequest::startTimer):
2974         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
2975         center.
2976         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
2977         regardless of any restrictions that might otherwise cause toString() to return "null".
2978         * page/SecurityOrigin.cpp:
2979         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
2980         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
2981         universal access, we always let it show. Otherwise the client should be asked.
2982         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
2983         (WebCore::SecurityOrigin::toRawString):
2984
2985         Added FIXME's regarding the naming of enforceFilePathSeparation().
2986         * dom/Document.cpp:
2987         (WebCore::Document::initSecurityContext): Also, tab reformatting.
2988
2989         * WebCore.exp.in: Export toRawString().
2990
2991 2012-03-20  Mark Pilgrim  <pilgrim@chromium.org>
2992
2993         Move webaudio to Modules/webaudio/
2994         https://bugs.webkit.org/show_bug.cgi?id=81541
2995
2996         Reviewed by Kentaro Hara.
2997
2998         No new tests, all existing tests pass.
2999
3000         * CMakeLists.txt:
3001         * DerivedSources.make:
3002         * DerivedSources.pri:
3003         * GNUmakefile.am:
3004         * GNUmakefile.list.am:
3005         * Modules/webaudio: Added.
3006         * Modules/webaudio/AsyncAudioDecoder.cpp: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.cpp.
3007         * Modules/webaudio/AsyncAudioDecoder.h: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.h.
3008         * Modules/webaudio/AudioBasicProcessorNode.cpp: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.cpp.
3009         * Modules/webaudio/AudioBasicProcessorNode.h: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.h.
3010         * Modules/webaudio/AudioBuffer.cpp: Copied from Source/WebCore/webaudio/AudioBuffer.cpp.
3011         * Modules/webaudio/AudioBuffer.h: Copied from Source/WebCore/webaudio/AudioBuffer.h.
3012         * Modules/webaudio/AudioBuffer.idl: Copied from Source/WebCore/webaudio/AudioBuffer.idl.
3013         * Modules/webaudio/AudioBufferCallback.h: Copied from Source/WebCore/webaudio/AudioBufferCallback.h.
3014         * Modules/webaudio/AudioBufferCallback.idl: Copied from Source/WebCore/webaudio/AudioBufferCallback.idl.
3015         * Modules/webaudio/AudioBufferSourceNode.cpp: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.cpp.
3016         * Modules/webaudio/AudioBufferSourceNode.h: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.h.
3017         * Modules/webaudio/AudioBufferSourceNode.idl: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.idl.
3018         * Modules/webaudio/AudioChannelMerger.cpp: Copied from Source/WebCore/webaudio/AudioChannelMerger.cpp.
3019         * Modules/webaudio/AudioChannelMerger.h: Copied from Source/WebCore/webaudio/AudioChannelMerger.h.
3020         * Modules/webaudio/AudioChannelMerger.idl: Copied from Source/WebCore/webaudio/AudioChannelMerger.idl.
3021         * Modules/webaudio/AudioChannelSplitter.cpp: Copied from Source/WebCore/webaudio/AudioChannelSplitter.cpp.
3022         * Modules/webaudio/AudioChannelSplitter.h: Copied from Source/WebCore/webaudio/AudioChannelSplitter.h.
3023         * Modules/webaudio/AudioChannelSplitter.idl: Copied from Source/WebCore/webaudio/AudioChannelSplitter.idl.
3024         * Modules/webaudio/AudioContext.cpp: Copied from Source/WebCore/webaudio/AudioContext.cpp.
3025         * Modules/webaudio/AudioContext.h: Copied from Source/WebCore/webaudio/AudioContext.h.
3026         * Modules/webaudio/AudioContext.idl: Copied from Source/WebCore/webaudio/AudioContext.idl.
3027         * Modules/webaudio/AudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/AudioDestinationNode.cpp.
3028         * Modules/webaudio/AudioDestinationNode.h: Copied from Source/WebCore/webaudio/AudioDestinationNode.h.
3029         * Modules/webaudio/AudioDestinationNode.idl: Copied from Source/WebCore/webaudio/AudioDestinationNode.idl.
3030         * Modules/webaudio/AudioGain.h: Copied from Source/WebCore/webaudio/AudioGain.h.
3031         * Modules/webaudio/AudioGain.idl: Copied from Source/WebCore/webaudio/AudioGain.idl.
3032         * Modules/webaudio/AudioGainNode.cpp: Copied from Source/WebCore/webaudio/AudioGainNode.cpp.
3033         * Modules/webaudio/AudioGainNode.h: Copied from Source/WebCore/webaudio/AudioGainNode.h.
3034         * Modules/webaudio/AudioGainNode.idl: Copied from Source/WebCore/webaudio/AudioGainNode.idl.
3035         * Modules/webaudio/AudioListener.cpp: Copied from Source/WebCore/webaudio/AudioListener.cpp.
3036         * Modules/webaudio/AudioListener.h: Copied from Source/WebCore/webaudio/AudioListener.h.
3037         * Modules/webaudio/AudioListener.idl: Copied from Source/WebCore/webaudio/AudioListener.idl.
3038         * Modules/webaudio/AudioNode.cpp: Copied from Source/WebCore/webaudio/AudioNode.cpp.
3039         * Modules/webaudio/AudioNode.h: Copied from Source/WebCore/webaudio/AudioNode.h.
3040         * Modules/webaudio/AudioNode.idl: Copied from Source/WebCore/webaudio/AudioNode.idl.
3041         * Modules/webaudio/AudioNodeInput.cpp: Copied from Source/WebCore/webaudio/AudioNodeInput.cpp.
3042         * Modules/webaudio/AudioNodeInput.h: Copied from Source/WebCore/webaudio/AudioNodeInput.h.
3043         * Modules/webaudio/AudioNodeOutput.cpp: Copied from Source/WebCore/webaudio/AudioNodeOutput.cpp.
3044         * Modules/webaudio/AudioNodeOutput.h: Copied from Source/WebCore/webaudio/AudioNodeOutput.h.
3045         * Modules/webaudio/AudioPannerNode.cpp: Copied from Source/WebCore/webaudio/AudioPannerNode.cpp.
3046         * Modules/webaudio/AudioPannerNode.h: Copied from Source/WebCore/webaudio/AudioPannerNode.h.
3047         * Modules/webaudio/AudioPannerNode.idl: Copied from Source/WebCore/webaudio/AudioPannerNode.idl.
3048         * Modules/webaudio/AudioParam.cpp: Copied from Source/WebCore/webaudio/AudioParam.cpp.
3049         * Modules/webaudio/AudioParam.h: Copied from Source/WebCore/webaudio/AudioParam.h.
3050         * Modules/webaudio/AudioParam.idl: Copied from Source/WebCore/webaudio/AudioParam.idl.
3051         * Modules/webaudio/AudioParamTimeline.cpp: Copied from Source/WebCore/webaudio/AudioParamTimeline.cpp.
3052         * Modules/webaudio/AudioParamTimeline.h: Copied from Source/WebCore/webaudio/AudioParamTimeline.h.
3053         * Modules/webaudio/AudioProcessingEvent.cpp: Copied from Source/WebCore/webaudio/AudioProcessingEvent.cpp.
3054         * Modules/webaudio/AudioProcessingEvent.h: Copied from Source/WebCore/webaudio/AudioProcessingEvent.h.
3055         * Modules/webaudio/AudioProcessingEvent.idl: Copied from Source/WebCore/webaudio/AudioProcessingEvent.idl.
3056         * Modules/webaudio/AudioSourceNode.h: Copied from Source/WebCore/webaudio/AudioSourceNode.h.
3057         * Modules/webaudio/AudioSourceNode.idl: Copied from Source/WebCore/webaudio/AudioSourceNode.idl.
3058         * Modules/webaudio/BiquadDSPKernel.cpp: Copied from Source/WebCore/webaudio/BiquadDSPKernel.cpp.
3059         * Modules/webaudio/BiquadDSPKernel.h: Copied from Source/WebCore/webaudio/BiquadDSPKernel.h.
3060         * Modules/webaudio/BiquadFilterNode.cpp: Copied from Source/WebCore/webaudio/BiquadFilterNode.cpp.
3061         * Modules/webaudio/BiquadFilterNode.h: Copied from Source/WebCore/webaudio/BiquadFilterNode.h.
3062         * Modules/webaudio/BiquadFilterNode.idl: Copied from Source/WebCore/webaudio/BiquadFilterNode.idl.
3063         * Modules/webaudio/BiquadProcessor.cpp: Copied from Source/WebCore/webaudio/BiquadProcessor.cpp.
3064         * Modules/webaudio/BiquadProcessor.h: Copied from Source/WebCore/webaudio/BiquadProcessor.h.
3065         * Modules/webaudio/ConvolverNode.cpp: Copied from Source/WebCore/webaudio/ConvolverNode.cpp.
3066         * Modules/webaudio/ConvolverNode.h: Copied from Source/WebCore/webaudio/ConvolverNode.h.
3067         * Modules/webaudio/ConvolverNode.idl: Copied from Source/WebCore/webaudio/ConvolverNode.idl.
3068         * Modules/webaudio/DOMWindowWebAudio.idl: Copied from Source/WebCore/webaudio/DOMWindowWebAudio.idl.
3069         * Modules/webaudio/DefaultAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp.
3070         * Modules/webaudio/DefaultAudioDestinationNode.h: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.h.
3071         * Modules/webaudio/DelayDSPKernel.cpp: Copied from Source/WebCore/webaudio/DelayDSPKernel.cpp.
3072         * Modules/webaudio/DelayDSPKernel.h: Copied from Source/WebCore/webaudio/DelayDSPKernel.h.
3073         * Modules/webaudio/DelayNode.cpp: Copied from Source/WebCore/webaudio/DelayNode.cpp.
3074         * Modules/webaudio/DelayNode.h: Copied from Source/WebCore/webaudio/DelayNode.h.
3075         * Modules/webaudio/DelayNode.idl: Copied from Source/WebCore/webaudio/DelayNode.idl.
3076         * Modules/webaudio/DelayProcessor.cpp: Copied from Source/WebCore/webaudio/DelayProcessor.cpp.
3077         * Modules/webaudio/DelayProcessor.h: Copied from Source/WebCore/webaudio/DelayProcessor.h.
3078         * Modules/webaudio/DynamicsCompressorNode.cpp: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.cpp.
3079         * Modules/webaudio/DynamicsCompressorNode.h: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.h.
3080         * Modules/webaudio/DynamicsCompressorNode.idl: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.idl.
3081         * Modules/webaudio/HighPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/HighPass2FilterNode.cpp.
3082         * Modules/webaudio/HighPass2FilterNode.h: Copied from Source/WebCore/webaudio/HighPass2FilterNode.h.
3083         * Modules/webaudio/HighPass2FilterNode.idl: Copied from Source/WebCore/webaudio/HighPass2FilterNode.idl.
3084         * Modules/webaudio/JavaScriptAudioNode.cpp: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.cpp.
3085         * Modules/webaudio/JavaScriptAudioNode.h: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.h.
3086         * Modules/webaudio/JavaScriptAudioNode.idl: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.idl.
3087         * Modules/webaudio/LowPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/LowPass2FilterNode.cpp.
3088         * Modules/webaudio/LowPass2FilterNode.h: Copied from Source/WebCore/webaudio/LowPass2FilterNode.h.
3089         * Modules/webaudio/LowPass2FilterNode.idl: Copied from Source/WebCore/webaudio/LowPass2FilterNode.idl.
3090         * Modules/webaudio/MediaElementAudioSourceNode.cpp: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.cpp.
3091         * Modules/webaudio/MediaElementAudioSourceNode.h: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.h.
3092         * Modules/webaudio/MediaElementAudioSourceNode.idl: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.idl.
3093         * Modules/webaudio/OfflineAudioCompletionEvent.cpp: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.cpp.
3094         * Modules/webaudio/OfflineAudioCompletionEvent.h: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.h.
3095         * Modules/webaudio/OfflineAudioCompletionEvent.idl: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.idl.
3096         * Modules/webaudio/OfflineAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp.
3097         * Modules/webaudio/OfflineAudioDestinationNode.h: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.h.
3098         * Modules/webaudio/RealtimeAnalyser.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyser.cpp.
3099         * Modules/webaudio/RealtimeAnalyser.h: Copied from Source/WebCore/webaudio/RealtimeAnalyser.h.
3100         * Modules/webaudio/RealtimeAnalyserNode.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.cpp.
3101         * Modules/webaudio/RealtimeAnalyserNode.h: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.h.
3102         * Modules/webaudio/RealtimeAnalyserNode.idl: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.idl.
3103         * Modules/webaudio/WaveShaperDSPKernel.cpp: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.cpp.
3104         * Modules/webaudio/WaveShaperDSPKernel.h: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.h.
3105         * Modules/webaudio/WaveShaperNode.cpp: Copied from Source/WebCore/webaudio/WaveShaperNode.cpp.
3106         * Modules/webaudio/WaveShaperNode.h: Copied from Source/WebCore/webaudio/WaveShaperNode.h.
3107         * Modules/webaudio/WaveShaperNode.idl: Copied from Source/WebCore/webaudio/WaveShaperNode.idl.
3108         * Modules/webaudio/WaveShaperProcessor.cpp: Copied from Source/WebCore/webaudio/WaveShaperProcessor.cpp.
3109         * Modules/webaudio/WaveShaperProcessor.h: Copied from Source/WebCore/webaudio/WaveShaperProcessor.h.
3110         * WebCore.gyp/WebCore.gyp:
3111         * WebCore.gypi:
3112         * WebCore.pri:
3113         * WebCore.xcodeproj/project.pbxproj:
3114         * webaudio/AsyncAudioDecoder.cpp: Removed.
3115         * webaudio/AsyncAudioDecoder.h: Removed.
3116         * webaudio/AudioBasicProcessorNode.cpp: Removed.
3117         * webaudio/AudioBasicProcessorNode.h: Removed.
3118         * webaudio/AudioBuffer.cpp: Removed.
3119         * webaudio/AudioBuffer.h: Removed.
3120         * webaudio/AudioBuffer.idl: Removed.
3121         * webaudio/AudioBufferCallback.h: Removed.
3122         * webaudio/AudioBufferCallback.idl: Removed.
3123         * webaudio/AudioBufferSourceNode.cpp: Removed.
3124         * webaudio/AudioBufferSourceNode.h: Removed.
3125         * webaudio/AudioBufferSourceNode.idl: Removed.
3126         * webaudio/AudioChannelMerger.cpp: Removed.
3127         * webaudio/AudioChannelMerger.h: Removed.
3128         * webaudio/AudioChannelMerger.idl: Removed.
3129         * webaudio/AudioChannelSplitter.cpp: Removed.
3130         * webaudio/AudioChannelSplitter.h: Removed.
3131         * webaudio/AudioChannelSplitter.idl: Removed.
3132         * webaudio/AudioContext.cpp: Removed.
3133         * webaudio/AudioContext.h: Removed.
3134         * webaudio/AudioContext.idl: Removed.
3135         * webaudio/AudioDestinationNode.cpp: Removed.
3136         * webaudio/AudioDestinationNode.h: Removed.
3137         * webaudio/AudioDestinationNode.idl: Removed.
3138         * webaudio/AudioGain.h: Removed.
3139         * webaudio/AudioGain.idl: Removed.
3140         * webaudio/AudioGainNode.cpp: Removed.
3141         * webaudio/AudioGainNode.h: Removed.
3142         * webaudio/AudioGainNode.idl: Removed.
3143         * webaudio/AudioListener.cpp: Removed.
3144         * webaudio/AudioListener.h: Removed.
3145         * webaudio/AudioListener.idl: Removed.
3146         * webaudio/AudioNode.cpp: Removed.
3147         * webaudio/AudioNode.h: Removed.
3148         * webaudio/AudioNode.idl: Removed.
3149         * webaudio/AudioNodeInput.cpp: Removed.
3150         * webaudio/AudioNodeInput.h: Removed.
3151         * webaudio/AudioNodeOutput.cpp: Removed.
3152         * webaudio/AudioNodeOutput.h: Removed.
3153         * webaudio/AudioPannerNode.cpp: Removed.
3154         * webaudio/AudioPannerNode.h: Removed.
3155         * webaudio/AudioPannerNode.idl: Removed.
3156         * webaudio/AudioParam.cpp: Removed.
3157         * webaudio/AudioParam.h: Removed.
3158         * webaudio/AudioParam.idl: Removed.
3159         * webaudio/AudioParamTimeline.cpp: Removed.
3160         * webaudio/AudioParamTimeline.h: Removed.
3161         * webaudio/AudioProcessingEvent.cpp: Removed.
3162         * webaudio/AudioProcessingEvent.h: Removed.
3163         * webaudio/AudioProcessingEvent.idl: Removed.
3164         * webaudio/AudioSourceNode.h: Removed.
3165         * webaudio/AudioSourceNode.idl: Removed.
3166         * webaudio/BiquadDSPKernel.cpp: Removed.
3167         * webaudio/BiquadDSPKernel.h: Removed.
3168         * webaudio/BiquadFilterNode.cpp: Removed.
3169         * webaudio/BiquadFilterNode.h: Removed.
3170         * webaudio/BiquadFilterNode.idl: Removed.
3171         * webaudio/BiquadProcessor.cpp: Removed.
3172         * webaudio/BiquadProcessor.h: Removed.
3173         * webaudio/ConvolverNode.cpp: Removed.
3174         * webaudio/ConvolverNode.h: Removed.
3175         * webaudio/ConvolverNode.idl: Removed.
3176         * webaudio/DOMWindowWebAudio.idl: Removed.
3177         * webaudio/DefaultAudioDestinationNode.cpp: Removed.
3178         * webaudio/DefaultAudioDestinationNode.h: Removed.
3179         * webaudio/DelayDSPKernel.cpp: Removed.
3180         * webaudio/DelayDSPKernel.h: Removed.
3181         * webaudio/DelayNode.cpp: Removed.
3182         * webaudio/DelayNode.h: Removed.
3183         * webaudio/DelayNode.idl: Removed.
3184         * webaudio/DelayProcessor.cpp: Removed.
3185         * webaudio/DelayProcessor.h: Removed.
3186         * webaudio/DynamicsCompressorNode.cpp: Removed.
3187         * webaudio/DynamicsCompressorNode.h: Removed.
3188         * webaudio/DynamicsCompressorNode.idl: Removed.
3189         * webaudio/HighPass2FilterNode.cpp: Removed.
3190         * webaudio/HighPass2FilterNode.h: Removed.
3191         * webaudio/HighPass2FilterNode.idl: Removed.
3192         * webaudio/JavaScriptAudioNode.cpp: Removed.
3193         * webaudio/JavaScriptAudioNode.h: Removed.
3194         * webaudio/JavaScriptAudioNode.idl: Removed.
3195         * webaudio/LowPass2FilterNode.cpp: Removed.
3196         * webaudio/LowPass2FilterNode.h: Removed.
3197         * webaudio/LowPass2FilterNode.idl: Removed.
3198         * webaudio/MediaElementAudioSourceNode.cpp: Removed.
3199         * webaudio/MediaElementAudioSourceNode.h: Removed.
3200         * webaudio/MediaElementAudioSourceNode.idl: Removed.
3201         * webaudio/OfflineAudioCompletionEvent.cpp: Removed.
3202         * webaudio/OfflineAudioCompletionEvent.h: Removed.
3203         * webaudio/OfflineAudioCompletionEvent.idl: Removed.
3204         * webaudio/OfflineAudioDestinationNode.cpp: Removed.
3205         * webaudio/OfflineAudioDestinationNode.h: Removed.
3206         * webaudio/RealtimeAnalyser.cpp: Removed.
3207         * webaudio/RealtimeAnalyser.h: Removed.
3208         * webaudio/RealtimeAnalyserNode.cpp: Removed.
3209         * webaudio/RealtimeAnalyserNode.h: Removed.
3210         * webaudio/RealtimeAnalyserNode.idl: Removed.
3211         * webaudio/WaveShaperDSPKernel.cpp: Removed.
3212         * webaudio/WaveShaperDSPKernel.h: Removed.
3213         * webaudio/WaveShaperNode.cpp: Removed.
3214         * webaudio/WaveShaperNode.h: Removed.
3215         * webaudio/WaveShaperNode.idl: Removed.
3216         * webaudio/WaveShaperProcessor.cpp: Removed.
3217         * webaudio/WaveShaperProcessor.h: Removed.
3218
3219 2012-03-20  Anders Carlsson  <andersca@apple.com>
3220
3221         Add a per-ScrollableArea tile cache base class
3222         https://bugs.webkit.org/show_bug.cgi?id=81694
3223
3224         Reviewed by Sam Weinig.
3225
3226         Add an abstract base class, TiledBacking, that can be used to inform tile caches about changed
3227         state in scrollable areas (such as the currently visible rect, whether the page is active or not, etc).
3228
3229         Make TileCache inherit from TiledBacking and port updating the visible rect over to this new mechanism.
3230
3231         * WebCore.xcodeproj/project.pbxproj:
3232         * page/FrameView.cpp:
3233         (WebCore::FrameView::tiledBacking):
3234         (WebCore):
3235         * page/FrameView.h:
3236         (FrameView):
3237         * platform/ScrollableArea.h:
3238         (WebCore):
3239         (ScrollableArea):
3240         (WebCore::ScrollableArea::tiledBacking):
3241         * platform/graphics/GraphicsLayer.h:
3242         (WebCore):
3243         (WebCore::GraphicsLayer::tiledBacking):
3244         * platform/graphics/TiledBacking.h: Added.
3245         (WebCore):
3246         (TiledBacking):
3247         (WebCore::TiledBacking::~TiledBacking):
3248         * platform/graphics/ca/GraphicsLayerCA.cpp:
3249         (WebCore::GraphicsLayerCA::tiledBacking):
3250         * platform/graphics/ca/GraphicsLayerCA.h:
3251         (GraphicsLayerCA):
3252         * platform/graphics/ca/PlatformCALayer.h:
3253         (PlatformCALayer):
3254         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
3255         (PlatformCALayer::tiledBacking):
3256         * platform/graphics/ca/mac/TileCache.h:
3257         (TileCache):
3258         * platform/graphics/ca/mac/WebTileCacheLayer.h:
3259         (WebCore):
3260         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
3261         (-[WebTileCacheLayer WebCore::]):
3262         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
3263         (PlatformCALayer::tiledBacking):
3264         * rendering/RenderLayerCompositor.cpp:
3265         (WebCore::RenderLayerCompositor::frameViewDidScroll):
3266
3267 2012-03-20  Xiaomei Ji  <xji@chromium.org>
3268
3269         visual word movement: crashes on CSS generated content.
3270         https://bugs.webkit.org/show_bug.cgi?id=81581
3271
3272         Reviewed by Ryosuke Niwa.
3273
3274         Check for null pointer when referencing box->renderer()->node() in previousRootInlineBox and nextRootInlineBox.
3275
3276         Test: editing/selection/move-by-word-visually-crash-test-css-generated-content.html
3277
3278         * editing/visible_units.cpp:
3279         (WebCore::previousRootInlineBox):
3280         (WebCore::nextRootInlineBox):
3281
3282 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
3283
3284         Use CSSPrimitiveValue::convertToLength() to handle CSSPropertyWebkitBoxReflect and in createGridTrackBreadth.
3285         https://bugs.webkit.org/show_bug.cgi?id=81633
3286
3287         Reviewed by Andreas Kling.
3288
3289         No new tests / refactoring only.
3290
3291         * css/CSSStyleSelector.cpp:
3292         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3293
3294 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3295
3296         Unreviewed, rolling out r111442.
3297         http://trac.webkit.org/changeset/111442
3298         https://bugs.webkit.org/show_bug.cgi?id=81711
3299
3300         Causes crashes and image mismatches in canvas tests (Requested
3301         by leviw on #webkit).
3302
3303         * html/HTMLCanvasElement.cpp:
3304         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
3305         (WebCore::HTMLCanvasElement::reset):
3306         (WebCore::HTMLCanvasElement::createImageBuffer):
3307         (WebCore::HTMLCanvasElement::clearCopiedImage):
3308         * html/HTMLCanvasElement.h:
3309         (HTMLCanvasElement):
3310         * html/canvas/CanvasRenderingContext2D.cpp:
3311         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
3312         (WebCore::CanvasRenderingContext2D::unwindStateStack):
3313         (WebCore::CanvasRenderingContext2D::reset):
3314
3315 2012-03-20  Adrienne Walker  <enne@google.com>
3316
3317         RenderLayerCompositor doesn't properly clip graphics layer sizes
3318         https://bugs.webkit.org/show_bug.cgi?id=80372
3319
3320         Reviewed by Simon Fraser.
3321
3322         To find the bounds for a composited layer, calculateCompositedBounds
3323         iterates through all non-composited child layers using z-order and
3324         normal flow lists. This does not preserve clipping from ancestor
3325         layers, because a clipping ancestor layer can end up as a sibling to
3326         its clipped descendent because it is not a stacking context.
3327
3328         Fix by explicitly checking cached clip roots.
3329
3330         Test: compositing/clip-child-by-non-stacking-ancestor.html
3331
3332         * rendering/RenderLayer.cpp:
3333         (WebCore::RenderLayer::localClipRect):
3334         (WebCore):
3335         * rendering/RenderLayer.h:
3336         (RenderLayer):
3337         * rendering/RenderLayerCompositor.cpp:
3338         (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
3339         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
3340
3341 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3342
3343         Unreviewed, rolling out r111445 and r111446.
3344         http://trac.webkit.org/changeset/111445
3345         http://trac.webkit.org/changeset/111446
3346         https://bugs.webkit.org/show_bug.cgi?id=81708
3347
3348         It broke Qt and GTK build intentionally (Requested by Ossy on
3349         #webkit).
3350
3351         * WebCore.exp.in:
3352         * dom/Document.cpp:
3353         (WebCore::Document::initSecurityContext):
3354         * notifications/Notification.cpp:
3355         (WebCore::Notification::Notification):
3356         * notifications/NotificationCenter.cpp:
3357         (WebCore::NotificationCenter::checkPermission):
3358         (WebCore::NotificationCenter::requestPermission):
3359         * notifications/NotificationCenter.h:
3360         (NotificationCenter):
3361         * page/SecurityOrigin.cpp:
3362         (WebCore::SecurityOrigin::toString):
3363         * page/SecurityOrigin.h:
3364         (SecurityOrigin):
3365
3366 2012-03-20  Adam Klein  <adamk@chromium.org>
3367
3368         Refactor ContainerNode::replaceChild to match other mutation methods and share code
3369         https://bugs.webkit.org/show_bug.cgi?id=81579
3370
3371         Reviewed by Ojan Vafai.
3372
3373         Originally landed as r111310, this fixes a bug in replaceChild
3374         introduced when switching to the insert-before logic.
3375
3376         A future change will make use of the consistency among insertBefore/appendChild/replaceChild
3377         to handle insertion of DocumentFragments more cleanly.
3378
3379         No new tests, no change in behavior.
3380
3381         * dom/ContainerNode.cpp:
3382         (WebCore::ContainerNode::replaceChild): Use collectTargetNodes rather than walking through DocumentFragment children.
3383         Insert before rather than inserting after. Dispatch to other methods to update parent/sibling pointers.
3384         (WebCore::ContainerNode::appendChild): Call appendChildToContainer to update parent/sibling pointers.
3385         (WebCore::ContainerNode::parserAddChild): Use type inference in call to appendChildToContainer.
3386
3387 2012-03-20  Jon Lee  <jonlee@apple.com>
3388
3389         Restrict access to notifications for unique origins and file URLs with no local file access
3390         https://bugs.webkit.org/show_bug.cgi?id=79704
3391         <rdar://problem/10912430>
3392
3393         Reviewed by Adam Barth.
3394
3395         Before checking or requesting permissions, we look at whether we can show notifications based on
3396         the security context. If not, we short circuit and do not forward the request to the client.
3397
3398         * notifications/Notification.cpp:
3399         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
3400         different logic for checking permissions than when checking permissions through the
3401         notification center.
3402         * notifications/NotificationCenter.cpp:
3403         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
3404         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
3405         we asynchronously call the callback with that decision. Otherwise we ask the client.
3406
3407         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
3408         requestPermission().
3409         * notifications/NotificationCenter.h:
3410         (NotificationRequestCallback): Add new private class encapsulating the callback.
3411         * notifications/NotificationCenter.cpp:
3412         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
3413         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
3414         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
3415         to invoke the callback.
3416         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
3417         (WebCore::NotificationCenter::NotificationRequest::startTimer):
3418         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
3419         center.
3420         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
3421         regardless of any restrictions that might otherwise cause toString() to return "null".
3422         * page/SecurityOrigin.cpp:
3423         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know