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