WebWindowFadeAnimation ignores "duration" parameter. https://bugs.webkit.org/show_bug...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-02  Jer Noble  <jer.noble@apple.com>
2
3         WebWindowFadeAnimation ignores "duration" parameter.
4         https://bugs.webkit.org/show_bug.cgi?id=85386
5
6         Reviewed by Brady Eidson.
7
8         Ignoring the "duration" parameter causes the full screen fade and scale animations
9         to get out of sync.
10
11         * platform/mac/WebWindowAnimation.mm:
12         (-[WebWindowFadeAnimation initWithDuration:window:initialAlpha:finalAlpha:]):
13
14 2012-05-02  Julien Chaffraix  <jchaffraix@webkit.org>
15
16         REGRESSION(110072): Clipping is not applied on layers that are animated using platform code
17         https://bugs.webkit.org/show_bug.cgi?id=83954
18
19         Reviewed by Simon Fraser.
20
21         Tests: fast/layers/no-clipping-overflow-hidden-added-after-transform-expected.html
22                fast/layers/no-clipping-overflow-hidden-added-after-transform.html
23                fast/layers/no-clipping-overflow-hidden-added-after-transition-expected.html
24                fast/layers/no-clipping-overflow-hidden-added-after-transition.html
25                fast/layers/no-clipping-overflow-hidden-hardware-acceleration-expected.html
26                fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html
27                (and all the tests that will need to be rebaselined)
28
29         r110072 changed the way we create layers to lazily allocate overflow: hidden ones
30         based on layout overflow. However with hardware acceleration, certain operations
31         do cause overflow without actually calling layout (the test cases added as part
32         of this change are using transition / animation). This means that those cases
33         wouldn't properly clip.
34
35         Due to the above issue and the other regressions from r110072, the easiest fix is
36         to just to roll it out.
37
38         * rendering/RenderBox.h:
39         Changed to allocate a layer whenever we have an overflow clip.
40
41         * rendering/RenderBox.cpp:
42         (WebCore::RenderBox::scrolledContentOffset):
43         (WebCore::RenderBox::cachedSizeForOverflowClip):
44         Reverted those 2 to avoid using the cached size logic.
45
46         * rendering/RenderBlock.cpp:
47         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
48         (WebCore::RenderBlock::layoutBlock):
49         (WebCore::RenderBlock::paint):
50         (WebCore::RenderBlock::isPointInOverflowControl):
51         * rendering/RenderBlock.h:
52         * rendering/RenderBox.cpp:
53         (WebCore::RenderBox::willBeDestroyed):
54         (WebCore::RenderBox::styleDidChange):
55         (WebCore::RenderBox::layout):
56         (WebCore::RenderBox::scrollWidth):
57         (WebCore::RenderBox::scrollHeight):
58         (WebCore::RenderBox::scrollLeft):
59         (WebCore::RenderBox::scrollTop):
60         (WebCore::RenderBox::setScrollLeft):
61         (WebCore::RenderBox::setScrollTop):
62         (WebCore::RenderBox::includeVerticalScrollbarSize):
63         (WebCore::RenderBox::includeHorizontalScrollbarSize):
64         (WebCore::RenderBox::pushContentsClip):
65         (WebCore::RenderBox::popContentsClip):
66         (WebCore::RenderBox::addLayoutOverflow):
67         * rendering/RenderBoxModelObject.cpp:
68         (WebCore::RenderBoxModelObject::styleDidChange):
69         * rendering/RenderBoxModelObject.h:
70         (RenderBoxModelObject):
71         * rendering/RenderDeprecatedFlexibleBox.cpp:
72         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
73         * rendering/RenderFlexibleBox.cpp:
74         (WebCore::RenderFlexibleBox::layoutBlock):
75         * rendering/RenderTable.cpp:
76         (WebCore::RenderTable::layout):
77         * rendering/RenderTableRow.h:
78         (RenderTableRow):
79         * rendering/RenderTableSection.cpp:
80         (WebCore::RenderTableSection::layout):
81         Removed the previous scaffolding code and reverted some functions to
82         being private (as they were prior to r110072).
83
84 2012-05-02  No'am Rosenthal  <noam.rosenthal@nokia.com>
85
86         [Texmap] Enable css filters in TextureMapperGL
87         https://bugs.webkit.org/show_bug.cgi?id=75778
88
89         Reviewed by Jocelyn Turcotte.
90
91         Added support for color filters in TextureMapperGL. Blur and shadow would be done in a
92         different patch.
93
94         Modified BitmapTexture::applyFilters to return a texture, since GL cannot paint a texture
95         into itself.
96         Created a shader map for standard filters, since all of them work more or less the same way
97         with a single uniform. Added the colorization shaders based on the W3C filter spec, as
98         already implemented in FEFilterRenderer.cpp and FEColorMatrix.cpp.
99         We use two swapping textures to render the filters.
100
101         Covered by tests in css3/filters.
102
103         * platform/graphics/texmap/TextureMapper.cpp:
104         (WebCore::TextureMapper::acquireTextureFromPool):
105         * platform/graphics/texmap/TextureMapper.h:
106         (WebCore::BitmapTexture::applyFilters):
107         * platform/graphics/texmap/TextureMapperGL.cpp:
108         (WebCore::BitmapTextureGL::updateContents):
109         (WebCore):
110         (WebCore::TextureMapperGL::drawFiltered):
111         (WebCore::BitmapTextureGL::applyFilters):
112         (WebCore::BitmapTextureGL::bind):
113         * platform/graphics/texmap/TextureMapperGL.h:
114         (TextureMapperGL):
115         (BitmapTextureGL):
116         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
117         (WebCore::BitmapTextureImageBuffer::applyFilters):
118         * platform/graphics/texmap/TextureMapperImageBuffer.h:
119         (BitmapTextureImageBuffer):
120         * platform/graphics/texmap/TextureMapperLayer.cpp:
121         (WebCore::applyFilters):
122         (WebCore::TextureMapperLayer::syncCompositingStateSelf):
123         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
124         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
125         (WebCore):
126         (WebCore::StandardFilterProgram::~StandardFilterProgram):
127         (WebCore::StandardFilterProgram::StandardFilterProgram):
128         (WebCore::StandardFilterProgram::create):
129         (WebCore::StandardFilterProgram::prepare):
130         (WebCore::TextureMapperShaderManager::getShaderForFilter):
131         * platform/graphics/texmap/TextureMapperShaderManager.h:
132         (WebCore):
133         (StandardFilterProgram):
134         (WebCore::StandardFilterProgram::vertexAttrib):
135         (WebCore::StandardFilterProgram::texCoordAttrib):
136         (WebCore::StandardFilterProgram::textureUniform):
137         (TextureMapperShaderManager):
138
139 2012-05-02  Philippe Normand  <pnormand@igalia.com>
140
141         [GTK] media/track/track-cue-rendering-snap-to-lines-not-set.html fails
142         https://bugs.webkit.org/show_bug.cgi?id=84378
143
144         Reviewed by Eric Carlson.
145
146         Fix positioning of the controls panel back to relative, as it is
147         in the parent CSS. Also remove some duplicate CSS attributes.
148
149         * css/mediaControlsGtk.css:
150         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
151
152 2012-05-02  Beth Dakin  <bdakin@apple.com>
153
154         https://bugs.webkit.org/show_bug.cgi?id=85309
155         supportsExpandedScrollbars() should check for the method we actually call rather 
156         than a related method
157         -and corresponding-
158         <rdar://problem/11065691>
159
160         Reviewed by Anders Carlsson.
161
162         * platform/mac/ScrollbarThemeMac.mm:
163         (WebCore::supportsExpandedScrollbars):
164
165 2012-05-02  Zalan Bujtas  <zbujtas@gmail.com>
166
167         [Qt] Remove redundant updateViewportArguments() call from HTMLBodyElement::didNotifyDescendantInseretions()
168         https://bugs.webkit.org/show_bug.cgi?id=84241
169
170         Reviewed by Kenneth Rohde Christiansen.
171
172         No need to update viewport arguments when the body element is inserted into the Document.
173         Viewport arguments are updated first when the Document is set on the Frame, and later
174         on any subsequent occurence of the viewport meta tag in the document.
175         It is sufficient to dispatch viewport update once per main frame, if no viewport meta tag is present.
176
177         Also add a flag to be able to track viewport argument update dispatch.
178
179         No tests. Currrent viewport tests cover this behaviour.
180
181         * dom/Document.cpp:
182         (WebCore::Document::Document):
183         (WebCore::Document::updateViewportArguments):
184         (WebCore::Document::documentWillSuspendForPageCache):
185         * dom/Document.h:
186         (Document):
187         (WebCore::Document::didDispatchViewportPropertiesChanged):
188         * html/HTMLBodyElement.cpp:
189         (WebCore::HTMLBodyElement::didNotifyDescendantInseretions):
190
191 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
192
193         Web Inspector: Cannot read property 'length' of undefined TextEditorModel.js:467
194         https://bugs.webkit.org/show_bug.cgi?id=85360
195
196         Reviewed by Yury Semikhatsky.
197
198         Added the undo/redo stack length checks.
199
200         * inspector/front-end/TextEditorModel.js:
201         (WebInspector.TextEditorModel.endsWithBracketRegex.):
202
203 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
204
205         WebInspector: Scripts panel editor dirty state is cleared when the tab with editor is closed.
206         https://bugs.webkit.org/show_bug.cgi?id=85361
207
208         Reviewed by Yury Semikhatsky.
209
210         Added content validation upon script show.
211
212         * inspector/front-end/JavaScriptSourceFrame.js:
213         (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
214
215 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
216
217         Web Inspector: breakpoints are de-activated only upon the second click.
218         https://bugs.webkit.org/show_bug.cgi?id=85359
219
220         Reviewed by Yury Semikhatsky.
221
222         Initial value for activated state is set.
223
224         * inspector/front-end/DebuggerModel.js:
225         (WebInspector.DebuggerModel):
226
227 2012-05-02  Pavel Feldman  <pfeldman@chromium.org>
228
229         Web Inspector: live edit fails to report error
230         https://bugs.webkit.org/show_bug.cgi?id=85357
231
232         Reviewed by Yury Semikhatsky.
233
234         ProtocolError is now a string, not an error object.
235
236         * inspector/front-end/DatabaseQueryView.js:
237         (WebInspector.DatabaseQueryView.prototype._queryError):
238         * inspector/front-end/SourceFrame.js:
239         (WebInspector.SourceFrame.prototype.didEditContent):
240
241 2012-05-02  Lars Knudsen  <lars.knudsen@nokia.com>
242
243         [Qt] Make DeviceMotion and DeviceOrientation work with WebKit2
244         https://bugs.webkit.org/show_bug.cgi?id=64595
245
246         Reviewed by Kenneth Rohde Christiansen.
247
248         No new tests added.  This change adds support for WK2
249         what was in WK1.
250
251         Also moving DeviceMotion and DeviceOrientation clients and
252         providers to WebCore.  This is done to allow clean dependencies
253         when statically linking WK2.
254
255         * Target.pri:
256         * WebCore.pri:
257         * platform/qt/DeviceMotionClientQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionClientQt.cpp.
258         (WebCore):
259         (WebCore::DeviceMotionClientQt::~DeviceMotionClientQt):
260         (WebCore::DeviceMotionClientQt::deviceMotionControllerDestroyed):
261         (WebCore::DeviceMotionClientQt::setController):
262         (WebCore::DeviceMotionClientQt::startUpdating):
263         (WebCore::DeviceMotionClientQt::stopUpdating):
264         (WebCore::DeviceMotionClientQt::currentDeviceMotion):
265         * platform/qt/DeviceMotionClientQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionClientQt.h.
266         (WebCore):
267         (DeviceMotionClientQt):
268         (WebCore::DeviceMotionClientQt::DeviceMotionClientQt):
269         * platform/qt/DeviceMotionProviderQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.cpp.
270         (WebCore):
271         (WebCore::DeviceMotionProviderQt::DeviceMotionProviderQt):
272         (WebCore::DeviceMotionProviderQt::~DeviceMotionProviderQt):
273         (WebCore::DeviceMotionProviderQt::setController):
274         (WebCore::DeviceMotionProviderQt::start):
275         (WebCore::DeviceMotionProviderQt::stop):
276         (WebCore::DeviceMotionProviderQt::filter):
277         * platform/qt/DeviceMotionProviderQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.h.
278         (WebCore):
279         (DeviceMotionProviderQt):
280         (WebCore::DeviceMotionProviderQt::currentDeviceMotion):
281         * platform/qt/DeviceOrientationClientQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.cpp.
282         (WebCore):
283         (WebCore::DeviceOrientationClientQt::deviceOrientationControllerDestroyed):
284         (WebCore::DeviceOrientationClientQt::setController):
285         (WebCore::DeviceOrientationClientQt::startUpdating):
286         (WebCore::DeviceOrientationClientQt::stopUpdating):
287         (WebCore::DeviceOrientationClientQt::lastOrientation):
288         * platform/qt/DeviceOrientationClientQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h.
289         (WebCore):
290         (DeviceOrientationClientQt):
291         * platform/qt/DeviceOrientationProviderQt.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.cpp.
292         (WebCore):
293         (WebCore::DeviceOrientationProviderQt::DeviceOrientationProviderQt):
294         (WebCore::DeviceOrientationProviderQt::~DeviceOrientationProviderQt):
295         (WebCore::DeviceOrientationProviderQt::setController):
296         (WebCore::DeviceOrientationProviderQt::start):
297         (WebCore::DeviceOrientationProviderQt::stop):
298         (WebCore::DeviceOrientationProviderQt::filter):
299         * platform/qt/DeviceOrientationProviderQt.h: Renamed from Source/WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.h.
300         (WebCore):
301         (DeviceOrientationProviderQt):
302         (WebCore::DeviceOrientationProviderQt::isActive):
303         (WebCore::DeviceOrientationProviderQt::lastOrientation):
304         (WebCore::DeviceOrientationProviderQt::hasAlpha):
305
306 2012-05-02  Yury Semikhatsky  <yurys@chromium.org>
307
308         Web Inspector: exception in console when there are watch expressions
309         https://bugs.webkit.org/show_bug.cgi?id=85351
310
311         Check if script execution is still paused before trying to resolve an
312         object for script popover because execution may be resumed after popover
313         showing is scheduled but before we start resolving the object under
314         the cursor in which case there is no selected call frame any more and
315         we should hide the popover.
316
317         Reviewed by Pavel Feldman.
318
319         * inspector/front-end/JavaScriptSourceFrame.js:
320         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
321
322 2012-05-02  Tommy Widenflycht  <tommyw@google.com>
323
324         MediaStream API: Changing webkitGetUserMedia to take an object instead of a string
325         https://bugs.webkit.org/show_bug.cgi?id=84850
326
327         Reviewed by Dimitri Glazkov.
328
329         The standard changed a while back to use an object as a dictionary but since JSC
330         didn't support the Dictionary class until just recently we have not updated the API until now.
331
332         Change covered by existing, and edited, tests.
333
334         * Modules/mediastream/NavigatorMediaStream.cpp:
335         (WebCore::NavigatorMediaStream::webkitGetUserMedia):
336         * Modules/mediastream/NavigatorMediaStream.h:
337         (WebCore):
338         (NavigatorMediaStream):
339         * Modules/mediastream/NavigatorMediaStream.idl:
340         * Modules/mediastream/UserMediaRequest.cpp:
341         (WebCore::UserMediaRequest::create):
342         (WebCore::UserMediaRequest::UserMediaRequest):
343         * Modules/mediastream/UserMediaRequest.h:
344         (WebCore):
345         (UserMediaRequest):
346         * platform/mediastream/MediaStreamSourcesQueryClient.h:
347         (MediaStreamSourcesQueryClient):
348
349 2012-05-02  Antti Koivisto  <antti@apple.com>
350
351         StyleSheetInternal::parseUserStyleSheet() should be called parseAuthorStyleSheet().
352
353         Rubber-stamped by Nikolas Zimmermann.
354
355         * css/CSSImportRule.cpp:
356         (WebCore::StyleRuleImport::setCSSStyleSheet):
357         * css/CSSStyleSheet.cpp:
358         (WebCore::StyleSheetInternal::parseAuthorStyleSheet):
359         * css/CSSStyleSheet.h:
360         (StyleSheetInternal):
361         * html/HTMLLinkElement.cpp:
362         (WebCore::HTMLLinkElement::setCSSStyleSheet):
363
364 2012-05-02  Yury Semikhatsky  <yurys@chromium.org>
365
366         REGRESSION: Web Inspector doesn't show cookies anymore
367         https://bugs.webkit.org/show_bug.cgi?id=85349
368
369         Pass root node instead of DataGrid object to the "populateNode" method.
370         Added compiler annotations so that closure compiler catches such errors.
371
372         Reviewed by Pavel Feldman.
373
374         * inspector/front-end/CookiesTable.js:
375         (WebInspector.CookiesTable.prototype._rebuildTable):
376         * inspector/front-end/NetworkRequest.js:
377         (WebInspector.NetworkRequest.prototype.addFrameError):
378
379 2012-05-02  Dongwoo Im  <dw.im@samsung.com>
380
381         [EFL] Implement the Web Audio API feature.
382         https://bugs.webkit.org/show_bug.cgi?id=78688
383
384         Reviewed by Philippe Normand.
385
386         Implement the Web Audio API feature on the EFL port.
387         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
388
389         * CMakeLists.txt: Add the list of the files which are needed for the Web Audio APi.
390         * PlatformEfl.cmake: Add the list of the files which are needed for the Web Audio APi.
391         * UseJSC.cmake: Add the list of the files which are needed for the Web Audio APi.
392         * platform/audio/HRTFElevation.cpp: Enable the USE_CONCATENATED_IMPULSE_RESPONSES macro.
393         (WebCore):
394         * platform/audio/efl/AudioBusEfl.cpp: Added.
395         (WebCore):
396         (WebCore::AudioBus::loadPlatformResource): Create the absolute path of the audio resource.
397
398 2012-05-01  Kentaro Hara  <haraken@chromium.org>
399
400         [V8] Add an Isolate parameter to setJSWrapperForXXX()
401         https://bugs.webkit.org/show_bug.cgi?id=85329
402
403         Reviewed by Adam Barth.
404
405         The objective is to pass Isolate around in V8 bindings.
406         This patch adds an Isolate parameter to setJSWrapperForXXX()
407         and passes Isolate to setJSWrapperForXXX() in CodeGeneratorV8.pm.
408         I'll pass Isolate to setJSWrapperForXXX() in custom bindings
409         in a follow-up patch.
410
411         No tests. No change in behavior.
412
413         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
414         (GenerateConstructorCallback):
415         (GenerateEventConstructorCallback):
416         (GenerateNamedConstructorCallback):
417         (GenerateToV8Converters):
418         * bindings/v8/V8DOMWrapper.cpp:
419         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
420         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
421         * bindings/v8/V8DOMWrapper.h:
422         (V8DOMWrapper):
423         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
424         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
425
426         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests results.
427         (WebCore::V8Float64Array::wrapSlow):
428         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
429         (WebCore::V8TestActiveDOMObject::wrapSlow):
430         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
431         (WebCore::V8TestCustomNamedGetter::wrapSlow):
432         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
433         (WebCore::V8TestEventConstructor::constructorCallback):
434         (WebCore::V8TestEventConstructor::wrapSlow):
435         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
436         (WebCore::V8TestEventTarget::wrapSlow):
437         * bindings/scripts/test/V8/V8TestInterface.cpp:
438         (WebCore::V8TestInterface::constructorCallback):
439         (WebCore::V8TestInterface::wrapSlow):
440         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
441         (WebCore::V8TestMediaQueryListListener::wrapSlow):
442         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
443         (WebCore::V8TestNamedConstructorConstructorCallback):
444         (WebCore::V8TestNamedConstructor::wrapSlow):
445         * bindings/scripts/test/V8/V8TestNode.cpp:
446         (WebCore::V8TestNode::constructorCallback):
447         (WebCore::V8TestNode::wrapSlow):
448         * bindings/scripts/test/V8/V8TestObj.cpp:
449         (WebCore::V8TestObj::constructorCallback):
450         (WebCore::V8TestObj::wrapSlow):
451         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
452         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
453         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
454
455 2012-05-01  Eric Seidel  <eric@webkit.org>
456
457         Add <iframe seamless> navigation code (and pass all the navigation tests)
458         https://bugs.webkit.org/show_bug.cgi?id=85340
459
460         Reviewed by Adam Barth.
461
462         This code was primarily written by Adam Barth and then submitted to my
463         GitHub branch via a pull request:
464         https://github.com/eseidel/webkit/compare/master...seamless
465         https://github.com/eseidel/webkit/pull/2
466         https://github.com/eseidel/webkit/pull/3
467
468         I rewrote parts of it to use Docment::shouldDisplaySeamlesslyWithParent.
469
470         Other parts of the original change have already been committed to WebKit by Adam
471         as part of prep-work for making the loader seamless-ready.
472
473         * loader/FrameLoader.cpp:
474         (WebCore::FrameLoader::findFrameForNavigation):
475
476 2012-05-01  Vincent Scheib  <scheib@chromium.org>
477
478         Fullscreen pop-up logic restored to using processingUserGesture.
479         https://bugs.webkit.org/show_bug.cgi?id=85105
480
481         WebKit was recently updated to the new Fullscreen API:
482         http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#api
483         http://trac.webkit.org/changeset/111028
484
485         This change reverts back to using processingUserGesture() instead
486         of DOMWindow::allowPopUp(). This fixes incorrect behavior in
487         at least the Chromium port and is consistent with the cited
488         definition of "allowed to show a pop-up":
489           An algorithm is allowed to show a pop-up if, in the task in which the algorithm is running, either:
490           - an activation behavior is currently being processed whose click event was trusted, or
491           - the event listener for a trusted click event is being handled.
492
493         Reviewed by Dimitri Glazkov.
494
495         No new tests.
496
497         * dom/Document.cpp:
498         (WebCore::Document::requestFullScreenForElement):
499
500 2012-05-01  Xiaomei Ji  <xji@chromium.org>
501
502         enable ctrl-arrow move by word visually in non-Windows platforms.
503         https://bugs.webkit.org/show_bug.cgi?id=85017
504
505         Reviewed by Ryosuke Niwa.
506
507         Enable ctrl-arrow moves caret by word in visual order in non-Windows platforms that use ICU word
508         break iterator (it is not enabled for WinCE and Qt where ICU is not used). For those platforms, ctrl-arrow
509         moves caret to word break position before spaces. For example, given a logical text "abc def hij", the word
510         break positions using ctrl-left-arrow from rightmost position are "|abc |def |hij".
511         The word break positions using ctrl-right-arrow from leftmost position are "abc| def| hij|".
512
513         Test: editing/selection/move-by-word-visually-mac.html
514
515         * editing/EditingBehavior.h:
516         (EditingBehavior):
517         (WebCore::EditingBehavior::shouldEatSpaceToNextWord): To control different word break positions
518         (regards to space) for different platforms.
519         * editing/FrameSelection.cpp:
520         (WebCore::FrameSelection::modifyMovingRight): Enable visual word movement for all platforms that use ICU.
521         (WebCore::FrameSelection::modifyMovingLeft):
522         * editing/visible_units.cpp:
523         (WebCore::visualWordPosition): Determine the right word break position (regards to space) based on EditingBehavior.
524         (WebCore::leftWordPosition):
525         (WebCore::rightWordPosition):
526         * editing/visible_units.h:
527
528 2012-05-01  Raymond Liu  <raymond.liu@intel.com>
529
530         Modify RealtimeAnalyserNode pull mechanism
531         https://bugs.webkit.org/show_bug.cgi?id=77515
532
533         Reviewed by Chris Rogers.
534
535         Test: webaudio/automatic-pull-node.html
536
537         * GNUmakefile.list.am:
538         * Modules/webaudio/AudioBasicInspectorNode.cpp: Added.
539         (WebCore):
540         (WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
541         (WebCore::AudioBasicInspectorNode::pullInputs):
542         (WebCore::AudioBasicInspectorNode::connect):
543         (WebCore::AudioBasicInspectorNode::disconnect):
544         (WebCore::AudioBasicInspectorNode::checkNumberOfChannelsForInput):
545         (WebCore::AudioBasicInspectorNode::updatePullStatus):
546         * Modules/webaudio/AudioBasicInspectorNode.h: Added.
547         (WebCore):
548         (AudioBasicInspectorNode):
549         * Modules/webaudio/AudioContext.cpp:
550         (WebCore::AudioContext::AudioContext):
551         (WebCore::AudioContext::~AudioContext):
552         (WebCore::AudioContext::handlePreRenderTasks):
553         (WebCore::AudioContext::handlePostRenderTasks):
554         (WebCore::AudioContext::markForDeletion):
555         (WebCore):
556         (WebCore::AudioContext::addAutomaticPullNode):
557         (WebCore::AudioContext::removeAutomaticPullNode):
558         (WebCore::AudioContext::updateAutomaticPullNodes):
559         (WebCore::AudioContext::processAutomaticPullNodes):
560         * Modules/webaudio/AudioContext.h:
561         (AudioContext):
562         * Modules/webaudio/AudioDestinationNode.cpp:
563         (WebCore::AudioDestinationNode::provideInput):
564         * Modules/webaudio/AudioNode.h:
565         (AudioNode):
566         * Modules/webaudio/AudioNodeOutput.h:
567         (WebCore::AudioNodeOutput::isConnected):
568         (AudioNodeOutput):
569         * Modules/webaudio/RealtimeAnalyserNode.cpp:
570         (WebCore::RealtimeAnalyserNode::RealtimeAnalyserNode):
571         * Modules/webaudio/RealtimeAnalyserNode.h:
572         (RealtimeAnalyserNode):
573         * WebCore.gypi:
574         * WebCore.xcodeproj/project.pbxproj:
575
576 2012-05-01  Keishi Hattori  <keishi@webkit.org>
577
578         datalist: Form control in a <datalist> should be barred from constraint validation
579         https://bugs.webkit.org/show_bug.cgi?id=84359
580
581         Reviewed by Kent Tamura.
582
583         Tests: fast/forms/datalist/datalist-child-validation.html
584                fast/forms/form-control-element-crash.html
585
586         * html/HTMLFormControlElement.cpp:
587         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
588         (WebCore::HTMLFormControlElement::updateAncestors): Updates the ancestor information.
589         (WebCore::HTMLFormControlElement::insertedInto): Invalidate the ancestor information and call setNeedsWillValidateCheck because willValidate might have changed.
590         (WebCore::HTMLFormControlElement::removedFrom): Ditto.
591         (WebCore::HTMLFormControlElement::disabled):
592         (WebCore::HTMLFormControlElement::recalcWillValidate): Returns false if element has a datalist ancestor.
593         (WebCore::HTMLFormControlElement::willValidate): Check if ancestor information is valid too.
594         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
595         * html/HTMLFormControlElement.h:
596         (HTMLFormControlElement):
597
598 2012-05-01  Kent Tamura  <tkent@chromium.org>
599
600         Calendar Picker: Close the picker by ESC key
601         https://bugs.webkit.org/show_bug.cgi?id=85337
602
603         Reviewed by Kentaro Hara.
604
605         No new tests. Calendar picker is not testable in DRT yet.
606
607         * Resources/calendarPicker.js:
608         (handleGlobalKey): Close the popup by ESC key.
609
610 2012-05-01  Noel Gordon  <noel.gordon@gmail.com>
611
612         PNGImageDecoder: Handle interlace buffer allocation failure
613         https://bugs.webkit.org/show_bug.cgi?id=85276
614
615         Reviewed by Eric Seidel.
616
617         No new tests. Not something we can easily test (malloc failure).
618
619         * platform/image-decoders/png/PNGImageDecoder.cpp:
620         (WebCore::PNGImageDecoder::rowAvailable): Check interlace buffer allocations
621         and bail via longjmp on failure. Note PNG_INTERLACE_ADAM7 is the only libpng
622         supported interlace type so test for it explicitly.
623
624 2012-05-01  Kent Tamura  <tkent@chromium.org>
625
626         Calendar Picker: Too wide in Japanese locale
627         https://bugs.webkit.org/show_bug.cgi?id=85331
628
629         Reviewed by Kentaro Hara.
630
631         No new tests. This is a locale-specific behavior.
632
633         * Resources/calendarPicker.js:
634         (formatJapaneseImperialEra):
635         Do not show an imperial era later than 平成99年 to avoid very long
636         year string like "275760年(平成273772年)."
637         (YearMonthController.prototype.attachTo):
638         - Respect the maximum year specfied by <input max=...>
639           If <input max="9999-12-31"> is specified, we don't need to
640           secure space for the year 275,760.
641         - Check the width for 平成99年 as well as the maximum year because
642           "2087年(平成99年)" is usually wider than "275760年".
643
644 2012-05-01  Noel Gordon  <noel.gordon@gmail.com>
645
646         PNGImageDecoder: Add ENABLE(IMAGE_DECODER_DOWN_SAMPLING) guards to rowAvailable
647         https://bugs.webkit.org/show_bug.cgi?id=85268
648
649         Reviewed by Eric Seidel.
650
651         PNGImageDecoder supports image downsampling. Add ENABLE guards to show where
652         downsampling is applied when outputting decoded rows to the frame buffer. Most
653         ports don't enable the flag: don't penalize them in terms speed in this tight
654         row pixel write loop. s/y/destY/ to match setRGBA() and amend some comments.
655
656         No new tests. No change in behavior.
657
658         * platform/image-decoders/png/PNGImageDecoder.cpp:
659         (WebCore::PNGImageDecoder::rowAvailable):
660
661 2012-05-01  Eric Seidel  <eric@webkit.org>
662
663         Remove uneeded min/max pref width assignment from RenderView
664         https://bugs.webkit.org/show_bug.cgi?id=85325
665
666         Reviewed by Julien Chaffraix.
667
668         This code has been with us since the original import from KDE:
669         http://trac.webkit.org/browser/trunk/WebCore/khtml/rendering/render_root.cpp?annotate=blame&rev=4#L93
670         It's never been documented, or explained.  Removing it showed no
671         effect on my local layout tests run.
672         However this code blocks proper implementation of <iframe seamless>
673         as we have to do proper min/max width negotiation across the iframe boundary.
674
675         I would remove the whole function, but doing so opens a whole can of worms
676         as this override is public, yet normally this function is *private* (well protected on RenderBox).
677         It seems plausible that frame flattening code needs this override since it doesn't always
678         call the min/maxPreferredWidth() calls which normally automatically call this compute*
679         function if the pref-widths are dirty.
680         Instead of trying to track that all down, I'm just removing this line, and we'll go
681         back and remove the whole function at a later date if possible.
682
683         * rendering/RenderView.cpp:
684         (WebCore::RenderView::computePreferredLogicalWidths):
685
686 2012-05-01  Nate Chapin  <japhet@chromium.org>
687
688         REGRESSION(r115654): PDFs come up blank
689         https://bugs.webkit.org/show_bug.cgi?id=85275
690
691         Reviewed by Alexey Proskuryakov.
692
693         Test: http/tests/loading/pdf-commit-load-callbacks.html
694
695         * loader/DocumentLoader.cpp:
696         (WebCore::DocumentLoader::finishedLoading): The load needs to be
697             committed before we call finishedLoading on the
698             FrameLoaderClient.
699         * loader/FrameLoader.cpp:
700         (WebCore::FrameLoader::transitionToCommitted): We're guaranteeing
701             that receivedFirstData() will be called other ways (namely,
702             DocumentLoader won't finish without doing so). This call now
703             causes custom representations to double-commit, which is bad.
704
705 2012-05-01  Eric Seidel  <eric@webkit.org>
706
707         Add support for seamless attribute as well as seamless sandbox flag and default CSS styling
708         https://bugs.webkit.org/show_bug.cgi?id=85302
709
710         Reviewed by Ojan Vafai.
711
712         This also adds support for the seamless sandbox flag from HTML 5.
713         The sandbox flag is not speficially overridable in the current HTML5,
714         but it is set (like all sandbox flags) by default when sandbox is specified.
715         Unfortunately this support is not yet observable in this patch, as
716         this patch adds not observable features of seamless.
717
718         This patch also adds the html.css additions for seamless, as specified:
719         http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#replaced-elements
720
721         I noticed that my previous testing did not confirm that iframes marked
722         for seamless (but not possible to display as seamless due to sandbox, etc.)
723         were still to have this seamless styling.  I've added additional testing for this case.
724
725         I also added another test for the about:blank FIXME added as part of this change.
726
727         In order to support srcdoc w/ seamless, we needed to move the srcdoc determination
728         sooner in the initSecurityContext function (before the should-inherit early return).
729
730         The next patch will make seamless actually observable from JS/DOM, this one
731         just lays down all the plumbing, and separates the security aspects for
732         easy review.
733
734         Test: fast/frames/seamless/seamless-inherited-origin.html
735
736         * css/html.css:
737         (iframe:not([seamless])):
738         (iframe[seamless]):
739         * dom/Document.cpp:
740         (WebCore::isEligibleForSeamless):
741         (WebCore):
742         (WebCore::Document::initSecurityContext):
743         (WebCore::Document::seamlessParentIFrame):
744         (WebCore::Document::shouldDisplaySeamlesslyWithParent):
745         * dom/Document.h:
746         (WebCore):
747         (Document):
748         * dom/SecurityContext.cpp:
749         (WebCore::SecurityContext::SecurityContext):
750         * dom/SecurityContext.h:
751         (WebCore::SecurityContext::mayDisplaySeamlessWithParent):
752         (SecurityContext):
753         * html/HTMLAttributeNames.in:
754         * html/HTMLIFrameElement.cpp:
755         (WebCore::HTMLIFrameElement::shouldDisplaySeamlessly):
756         (WebCore):
757         * html/HTMLIFrameElement.h:
758         (HTMLIFrameElement):
759         * html/HTMLIFrameElement.idl:
760
761 2012-05-01  Min Qin  <qinmin@google.com>
762
763         use USE(NATIVE_FULLSCREEN_VIDEO) instead of ENABLE(NATIVE_FULLSCREEN_VIDEO)
764         https://bugs.webkit.org/show_bug.cgi?id=85316
765
766         Reviewed by Kent Tamura.
767
768         NATIVE_FULLSCREEN_VIDEO means the fullscreen video is implemented by native
769         system view instead of webkit.
770         So it is more appropriate to use USE(NATIVE_FULLSCREEN_VIDEO).
771         This chagne also disabled the rendering of the fullscreen video element in webkit
772         when that flag is set.
773         Just renaming the variable, no new tests.
774
775         * dom/Document.cpp:
776         (WebCore::Document::webkitWillEnterFullScreenForElement):
777         (WebCore):
778         * platform/graphics/MediaPlayer.cpp:
779         (WebCore):
780         * platform/graphics/MediaPlayer.h:
781         (MediaPlayer):
782         * platform/graphics/MediaPlayerPrivate.h:
783         (MediaPlayerPrivateInterface):
784
785 2012-05-01  Jeffrey Pfau  <jpfau@apple.com>
786
787         <rdar://problem/10422318> Support for web content filter delegate for filtering https content
788         https://bugs.webkit.org/show_bug.cgi?id=85300
789
790         Reviewed by Alexey Proskuryakov.
791
792         No new tests.
793
794         * WebCore.exp.in:
795         * loader/MainResourceLoader.cpp:
796         (WebCore::MainResourceLoader::MainResourceLoader):
797         (WebCore::MainResourceLoader::~MainResourceLoader):
798         (WebCore::MainResourceLoader::didCancel):
799         (WebCore::MainResourceLoader::didReceiveResponse):
800         (WebCore::MainResourceLoader::didReceiveData):
801         (WebCore::MainResourceLoader::didFinishLoading):
802         (WebCore::MainResourceLoader::didFail):
803         * loader/MainResourceLoader.h:
804         (MainResourceLoader):
805         * platform/mac/WebCoreSystemInterface.h:
806         * platform/mac/WebCoreSystemInterface.mm:
807
808 2012-05-01  Kent Tamura  <tkent@chromium.org>
809
810         Calendar Picker: Add capability to add platform-specific style sheet
811         https://bugs.webkit.org/show_bug.cgi?id=85272
812
813         Reviewed by Kentaro Hara.
814
815         Add RenderTheme::extraCalendarPickerStyleSheet(). The resultant string
816         of the function is inserted into the calendar picker page.
817
818         No new tests. Calendar picker apperance is not testable yet.
819
820         * Resources/calendarPicker.css: Removed styles for year-month buttons.
821         * Resources/calendarPickerMac.css:
822         Moved from calendarPicker.css, and adjust styles so that they look
823         standard Lion buttons.
824         (.year-month-button):
825         (.year-month-button:active):
826         (.year-month-button:disabled):
827         * WebCore.gyp/WebCore.gyp: Add a rule to produce CalendarPickerMac.{cpp,h}.
828         * html/shadow/CalendarPickerElement.cpp:
829         (WebCore::CalendarPickerElement::writeDocument):
830         Add extraCalendarPickerStyleSheet() result to the document.
831         * rendering/RenderTheme.cpp:
832         (WebCore::RenderTheme::extraCalendarPickerStyleSheet):
833         Added. Returns an empty CString by default.
834         * rendering/RenderTheme.h:
835         (RenderTheme): Added extraCalendarPickerStyleSheet().
836         * rendering/RenderThemeChromiumMac.h: Added extraCalendarPickerStyleSheet().
837         * rendering/RenderThemeChromiumMac.mm:
838         (WebCore::RenderThemeChromiumMac::extraCalendarPickerStyleSheet):
839         Added. Returns the content of Resources/calendarPickerMac.css.
840
841 2012-05-01  James Simonsen  <simonjam@chromium.org>
842
843         Ensure HTMLElementStack fails gracefully if it has a non-Element.
844         https://bugs.webkit.org/show_bug.cgi?id=85167
845
846         Reviewed by Adam Barth.
847
848         Test: Added to html5lib/resources/webkit02.dat
849
850         * html/parser/HTMLElementStack.cpp:
851         (WebCore::HTMLElementStack::oneBelowTop):
852         * html/parser/HTMLTreeBuilder.cpp:
853         (WebCore::HTMLTreeBuilder::processEndTag):
854
855 2012-05-01  Ryosuke Niwa  <rniwa@webkit.org>
856
857         *Command.h files shouldn't be exported to WebKit layer
858         https://bugs.webkit.org/show_bug.cgi?id=74778
859
860         Reviewed by Eric Seidel.
861
862         Remove the dependency on *Command.h files from Mac port's WebKit layer.
863         Also wrapped the call to TypingCommand::insertParagraphSeparatorInQuotedContent in the Editor class
864         so that we can just expose Editor's method instead of directly exposing the said static method.
865
866         * WebCore.exp.in:
867         * WebCore.xcodeproj/project.pbxproj:
868         * editing/Editor.h:
869         (Editor):
870         * editing/mac/EditorMac.mm:
871         (WebCore::Editor::insertParagraphSeparatorInQuotedContent):
872         (WebCore):
873
874 2012-05-01  Julien Chaffraix  <jchaffraix@webkit.org>
875
876         Remove one bit from m_column to pack RenderTableCell bits more
877         https://bugs.webkit.org/show_bug.cgi?id=85291
878
879         Reviewed by Ojan Vafai.
880
881         Memory improvement, covered by the existing unit tests.
882
883         * rendering/RenderTableCell.cpp:
884         * rendering/RenderTableCell.h:
885         Remove one bit from m_column (which should be fine as I wouldn't expect tables above 1 millions
886         columns to render at all anyway) to pack the bitfields in 32 bits. Re-arranged the bits to have the bigger
887         bitfield first.
888
889 2012-05-01  Anders Carlsson  <andersca@apple.com>
890
891         Slow scrolling on www.sholby.net
892         https://bugs.webkit.org/show_bug.cgi?id=85304
893         <rdar://problem/11138952>
894
895         Reviewed by Beth Dakin.
896
897         Fix two performance issues that showed up on the profiles.
898
899         * loader/FrameLoader.cpp:
900         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
901         Reset the relevant painted object counter; it's only interesting when loading.
902
903         * page/Page.cpp:
904         (WebCore::Page::startCountingRelevantRepaintedObjects):
905         Set m_isCountingRelevantRepaintedObjects to true after calling reset, since reset now sets it to false.
906
907         (WebCore::Page::resetRelevantPaintedObjectCounter):
908         Set m_isCountingRelevantRepaintedObjects to false.
909
910         (WebCore::Page::addRelevantRepaintedObject):
911         Use HashSet::find to avoid an extra hash lookup.
912
913         * page/scrolling/ScrollingCoordinator.cpp:
914         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
915         Remove the call to FrameView::updateCompositingLayersAfterLayout now, since FrameView::notifyScrollPositionChanged
916         already calls this and was making us to a lot of work twice.
917
918 2012-05-01  Silvia Pfeiffer  <silviapf@chromium.org>
919
920         Audio controls have a 1px surplus outline coming from RenderImage::paintReplaced base class,
921         which needs overwriting.
922         https://bugs.webkit.org/show_bug.cgi?id=84570
923
924         Reviewed by Eric Carlson.
925
926         No new tests - covered by existing audio rendering tests.
927
928         * rendering/RenderMedia.cpp:
929         (WebCore::RenderMedia::paintReplaced): Overwrite inherited function.
930         (WebCore):
931         * rendering/RenderMedia.h:
932         (RenderMedia):
933
934 2012-05-01  Terry Anderson  <tdanderson@chromium.org>
935
936         Allow a pre-targeted node to be specified when dispatching a GestureTap event
937         https://bugs.webkit.org/show_bug.cgi?id=85296
938
939         Reviewed by Adam Barth.
940
941         https://bugs.webkit.org/show_bug.cgi?id=85101
942             The new parameter will be used and tested in this patch.
943
944         * page/EventHandler.cpp:
945         (WebCore::EventHandler::handleGestureTap):
946             The new preTargetedNode parameter can be used to pass in the Node that is
947             the target of the GestureTap event. If this parameter is used, adjustedPoint
948             is changed to be the center of the Node's bounding rectangle.
949         * page/EventHandler.h:
950         (EventHandler):
951
952 2012-05-01  Jessie Berlin  <jberlin@apple.com>
953
954         Crash calling disconnectFrame on a DOMWindowExtension a second time.
955         https://bugs.webkit.org/show_bug.cgi?id=85301
956
957         Reviewed by Darin Adler.
958
959         DOMWindowExtension::disconnectFrame assumed it would only be called when there was a frame
960         to disconnect. However, DOMWindow's destructor invokes disconnectFrame on all its
961         DOMWindowProperties, even if it already did so when it entered the page cache.
962
963         * page/DOMWindowExtension.cpp:
964         (WebCore::DOMWindowExtension::disconnectFrame):
965         Don't do anything if the frame has already been disconnected.
966
967 2012-05-01  Aaron Colwell  <acolwell@chromium.org>
968
969         Temporarily remove webkitSourceAddId() & webkitSourceRemoveId() from DOM
970         until the rest of the Media Source v0.5 methods are implemented. This is
971         to prevent ambiguity about whether v0.5 is fully supported or not.
972         https://bugs.webkit.org/show_bug.cgi?id=85295
973
974         Reviewed by Eric Carlson.
975
976         No new tests. Removing methods from DOM so relevant tests are removed.
977
978         * html/HTMLMediaElement.idl:
979
980 2012-05-01  Douglas Stockwell  <dstockwell@chromium.org>
981
982         IndexedDB: stale index entries may not be removed in some cases
983         https://bugs.webkit.org/show_bug.cgi?id=85224
984
985         Reviewed by Ojan Vafai.
986
987         Ensure that stale index entries are removed when the corresponding
988         object store entry no longer exists.
989
990         No new tests. Addresses a performance / storage leak that is
991         not amenable to verification in a layout test.
992
993         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
994         (WebCore):
995
996 2012-05-01  Igor Oliveira  <igor.o@sisa.samsung.com>
997
998         Use HashMap<OwnPtr> for CounterMap in RenderCounter
999         https://bugs.webkit.org/show_bug.cgi?id=85294
1000
1001         Reviewed by Eric Seidel.
1002
1003         * rendering/RenderCounter.cpp:
1004         (WebCore):
1005         (WebCore::makeCounterNode):
1006         (WebCore::RenderCounter::destroyCounterNodes):
1007
1008 2012-05-01  Philip Rogers  <pdr@google.com>
1009
1010         Skip building instance tree for disallowed target
1011         https://bugs.webkit.org/show_bug.cgi?id=85202
1012
1013         Reviewed by Nikolas Zimmermann.
1014
1015         When the target of a use is disallowed (e.g., a mask element) we can
1016         skip building the instance tree because the shadow tree will be
1017         skipped as well.
1018
1019         Test: svg/custom/animate-disallowed-mask-element.svg
1020
1021         * svg/SVGUseElement.cpp:
1022         (WebCore::SVGUseElement::buildInstanceTree):
1023
1024 2012-04-29  Nikolas Zimmermann  <nzimmermann@rim.com>
1025
1026         Accumulation for values-animation is broken
1027         https://bugs.webkit.org/show_bug.cgi?id=85158
1028
1029         Reviewed by Darin Adler.
1030
1031         Example:
1032         <rect width="999" height="100" fill="green"/>
1033             <animate begin="0s" values="0; 30; 20" accumulate="sum" repeatCount="5" dur="2s"/>
1034         </rect>
1035
1036         The rect should animate like this:
1037         0.000s -> 0
1038         0.500s -> 15
1039         1.000s -> 30
1040         1.500s -> 25
1041         1.999s -> 20
1042         2.000s -> 20 (first accumulation, starts accumulating from the last set value, here '20').
1043         2.500s -> 45
1044         3.000s -> 50
1045         3.500s -> 45
1046         3.999s -> 40
1047         4.000s -> 40 (second accumulation)
1048         etc.
1049
1050         This is currently broken for values-animation. The accumulation should happen after a full cycle of the values animation ran (aka. at the end of the duration).
1051         A values animation works like this: iterate over the list of values, and calculate a 'from' and 'to' value for a given time. Example for values="0; 30; 20" dur="2s":
1052             - 0.0s .. 1.0s -> from=0, to=30
1053             - 1.0s .. 2.0s -> from=30, to=20
1054
1055         Accumulation currently is taken into account at each interval for a values-animation instead of the end of the cycle. Fix that
1056         by passing an additional 'toAtEndOfDuration' type to calculateAnimatedValue() which is used for accumulation instead of the
1057         current 'to' value.
1058
1059         Test: svg/animations/accumulate-values-width-animation.html
1060
1061         * svg/SVGAnimateElement.cpp:
1062         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1063         * svg/SVGAnimateElement.h:
1064         (SVGAnimateElement):
1065         * svg/SVGAnimateMotionElement.cpp:
1066         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
1067         * svg/SVGAnimateMotionElement.h:
1068         (SVGAnimateMotionElement):
1069         * svg/SVGAnimatedAngle.cpp:
1070         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
1071         * svg/SVGAnimatedAngle.h:
1072         (SVGAnimatedAngleAnimator):
1073         * svg/SVGAnimatedBoolean.cpp:
1074         (WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
1075         * svg/SVGAnimatedBoolean.h:
1076         (SVGAnimatedBooleanAnimator):
1077         * svg/SVGAnimatedColor.cpp:
1078         (WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
1079         * svg/SVGAnimatedColor.h:
1080         (SVGAnimatedColorAnimator):
1081         * svg/SVGAnimatedEnumeration.cpp:
1082         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
1083         * svg/SVGAnimatedEnumeration.h:
1084         (SVGAnimatedEnumerationAnimator):
1085         * svg/SVGAnimatedInteger.cpp:
1086         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
1087         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
1088         * svg/SVGAnimatedInteger.h:
1089         (SVGAnimatedIntegerAnimator):
1090         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
1091         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
1092         * svg/SVGAnimatedIntegerOptionalInteger.h:
1093         (SVGAnimatedIntegerOptionalIntegerAnimator):
1094         * svg/SVGAnimatedLength.cpp:
1095         (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
1096         * svg/SVGAnimatedLength.h:
1097         (SVGAnimatedLengthAnimator):
1098         * svg/SVGAnimatedLengthList.cpp:
1099         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
1100         * svg/SVGAnimatedLengthList.h:
1101         (SVGAnimatedLengthListAnimator):
1102         * svg/SVGAnimatedNumber.cpp:
1103         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
1104         * svg/SVGAnimatedNumber.h:
1105         (SVGAnimatedNumberAnimator):
1106         * svg/SVGAnimatedNumberList.cpp:
1107         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
1108         * svg/SVGAnimatedNumberList.h:
1109         (SVGAnimatedNumberListAnimator):
1110         * svg/SVGAnimatedNumberOptionalNumber.cpp:
1111         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
1112         * svg/SVGAnimatedNumberOptionalNumber.h:
1113         (SVGAnimatedNumberOptionalNumberAnimator):
1114         * svg/SVGAnimatedPath.cpp:
1115         (WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
1116         * svg/SVGAnimatedPath.h:
1117         (SVGAnimatedPathAnimator):
1118         * svg/SVGAnimatedPointList.cpp:
1119         (WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
1120         * svg/SVGAnimatedPointList.h:
1121         (SVGAnimatedPointListAnimator):
1122         * svg/SVGAnimatedPreserveAspectRatio.cpp:
1123         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
1124         * svg/SVGAnimatedPreserveAspectRatio.h:
1125         (SVGAnimatedPreserveAspectRatioAnimator):
1126         * svg/SVGAnimatedRect.cpp:
1127         (WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
1128         * svg/SVGAnimatedRect.h:
1129         (SVGAnimatedRectAnimator):
1130         * svg/SVGAnimatedString.cpp:
1131         (WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
1132         * svg/SVGAnimatedString.h:
1133         (SVGAnimatedStringAnimator):
1134         * svg/SVGAnimatedTransformList.cpp:
1135         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
1136         * svg/SVGAnimatedTransformList.h:
1137         (SVGAnimatedTransformListAnimator):
1138         * svg/SVGAnimatedTypeAnimator.h:
1139         (SVGAnimatedTypeAnimator):
1140         * svg/SVGAnimationElement.cpp:
1141         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
1142         (WebCore::SVGAnimationElement::updateAnimation):
1143         * svg/SVGAnimationElement.h:
1144         (WebCore::SVGAnimationElement::animateAdditiveNumber):
1145         (SVGAnimationElement):
1146
1147 2012-05-01  Beth Dakin  <bdakin@apple.com>
1148
1149         https://bugs.webkit.org/show_bug.cgi?id=85231
1150         Fixed position objects that are removed from the DOM don't kick off 
1151         fixed position recalculation
1152         -and corresponding-
1153         <rdar://problem/11297916>
1154
1155         Reviewed by Darin Adler.
1156
1157         * rendering/RenderBox.cpp:
1158         (WebCore::RenderBox::willBeDestroyed):
1159
1160 2012-05-01  Dana Jansens  <danakj@chromium.org>
1161
1162         Early-out for subtracting a non-intersecting region
1163         https://bugs.webkit.org/show_bug.cgi?id=85258
1164
1165         Reviewed by Hajime Morita.
1166
1167         Given regions A and B, if the bounds of the regions do not intersect,
1168         then the regions themselves do not intersect. If the intersection of
1169         A and B is empty, then A subtract B == A.
1170
1171         * platform/graphics/Region.cpp:
1172         (WebCore::Region::subtract):
1173
1174 2012-04-30  Kent Tamura  <tkent@chromium.org>
1175
1176         [Chromium/Windows] Add LocalizedDateWin
1177         https://bugs.webkit.org/show_bug.cgi?id=84935
1178
1179         Reviewed by Kentaro Hara.
1180
1181         LocalizedDateICU.cpp doesn't reflect system settings. So there were some
1182         problems such as <input type=date> doesn't use system's date format.
1183
1184         We need to use Windows API to get a date format and calendar parameters.
1185
1186         We obtain a date format like "MM/dd/yy" via Windows API, and
1187         format/parse dates for the format by our own code because Windows API
1188         can't handle years older than 1601 and doesn't have date parsing API.
1189
1190         Unit test: Source/WebKit/chromium/tests/LocaleWinTest.cpp
1191
1192         * WebCore.gypi: Add LocalizedDateWin.cpp.
1193         * WebCore.gyp/WebCore.gyp:
1194         For Windows, remove LocalizedDateICU.cpp and add LocalizedDateWin.cpp.
1195         All of *Win.cpp files are excluded by default.
1196
1197         * platform/text/LocaleWin.cpp: Added.
1198         (WebCore::LocaleWin::LocaleWin):
1199         (WebCore::LocaleWin::create):
1200         (WebCore::LocaleWin::currentLocale):
1201         (WebCore::LocaleWin::~LocaleWin):
1202         (WebCore::LocaleWin::getLocaleInfoString):
1203         A helper function to obtain a string by GetLocaleInfo().
1204         (WebCore::LocaleWin::initializeShortMonthLabels):
1205         Obtain short month names from Windows.
1206
1207         (WebCore::DateFormatToken): A struct to represent a token in a date format.
1208         e.g. A format string "MM/dd/yy" generates five DateFormatToken:
1209          Month2, Literal, Day2, Literal, Year2.
1210         (isEraSymbol): A readability helper function.
1211         (isYearSymbol): ditto.
1212         (isMonthSymbol): ditto.
1213         (isDaySymbol): ditto.
1214         (countContinuousLetters):
1215         (commitLiteralToken): A helper for parseDateFormat().
1216         (parseDateFormat):
1217         Parse a format string, and generate a list of DateFormatToken.
1218
1219         (WebCore::parseNumber): A helper for parseDate().
1220         (WebCore::LocaleWin::parseNumberOrMonth): ditto.
1221         (WebCore::LocaleWin::parseDate):
1222         Parse a user-provided date string by matching with a DateFormatToken list.
1223
1224         (WebCore::appendNumber): A helper for formatDate().
1225         (WebCore::appendTwoDigitsNumber): ditto. Write at least two digits.
1226         (WebCore::appendFourDigitsNumber): ditto. Write at least four digits.
1227         (WebCore::LocaleWin::formatDate):
1228         Format a DateComponents by iterating a DateFormatToken list.
1229
1230         (WebCore::LocaleWin::initializeShortDateTokens):
1231         (WebCore::substituteLabelsIntoFormat):
1232         Creates a user-visible format string by iterating a DateFormatToken list.
1233         (WebCore::LocaleWin::dateFormatText):
1234         (WebCore::LocaleWin::initializeMonthLabels):
1235         Creates month names by Windows API.
1236         (WebCore::LocaleWin::initializeWeekDayShortLabels):
1237          Creates day names by Windows API.
1238         (WebCore::LocaleWin::monthLabels):
1239         Public accessor function for month names.
1240         (WebCore::LocaleWin::weekDayShortLabels):
1241         Public accessor function for day names.
1242         * platform/text/LocaleWin.h: Added.
1243
1244         * platform/text/LocalizedDateWin.cpp:
1245         Added. The following functions simply delegate to LocaleWin::currentLocale().
1246         (WebCore::parseLocalizedDate):
1247         (WebCore::formatLocalizedDate):
1248         (WebCore::localizedDateFormatText):
1249         (WebCore::monthLabels):
1250         (WebCore::weekDayShortLabels):
1251         (WebCore::firstDayOfWeek):
1252
1253 2012-04-30  Kent Tamura  <tkent@chromium.org>
1254
1255         REGRESSION(r115600): parseLocalizedDate() should fail for invalid inputs
1256         https://bugs.webkit.org/show_bug.cgi?id=85176
1257
1258         Reviewed by Kentaro Hara.
1259
1260         Test: fast/forms/date/input-date-commit-valid-only.html
1261
1262         * platform/text/mac/LocalizedDateMac.mm:
1263         (WebCore::parseLocalizedDate):
1264         We should check nil for the result of NSDateFormtter::dateFromString.
1265
1266 2012-04-30  Mark Rowe  <mrowe@apple.com>
1267
1268         Fix another leak due to misuse of createCFString.
1269
1270         Reviewed by Darin Adler.
1271
1272         * plugins/mac/PluginPackageMac.cpp:
1273         (WebCore::PluginPackage::fetchInfo): Adopt the result of createCFString.
1274
1275 2012-04-30  Mark Rowe  <mrowe@apple.com>
1276
1277         <rdar://problem/11312198> Many leaks during fast/events/dropzone-002.html
1278
1279         Reviewed by Darin Adler.
1280
1281         * platform/mac/ClipboardMac.mm:
1282         (WebCore::utiTypeFromCocoaType): Adopt the result of createCFString.
1283
1284 2012-04-30  Mark Rowe  <mrowe@apple.com>
1285
1286         <rdar://problem/11352575> Many CGImageRefs leaked during media layout tests
1287
1288         Reviewed by Brian Weinstein.
1289
1290         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1291         (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Adopt the CGImageRef.
1292
1293 2012-04-30  Emil A Eklund  <eae@chromium.org>
1294
1295         Change RenderBoxModelObject::calculateBackgroundImageGeometry to use roundToInt
1296         https://bugs.webkit.org/show_bug.cgi?id=85249
1297
1298         Reviewed by Eric Seidel.
1299
1300         Prepare RenderBoxModelObject for FractionalLayoutUnits by adding rounding
1301         logic to calculateBackgroundImageGeometry. Background images, as all
1302         images, needs to be layed out on pixel boundaries thus we need to convert
1303         it to a integer value.
1304
1305         No new tests, no change in functionality.
1306
1307         * rendering/RenderBoxModelObject.cpp:
1308         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
1309
1310 2012-04-30  Ilya Sherman  <isherman@chromium.org>
1311
1312         Unreviewed, rolling out r113511.
1313         http://trac.webkit.org/changeset/113511
1314         https://bugs.webkit.org/show_bug.cgi?id=66032
1315         https://bugs.webkit.org/show_bug.cgi?id=85150
1316
1317         Regression: Many autofilled form fields lack the default
1318         autofill background even when authors don’t override the
1319         autofill colors
1320
1321         * css/html.css:
1322         (input:-webkit-autofill): Restore !important modifiers
1323
1324 2012-04-30  Julien Chaffraix  <jchaffraix@webkit.org>
1325
1326         Move RenderTableCell's row index to RenderTableRow
1327         https://bugs.webkit.org/show_bug.cgi?id=85229
1328
1329         Reviewed by Ojan Vafai.
1330
1331         Covered by the existing table tests.
1332
1333         Row index is a RenderTableRow concept and as such this change moves
1334         the relevant logic into the class.
1335
1336         While touching the code, renamed row() -> rowIndex() as now RenderTableCell
1337         can return its parent RenderTableRow and we were returning an index, not the row
1338         itself.
1339
1340         * accessibility/AccessibilityTable.cpp:
1341         (WebCore::AccessibilityTable::cellForColumnAndRow):
1342         * accessibility/AccessibilityTableCell.cpp:
1343         (WebCore::AccessibilityTableCell::rowIndexRange):
1344         (WebCore::AccessibilityTableCell::titleUIElement):
1345         * rendering/RenderTable.cpp:
1346         (WebCore::RenderTable::cellAbove):
1347         (WebCore::RenderTable::cellBelow):
1348         (WebCore::RenderTable::cellBefore):
1349         (WebCore::RenderTable::cellAfter):
1350         * rendering/RenderTreeAsText.cpp:
1351         (WebCore::RenderTreeAsText::writeRenderObject):
1352         Updated after the renaming RenderTableCell::row() -> rowIndex().
1353
1354         * rendering/RenderTableCell.cpp:
1355         (WebCore::RenderTableCell::RenderTableCell):
1356         (WebCore::RenderTableCell::computeCollapsedBeforeBorder):
1357         (WebCore::RenderTableCell::computeCollapsedAfterBorder):
1358         Updated after m_rowIndex removal and row() -> rowIndex() renaming.
1359
1360         (WebCore::RenderTableCell::styleDidChange):
1361         Switched the rowWasSet check to an ASSERT. The new logic guarantees that
1362         row index was set straight when we insert the row. The previous logic was
1363         opened to some race conditions as we could wait for a recalcCells call before
1364         setting the index on the rows which made this check necessary.
1365
1366         * rendering/RenderTableCell.h:
1367         (WebCore::RenderTableCell::row):
1368         Added this RenderTableRow getter.
1369
1370         (WebCore::RenderTableCell::rowIndex):
1371         Renamed from row().
1372
1373         * rendering/RenderTableRow.cpp:
1374         (WebCore::RenderTableRow::RenderTableRow):
1375         (WebCore::RenderTableRow::styleDidChange):
1376         Updated after adding m_rowIndex / rowIndex().
1377
1378         * rendering/RenderTableRow.h:
1379         (WebCore::RenderTableRow::setRowIndex):
1380         (WebCore::RenderTableRow::rowIndex):
1381         Added those getter / setter. Also kept m_rowIndex's smaller size
1382         for future optimization and for symmetry with the column index on
1383         RenderTableCell.
1384
1385         * rendering/RenderTableSection.cpp:
1386         (WebCore::RenderTableSection::addChild):
1387         (WebCore::RenderTableSection::recalcCells):
1388         Made sure that whenever we insert or update our row index
1389         we do call setRowIndex().
1390
1391         (WebCore::RenderTableSection::addCell):
1392         This logic now doesn't need to query insertionRow as the cell's
1393         should have the index of the row in which it is inserted.
1394
1395         (WebCore::RenderTableSection::calcRowLogicalHeight):
1396         (WebCore::RenderTableSection::layoutRows):
1397         (WebCore::compareCellPositionsWithOverflowingCells):
1398         More updates after row() -> rowIndex() renaming.
1399
1400         * rendering/RenderTableSection.h:
1401         Removed rowIndexForRenderer now that the row caches this informatin.
1402
1403 2012-04-30  Keishi Hattori  <keishi@webkit.org>
1404
1405         datalist: Inconsistent behavior of HTMLInputElement::list
1406         https://bugs.webkit.org/show_bug.cgi?id=84351
1407
1408         Each platform will have a different set of input types that support the datalist UI.
1409         This patch makes shouldRespectListAttribute ask the RenderTheme if it supports datalist UI for that input type.
1410         Thus making it possible to do feature detection with JS.
1411
1412         Reviewed by Kent Tamura.
1413
1414         * WebCore.gypi: Added RenderThemeChromiumCommon.{cpp,h}
1415         * html/ColorInputType.cpp:
1416         (WebCore::ColorInputType::shouldRespectListAttribute):
1417         (WebCore):
1418         * html/ColorInputType.h:
1419         (ColorInputType):
1420         * html/InputType.cpp:
1421         (WebCore::InputType::themeSupportsDataListUI): Static method used by TextFieldInputType, RangeInputType, and ColorInputType.
1422         (WebCore):
1423         * html/InputType.h:
1424         (InputType):
1425         * html/RangeInputType.cpp:
1426         (WebCore::RangeInputType::shouldRespectListAttribute):
1427         * html/TextFieldInputType.cpp:
1428         (WebCore::TextFieldInputType::shouldRespectListAttribute):
1429         * rendering/RenderTheme.h:
1430         (RenderTheme):
1431         (WebCore::RenderTheme::supportsDataListUI): Returns true if the platform can show the datalist suggestions for a given input type.
1432         * rendering/RenderThemeChromiumCommon.cpp: Added.
1433         (WebCore):
1434         (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
1435         * rendering/RenderThemeChromiumCommon.h: Added.
1436         (WebCore):
1437         (RenderThemeChromiumCommon):
1438         * rendering/RenderThemeChromiumMac.h:
1439         (RenderThemeChromiumMac):
1440         * rendering/RenderThemeChromiumMac.mm:
1441         (WebCore::RenderThemeChromiumMac::supportsDataListUI):
1442         (WebCore):
1443         * rendering/RenderThemeChromiumSkia.cpp:
1444         (WebCore::RenderThemeChromiumMac::supportsDataListUI):
1445         (WebCore):
1446         * rendering/RenderThemeChromiumSkia.h:
1447         (RenderThemeChromiumSkia):
1448
1449 2012-04-30  Levi Weintraub  <leviw@chromium.org>
1450
1451         RenderObject incorrectly lists maximalOutlineSize as a LayoutUnit
1452         https://bugs.webkit.org/show_bug.cgi?id=85248
1453
1454         Reviewed by Eric Seidel.
1455
1456         Reverting RenderObject::maximalOutlineSize to int. This is a slop value for repaint
1457         rects that doesn't affect layout. It also derives its value from RenderView's function
1458         of the same name, which is already an integer.
1459
1460         No new tests. No change in behavior.
1461
1462         * rendering/RenderObject.cpp:
1463         (WebCore::RenderObject::maximalOutlineSize):
1464         * rendering/RenderObject.h:
1465         (RenderObject):
1466
1467 2012-04-30  Xingnan Wang  <xingnan.wang@intel.com>
1468
1469         Add multichannel support for input of JavaScriptAudioNode
1470         https://bugs.webkit.org/show_bug.cgi?id=84687
1471
1472         Reviewed by Chris Rogers.
1473
1474         Tests: webaudio/javascriptaudionode-downmix8-2channel-input.html
1475                webaudio/javascriptaudionode-upmix2-8channel-input.html
1476
1477         * Modules/webaudio/JavaScriptAudioNode.cpp:
1478         (WebCore::JavaScriptAudioNode::create):
1479         (WebCore::JavaScriptAudioNode::JavaScriptAudioNode):
1480         (WebCore::JavaScriptAudioNode::initialize):
1481         (WebCore::JavaScriptAudioNode::process):
1482         * Modules/webaudio/JavaScriptAudioNode.h:
1483         (JavaScriptAudioNode):
1484
1485 2012-04-30  Oliver Hunt  <oliver@apple.com>
1486
1487         Harden arithmetic in ImageBufferDataCG
1488         https://bugs.webkit.org/show_bug.cgi?id=61373
1489
1490         Reviewed by Gavin Barraclough.
1491
1492         We have a checked type that allows us to automate many of the
1493         bounds checks we want here, so let's replace the floating point
1494         math, and just use Checked<> throughout.  We use a non-recording
1495         Checked<> as no overflows should reach this point, so we'll take
1496         a hard early failure, over the cost of many branches when
1497         accessing the raw values in loops.
1498
1499         * platform/graphics/cg/ImageBufferDataCG.cpp:
1500         (WebCore::ImageBufferData::getData):
1501         (WebCore::ImageBufferData::putData):
1502
1503 2012-04-30  Levi Weintraub  <leviw@chromium.org>
1504
1505         Add absoluteValue method for LayoutUnits to allow overloading abs()
1506         https://bugs.webkit.org/show_bug.cgi?id=85214
1507
1508         Reviewed by Eric Seidel.
1509
1510         Adding an absoluteValue free inline function that operates on LayoutUnits, which
1511         allows us to have one function signature for ints or FractionalLayoutUnits. We
1512         can't simply add a FractionalLayoutUnit flavor of abs because it confuses
1513         some compilers due to the implicit FractionalLayoutUnit constructors that take
1514         ints and floats.
1515
1516         No new tests. No change in behavior.
1517
1518         * page/SpatialNavigation.cpp:
1519         (WebCore::distanceDataForNode):
1520         * rendering/LayoutTypes.h:
1521         (WebCore::absoluteValue):
1522         (WebCore):
1523         * rendering/RenderBlockLineLayout.cpp:
1524         (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
1525         * rendering/RenderLineBoxList.cpp:
1526         (WebCore::RenderLineBoxList::rangeIntersectsRect):
1527         * rendering/RenderObject.cpp:
1528         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
1529
1530 2012-04-30  Levi Weintraub  <leviw@chromium.org>
1531
1532         Update LayoutUnit usage in InlineFlowBox and RenderWidget
1533         https://bugs.webkit.org/show_bug.cgi?id=85239
1534
1535         Reviewed by Eric Seidel.
1536
1537         Updating LayoutUnit usage in a pair of remaining functions to minimize the remaining work to switching
1538         to FractionalLayoutUnits for layout instead of integers.
1539
1540         No new tests. No change in behavior.
1541
1542         * rendering/InlineFlowBox.cpp:
1543         (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Though stored as a float, the top is always
1544         set to an integer value. When we move to sub-pixel, we need to preserve this. Not preserving this
1545         behavior affects text decorations, most notably underlines.
1546         * rendering/RenderWidget.cpp:
1547         (WebCore::RenderWidget::updateWidgetGeometry): Adding pixel snapping for the content box if it's
1548         not transformed (absoluteContentBox includes pixel snapping), and properly treating the boundingBox
1549         as an IntRect.
1550
1551 2012-04-30  Levi Weintraub  <leviw@chromium.org>
1552
1553         Prepare RenderDeprecatedFlexibleBox for sub-pixel layout
1554         https://bugs.webkit.org/show_bug.cgi?id=85217
1555
1556         Reviewed by Eric Seidel.
1557
1558         Bailing from the space distribution loop in layoutHorizontal/VerticalBox when
1559         the remaining space falls below one pixel. This has no effect in whole-pixel
1560         layout, but avoids unnecessary work/infinite loops in the sub-pixel case.
1561
1562         No new tests. No change in behavior.
1563
1564         * rendering/RenderDeprecatedFlexibleBox.cpp:
1565         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
1566         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
1567
1568 2012-04-30  Ryosuke Niwa  <rniwa@webkit.org>
1569
1570         NULL ptr in WebCore::Range::getBorderAndTextQuads
1571         https://bugs.webkit.org/show_bug.cgi?id=77218
1572
1573         Reviewed by Eric Seidel.
1574
1575         The crash was caused by a malformed range obtained within an event handler of mutation events
1576         (DOMNodeRemovedFromDocument). Because this range wasn't updated per node removal, range functions
1577         end up not behaving well.
1578
1579         Fixed the bug by changing the order of the notifications in ContainerNode::willRemoveChild.
1580         We now fire mutation events first before updating ranges so that any range created inside those
1581         event handlers can also be updated prior to the actual node removal.
1582
1583         Test: fast/dom/Range/range-created-in-mutation-event-crash.xhtml
1584
1585         * dom/ContainerNode.cpp:
1586         (WebCore::willRemoveChild):
1587
1588 2012-04-30  Anders Carlsson  <andersca@apple.com>
1589
1590         ScrollingCoordinator::requestScrollPositionUpdate should not update the main frame scroll position
1591         https://bugs.webkit.org/show_bug.cgi?id=85240
1592         <rdar://problem/11286609>
1593
1594         Reviewed by Sam Weinig.
1595
1596         The call to updateMainFrameScrollPosition was added to make the WebKit2 find overlay work, since it relies
1597         on scroll position updates being synchronous. Change the find code in WebKit2 to handle asynchronous scroll
1598         position updates and remove the call to updateMainFrameScrollPosition.
1599
1600         * page/scrolling/ScrollingCoordinator.cpp:
1601         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
1602
1603 2012-04-30  Anders Carlsson  <andersca@apple.com>
1604
1605         Add a way to asynchronously call a function once the scroll position of a page has been updated
1606         https://bugs.webkit.org/show_bug.cgi?id=85237
1607
1608         Reviewed by Sam Weinig.
1609
1610         * WebCore.exp.in:
1611         Export functions needed by WebKit2.
1612
1613         * page/scrolling/ScrollingCoordinator.h:
1614         Make commitTreeStateIfNeeded public.
1615
1616 2012-04-30  Kentaro Hara  <haraken@chromium.org>
1617
1618         WebGLRenderingContext methods should throw TypeError for not enough arguments
1619         https://bugs.webkit.org/show_bug.cgi?id=84787
1620
1621         Reviewed by Kenneth Russell.
1622
1623         Currently, WebGLRenderingcontext methods implement
1624         "Not enough arguments" error as SyntaxError. The Web IDL
1625         spec requires that it should be TypeError:
1626         http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
1627
1628         This patch changes SyntaxError to TypeError.
1629
1630         I wanted to confirm the behavior of Firefox and Opera,
1631         but they do not implement WebGL yet.
1632
1633         Test: fast/canvas/webgl/webgl-exceptions.html
1634
1635         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1636         (WebCore::getObjectParameter):
1637         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
1638         (WebCore::JSWebGLRenderingContext::getExtension):
1639         (WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
1640         (WebCore::JSWebGLRenderingContext::getParameter):
1641         (WebCore::JSWebGLRenderingContext::getProgramParameter):
1642         (WebCore::JSWebGLRenderingContext::getShaderParameter):
1643         (WebCore::JSWebGLRenderingContext::getUniform):
1644         (WebCore::dataFunctionf):
1645         (WebCore::dataFunctioni):
1646         (WebCore::dataFunctionMatrix):
1647         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1648         (WebCore::getObjectParameter):
1649         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
1650         (WebCore::V8WebGLRenderingContext::getExtensionCallback):
1651         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
1652         (WebCore::V8WebGLRenderingContext::getParameterCallback):
1653         (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
1654         (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
1655         (WebCore::V8WebGLRenderingContext::getUniformCallback):
1656         (WebCore::vertexAttribAndUniformHelperf):
1657         (WebCore::uniformHelperi):
1658         (WebCore::uniformMatrixHelper):
1659
1660 2012-04-30  Emil A Eklund  <eae@chromium.org>
1661
1662         [gtk, qt, chromium, win] Fix usage of LayoutUnits and rounding in platform code
1663         https://bugs.webkit.org/show_bug.cgi?id=85222
1664
1665         Reviewed by Eric Seidel.
1666
1667         Update platform code to use the pixel snapped values for painting rects
1668         to line up with device pixels and change platform specific hit testing
1669         code to use roundedPoint as hit testing is still mostly done on integer
1670         bounds.
1671
1672         No new tests, no change in functionality.
1673
1674         * platform/qt/RenderThemeQt.cpp:
1675         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
1676         * platform/win/PopupMenuWin.cpp:
1677         (WebCore::PopupMenuWin::paint):
1678         * rendering/RenderThemeChromiumSkia.cpp:
1679         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
1680         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
1681         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
1682
1683 2012-04-30  Kentaro Hara  <haraken@chromium.org>
1684
1685         [V8][JSC] Remove hard-coded "Not enough arguments" errors
1686         https://bugs.webkit.org/show_bug.cgi?id=85207
1687
1688         Reviewed by Sam Weinig.
1689
1690         In bug 85022 and bug 85097, we implemented
1691         createNotEnoughArgumentsError() in JSC and
1692         V8Proxy::throwNotEnoughArgumentsError() in V8 and partially
1693         removed hard-coded "Not enough arguments" errors.
1694         This patch removes hard-coded "Not enough arguments"
1695         errors by using the helper methods.
1696
1697         No tests. No change in behavior.
1698
1699         * bindings/js/JSAudioContextCustom.cpp:
1700         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
1701         * bindings/js/JSSVGLengthCustom.cpp:
1702         (WebCore::JSSVGLength::convertToSpecifiedUnits):
1703         * bindings/js/JSWebSocketCustom.cpp:
1704         (WebCore::JSWebSocketConstructor::constructJSWebSocket):
1705         (WebCore::JSWebSocket::send):
1706         * bindings/js/JSXMLHttpRequestCustom.cpp:
1707         (WebCore::JSXMLHttpRequest::open):
1708         * bindings/v8/ScriptController.cpp:
1709         (WebCore::setValueAndClosePopupCallback):
1710         * bindings/v8/custom/V8AudioContextCustom.cpp:
1711         (WebCore::V8AudioContext::constructorCallback):
1712         * bindings/v8/custom/V8SVGLengthCustom.cpp:
1713         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
1714         * bindings/v8/custom/V8WebSocketCustom.cpp:
1715         (WebCore::V8WebSocket::constructorCallback):
1716         (WebCore::V8WebSocket::sendCallback):
1717         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1718         (WebCore::V8XMLHttpRequest::openCallback):
1719
1720 2012-04-30  Benjamin Poulain  <benjamin@webkit.org>
1721
1722         Add String::startsWith() and endsWith() for string literals
1723         https://bugs.webkit.org/show_bug.cgi?id=85154
1724
1725         Reviewed by Darin Adler.
1726
1727         Update WebCore to use the simpler startsWith() and endsWith() taking
1728         a UChar.
1729
1730         * css/CSSParser.cpp:
1731         (WebCore::CSSParser::markPropertyEnd):
1732         * css/WebKitCSSKeyframeRule.cpp:
1733         (WebCore::StyleKeyframe::parseKeyString):
1734         * editing/markup.cpp:
1735         (WebCore::createFragmentFromText):
1736         * html/HTMLObjectElement.cpp:
1737         (WebCore::HTMLObjectElement::addSubresourceAttributeURLs):
1738         * html/HTMLTextFormControlElement.cpp:
1739         (WebCore::HTMLTextFormControlElement::setInnerTextValue):
1740         * inspector/ContentSearchUtils.cpp:
1741         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
1742         * inspector/InspectorCSSAgent.cpp:
1743         (WebCore::InspectorCSSAgent::SetPropertyTextAction::redo):
1744         * loader/MainResourceLoader.cpp:
1745         (WebCore::MainResourceLoader::substituteMIMETypeFromPluginDatabase):
1746         * loader/appcache/ManifestParser.cpp:
1747         (WebCore::parseManifest):
1748         * platform/blackberry/CookieManager.cpp:
1749         (WebCore::CookieManager::shouldRejectForSecurityReason):
1750         * platform/posix/FileSystemPOSIX.cpp:
1751         (WebCore::pathByAppendingComponent):
1752         * plugins/PluginDatabase.cpp:
1753         (WebCore::PluginDatabase::findPlugin):
1754         * svg/SVGStopElement.cpp:
1755         (WebCore::SVGStopElement::parseAttribute):
1756         * svg/animation/SVGSMILElement.cpp:
1757         (WebCore::SVGSMILElement::parseOffsetValue):
1758         (WebCore::SVGSMILElement::parseCondition):
1759
1760 2012-04-30  Abhishek Arya  <inferno@chromium.org>
1761
1762         Remove positioned float code.
1763         https://bugs.webkit.org/show_bug.cgi?id=84795
1764
1765         Reviewed by Dan Bernstein.
1766
1767         Backout r92004 and some pieces from r91702.
1768
1769         Test: fast/block/float/positioned-float-crash.html
1770
1771         * css/CSSParser.cpp:
1772         (WebCore::isValidKeywordPropertyAndValue):
1773         * css/CSSPrimitiveValueMappings.h:
1774         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1775         (WebCore::CSSPrimitiveValue::operator EFloat):
1776         * css/CSSValueKeywords.in:
1777         * rendering/RenderBlock.cpp:
1778         (WebCore::RenderBlock::RenderBlock):
1779         (WebCore::RenderBlock::layoutBlock):
1780         (WebCore::RenderBlock::addOverflowFromFloats):
1781         (WebCore::RenderBlock::layoutBlockChild):
1782         (WebCore::RenderBlock::simplifiedLayout):
1783         (WebCore::RenderBlock::layoutPositionedObjects):
1784         (WebCore::RenderBlock::insertFloatingObject):
1785         (WebCore::RenderBlock::positionNewFloats):
1786         (WebCore::RenderBlock::clearFloats):
1787         (WebCore::RenderBlock::FloatingObjects::clear):
1788         (WebCore::RenderBlock::FloatingObjects::increaseObjectsCount):
1789         (WebCore::RenderBlock::FloatingObjects::decreaseObjectsCount):
1790         * rendering/RenderBlock.h:
1791         (RenderBlock):
1792         (WebCore::RenderBlock::forceLayoutInlineChildren):
1793         (FloatingObject):
1794         (WebCore::RenderBlock::FloatingObject::FloatingObject):
1795         (WebCore::RenderBlock::hasOverhangingFloats):
1796         (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
1797         (FloatingObjects):
1798         * rendering/RenderBox.cpp:
1799         (WebCore::RenderBox::updateBoxModelInfoFromStyle):
1800         * rendering/RenderDeprecatedFlexibleBox.cpp:
1801         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
1802         * rendering/RenderDeprecatedFlexibleBox.h:
1803         (RenderDeprecatedFlexibleBox):
1804         * rendering/RenderFlexibleBox.cpp:
1805         (WebCore::RenderFlexibleBox::layoutBlock):
1806         * rendering/RenderFlexibleBox.h:
1807         (RenderFlexibleBox):
1808         * rendering/RenderLayer.cpp:
1809         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
1810         * rendering/style/RenderStyleConstants.h:
1811
1812 2012-04-29  Sam Weinig  <sam@webkit.org>
1813
1814         Remove BlobBuilder
1815         https://bugs.webkit.org/show_bug.cgi?id=84036
1816
1817         Reviewed by Anders Carlsson.
1818
1819         * GNUmakefile.am:
1820         * fileapi/WebKitBlobBuilder.idl:
1821         * page/DOMWindow.idl:
1822         * workers/WorkerContext.idl:
1823         Make exposing the WebKitBlobBuilder JS object conditional on a new
1824         ENABLE_LEGACY_WEBKIT_BLOB_BUILDER flag. Don't enable this for the Mac,
1825         but do for everyone else.
1826
1827 2012-04-30  Anders Carlsson  <andersca@apple.com>
1828
1829         Add a barrier-style dispatch member function to ScrollingThread
1830         https://bugs.webkit.org/show_bug.cgi?id=85228
1831
1832         Reviewed by Sam Weinig.
1833
1834         Add a ScrollingThread::dispatchBarrier function which takes a WTF::Function and dispatches it to the main thread
1835         once all the currently scheduled scrolling thread functions have run. This is to be used for synchronization between the
1836         scrolling thread and the main thread.
1837
1838         * page/scrolling/ScrollingThread.cpp:
1839         (WebCore::callFunctionOnMainThread):
1840         (WebCore):
1841         (WebCore::ScrollingThread::dispatchBarrier):
1842         * page/scrolling/ScrollingThread.h:
1843         (ScrollingThread):
1844
1845 2012-04-30  Min Qin  <qinmin@google.com>
1846
1847         Expose a flag so that fullscreen video on android can work with FULLSCREEN_API
1848         https://bugs.webkit.org/show_bug.cgi?id=84414
1849
1850         Reviewed by Darin Fisher.
1851
1852         No tests, just exposing the flag, and will be used by android later.
1853         Sorry, there is a merge error during the previous commit, resolved now
1854
1855         * platform/graphics/MediaPlayer.cpp:
1856         (WebCore::MediaPlayer::setControls):
1857         (WebCore):
1858         (WebCore::MediaPlayer::enterFullscreen):
1859         (WebCore::MediaPlayer::exitFullscreen):
1860         * platform/graphics/MediaPlayer.h:
1861         (MediaPlayer):
1862         * platform/graphics/MediaPlayerPrivate.h:
1863         (MediaPlayerPrivateInterface):
1864         (WebCore::MediaPlayerPrivateInterface::enterFullscreen):
1865
1866 2012-04-30  Nate Chapin  <japhet@chromium.org>
1867
1868         Move more of committing and starting to write a Document
1869         to DocumentLoader.
1870         https://bugs.webkit.org/show_bug.cgi?id=83908
1871
1872         Reviewed by Adam Barth.
1873
1874         No new tests, refactor only.
1875
1876         * loader/DocumentLoader.cpp:
1877         (WebCore::DocumentLoader::commitIfReady): Ignore m_gotFirstByte here, since
1878             it was always true here anyway.
1879         (WebCore::DocumentLoader::finishedLoading): If we are finishing an empty
1880             document, create the document now, so that FrameLoaderClient doesn't
1881             have to do it later (FrameLoaderClient code will be removed in a later
1882             patch).
1883         (WebCore::DocumentLoader::commitData): Call receivedFirstData() directly and
1884             do some work receivedFirstData() used to do, setEncoding() only once per
1885             load.
1886         (WebCore::DocumentLoader::receivedData):
1887         (WebCore::DocumentLoader::maybeCreateArchive):
1888         * loader/DocumentLoader.h:
1889         * loader/DocumentWriter.cpp:
1890         (WebCore::DocumentWriter::setEncoding):
1891         * loader/FrameLoader.cpp:
1892         (WebCore::FrameLoader::receivedFirstData): Move DocumentLoader calls
1893             to DocumentLoader.
1894         * loader/FrameLoader.h: Remove m_hasReceivedFirstData and willSetEncoding(),
1895             allow hasReceivedData() to be called directly.
1896         (FrameLoader):
1897
1898 2012-04-30  Kentaro Hara  <haraken@chromium.org>
1899
1900         Unreviewed. Fix test crashes in Win/Linux debug builds.
1901
1902         * bindings/v8/V8LazyEventListener.cpp:
1903         (WebCore::V8LazyEventListener::V8LazyEventListener):
1904         (WebCore::V8LazyEventListener::prepareListenerObject):
1905         * bindings/v8/V8LazyEventListener.h:
1906         (V8LazyEventListener):
1907
1908 2012-04-30  Tommy Widenflycht  <tommyw@google.com>
1909
1910         MediaStream API: Change LocalMediaStream::stop to be synchronous
1911         https://bugs.webkit.org/show_bug.cgi?id=84942
1912
1913         Reviewed by Dimitri Glazkov.
1914
1915         Since I changed LocalMediaStream to be a ActiveDOMObject recently the stop()
1916         behaviour needs to change since it is no longer a good idea to start a timer when called.
1917
1918         Not possible to write a test for this.
1919
1920         * Modules/mediastream/LocalMediaStream.cpp:
1921         (WebCore::LocalMediaStream::LocalMediaStream):
1922         (WebCore::LocalMediaStream::stop):
1923         * Modules/mediastream/LocalMediaStream.h:
1924         (LocalMediaStream):
1925
1926 2012-04-28  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>
1927
1928         Add ENABLE_SUBPIXEL_LAYOUT controlling FractionalLayoutUnit denominator
1929         https://bugs.webkit.org/show_bug.cgi?id=85146
1930
1931         Reviewed by Eric Seidel.
1932
1933         Add a new flag for controlling the fixed point denominator in
1934         FractionalLayoutUnit. Controls whether the denominator is set to 60 or 1.
1935         Until we change the LayoutUnit typedef this change will have no effect.
1936
1937         No new tests, no change in functionality.
1938
1939         * platform/FractionalLayoutUnit.h:
1940         (WebCore):
1941         (WebCore::FractionalLayoutUnit::operator++):
1942         (WebCore::operator/):
1943         (WebCore::operator+):
1944         Add ++, / double and and + double operators. These are needed when
1945         ENABLE_SUBPIXEL_LAYOUT is not enabled.
1946         
1947         * platform/graphics/FractionalLayoutRect.cpp:
1948         (WebCore::enclosingFractionalLayoutRect):
1949
1950 2012-04-30  Justin Schuh  <jschuh@chromium.org>
1951
1952         loadOrRedirectSubframe should return the owner element's frame
1953         https://bugs.webkit.org/show_bug.cgi?id=84780
1954
1955         Reviewed by Nate Chapin.
1956
1957         Test: fast/loader/javascript-url-iframe-remove-on-navigate.html
1958
1959         * loader/SubframeLoader.cpp:
1960         (WebCore::SubframeLoader::loadOrRedirectSubframe):
1961
1962 2012-04-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1963
1964         Use Vector<Attribute> directly instead of encapsulating it in AttributeVector
1965         https://bugs.webkit.org/show_bug.cgi?id=84413
1966
1967         Reviewed by Andreas Kling.
1968
1969         As commented in https://bugs.webkit.org/show_bug.cgi?id=79963#c16 we do not
1970         usually subclass basic types like Vector. This patch changes code to use
1971         Vector<Attribute> directly and move around the functionality of the former
1972         methods to more specific helper functions or inline code at the callers.
1973
1974         * dom/Element.cpp:
1975         (WebCore::Element::parserSetAttributes):
1976         (WebCore::Element::normalizeAttributes):
1977         * dom/Element.h:
1978         (Element):
1979         * dom/ElementAttributeData.cpp:
1980         * dom/ElementAttributeData.h:
1981         (WebCore::findAttributeInVector):
1982         (WebCore::ElementAttributeData::getAttributeItem):
1983         (ElementAttributeData):
1984         (WebCore::ElementAttributeData::attributeVector):
1985         (WebCore::ElementAttributeData::clonedAttributeVector):
1986         (WebCore::ElementAttributeData::getAttributeItemIndex):
1987         (WebCore):
1988         * html/parser/HTMLConstructionSite.cpp:
1989         (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
1990         * html/parser/HTMLToken.h:
1991         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1992         * html/parser/HTMLTreeBuilder.cpp:
1993         (WebCore::HTMLTreeBuilder::processFakeStartTag):
1994         (WebCore::HTMLTreeBuilder::attributesForIsindexInput): Loop through the attributes
1995         backwards so we can remove items without affecting the rest of the loop run.
1996         * html/parser/HTMLTreeBuilder.h:
1997         * html/parser/TextDocumentParser.cpp:
1998         (WebCore::TextDocumentParser::insertFakePreElement):
1999         * xml/XMLErrors.cpp:
2000         (WebCore::createXHTMLParserErrorHeader):
2001         (WebCore::XMLErrors::insertErrorMessageBlock):
2002         * xml/parser/MarkupTokenBase.h:
2003         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
2004         (WebCore::AtomicMarkupTokenBase::getAttributeItem):
2005         (WebCore::AtomicMarkupTokenBase::attributes):
2006         (AtomicMarkupTokenBase):
2007         (WebCore::::initializeAttributes):
2008         * xml/parser/XMLToken.h:
2009         (WebCore::AtomicXMLToken::AtomicXMLToken):
2010
2011 2012-04-30  Mark Pilgrim  <pilgrim@chromium.org>
2012
2013         [Chromium] Remove PlatformSupport::loadPlatformAudioResource, call loadResource directly
2014         https://bugs.webkit.org/show_bug.cgi?id=85193
2015
2016         Reviewed by Kentaro Hara.
2017
2018         Part of a refactoring series. See tracking bug 82948.
2019
2020         * platform/audio/chromium/AudioBusChromium.cpp:
2021         (WebCore::AudioBus::loadPlatformResource):
2022         * platform/chromium/PlatformSupport.h:
2023         (PlatformSupport):
2024
2025 2012-04-30  Mark Pilgrim  <pilgrim@chromium.org>
2026
2027         [Chromium] Call defaultLocale directly
2028         https://bugs.webkit.org/show_bug.cgi?id=85192
2029
2030         Reviewed by Kentaro Hara.
2031
2032         Part of a refactoring series. See tracking bug 82948.
2033
2034         * platform/chromium/LanguageChromium.cpp:
2035         (WebCore::platformLanguage):
2036         * platform/chromium/PlatformSupport.h:
2037         (PlatformSupport):
2038
2039 2012-04-30  Beth Dakin  <bdakin@apple.com>
2040
2041         https://bugs.webkit.org/show_bug.cgi?id=82922
2042         border-image with image-set does not render correctly when viewed at 
2043         2x
2044         -and corresponding-
2045         <rdar://problem/11167820>
2046
2047         Reviewed by Dan Bernstein.
2048
2049         StyleImage::computeIntrinsicDimensions() is only called from one 
2050         place: RenderBoxModelObject::calculateIntrinsicDimensions(), and that 
2051         is only used for background images and border images. In my original 
2052         image-set work, I decided that 
2053         StyleCachedImageSet::computeIntrinsicDimensions() would compute 
2054         "intrinsic" dimensions, meaning that they would compute the dimensions 
2055         that the image resource was pretending to be rather than the actual 
2056         dimensions of the resource. I chose to do this because it made 
2057         background images work great without changing the call-site. But border 
2058         images need to know the actual intrinsic dimensions, so this design 
2059         decision (which was admittedly questionable from the start) won't 
2060         stick.
2061         
2062         This patch makes StyleImage::computeIntrinsicDimensions() return 
2063         actual intrinsic dimensions. Then the border-image and background-
2064         image code is very lightly patched to account for the image's scale 
2065         factor.
2066
2067         These functions no longer need the scale factor parameter.
2068         * loader/cache/CachedImage.cpp:
2069         (WebCore::CachedImage::computeIntrinsicDimensions):
2070         * loader/cache/CachedImage.h:
2071         (CachedImage):
2072         * platform/graphics/GeneratedImage.h:
2073         (GeneratedImage):
2074         * platform/graphics/GeneratorGeneratedImage.cpp:
2075         (WebCore::GeneratedImage::computeIntrinsicDimensions):
2076         * platform/graphics/Image.cpp:
2077         (WebCore::Image::computeIntrinsicDimensions):
2078         * platform/graphics/Image.h:
2079         (Image):
2080         * platform/graphics/cg/PDFDocumentImage.cpp:
2081         (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
2082         * platform/graphics/cg/PDFDocumentImage.h:
2083         (PDFDocumentImage):
2084         * svg/graphics/SVGImage.cpp:
2085         (WebCore::SVGImage::computeIntrinsicDimensions):
2086         * svg/graphics/SVGImage.h:
2087         (SVGImage):
2088         * rendering/style/StyleCachedImageSet.cpp:
2089         (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
2090         
2091         New function on StyleImage returns the image's scale factor. 
2092         * rendering/style/StyleCachedImageSet.h:
2093         (WebCore::StyleCachedImageSet::imageScaleFactor):
2094         * rendering/style/StyleImage.h:
2095         (WebCore::StyleImage::imageScaleFactor):
2096
2097         Scale the intrinsic size of the background image down by the scale 
2098         factor.
2099         * rendering/RenderBoxModelObject.cpp:
2100         (WebCore::RenderBoxModelObject::calculateFillTileSize):
2101         
2102         Slices should be multiplied by the image's scale factor since they are 
2103         always expected to the specified in the 1x image's coordinate space.
2104         (WebCore::RenderBoxModelObject::paintNinePieceImage):
2105
2106 2012-04-30  Arko Saha  <arko@motorola.com>
2107
2108         Remove custom bindings code in JSHTMLCollectionCustom.cpp for HTMLPropertiesCollection.
2109         https://bugs.webkit.org/show_bug.cgi?id=85172
2110
2111         Reviewed by Kentaro Hara.
2112
2113         Use [JSGenerateToJSObject] in HTMLPropertiesCollection.idl, so that it can generate toJS()
2114         in JSHTMLPropertiesCollection.cpp automatically.
2115
2116         * bindings/js/JSHTMLCollectionCustom.cpp:
2117         (WebCore::toJS):
2118         * html/HTMLPropertiesCollection.idl:
2119
2120 2012-04-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
2121
2122         [Texmap] TextureMapperLayer uses intermediate surfaces too eagerly
2123         https://bugs.webkit.org/show_bug.cgi?id=85103
2124
2125         Reviewed by Kenneth Rohde Christiansen.
2126
2127         Instead of automatically using an intermediate surface for layers with opacity and
2128         children, we limit surface usage for layers with more than one child and for layers with
2129         one child and contents of its own.
2130
2131         This prevents us from using intermediate surfaces in cases where a single layer with
2132         opacity has a single descendant with content, in which case normal blending can be used.
2133
2134         Covered by existing compositing layout tests.
2135
2136         * platform/graphics/texmap/TextureMapperLayer.cpp:
2137         (WebCore):
2138         * platform/graphics/texmap/TextureMapperLayer.h:
2139
2140 2012-04-30  Yi Shen  <yi.4.shen@nokia.com>
2141
2142         Inserting a paragraph between quoted lines in editing/deleting/delete-4038408-fix.html doesn't work
2143         https://bugs.webkit.org/show_bug.cgi?id=78193
2144
2145         Reviewed by Ryosuke Niwa.
2146
2147         When pasting a copied portion of a blockquote with a newline at the end into an unquoted area,
2148         the newline is inserted after the blockquote since we don't want it also to be quoted. However,
2149         this behavior has also applied when we insert a paragraph between quoted lines, which is incorrect.
2150         To figure out the right place to insert a paragraph, we need providing more information to the
2151         InsertParagraphSeparatorCommand by introducing a boolean parameter "pasteBlockqutoeIntoUnquotedArea".
2152
2153         Tests: editing/inserting/insert-paragraph-separator-in-blockquote.html
2154                editing/pasteboard/paste-wrapped-blockquote-into-nonblockquote.html
2155
2156         * editing/CompositeEditCommand.cpp:
2157         (WebCore::CompositeEditCommand::insertParagraphSeparator):
2158         * editing/CompositeEditCommand.h:
2159         (CompositeEditCommand):
2160         * editing/InsertParagraphSeparatorCommand.cpp:
2161         (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand):
2162         (WebCore::InsertParagraphSeparatorCommand::doApply):
2163         * editing/InsertParagraphSeparatorCommand.h:
2164         (WebCore::InsertParagraphSeparatorCommand::create):
2165         (InsertParagraphSeparatorCommand):
2166         * editing/ReplaceSelectionCommand.cpp:
2167         (WebCore::ReplaceSelectionCommand::doApply):
2168
2169 2012-04-30  Antti Koivisto  <antti@apple.com>
2170
2171         Protect current element in HTMLLinkElement::setCSSStyleSheet
2172         https://bugs.webkit.org/show_bug.cgi?id=85166
2173
2174         Reviewed by Andreas Kling.
2175         
2176         Stylesheet loading can trigger script execution.
2177         
2178         Test: fast/css/cached-sheet-restore-crash.html
2179
2180         * html/HTMLLinkElement.cpp:
2181         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2182
2183 2012-04-29  Keishi Hattori  <keishi@webkit.org>
2184
2185         Build fix for LocalizedDateMac.mm
2186         https://bugs.webkit.org/show_bug.cgi?id=85164
2187
2188         Reviewed by Kent Tamura.
2189
2190         * platform/text/mac/LocalizedDateMac.mm:
2191         (WebCore::monthLabels):
2192
2193 2012-04-29  Luke Macpherson  <macpherson@chromium.org>
2194
2195         Initialize member variables in CSSParser's constructor.
2196         https://bugs.webkit.org/show_bug.cgi?id=84377
2197
2198         Reviewed by Kentaro Hara.
2199
2200         It is good practice not to leave member variables uninitialized. They make debugging more difficult by reducing
2201         repeatability, and in some cases lead to the possibility of information leakage occuring. This patch simply adds
2202         initialization of m_numParsedPropertiesBeforeMarginBox to CSSParser's constructor to INVALID_NUM_PARSED_PROPERTIES
2203         so that the initial state is the same as the state after the properties are cleared.
2204
2205         No tests added because this is a code style fix, not an actual bug so long as the bison generated code calls
2206         startDeclarationsForMarginBox() and endDeclarationsForMarginBox() symmetrically. The lack of initialization was
2207         originally detected by coverity.
2208
2209         * css/CSSParser.cpp:
2210         (WebCore::CSSParser::CSSParser):
2211
2212 2012-04-29  Kent Tamura  <tkent@chromium.org>
2213
2214         [Mac] Add LocalizedDateMac
2215         https://bugs.webkit.org/show_bug.cgi?id=85039
2216
2217         Reviewed by Kentaro Hara.
2218
2219         A date shown <input type=date> should be formatted for user's OS
2220         settings. Chromium-Mac used LocalizedDateICU.cpp to format/parse visible
2221         date strings and it didn't reflect user-settings.
2222
2223         Test: covered by fast/forms/date/date-appearance.html
2224
2225         * WebCore.gyp/WebCore.gyp:
2226         Use LocalizedDateMac.mm for OS X instead of LocalizedDateICU.cpp.
2227         * WebCore.gypi: Add LocalizedDateMac.mm
2228         * platform/text/mac/LocalizedDateMac.mm: Added.
2229         (WebCore::createShortDateFormatter):
2230         Creates a NSDateFormatter with desired settings.
2231         (WebCore::parseLocalizedDate): Impelment for tyep=date.
2232         (WebCore::formatLocalizedDate): ditto.
2233         (WebCore::isYearSymbol): A readability helper for format string parsing.
2234         (WebCore::isMonthSymbol): ditto.
2235         (WebCore::isDaySymbol): ditto.
2236         (WebCore::localizeDateFormat):
2237         Parse a format string, and replace symbols with user-friendly labels.
2238         (WebCore::localizedDateFormatText):
2239         Gets a format string, and apply localizeDateFormat().
2240         (WebCore::monthLabels): Obtain month names from the system.
2241         (WebCore::weekDayShortLabels): Obtain week day symbols from the system.
2242         (WebCore::firstDayOfWeek): Obtain first day of week from the system.
2243         * platform/text/ICULocale.cpp:
2244         (WebCore::createFallbackMonthLabels): Uses WTF::monthFullName.
2245
2246 2012-04-29  Sam Weinig  <sam@webkit.org>
2247
2248         Add support for the Blob constructor (Part 2)
2249         https://bugs.webkit.org/show_bug.cgi?id=84555
2250
2251         Address additional feedback on Blob construction.
2252         - Add exception when the dictionary is not an object.
2253         - Ensure the proper ordering of dictionary access. Tested via
2254           throwing exceptions in toString, and ensuring correct one is
2255           fired first.
2256         - Changed type of exception throw for invalid enumeration to a
2257           TypeError.
2258
2259         Reviewed by Kentaro Hara.
2260
2261         Updated fast/files/blob-constructor.html to be more comprehensive.
2262
2263         * bindings/js/JSBlobCustom.cpp:
2264         (WebCore::JSBlobConstructor::constructJSBlob):
2265         * bindings/v8/custom/V8BlobCustom.cpp:
2266         (WebCore::V8Blob::constructorCallback):
2267
2268 2012-04-29  No'am Rosenthal  <noam.rosenthal@nokia.com>
2269
2270         [Texmap] Leaves demo: wrong geometry when opacity animation kicks in
2271         https://bugs.webkit.org/show_bug.cgi?id=85096
2272
2273         Reviewed by Kenneth Rohde Christiansen.
2274
2275         We should use combined() instead of combinedForChildren() since we don't allow
2276         intermediate surfaces for preserves-3d. Also, we should apply the offset before
2277         multiplying the transforms, otherwise the transform-origin is incorrect.
2278
2279         Covered by existing compositing tests.
2280
2281         * platform/graphics/texmap/TextureMapperLayer.cpp:
2282         (WebCore::TextureMapperLayer::paintSelf):
2283         (WebCore::TextureMapperLayer::paintRecursive):
2284
2285 2012-04-29  Mark Pilgrim  <pilgrim@chromium.org>
2286
2287         [Chromium] Call highUsageDeltaMB directly
2288         https://bugs.webkit.org/show_bug.cgi?id=84844
2289
2290         Reviewed by Kentaro Hara.
2291
2292         Part of a refactoring series. See tracking bug 82948.
2293
2294         * bindings/v8/V8GCController.cpp:
2295         (WebCore::V8GCController::checkMemoryUsage):
2296         * platform/MemoryUsageSupport.cpp:
2297         (WebCore):
2298         (WebCore::MemoryUsageSupport::highUsageDeltaMB):
2299         * platform/MemoryUsageSupport.h:
2300         (MemoryUsageSupport):
2301         * platform/chromium/MemoryUsageSupportChromium.cpp:
2302         (WebCore::MemoryUsageSupport::highUsageDeltaMB):
2303         (WebCore):
2304         * platform/chromium/PlatformSupport.h:
2305         (PlatformSupport):
2306
2307 2012-04-29  Kentaro Hara  <haraken@chromium.org>
2308
2309         REGRESSION(r113086): onresize event handler can be deleted in popup window
2310         https://bugs.webkit.org/show_bug.cgi?id=84908
2311
2312         Reviewed by Ojan Vafai.
2313
2314         In a nutshell, an onresize event handler in the popup window
2315         can be non-deterministically deleted. For more details, please
2316         look at Chromium issue 123642:
2317         http://code.google.com/p/chromium/issues/detail?id=123642
2318
2319         I confirmed that this bug is the regression caused by r113086.
2320
2321         r113086 introduced the following code:
2322
2323         void V8LazyEventListener::prepareListenerObject(...) {
2324             if (hasExistingListenerObject())
2325                 return;
2326             ...;
2327             // Since we only parse once, there's no need to keep data
2328             // used for parsing around anymore.
2329             m_functionName = String();
2330             m_code = String();
2331             m_eventParameterName = String();
2332             m_sourceURL = String();
2333
2334             setListenerObject(wrappedFunction);
2335         }
2336
2337         This is not correct. The parsing can be done more than once,
2338         and thus we cannot clear data. This patch removes the above code.
2339
2340         Consider the following situation:
2341
2342         (1) Assume '<body onresize="f()"></body>'.
2343         (2) prepareListenerObject() runs.
2344         (3) Since this is the first parsing, hasExistingListenerObject()
2345         returns false. After the parsing, the listener object is set
2346         by setListenerObject().
2347         (4) GC runs. Since there is no strong reference to the listener
2348         object, weakEventListenerCallback() is called back, and the listener
2349         object is disposed.
2350         (5) A resize event is triggered.
2351         (6) prepareListenerObject() is called again. Since the listener object
2352         is already disposed, hasExistingListenerObject() returns false,
2353         and the second parsing starts.
2354
2355         In my investigation, the above situation is happening in the reported
2356         Chromium bug. Anyway, I am sure that potentially the parsing can be
2357         done more than once, and thus we must keep m_xxxx data.
2358
2359         However, this is just a temporary fix. We should fix the code so that
2360         an alive event listener object is never reclaimed.
2361         See https://bugs.webkit.org/show_bug.cgi?id=85152 for more details.
2362
2363         No tests: I tried hard to create a DRT test, but could not.
2364         The bug depends on the behavior of GC, and thus the reported bug is
2365         non-deterministic. For example, (as explained in the Chromium issue,)
2366         the bug does not happen if we load an HTML from network because
2367         the network latency hides the bug. Also the bug happens in the
2368         popup window only. If we open the reported HTML in the main window,
2369         we cannot reproduce the bug.
2370
2371         * bindings/v8/V8LazyEventListener.cpp:
2372         (WebCore::V8LazyEventListener::prepareListenerObject):
2373
2374 2012-04-28  Sam Weinig  <sam@webkit.org>
2375
2376         Smooth scrolling needs a new key
2377         <rdar://problem/11331632>
2378
2379         Reviewed by Geoffrey Garen.
2380
2381         * platform/mac/ScrollAnimatorMac.mm:
2382         (WebCore::scrollAnimationEnabledForSystem):
2383         (WebCore::ScrollAnimatorMac::scroll):
2384         Update for new key.
2385
2386 2012-04-28  Li Yin  <li.yin@intel.com>
2387
2388         MessagePort must set m_closed to be true at the end of MessagePort::close function
2389         https://bugs.webkit.org/show_bug.cgi?id=85139
2390
2391         In the function MessagePort::close, the "m_closed = true" must be executed at the end, not at the beginning.
2392         Or, the m_entangledChannel->close() will not be executed.
2393         And it resulted in the failure of MS bench mark messagechannel_close.htm.
2394         http://samples.msdn.microsoft.com/ietestcenter/WebWorkers/messagechannel_close.htm
2395
2396         Reviewed by Kentaro Hara.
2397
2398         Test: fast/events/message-port-close.html
2399
2400         * dom/MessagePort.cpp:
2401         (WebCore::MessagePort::close):
2402
2403 2012-04-28  Sam Weinig  <sam@webkit.org>
2404
2405         And again.
2406
2407         * bindings/v8/custom/V8BlobCustom.cpp:
2408         (WebCore::V8Blob::constructorCallback):
2409
2410 2012-04-28  Sam Weinig  <sam@webkit.org>
2411
2412         Once again, try to make these puppies work.
2413
2414         * bindings/v8/custom/V8BlobCustom.cpp:
2415
2416 2012-04-28  Sam Weinig  <sam@webkit.org>
2417
2418         Fix the Chromium build.
2419
2420         * bindings/v8/custom/V8BlobCustom.cpp:
2421         (WebCore::V8Blob::constructorCallback):
2422
2423 2012-04-27  Sam Weinig  <sam@webkit.org>
2424
2425         Add support for the Blob constructor
2426         https://bugs.webkit.org/show_bug.cgi?id=84555
2427
2428         Reviewed by Maciej Stachowiak.
2429
2430         Test: fast/files/blob-constructor.html
2431
2432         This adds an implementation of the Blob constructor that willfully
2433         violates the W3C Editor’s Draft 29 February 2012 in the following ways:
2434         - Elements in the parts array are coerced to DOMStrings https://www.w3.org/Bugs/Public/show_bug.cgi?id=16721 
2435         - Don't throw for invalid key in the dictionary https://www.w3.org/Bugs/Public/show_bug.cgi?id=16727
2436         - Values for the endings property are treated as enums https://www.w3.org/Bugs/Public/show_bug.cgi?id=16729 
2437
2438         * bindings/js/JSBlobCustom.cpp:
2439         (WebCore::JSBlobConstructor::constructJSBlob):
2440         Implement blob constructor.
2441
2442         * bindings/v8/custom/V8BlobCustom.cpp:
2443         (WebCore::V8Blob::constructorCallback):
2444         Implement blob constructor.
2445
2446         * fileapi/Blob.idl:
2447         Add constructor to IDL.
2448
2449         * workers/WorkerContext.idl:
2450         Add Blob constructor to the worker global object.
2451
2452 2012-04-28  Igor Oliveira  <igor.o@sisa.samsung.com>
2453
2454         Move PropertyWrapper out of the  AnimationBase
2455         https://bugs.webkit.org/show_bug.cgi?id=84978
2456
2457         Reviewed by Dean Jackson.
2458
2459         AnimationBase is a complex class. It has a state machine and a bunch of
2460         property handlers. This patch moves the property handlers to a separate
2461         class making AnimationBase simpler.
2462
2463         * CMakeLists.txt:
2464         * GNUmakefile.list.am:
2465         * Target.pri:
2466         * WebCore.gypi:
2467         * WebCore.vcproj/WebCore.vcproj:
2468         * WebCore.xcodeproj/project.pbxproj:
2469         * page/animation/AnimationBase.cpp:
2470         * page/animation/AnimationBase.h:
2471         (AnimationBase):
2472         * page/animation/AnimationController.cpp:
2473         (WebCore::AnimationController::supportsAcceleratedAnimationOfProperty):
2474         * page/animation/CSSPropertyAnimation.cpp: Added.
2475         (WebCore):
2476         (WebCore::blendFunc):
2477         (WebCore::crossfadeBlend):
2478         (AnimationPropertyWrapperBase):
2479         (WebCore::AnimationPropertyWrapperBase::AnimationPropertyWrapperBase):
2480         (WebCore::AnimationPropertyWrapperBase::~AnimationPropertyWrapperBase):
2481         (WebCore::AnimationPropertyWrapperBase::isShorthandWrapper):
2482         (WebCore::AnimationPropertyWrapperBase::property):
2483         (WebCore::AnimationPropertyWrapperBase::animationIsAccelerated):
2484         (WebCore::addPropertyWrapper):
2485         (WebCore::wrapperForProperty):
2486         (PropertyWrapperGetter):
2487         (WebCore::PropertyWrapperGetter::PropertyWrapperGetter):
2488         (WebCore::PropertyWrapperGetter::equals):
2489         (PropertyWrapper):
2490         (WebCore::PropertyWrapper::PropertyWrapper):
2491         (WebCore::PropertyWrapper::blend):
2492         (RefCountedPropertyWrapper):
2493         (WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
2494         (WebCore::RefCountedPropertyWrapper::blend):
2495         (StyleImagePropertyWrapper):
2496         (WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
2497         (WebCore::StyleImagePropertyWrapper::equals):
2498         (PropertyWrapperColor):
2499         (WebCore::PropertyWrapperColor::PropertyWrapperColor):
2500         (WebCore::PropertyWrapperColor::blend):
2501         (PropertyWrapperAcceleratedOpacity):
2502         (WebCore::PropertyWrapperAcceleratedOpacity::PropertyWrapperAcceleratedOpacity):
2503         (WebCore::PropertyWrapperAcceleratedOpacity::animationIsAccelerated):
2504         (WebCore::PropertyWrapperAcceleratedOpacity::blend):
2505         (PropertyWrapperAcceleratedTransform):
2506         (WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform):
2507         (WebCore::PropertyWrapperAcceleratedTransform::animationIsAccelerated):
2508         (WebCore::PropertyWrapperAcceleratedTransform::blend):
2509         (PropertyWrapperAcceleratedFilter):
2510         (WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter):
2511         (WebCore::PropertyWrapperAcceleratedFilter::animationIsAccelerated):
2512         (WebCore::PropertyWrapperAcceleratedFilter::blend):
2513         (WebCore::shadowListLength):
2514         (WebCore::shadowForBlending):
2515         (PropertyWrapperShadow):
2516         (WebCore::PropertyWrapperShadow::PropertyWrapperShadow):
2517         (WebCore::PropertyWrapperShadow::equals):
2518         (WebCore::PropertyWrapperShadow::blend):
2519         (WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists):
2520         (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
2521         (PropertyWrapperMaybeInvalidColor):
2522         (WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
2523         (WebCore::PropertyWrapperMaybeInvalidColor::equals):
2524         (WebCore::PropertyWrapperMaybeInvalidColor::blend):
2525         (PropertyWrapperVisitedAffectedColor):
2526         (WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
2527         (WebCore::PropertyWrapperVisitedAffectedColor::equals):
2528         (WebCore::PropertyWrapperVisitedAffectedColor::blend):
2529         (FillLayerAnimationPropertyWrapperBase):
2530         (WebCore::FillLayerAnimationPropertyWrapperBase::FillLayerAnimationPropertyWrapperBase):
2531         (WebCore::FillLayerAnimationPropertyWrapperBase::~FillLayerAnimationPropertyWrapperBase):
2532         (FillLayerPropertyWrapperGetter):
2533         (WebCore::FillLayerPropertyWrapperGetter::FillLayerPropertyWrapperGetter):
2534         (WebCore::FillLayerPropertyWrapperGetter::equals):
2535         (FillLayerPropertyWrapper):
2536         (WebCore::FillLayerPropertyWrapper::FillLayerPropertyWrapper):
2537         (WebCore::FillLayerPropertyWrapper::blend):
2538         (FillLayerRefCountedPropertyWrapper):
2539         (WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
2540         (WebCore::FillLayerRefCountedPropertyWrapper::blend):
2541         (FillLayerStyleImagePropertyWrapper):
2542         (WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):
2543         (WebCore::FillLayerStyleImagePropertyWrapper::equals):
2544         (FillLayersPropertyWrapper):
2545         (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
2546         (WebCore::FillLayersPropertyWrapper::equals):
2547         (WebCore::FillLayersPropertyWrapper::blend):
2548         (ShorthandPropertyWrapper):
2549         (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper):
2550         (WebCore::ShorthandPropertyWrapper::isShorthandWrapper):
2551         (WebCore::ShorthandPropertyWrapper::equals):
2552         (WebCore::ShorthandPropertyWrapper::blend):
2553         (WebCore::ShorthandPropertyWrapper::propertyWrappers):
2554         (PropertyWrapperFlex):
2555         (WebCore::PropertyWrapperFlex::PropertyWrapperFlex):
2556         (WebCore::PropertyWrapperFlex::equals):
2557         (WebCore::PropertyWrapperFlex::blend):
2558         (PropertyWrapperSVGPaint):
2559         (WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
2560         (WebCore::PropertyWrapperSVGPaint::equals):
2561         (WebCore::PropertyWrapperSVGPaint::blend):
2562         (WebCore::addShorthandProperties):
2563         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
2564         (WebCore::gatherEnclosingShorthandProperties):
2565         (WebCore::CSSPropertyAnimation::blendProperties):
2566         (WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
2567         (WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty):
2568         (WebCore::CSSPropertyAnimation::propertiesEqual):
2569         (WebCore::CSSPropertyAnimation::getPropertyAtIndex):
2570         (WebCore::CSSPropertyAnimation::getNumProperties):
2571         * page/animation/CSSPropertyAnimation.h: Added.
2572         (WebCore):
2573         (CSSPropertyAnimation):
2574         * page/animation/CompositeAnimation.cpp:
2575         (WebCore::CompositeAnimation::updateTransitions):
2576         (WebCore::CompositeAnimation::pauseTransitionAtTime):
2577         * page/animation/ImplicitAnimation.cpp:
2578         (WebCore::ImplicitAnimation::animate):
2579         (WebCore::ImplicitAnimation::getAnimatedStyle):
2580         (WebCore::ImplicitAnimation::isTargetPropertyEqual):
2581         (WebCore::ImplicitAnimation::blendPropertyValueInStyle):
2582         (WebCore::ImplicitAnimation::timeToNextService):
2583         * page/animation/KeyframeAnimation.cpp:
2584         (WebCore::KeyframeAnimation::animate):
2585         (WebCore::KeyframeAnimation::getAnimatedStyle):
2586         (WebCore::KeyframeAnimation::timeToNextService):
2587         * rendering/style/RenderStyle.h:
2588
2589 2012-04-28  Geoffrey Garen  <ggaren@apple.com>
2590
2591         Clarified JSGlobalData (JavaScript VM) lifetime
2592         https://bugs.webkit.org/show_bug.cgi?id=85142
2593
2594         Reviewed by Anders Carlsson.
2595
2596         * bindings/js/WorkerScriptController.cpp:
2597         (WebCore::WorkerScriptController::~WorkerScriptController): Slightly 
2598         simpler than before. We can't just rely on our default destructor 
2599         because we need to hold the JSLock when we tear down the VM.
2600
2601         * bridge/NP_jsobject.cpp:
2602         (_NPN_InvokeDefault):
2603         (_NPN_Invoke):
2604         (_NPN_Evaluate):
2605         (_NPN_Construct): Don't RefPtr<> the JSGlobalData because it makes it 
2606         seem like you know something the rest of our code doesn't know. The 
2607         plugin JSGlobalData is immortal, anyway.
2608
2609         I also removed some timeout checker related code because that feature 
2610         doesn't work anymore, so it was effectively dead code.
2611
2612 2012-04-28  Ilya Tikhonovsky  <loislo@chromium.org>
2613
2614         Web Inspector: InspectorFrontendHost.append has to be implemented for saving heap snapshots.
2615         https://bugs.webkit.org/show_bug.cgi?id=85137
2616
2617         We can save a file with help of InspectorFrontendHost.save method,
2618         but it is suitable only for relatively small portions of data and
2619         can't process the 6Gb heap snapshot.
2620         These methods just pass the url and content into embedder.
2621
2622         Reviewed by Yury Semikhatsky.
2623
2624         * inspector/InspectorFrontendClient.h:
2625         (InspectorFrontendClient):
2626         * inspector/InspectorFrontendClientLocal.h:
2627         (WebCore::InspectorFrontendClientLocal::append):
2628         * inspector/InspectorFrontendHost.cpp:
2629         (WebCore::InspectorFrontendHost::append):
2630         (WebCore):
2631         * inspector/InspectorFrontendHost.h:
2632         (InspectorFrontendHost):
2633         * inspector/InspectorFrontendHost.idl:
2634
2635 2012-04-28  No'am Rosenthal  <noam.rosenthal@nokia.com>
2636
2637         [Qt][Texmap] Error of cross-compiling webkit with Qt 4.8.1
2638         https://bugs.webkit.org/show_bug.cgi?id=84321
2639
2640         Speculative build-fix for Qt 4.8.
2641         Use QGLContext for Qt 4.x instead of the platform-specific context.
2642
2643         Reviewed by Simon Hausmann.
2644
2645         No new tests, build fix.
2646
2647         * platform/graphics/texmap/TextureMapperGL.cpp:
2648         (SharedGLData):
2649         (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
2650
2651 2012-04-28  No'am Rosenthal  <noam.rosenthal@nokia.com>
2652
2653         [Texmap] Falling leaves demo missing opacity fade out animation
2654         https://bugs.webkit.org/show_bug.cgi?id=83691
2655
2656         Reviewed by Martin Robinson.
2657
2658         The bug originated from clearing an intermediate surface with glClear while the scissor
2659         state was wrong.
2660         When using intermediate surfaces, maintain a clip-stack for each surface, rather than
2661         a single clip-stack for the whole scene. When a surface is bound, its clip stack should
2662         be applied.
2663
2664         Covered by existing compositing tests.
2665
2666         * platform/graphics/texmap/TextureMapperGL.cpp:
2667         (SharedGLData):
2668         (WebCore::TextureMapperGL::ClipStack::push):
2669         (WebCore):
2670         (WebCore::TextureMapperGL::ClipStack::pop):
2671         (WebCore::scissorClip):
2672         (WebCore::TextureMapperGL::ClipStack::apply):
2673         (WebCore::TextureMapperGL::clipStack):
2674         (WebCore::TextureMapperGL::beginPainting):
2675         (WebCore::TextureMapperGL::drawTexture):
2676         (WebCore::BitmapTextureGL::didReset):
2677         (WebCore::BitmapTextureGL::clearIfNeeded):
2678         (WebCore::BitmapTextureGL::createFboIfNeeded):
2679         (WebCore::BitmapTextureGL::bind):
2680         (WebCore::TextureMapperGL::bindDefaultSurface):
2681         (WebCore::TextureMapperGL::bindSurface):
2682         (WebCore::TextureMapperGL::beginScissorClip):
2683         (WebCore::TextureMapperGL::beginClip):
2684         (WebCore::TextureMapperGL::endClip):
2685         * platform/graphics/texmap/TextureMapperGL.h:
2686         (TextureMapperGL):
2687         (ClipState):
2688         (WebCore::TextureMapperGL::ClipState::ClipState):
2689         (ClipStack):
2690         (WebCore::TextureMapperGL::ClipStack::current):
2691         (WebCore::TextureMapperGL::ClipStack::clear):
2692         (BitmapTextureGL):
2693         (WebCore::BitmapTextureGL::BitmapTextureGL):
2694
2695 2012-04-26  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>
2696
2697         Move Length and CSS length computation to float
2698         https://bugs.webkit.org/show_bug.cgi?id=84801
2699
2700         Reviewed by Eric Seidel.
2701
2702         Change Length and CSS length computation to floating point. This gets us
2703         closer to the goal of supporting subpixel layout and improves precision
2704         for SVG which already uses floating point for its layout.
2705
2706         This change makes computedStyle return fractional values for pixel values
2707         if a fraction is specified. It also changes the result of computations
2708         where two or more values with fractional precision. Prior to this change
2709         the result of Length(2.9) + Length(2.9) would be 4 as each value would be
2710         floored. With this change the result is 5 as the addition is done with
2711         floating point precision and then the result will be floored. Once we
2712         enable subpixel layout the resulting value in this example would be 5.8.
2713
2714         Updated existing layout tests.
2715
2716         * css/CSSComputedStyleDeclaration.cpp:
2717         (WebCore::zoomAdjustedPixelValue):
2718         * css/CSSPrimitiveValue.cpp:
2719         (WebCore::CSSPrimitiveValue::computeLength):
2720         * css/CSSPrimitiveValue.h:
2721         (WebCore):
2722         (WebCore::roundForImpreciseConversion):
2723         Add specialized float version of roundForImpreciseConversion that matches
2724         the int versions rounding logic.
2725         
2726         If a value is sufficiently close to the next integer round it up to
2727         ensure that a style rule such as "width: 4.999px" evaluates to 5px
2728         instead of 4px. This is needed as, although Lengths are using floating
2729         point, the layout system still uses integer precision and floors the
2730         Length values.
2731         This will change once we move to FractionalLayoutUnits but for now this
2732         is needed to ensure compatibility with the existing system and tests.
2733         
2734         Without this specialized rounding logic we fail a handful of tests
2735         including acid3.
2736         
2737         * platform/Length.h:
2738         (WebCore::Length::value):
2739         (Length):
2740         (WebCore::Length::intValue):
2741         * rendering/RenderTableCell.cpp:
2742         (WebCore::RenderTableCell::styleOrColLogicalWidth):
2743
2744 2012-04-28  Alexander Pavlov  <apavlov@chromium.org>
2745
2746         Web Inspector: Enable touch events feature fails touch feature detection
2747         https://bugs.webkit.org/show_bug.cgi?id=84397
2748
2749         Whenever the touch emulation is enabled, Inspector adds a script to evaluate on load,
2750         that adds ontouch(start|end|move|cancel) properties to window.__proto__ and document.__proto__.
2751
2752         Reviewed by Pavel Feldman.
2753
2754         * inspector/front-end/DOMAgent.js:
2755         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
2756         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.scriptAddedCallback):
2757         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
2758         * inspector/front-end/inspector.js:
2759
2760 2012-04-28  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2761
2762         Web Inspector: Shortcuts screen UI polish
2763         https://bugs.webkit.org/show_bug.cgi?id=84708
2764
2765           1) remove inconsistent shadow;
2766           2) reduce border radius;
2767           3) vertically center the “X” button;
2768           4) replace unreadable symbolic shortcuts with text;
2769           5) gaps / colors / opacity adjustments;
2770           6) section-to-column distribution algorithm is replaced with a fair one.
2771
2772         Reviewed by Pavel Feldman.
2773
2774         This is a UI polising patch, so no new tests added.
2775
2776         * English.lproj/localizedStrings.js: added keyboars arrow keys items
2777         * inspector/front-end/KeyboardShortcut.js: replace unreadable symbolic shortcuts with text
2778         * inspector/front-end/ShortcutsScreen.js:
2779         (WebInspector.ShortcutsScreen):
2780         (WebInspector.ShortcutsScreen.prototype.show): remove redundant parameter
2781         (WebInspector.ShortcutsScreen.prototype._buildTable): change section distributing algorithm
2782         (WebInspector.ShortcutsSection.prototype.renderSection): render colon with margins
2783         (WebInspector.ShortcutsSection.prototype._renderHeader): apply classname to th elements
2784         * inspector/front-end/helpScreen.css:
2785         (.help-window-main): reduce radius, remove shadow; tune color and opacity
2786         (.help-window-caption): fix spacing; add ruler
2787         (.help-window-title): fix spacing; remove ruler
2788         (.help-content): fix spacing
2789         (.help-close-button): fix spacing; adjust background color
2790         (.help-column-table): fix spacing
2791         (.help-table > tr > th): fix color
2792         (.help-key): fix color
2793         (.help-combine-keys, .help-key-delimiter): extract common style
2794         (.help-combine-keys): remove dupe
2795         (.help-section-title): add space between sections
2796
2797 2012-04-28  Noel Gordon  <noel.gordon@gmail.com>
2798
2799         Remove PlatformTouchPointQt.cpp PlatformTouchEventQt.cpp from the gyp projects
2800         https://bugs.webkit.org/show_bug.cgi?id=85132
2801
2802         Unreviewed VS2010 gyp project generation fix.
2803
2804         PlatformTouchPointQt.cpp and PlatformTouchEventQt.cpp were removed in r115312,
2805         so remove them from the gyp projects.
2806
2807         * WebCore.gypi:
2808
2809 2012-04-28  Nikolas Zimmermann  <nzimmermann@rim.com>
2810
2811         <animateTransform type="scale"> should use '0' as effective from value not '1', if no base value is specified and from is not given
2812         https://bugs.webkit.org/show_bug.cgi?id=85133
2813
2814         It should start from scale=0. I had that fixed before, but it got lost during merging. Restore the fix.
2815         See bug 85051, for more context why this is correct.
2816
2817         Tests: svg/animations/animateTransform-by-scale-1-expected.svg
2818                svg/animations/animateTransform-by-scale-1.svg
2819
2820         * svg/SVGAnimatedTransformList.cpp:
2821         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
2822
2823 2012-04-28  Nikolas Zimmermann  <nzimmermann@rim.com>
2824
2825         SVGAnimateColorElement doesn't support by/to animations properly
2826         https://bugs.webkit.org/show_bug.cgi?id=36704
2827
2828         Reviewed by Antti Koivisto.
2829
2830         Switch AnimatedColorAnimator to use the standard animateAdditiveNumber() method, taking progress & repeatCount into account.
2831         This gives us accumulation/repeatCount support for free.
2832
2833         We just animate the four color components on their own now and clamp once at the end after addition/accumulation finished.
2834         Import <animateColor> tests from Dr. Olaf Hoffmanns SVG Animation test suite, which all pass now.
2835
2836         While I was at it, remove the includeSMILProperties boolean from computeCSSPropertyValue - we always use the computed style
2837         without SMIL effects included, whenever we want to retrieve the "base value", or handle "inherit/currentColor".
2838
2839         Tests: svg/animations/animateColor-additive-2a-expected.svg
2840                svg/animations/animateColor-additive-2a.svg
2841                svg/animations/animateColor-additive-2b-expected.svg
2842                svg/animations/animateColor-additive-2b.svg
2843                svg/animations/animateColor-additive-2c-expected.svg
2844                svg/animations/animateColor-additive-2c.svg
2845                svg/animations/animateColor-additive-2d-expected.svg
2846                svg/animations/animateColor-additive-2d.svg
2847
2848         * svg/ColorDistance.cpp:
2849         (WebCore::ColorDistance::clampColor):
2850         (WebCore::ColorDistance::addColors):
2851         (WebCore::ColorDistance::addToColor):
2852         * svg/ColorDistance.h:
2853         (ColorDistance):
2854         * svg/SVGAnimateElement.cpp:
2855         (WebCore::SVGAnimateElement::resetToBaseValue):
2856         * svg/SVGAnimatedColor.cpp:
2857         (WebCore::SVGAnimatedColorAnimator::addAnimatedTypes):
2858         (WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
2859         * svg/SVGAnimationElement.cpp:
2860         (WebCore::SVGAnimationElement::computeCSSPropertyValue):
2861         (WebCore::SVGAnimationElement::adjustForInheritance):
2862         * svg/SVGAnimationElement.h:
2863         (SVGAnimationElement):
2864
2865 2012-04-28  Nikolas Zimmermann  <nzimmermann@rim.com>
2866
2867         Not reviewed. Fix Qt build -- I was too quick.
2868
2869         * rendering/svg/SVGPathData.cpp: Add back Path.h include.
2870
2871 2012-04-28  Nikolas Zimmermann  <nzimmermann@rim.com>
2872
2873         Rename SVGPathParserFactory to SVGPathUtilities and remove the obsolete singleton
2874         https://bugs.webkit.org/show_bug.cgi?id=85129
2875
2876         SVGPathParserFactory implements the singleton pattern, but stores no members.
2877         Remove the singleton and move all functions to free-functions into SVGPathUtilities.h.
2878
2879         Makes the code easier to read - doesn't affect any tests.
2880
2881         * CMakeLists.txt:
2882         * GNUmakefile.list.am:
2883         * Target.pri:
2884         * WebCore.gypi:
2885         * WebCore.vcproj/WebCore.vcproj:
2886         * WebCore.xcodeproj/project.pbxproj:
2887         * rendering/svg/SVGPathData.cpp:
2888         (WebCore::updatePathFromPathElement):
2889         * rendering/svg/SVGRenderTreeAsText.cpp:
2890         (WebCore::operator<<):
2891         * svg/SVGAllInOne.cpp:
2892         * svg/SVGAnimateMotionElement.cpp:
2893         (WebCore::SVGAnimateMotionElement::parseAttribute):
2894         * svg/SVGAnimatedPath.cpp:
2895         (WebCore::SVGAnimatedPathAnimator::constructFromString):
2896         (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
2897         (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
2898         (WebCore::SVGAnimatedPathAnimator::addAnimatedTypes):
2899         (WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
2900         * svg/SVGAnimatedType.cpp:
2901         * svg/SVGGlyphElement.cpp:
2902         (WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
2903         * svg/SVGPathBlender.cpp: Fix typo s/;;/;/
2904         * svg/SVGPathElement.cpp:
2905         (WebCore::SVGPathElement::getTotalLength):
2906         (WebCore::SVGPathElement::getPointAtLength):
2907         (WebCore::SVGPathElement::getPathSegAtLength):
2908         (WebCore::SVGPathElement::parseAttribute):
2909         (WebCore::SVGPathElement::svgAttributeChanged):
2910         (WebCore::SVGPathElement::lookupOrCreateDWrapper):
2911         (WebCore::SVGPathElement::pathSegListChanged):
2912         * svg/SVGPathParserFactory.h: Removed.
2913         * svg/SVGPathSegList.cpp:
2914         (WebCore::SVGPathSegList::valueAsString):
2915         * svg/SVGPathUtilities.cpp: Renamed from Source/WebCore/svg/SVGPathParserFactory.cpp.
2916         (WebCore):
2917         (WebCore::globalSVGPathBuilder):
2918         (WebCore::globalSVGPathSegListBuilder):
2919         (WebCore::globalSVGPathByteStreamBuilder):
2920         (WebCore::globalSVGPathStringBuilder):
2921         (WebCore::globalSVGPathTraversalStateBuilder):
2922         (WebCore::globalSVGPathParser):
2923         (WebCore::globalSVGPathBlender):
2924         (WebCore::buildPathFromString):
2925         (WebCore::buildSVGPathByteStreamFromSVGPathSegList):
2926         (WebCore::buildPathFromByteStream):
2927         (WebCore::buildSVGPathSegListFromByteStream):
2928         (WebCore::buildStringFromByteStream):
2929         (WebCore::buildStringFromSVGPathSegList):
2930         (WebCore::buildSVGPathByteStreamFromString):
2931         (WebCore::buildAnimatedSVGPathByteStream):
2932         (WebCore::addToSVGPathByteStream):
2933         (WebCore::getSVGPathSegAtLengthFromSVGPathByteStream):
2934         (WebCore::getTotalLengthOfSVGPathByteStream):
2935         (WebCore::getPointAtLengthOfSVGPathByteStream):
2936         * svg/SVGPathUtilities.h: Added.
2937         (WebCore):
2938         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
2939         (WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange):
2940
2941 2012-04-28  Nikolas Zimmermann  <nzimmermann@rim.com>
2942
2943         Fix repetitions & by animation support for path animations
2944         https://bugs.webkit.org/show_bug.cgi?id=85071
2945
2946         Rubber-stamped by Antti Koivisto.
2947
2948         Cleanup SVGPathBlender, to make it more readable.
2949
2950         * svg/SVGPathBlender.cpp:
2951         (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
2952         (WebCore::SVGPathBlender::blendLineToVerticalSegment):
2953         (WebCore::SVGPathBlender::blendArcToSegment):
2954         (WebCore::SVGPathBlender::blendAnimatedPath):
2955
2956 2012-04-28  Yury Semikhatsky  <yurys@chromium.org>
2957
2958         Unreviewed. Qt build fix: added new exported symbols.
2959
2960         * WebCore.exp.in:
2961
2962 2012-04-28  Yury Semikhatsky  <yurys@chromium.org>
2963
2964         Unreviewed. Fix Qt minimal build after r115553.
2965
2966         * inspector/InspectorConsoleAgent.h:
2967
2968 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
2969
2970         Fix repetitions & by animation support for path animations
2971         https://bugs.webkit.org/show_bug.cgi?id=85071
2972
2973         Reviewed by Antti Koivisto.
2974
2975         Implement additive="sum" / by-animation support for path animations, eg.
2976         <path d="M 10 10 L 10 100 Z">
2977             <animate attributeName="d" begin="0s" dur="4s" by="M 0 0 L 90 0 Z"/>
2978         <path>
2979
2980         animates the d attribute to "M 10 10 L 100 100 0 Z".
2981
2982         Now only <animateColor> and <animateMotion> are left to be fixed, all other types are working as expected now in all additive/accumulate/from-by/by/from-to animations.
2983
2984         Tests: svg/animations/path-animation-expected.svg
2985                svg/animations/repeating-path-animation-expected.svg
2986                svg/animations/repeating-path-animation.svg
2987
2988         * svg/SVGAnimatedPath.cpp:
2989         (WebCore::SVGAnimatedPathAnimator::addAnimatedTypes): Implemented, to support by-animations, instead of falling back to to-animations.
2990         (WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue): Handle repetitions, accumulation & addition.
2991         * svg/SVGPathBlender.cpp: Allow empty from source everywhere, use default values if no from value is specified, needed for by-animations.
2992         (WebCore::SVGPathBlender::SVGPathBlender):
2993         (WebCore::SVGPathBlender::blendAnimatedDimensonalFloat):
2994         (WebCore::SVGPathBlender::blendAnimatedFloatPoint):
2995         (WebCore::SVGPathBlender::blendMoveToSegment):
2996         (WebCore::SVGPathBlender::blendLineToSegment):
2997         (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
2998         (WebCore::SVGPathBlender::blendLineToVerticalSegment):
2999         (WebCore::SVGPathBlender::blendCurveToCubicSegment):
3000         (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
3001         (WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
3002         (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
3003         (WebCore::SVGPathBlender::blendArcToSegment):
3004         (WebCore::SVGPathBlender::addAnimatedPath):
3005         (WebCore::SVGPathBlender::blendAnimatedPath):
3006         * svg/SVGPathBlender.h: Add new addAnimatedPath function.
3007         (SVGPathBlender):
3008         * svg/SVGPathByteStream.h:
3009         (SVGPathByteStream): Make SVGPathByteStreams copyable, needed for SVGAnimatedPathAnimator.
3010         (WebCore::SVGPathByteStream::size): Returns size of the SVGPathByteStream.
3011         * svg/SVGPathParserFactory.cpp:
3012         (WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream): Allow empty from streams, needed for by animations. 
3013         (WebCore::SVGPathParserFactory::addToSVGPathByteStream): Add 'byStream' 'repeatCount' times to 'toStream'. Both streams must match in size.
3014         * svg/SVGPathParserFactory.h: Add new addToSVGPathByteStream function.
3015         * svg/SVGPointList.cpp: Remove dead code.
3016         * svg/SVGPointList.h: Ditto.
3017         (SVGPointList):
3018
3019 2012-04-28  Nikolas Zimmermann  <nzimmermann@rim.com>
3020
3021         SVGAnimateMotion does not handle accumulation
3022         https://bugs.webkit.org/show_bug.cgi?id=18564
3023
3024         Reviewed by Antti Koivisto.
3025
3026         Implement accumulation for <animateMotion>. Add lots of new
3027         reftests, verifying additive/accumulate behavior is correct.
3028
3029         Tests: svg/animations/animateMotion-additive-1-expected.svg
3030                svg/animations/animateMotion-additive-1.svg
3031                svg/animations/animateMotion-additive-2a-expected.svg
3032                svg/animations/animateMotion-additive-2a.svg
3033                svg/animations/animateMotion-additive-2b-expected.svg
3034                svg/animations/animateMotion-additive-2b.svg
3035                svg/animations/animateMotion-additive-2c-expected.svg
3036                svg/animations/animateMotion-additive-2c.svg
3037                svg/animations/animateMotion-additive-2d-expected.svg
3038                svg/animations/animateMotion-additive-2d.svg
3039                svg/animations/mozilla/animateMotion-by-1-expected.svg
3040                svg/animations/mozilla/animateMotion-by-1.svg
3041                svg/animations/mozilla/animateMotion-from-to-1-expected.svg
3042                svg/animations/mozilla/animateMotion-from-to-1.svg
3043                svg/animations/mozilla/animateMotion-indefinite-to-1-expected.svg
3044                svg/animations/mozilla/animateMotion-indefinite-to-1.svg
3045                svg/animations/mozilla/animateMotion-indefinite-to-2-expected.svg
3046                svg/animations/mozilla/animateMotion-indefinite-to-2.svg
3047                svg/animations/mozilla/animateMotion-mpath-pathLength-1-expected.svg
3048                svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg
3049                svg/animations/mozilla/animateMotion-mpath-targetChange-1-expected.svg
3050                svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg
3051                svg/animations/mozilla/animateMotion-to-overridden-1-expected.svg
3052                svg/animations/mozilla/animateMotion-to-overridden-1.svg
3053
3054         * svg/SVGAnimateMotionElement.cpp:
3055         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
3056         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
3057         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
3058         * svg/SVGAnimateMotionElement.h:
3059
3060 2012-04-27  Yury Semikhatsky  <yurys@chromium.org>
3061
3062         ScriptStateProtectedPtr should not keep a strong reference to the context
3063         https://bugs.webkit.org/show_bug.cgi?id=85009
3064
3065         Delete console message arguments when DOMWindow where the messages were created
3066         is reset on its frame.
3067
3068         Reviewed by Pavel Feldman.
3069
3070         Test: http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html
3071
3072         * inspector/ConsoleMessage.cpp:
3073         (WebCore::ConsoleMessage::addToFrontend):
3074         (WebCore::ConsoleMessage::windowCleared):
3075         (WebCore::ConsoleMessage::argumentCount):
3076         (WebCore):
3077         * inspector/ConsoleMessage.h:
3078         (ConsoleMessage):
3079         * inspector/InspectorConsoleAgent.cpp:
3080         (WebCore::InspectorConsoleAgent::consoleMessageArgumentCounts):
3081         (WebCore):
3082         * inspector/InspectorConsoleAgent.h:
3083         (InspectorConsoleAgent):
3084         * page/Frame.cpp:
3085         (WebCore::Frame::clearDOMWindow):
3086         (WebCore::Frame::setDOMWindow):
3087         * testing/Internals.cpp:
3088         (WebCore):
3089         (WebCore::Internals::consoleMessageArgumentCounts):
3090         * testing/Internals.h:
3091         (Internals):
3092         * testing/Internals.idl:
3093
3094 2012-04-27  Jochen Eisinger  <jochen@chromium.org>
3095
3096         Ensure that there's always a provisional document loader if the frame loader is in provisional state
3097         https://bugs.webkit.org/show_bug.cgi?id=83894
3098
3099         Reviewed by Nate Chapin.
3100
3101         We're still seeing crashes in the FrameLoader where the FrameLoader's
3102         state is "provisional" but there is no provisional document loader. I
3103         added code to update the FrameLoader's state everytime the provisional
3104         document loader is cleared, and added checks that the FrameLoader's
3105         state can't be set to provisional without a provisional loader.
3106
3107         If the crashes go away, or the newly added checks reveal the culprit,
3108         we should relex the checks to use ASSERT() instead of CRASH().
3109
3110         * loader/FrameLoader.cpp:
3111         (WebCore::FrameLoader::init):
3112         (WebCore::FrameLoader::setupForReplace):
3113         (WebCore::FrameLoader::stopAllLoaders):
3114         (WebCore::FrameLoader::clearProvisionalLoad):
3115         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
3116         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
3117
3118 2012-04-27  Geoffrey Garen  <ggaren@apple.com>
3119
3120         Try to fix the Qt build.
3121
3122         * bridge/qt/qt_runtime.cpp:
3123         (JSC::Bindings::QtRuntimeMethod::finishCreation):
3124
3125 2012-04-27  Geoffrey Garen  <ggaren@apple.com>
3126
3127         Made WeakSet::allocate() static and removed its JSGlobalData argument
3128         https://bugs.webkit.org/show_bug.cgi?id=85128
3129
3130         Reviewed by Anders Carlsson.
3131
3132         Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.
3133
3134         * bindings/js/JSDOMBinding.cpp:
3135         (WebCore::jsStringSlowCase):
3136         * bindings/js/JSEventListener.h:
3137         (WebCore::JSEventListener::setWrapper):
3138         * bindings/js/JSNodeFilterCondition.cpp:
3139         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
3140         * bindings/js/ScriptWrappable.h:
3141         (WebCore::ScriptWrappable::setWrapper):
3142         * bridge/jsc/BridgeJSC.cpp:
3143         (JSC::Bindings::Instance::createRuntimeObject):
3144         * bridge/qt/qt_runtime.cpp:
3145         (JSC::Bindings::QtRuntimeMethod::finishCreation):
3146         * bridge/runtime_root.cpp:
3147         (JSC::Bindings::RootObject::addRuntimeObject):
3148
3149 2012-04-27  Mark Rowe  <mrowe@apple.com>
3150
3151         <rdar://problem/11313710> Leaks under WebCore::CSSImageSetValue::cachedImageSet when running tests
3152
3153         There was a reference cycle between CSSImageSetValue and StyleCachedImageSet via
3154         CSSImageSetValue::m_imageSet / StyleCachedImageSet::m_imageSetValue. Break the cycle
3155         by having StyleCachedImageSet hold a weak reference to the CSSImageSetValue rather
3156         than a strong reference.
3157
3158         Reviewed by Geoff Garen.
3159
3160         * rendering/style/StyleCachedImageSet.cpp:
3161         (WebCore::StyleCachedImageSet::StyleCachedImageSet):
3162         * rendering/style/StyleCachedImageSet.h:
3163         (StyleCachedImageSet):
3164
3165 2012-04-27  Mark Rowe  <mrowe@apple.com>
3166
3167         <rdar://problem/10346980> REGRESSION: Cannot enter text in Dashboard widget fields that have placeholder attribute
3168
3169         Remove a dashboard backwards compatibility quirk that was in place to support an old version
3170         of the Stocks widget. It prevented the pointer-events property from being applied in Dashboard
3171         widgets, which caused -webkit-input-placeholder elements to eat mouse clicks rather than giving
3172         focus to the containing input elements. The offending widget has long since been fixed.
3173
3174         Reviewed by Dan Bernstein.
3175
3176         * css/StyleResolver.cpp:
3177         (WebCore::StyleResolver::collectMatchingRulesForList):
3178
3179 2012-04-27  Dean Jackson  <dino@apple.com>
3180
3181         Support reverse and alternate-reverse in CA animations
3182         https://bugs.webkit.org/show_bug.cgi?id=78041
3183
3184         Reviewed by Beth Dakin.
3185
3186         CoreAnimation does not natively support reverse and alternate-reverse
3187         animation directions so we need to flip the animation values (keyframe
3188         keys and timing functions) that we send to GraphicsLayerCA. Unfortunately
3189         this code adds a lot of conditionals because it isn't as simple as
3190         reversing the order of keys. You also now have a different alignment of
3191         timing functions to the reversed list.
3192
3193         New tests to cover the two new directions, making sure the timing
3194         functions are correctly inverted, and exercising fill modes.
3195
3196         Tests: animations/animation-direction-reverse-fill-mode-hardware.html
3197                animations/animation-direction-reverse-fill-mode.html
3198                animations/animation-direction-reverse-hardware-opacity.html
3199                animations/animation-direction-reverse-hardware.html
3200                animations/animation-direction-reverse-non-hardware.html
3201                animations/animation-direction-reverse-timing-functions-hardware.html
3202                animations/animation-direction-reverse-timing-functions.html
3203
3204         * platform/graphics/ca/GraphicsLayerCA.cpp:
3205           Handle the previously unsupported animation directions, reversing
3206           the list of values and keytimes that would be used to create
3207           the CA Animation.
3208         (WebCore::GraphicsLayerCA::addAnimation):
3209           Do not create an animation if on Windows and using a reverse
3210           direction.
3211         (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
3212         (WebCore::GraphicsLayerCA::setupAnimation):
3213         (WebCore::GraphicsLayerCA::setAnimationEndpoints):
3214         (WebCore::GraphicsLayerCA::setAnimationKeyframes):
3215         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
3216         (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
3217         (WebCore::GraphicsLayerCA::setFilterAnimationEndpoints):
3218         (WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):
3219         * platform/graphics/ca/PlatformCAAnimation.h:
3220         (PlatformCAAnimation): Pass through a flag that tells the CA Animation
3221         that it should invert the timing functions.
3222         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
3223         (toCAMediaTimingFunction): Add a parameter that will invert the timing
3224         function coefficients if necessary.
3225         (PlatformCAAnimation::setTimingFunction):
3226         (PlatformCAAnimation::setTimingFunctions):
3227         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
3228         (toCACFTimingFunction):
3229           New unused parameter.
3230
3231 2012-04-27  Sheriff Bot  <webkit.review.bot@gmail.com>
3232
3233         Unreviewed, rolling out r115407.
3234         http://trac.webkit.org/changeset/115407
3235         https://bugs.webkit.org/show_bug.cgi?id=85126
3236
3237         Caused heap use after free (Requested by keishi_ on #webkit).
3238
3239         * html/HTMLFormControlElement.cpp:
3240         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
3241         (WebCore::HTMLFormControlElement::updateFieldSetAndLegendAncestor):
3242         (WebCore::HTMLFormControlElement::insertedInto):
3243         (WebCore::HTMLFormControlElement::removedFrom):
3244         (WebCore::HTMLFormControlElement::disabled):
3245         (WebCore::HTMLFormControlElement::recalcWillValidate):
3246         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
3247         * html/HTMLFormControlElement.h:
3248         (HTMLFormControlElement):
3249
3250 2012-04-27  Kentaro Hara  <haraken@chromium.org>
3251
3252         [JSC] Implement a helper method createNotEnoughArgumentsError()
3253         https://bugs.webkit.org/show_bug.cgi?id=85102
3254
3255         Reviewed by Geoffrey Garen.
3256
3257         In bug 84787, kbr@ requested to avoid hard-coding
3258         createTypeError(exec, "Not enough arguments") here and there.
3259         This patch implements createNotEnoughArgumentsError(exec)
3260         and uses it in JSC bindings.
3261
3262         c.f. a corresponding bug for V8 bindings is bug 85097.
3263
3264         Test: bindings/scripts/test/TestObj.idl
3265
3266         * bindings/scripts/CodeGeneratorJS.pm: Modified as described above.
3267         (GenerateArgumentsCountCheck):
3268
3269         * bindings/js/JSDataViewCustom.cpp: Ditto.
3270         (WebCore::getDataViewMember):
3271         (WebCore::setDataViewMember):
3272         * bindings/js/JSDeprecatedPeerConnectionCustom.cpp:
3273         (WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):
3274         * bindings/js/JSDirectoryEntryCustom.cpp:
3275         (WebCore::JSDirectoryEntry::getFile):
3276         (WebCore::JSDirectoryEntry::getDirectory):
3277         * bindings/js/JSSharedWorkerCustom.cpp:
3278         (WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
3279         * bindings/js/JSWebKitMutationObserverCustom.cpp:
3280         (WebCore::JSWebKitMutationObserverConstructor::constructJSWebKitMutationObserver):
3281         (WebCore::JSWebKitMutationObserver::observe):
3282         * bindings/js/JSWorkerCustom.cpp:
3283         (WebCore::JSWorkerConstructor::constructJSWorker):
3284
3285         * bindings/scripts/test/JS/JSFloat64Array.cpp: Updated run-bindings-tests.
3286         (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
3287         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3288         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
3289         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
3290         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3291         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
3292         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3293         (WebCore::jsTestEventTargetPrototypeFunctionItem):
3294         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
3295         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
3296         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
3297         * bindings/scripts/test/JS/JSTestInterface.cpp:
3298         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
3299         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
3300         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3301         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
3302         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
3303         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
3304         * bindings/scripts/test/JS/JSTestObj.cpp:
3305         (WebCore::JSTestObjConstructor::constructJSTestObj):
3306         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
3307         (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
3308         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
3309         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
3310         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
3311         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
3312         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
3313         (WebCore::jsTestObjPrototypeFunctionIdbKey):
3314         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
3315         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
3316         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
3317         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
3318         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
3319         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
3320         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
3321         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
3322         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
3323         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
3324         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
3325         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
3326         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
3327         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
3328         (WebCore::jsTestObjConstructorFunctionClassMethod2):
3329         (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
3330         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
3331         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongArray):
3332         (WebCore::jsTestObjPrototypeFunctionConvert1):
3333         (WebCore::jsTestObjPrototypeFunctionConvert2):
3334         (WebCore::jsTestObjPrototypeFunctionConvert3):
3335         (WebCore::jsTestObjPrototypeFunctionConvert4):
3336         (WebCore::jsTestObjPrototypeFunctionConvert5):
3337         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
3338         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3339         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
3340         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
3341
3342 2012-04-27  Mark Pilgrim  <pilgrim@chromium.org>
3343
3344         [Chromium] Call highMemoryUsageMB directly
3345         https://bugs.webkit.org/show_bug.cgi?id=84841
3346
3347         Reviewed by Kentaro Hara.
3348
3349         Part of a refactoring series. See tracking bug 82948.
3350
3351         * bindings/v8/V8GCController.cpp:
3352         (WebCore::V8GCController::checkMemoryUsage):
3353         * platform/MemoryUsageSupport.cpp:
3354         (WebCore::MemoryUsageSupport::highMemoryUsageMB):
3355         (WebCore):
3356         * platform/MemoryUsageSupport.h:
3357         (MemoryUsageSupport):
3358         * platform/chromium/MemoryUsageSupportChromium.cpp:
3359         (WebCore::MemoryUsageSupport::highMemoryUsageMB):
3360         (WebCore):
3361         * platform/chromium/PlatformSupport.h:
3362         (PlatformSupport):
3363
3364 2012-04-27  Geoffrey Garen  <ggaren@apple.com>
3365
3366         Only allow non-null pointers in the WeakSet
3367         https://bugs.webkit.org/show_bug.cgi?id=85119
3368
3369         Reviewed by Darin Adler.
3370
3371         * bridge/jsc/BridgeJSC.cpp:
3372         (JSC::Bindings::Instance::Instance): Don't allocate a WeakImpl just to
3373         store null. This was needless, and is now a compile error. Instead,
3374         rely on the default constructor, which will produce a cheap null.
3375
3376 2012-04-27  Kentaro Hara  <haraken@chromium.org>
3377
3378         "Not enough arguments" error should be TypeError
3379         https://bugs.webkit.org/show_bug.cgi?id=84628
3380
3381         Reviewed by Darin Adler.
3382
3383         Currently, some custom bindings implement "Not enough arguments"
3384         error as SyntaxError. The Web IDL spec requires that it should be
3385         TypeError: http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
3386         Thus, this patch changes SyntaxError to TypeError.
3387
3388         Tests: http/tests/websocket/tests/hixie76/url-parsing.html:
3389                http/tests/websocket/tests/hybi/url-parsing.html:
3390                http/tests/xmlhttprequest/exceptions.html:
3391                svg/dom/SVGLength.html:
3392                webaudio/audionode.html:
3393
3394         * bindings/js/JSAudioContextCustom.cpp:
3395         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
3396         * bindings/js/JSSVGLengthCustom.cpp:
3397         (WebCore::JSSVGLength::convertToSpecifiedUnits):
3398         * bindings/js/JSWebSocketCustom.cpp:
3399         (WebCore::JSWebSocketConstructor::constructJSWebSocket):
3400         (WebCore::JSWebSocket::send):
3401         * bindings/js/JSXMLHttpRequestCustom.cpp:
3402         (WebCore::JSXMLHttpRequest::open):
3403         * bindings/v8/custom/V8AudioContextCustom.cpp:
3404         (WebCore::V8AudioContext::constructorCallback):
3405         * bindings/v8/custom/V8SVGLengthCustom.cpp:
3406         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
3407         * bindings/v8/custom/V8WebSocketCustom.cpp:
3408         (WebCore::V8WebSocket::constructorCallback):
3409         (WebCore::V8WebSocket::sendCallback):
3410         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3411         (WebCore::V8XMLHttpRequest::openCallback):
3412
3413 2012-04-27  Kenneth Russell  <kbr@google.com>
3414
3415         Remove SHADER_COMPILER constant
3416         https://bugs.webkit.org/show_bug.cgi?id=85115
3417
3418         Reviewed by Darin Adler.
3419
3420         Removed constant which was previously removed from spec. Updated
3421         layout test and expected results.
3422
3423         * html/canvas/WebGLRenderingContext.idl:
3424
3425 2012-04-27  Arvid Nilsson  <anilsson@rim.com>
3426
3427         [BlackBerry] Fixed background is scrolling in http://www.nieuwecode.nl
3428         https://bugs.webkit.org/show_bug.cgi?id=85109
3429
3430         Reviewed by Antonio Gomes.
3431
3432         Since the BlackBerry port uses very similar fixed position acceleration
3433         as the Qt WebKit2 port, the same fix that worked for them in bug 83980
3434         works for us.
3435
3436         Fixed by opting in to the FIXED_POSITION_CREATES_STACKING_CONTEXT
3437         mechanism.
3438
3439         Covered by existing manual test fixed-position-no-z-index.html.
3440
3441         * css/StyleResolver.cpp:
3442
3443 2012-04-27  Nat Duca  <nduca@chromium.org>
3444
3445         Expose high-resolution on requestAnimationFrame callback
3446         https://bugs.webkit.org/show_bug.cgi?id=66683
3447
3448         This changes requestAnimationFrame's animationStartTime argument
3449         to be a high resolution DOM timestamp, per disucssion here:
3450         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
3451
3452         Reviewed by James Robinson.
3453
3454         Covered by existing requestAnimationFrame tests.
3455
3456         * dom/Document.cpp:
3457         (WebCore::Document::serviceScriptedAnimations):
3458         * dom/Document.h:
3459         (Document):
3460         * dom/ScriptedAnimationController.cpp:
3461         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
3462         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
3463         (WebCore):
3464         (WebCore::ScriptedAnimationController::windowScreenDidChange):
3465         (WebCore::ScriptedAnimationController::scheduleAnimation):
3466         (WebCore::ScriptedAnimationController::animationTimerFired):
3467         (WebCore::ScriptedAnimationController::displayRefreshFired):
3468         * dom/ScriptedAnimationController.h:
3469         (ScriptedAnimationController):
3470         * page/FrameView.cpp:
3471         (WebCore::FrameView::serviceScriptedAnimations):
3472         * page/FrameView.h:
3473         (FrameView):
3474         * platform/graphics/DisplayRefreshMonitor.cpp:
3475         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
3476         (WebCore::DisplayRefreshMonitor::notifyClients):
3477         * platform/graphics/DisplayRefreshMonitor.h:
3478         (DisplayRefreshMonitor):
3479         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
3480         (WebCore::DisplayRefreshMonitor::displayLinkFired):
3481         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
3482         (WebCore):
3483         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
3484         (WebCore::DisplayRefreshMonitor::displayLinkFired):
3485
3486 2012-04-27  Kentaro Hara  <haraken@chromium.org>
3487
3488         [V8] Implement a helper method V8Proxy::throwNotEnoughArgumentsError()
3489         https://bugs.webkit.org/show_bug.cgi?id=85097
3490
3491         Reviewed by Kenneth Russell.
3492
3493         In bug 84787, kbr requested to avoid hard-coding
3494         throwError("Not enough arguments", V8Proxy::TypeError) here and there.
3495         This patch implements V8Proxy::throwNotEnoughArgumentsError()
3496         and uses it in V8 bindings.
3497
3498         No tests. No change in behavior.
3499
3500         * bindings/scripts/CodeGeneratorV8.pm:
3501         (GenerateArgumentsCountCheck):
3502         (GenerateEventConstructorCallback):
3503         * bindings/v8/V8Proxy.cpp:
3504         (WebCore::V8Proxy::throwNotEnoughArgmentsError):
3505         (WebCore):
3506         * bindings/v8/V8Proxy.h:
3507         (V8Proxy):
3508         * bindings/v8/custom/V8DataViewCustom.cpp:
3509         (WebCore::V8DataView::getInt8Callback):
3510         (WebCore::V8DataView::getUint8Callback):
3511         (WebCore::V8DataView::setInt8Callback):
3512         (WebCore::V8DataView::setUint8Callback):
3513         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
3514         (WebCore::V8DirectoryEntry::getDirectoryCallback):
3515         (WebCore::V8DirectoryEntry::getFileCallback):
3516         * bindings/v8/custom/V8IntentConstructor.cpp:
3517         (WebCore::V8Intent::constructorCallback):
3518         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
3519         (WebCore::V8WebKitMutationObserver::constructorCallback):
3520         (WebCore::V8WebKitMutationObserver::observeCallback):
3521
3522         Test: bindings/scripts/test/TestObj.idl
3523
3524         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
3525         (GenerateArgumentsCountCheck):
3526         (GenerateEventConstructorCallback):
3527
3528         * bindings/v8/V8Proxy.cpp: Ditto.
3529         (WebCore::V8Proxy::throwNotEnoughArgumentsError):
3530         (WebCore):
3531         * bindings/v8/V8Proxy.h:
3532         (V8Proxy):
3533         * bindings/v8/custom/V8DataViewCustom.cpp:
3534         (WebCore::V8DataView::getInt8Callback):
3535         (WebCore::V8DataView::getUint8Callback):
3536         (WebCore::V8DataView::setInt8Callback):
3537         (WebCore::V8DataView::setUint8Callback):
3538         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
3539         (WebCore::V8DirectoryEntry::getDirectoryCallback):
3540         (WebCore::V8DirectoryEntry::getFileCallback):
3541         * bindings/v8/custom/V8IntentConstructor.cpp:
3542         (WebCore::V8Intent::constructorCallback):
3543         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
3544         (WebCore::V8WebKitMutationObserver::constructorCallback):
3545         (WebCore::V8WebKitMutationObserver::observeCallback):
3546
3547         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.
3548         (WebCore::Float64ArrayV8Internal::fooCallback):
3549         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3550         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
3551         (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
3552         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3553         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
3554         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3555         (WebCore::V8TestEventConstructor::constructorCallback):
3556         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3557         (WebCore::TestEventTargetV8Internal::itemCallback):
3558         (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
3559         * bindings/scripts/test/V8/V8TestInterface.cpp:
3560         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
3561         (WebCore::V8TestInterface::constructorCallback):
3562         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3563         (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
3564         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3565         (WebCore::V8TestNamedConstructorConstructorCallback):
3566         * bindings/scripts/test/V8/V8TestObj.cpp:
3567         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
3568         (WebCore::TestObjV8Internal::intMethodWithArgsCallback):
3569         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
3570         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
3571         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
3572         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
3573         (WebCore::TestObjV8Internal::serializedValueCallback):
3574         (WebCore::TestObjV8Internal::idbKeyCallback):
3575         (WebCore::TestObjV8Internal::optionsObjectCallback):
3576         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
3577         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
3578         (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
3579         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
3580         (WebCore::TestObjV8Internal::overloadedMethod1Callback):
3581         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
3582         (WebCore::TestObjV8Internal::overloadedMethod3Callback):
3583         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
3584         (WebCore::TestObjV8Internal::overloadedMethod5Callback):
3585         (WebCore::TestObjV8Internal::overloadedMethod6Callback):
3586         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
3587         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
3588         (WebCore::TestObjV8Internal::overloadedMethod12Callback):
3589         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
3590         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
3591         (WebCore::TestObjV8Internal::convert1Callback):
3592         (WebCore::TestObjV8Internal::convert2Callback):
3593         (WebCore::TestObjV8Internal::convert3Callback):
3594         (WebCore::TestObjV8Internal::convert4Callback):
3595         (WebCore::TestObjV8Internal::convert5Callback):
3596         (WebCore::TestObjV8Internal::strictFunctionCallback):
3597         (WebCore::V8TestObj::constructorCallback):
3598         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3599         (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
3600         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
3601
3602 2012-04-27  Mark Pilgrim  <pilgrim@chromium.org>
3603
3604         [Chromium] Call lowMemoryUsageMB directly
3605         https://bugs.webkit.org/show_bug.cgi?id=84840
3606
3607         Reviewed by Kentaro Hara.
3608
3609         Part of a refactoring series. See tracking bug 82948.
3610
3611         * bindings/v8/V8GCController.cpp:
3612         (WebCore::V8GCController::checkMemoryUsage):
3613         * platform/MemoryUsageSupport.cpp:
3614         (WebCore::MemoryUsageSupport::lowMemoryUsageMB):
3615         (WebCore):
3616         * platform/MemoryUsageSupport.h:
3617         (MemoryUsageSupport):
3618         * platform/chromium/MemoryUsageSupportChromium.cpp:
3619         (WebCore::MemoryUsageSupport::lowMemoryUsageMB):
3620         (WebCore):
3621         * platform/chromium/PlatformSupport.h:
3622         (PlatformSupport):
3623
3624 2012-04-27  Yi Shen  <yi.4.shen@nokia.com>
3625
3626         REGRESSION(113723): Pressing enter in this list example deletes the whole list
3627         https://bugs.webkit.org/show_bug.cgi?id=85016
3628
3629         Reviewed by Enrica Casucci.
3630
3631         The bug was caused by CompositeEditCommand::breakOutOfEmptyListItem, which calls isListItem
3632         on the empty list's siblings to decide which part of the list should get removed. However,
3633         the check fails when the empty list's sibling is a text node, or a list element (e.g. ul, ol).
3634         Fixed it by skipping empty list's non-element sibling and calling isListElement to do further
3635         check.
3636
3637         Test: added new test cases in the existing test (break-out-of-empty-list-item.html)
3638
3639         * editing/CompositeEditCommand.cpp:
3640         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
3641
3642 2012-04-27  Ian Vollick  <vollick@chromium.org>
3643
3644         [chromium] Add pause and resume support for accelerated css animations.
3645         https://bugs.webkit.org/show_bug.cgi?id=84601
3646
3647         Reviewed by James Robinson.
3648
3649         Tested in:
3650         CCLayerAnimationControllerTest.syncPauseResume
3651         CCActiveAnimationTest.TrimTimeTimeOffset
3652         CCActiveAnimationTest.TrimTimeSuspendResume
3653         CCActiveAnimationTest.IsFinishedNeedsSynchronizedStartTime
3654         CCActiveAnimationTest.RunStateChangesIgnoredWhileSuspended
3655
3656         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3657         (WebCore::GraphicsLayerChromium::suspendAnimations):
3658         (WebCore::GraphicsLayerChromium::resumeAnimations):
3659         * platform/graphics/chromium/GraphicsLayerChromium.h:
3660         (GraphicsLayerChromium):
3661         * platform/graphics/chromium/LayerChromium.cpp:
3662         (WebCore::LayerChromium::suspendAnimations):
3663         (WebCore::LayerChromium::resumeAnimations):
3664         * platform/graphics/chromium/LayerChromium.h:
3665         (LayerChromium):
3666         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
3667         (WebCore::CCActiveAnimation::CCActiveAnimation):
3668         (WebCore::CCActiveAnimation::setRunState):
3669         (WebCore::CCActiveAnimation::suspend):
3670         (WebCore::CCActiveAnimation::resume):
3671         (WebCore::CCActiveAnimation::isFinishedAt):
3672         (WebCore::CCActiveAnimation::trimTimeToCurrentIteration):
3673         (WebCore::CCActiveAnimation::cloneForImplThread):
3674         (WebCore::CCActiveAnimation::pushPropertiesTo):
3675         * platform/graphics/chromium/cc/CCActiveAnimation.h:
3676         (CCActiveAnimation):
3677         (WebCore::CCActiveAnimation::setStartTime):
3678         (WebCore::CCActiveAnimation::timeOffset):
3679         (WebCore::CCActiveAnimation::setTimeOffset):
3680         (WebCore::CCActiveAnimation::isFinished):
3681         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3682         (WebCore::CCLayerAnimationController::addAnimation):
3683         (WebCore::CCLayerAnimationController::pauseAnimation):
3684         (WebCore::CCLayerAnimationController::suspendAnimations):
3685         (WebCore::CCLayerAnimationController::resumeAnimations):
3686         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
3687         (WebCore::CCLayerAnimationController::getActiveAnimation):
3688         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
3689         (WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
3690         (WebCore::CCLayerAnimationController::pushPropertiesToImplThread):
3691         (WebCore):
3692         (WebCore::CCLayerAnimationController::tickAnimations):
3693         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
3694         (CCLayerAnimationController):
3695
3696 2012-04-27  Tim Horton  <timothy_horton@apple.com>
3697
3698         SMIL animation causes leak of the related Document (and many elements)
3699         https://bugs.webkit.org/show_bug.cgi?id=83856
3700         <rdar://problem/11216047>
3701
3702         Reviewed by Dean Jackson.
3703
3704         The SVGAnimatedProperty cache was previously holding a reference to the properties it contained;
3705         said references were cleared in the SVGAnimatedProperty destructor (which was never called because
3706         there was always one remaining reference from the cache).
3707
3708         The SVGAnimatedProperty cache now holds raw pointers instead of RefPtrs; the SVGAnimateElement now
3709         owns its own SVGAnimatedProperties, both for itself and for any <use/> instances of itself. They're
3710         cleared and destroyed within SVGAnimateElement::targetElementWillChange, at which time they're removed
3711         from the cache.
3712
3713         SVGPropertyTearOffs now keep a reference to their SVGElement (m_contextElement) instead of their SVGAnimatedProperty;
3714         this way, there is no reference cycle, but the animated property (owned by the element) and the element itself are
3715         kept alive until the TearOff is garbage collected.
3716
3717         Tests: svg/animations/smil-leak-dynamically-added-element-instances.svg
3718                svg/animations/smil-leak-elements.svg
3719                svg/animations/smil-leak-element-instances-noBaseValRef.svg
3720                svg/animations/smil-leak-element-instances.svg
3721                svg/animations/svglength-element-removed-crash.svg
3722
3723         * svg/SVGAnimateElement.cpp:
3724         (WebCore::SVGAnimateElement::calculateAnimatedValue):
3725         (WebCore::propertyTypesAreConsistent):
3726         (WebCore::SVGAnimateElement::resetToBaseValue):
3727         (WebCore::SVGAnimateElement::applyResultsToTarget):
3728         (WebCore::SVGAnimateElement::targetElementWillChange):
3729         * svg/SVGAnimateElement.h:
3730         (SVGAnimateElement):
3731         * svg/SVGAnimatedAngle.cpp:
3732         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
3733         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
3734         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
3735         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
3736         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
3737         * svg/SVGAnimatedAngle.h:
3738         (SVGAnimatedAngleAnimator):
3739         * svg/SVGAnimatedBoolean.cpp:
3740         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
3741         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
3742         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
3743         (WebCore::SVGAnimatedBooleanAnimator::animValWillChange):
3744         (WebCore::SVGAnimatedBooleanAnimator::animValDidChange):
3745         * svg/SVGAnimatedBoolean.h:
3746         (SVGAnimatedBooleanAnimator):
3747         * svg/SVGAnimatedColor.h:
3748         (WebCore::SVGAnimatedColorAnimator::startAnimValAnimation):
3749         (WebCore::SVGAnimatedColorAnimator::stopAnimValAnimation):
3750         (WebCore::SVGAnimatedColorAnimator::resetAnimValToBaseVal):
3751         (WebCore::SVGAnimatedColorAnimator::animValWillChange):
3752         (WebCore::SVGAnimatedColorAnimator::animValDidChange):
3753         * svg/SVGAnimatedEnumeration.cpp:
3754         (WebCore::SVGAnimatedEnumerationAnimator::startAnimValAnimation):
3755         (WebCore::SVGAnimatedEnumerationAnimator::stopAnimValAnimation):
3756         (WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):
3757         (WebCore::SVGAnimatedEnumerationAnimator::animValWillChange):
3758         (WebCore::SVGAnimatedEnumerationAnimator::animValDidChange):
3759         * svg/SVGAnimatedEnumeration.h:
3760         (SVGAnimatedEnumerationAnimator):
3761         * svg/SVGAnimatedInteger.cpp:
3762         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
3763         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
3764         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
3765         (WebCore::SVGAnimatedIntegerAnimator::animValWillChange):
3766         (WebCore::SVGAnimatedIntegerAnimator::animValDidChange):
3767         * svg/SVGAnimatedInteger.h:
3768         (SVGAnimatedIntegerAnimator):
3769         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
3770         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
3771         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
3772         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
3773         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
3774         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
3775         * svg/SVGAnimatedIntegerOptionalInteger.h:
3776         (SVGAnimatedIntegerOptionalIntegerAnimator):
3777         * svg/SVGAnimatedLength.cpp:
3778         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
3779         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
3780         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
3781         (WebCore::SVGAnimatedLengthAnimator::animValWillChange):
3782         (WebCore::SVGAnimatedLengthAnimator::animValDidChange):
3783         * svg/SVGAnimatedLength.h:
3784         (SVGAnimatedLengthAnimator):
3785         * svg/SVGAnimatedLengthList.cpp:
3786         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
3787         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
3788         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
3789         (WebCore::SVGAnimatedLengthListAnimator::animValWillChange):
3790         (WebCore::SVGAnimatedLengthListAnimator::animValDidChange):
3791         * svg/SVGAnimatedLengthList.h:
3792         (SVGAnimatedLengthListAnimator):
3793         * svg/SVGAnimatedNumber.cpp:
3794         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
3795         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
3796         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
3797         (WebCore::SVGAnimatedNumberAnimator::animValWillChange):
3798         (WebCore::SVGAnimatedNumberAnimator::animValDidChange):
3799         * svg/SVGAnimatedNumber.h:
3800         (SVGAnimatedNumberAnimator):
3801         * svg/SVGAnimatedNumberList.cpp:
3802         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
3803         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
3804         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
3805         (WebCore::SVGAnimatedNumberListAnimator::animValWillChange):
3806         (WebCore::SVGAnimatedNumberListAnimator::animValDidChange):
3807         * svg/SVGAnimatedNumberList.h:
3808         (SVGAnimatedNumberListAnimator):
3809         * svg/SVGAnimatedNumberOptionalNumber.cpp:
3810         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
3811         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
3812         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
3813         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
3814         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
3815         * svg/SVGAnimatedNumberOptionalNumber.h:
3816         (SVGAnimatedNumberOptionalNumberAnimator):
3817         * svg/SVGAnimatedPath.cpp:
3818         (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
3819         (WebCore::SVGAnimatedPathAnimator::stopAnimValAnimation):
3820         (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
3821         (WebCore::SVGAnimatedPathAnimator::animValWillChange):
3822         (WebCore::SVGAnimatedPathAnimator::animValDidChange):
3823         * svg/SVGAnimatedPath.h:
3824         (SVGAnimatedPathAnimator):
3825         * svg/SVGAnimatedPointList.cpp:
3826         (WebCore::SVGAnimatedPointListAnimator::startAnimValAnimation):
3827         (WebCore::SVGAnimatedPointListAnimator::stopAnimValAnimation):
3828         (WebCore::SVGAnimatedPointListAnimator::resetAnimValToBaseVal):
3829         (WebCore::SVGAnimatedPointListAnimator::animValWillChange):
3830         (WebCore::SVGAnimatedPointListAnimator::animValDidChange):
3831         * svg/SVGAnimatedPointList.h:
3832         (SVGAnimatedPointListAnimator):
3833         * svg/SVGAnimatedPreserveAspectRatio.cpp:
3834         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
3835         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
3836         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
3837         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValWillChange):
3838         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValDidChange):
3839         * svg/SVGAnimatedPreserveAspectRatio.h:
3840         (SVGAnimatedPreserveAspectRatioAnimator):
3841         * svg/SVGAnimatedRect.cpp:
3842         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
3843         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
3844         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
3845         (WebCore::SVGAnimatedRectAnimator::animValWillChange):
3846         (WebCore::SVGAnimatedRectAnimator::animValDidChange):
3847         * svg/SVGAnimatedRect.h:
3848         (SVGAnimatedRectAnimator):
3849         * svg/SVGAnimatedString.cpp:
3850         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
3851         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
3852         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
3853         (WebCore::SVGAnimatedStringAnimator::animValWillChange):
3854         (WebCore::SVGAnimatedStringAnimator::animValDidChange):
3855         * svg/SVGAnimatedString.h:
3856         (SVGAnimatedStringAnimator):
3857         * svg/SVGAnimatedTransformList.cpp:
3858         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
3859         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
3860         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
3861         (WebCore::SVGAnimatedTransformListAnimator::animValWillChange):
3862         (WebCore::SVGAnimatedTransformListAnimator::animValDidChange):
3863         * svg/SVGAnimatedTransformList.h:
3864         (SVGAnimatedTransformListAnimator):
3865         * svg/SVGAnimatedTypeAnimator.h:
3866         (SVGAnimatedTypeAnimator):
3867         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
3868         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesFromInstancesForAttributeName):
3869         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue):
3870         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
3871         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
3872         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
3873         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
3874         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
3875         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
3876         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForTypes):
3877         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForTypes):
3878         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForTypes):
3879         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
3880         (WebCore::SVGAnimatedTypeAnimator::executeAction):
3881         * svg/properties/SVGAnimatedProperty.h:
3882         (SVGAnimatedProperty):
3883         * svg/properties/SVGPropertyTearOff.h:
3884         (WebCore::SVGPropertyTearOff::animatedProperty):
3885         (SVGPropertyTearOff):
3886
3887 2012-04-27  Adam Klein  <adamk@chromium.org>
3888
3889         Remove misspelled, unused, unimplemented method from V8Proxy
3890         https://bugs.webkit.org/show_bug.cgi?id=85091
3891
3892         Reviewed by Dimitri Glazkov.
3893
3894         * bindings/v8/V8Proxy.h:
3895         (V8Proxy):
3896
3897 2012-04-24  Jeffrey Pfau  <jpfau@apple.com>
3898
3899         Disable RTF in JavaScript drag-and-drop
3900         https://bugs.webkit.org/show_bug.cgi?id=76597
3901
3902         Reviewed by Maciej Stachowiak.
3903
3904         Test: fast/events/drag-and-drop-subframe-dataTransfer.html
3905
3906         * platform/mac/ClipboardMac.mm:
3907         (WebCore::cocoaTypeFromHTMLClipboardType):
3908
3909 2012-04-26  James Robinson  <jamesr@chromium.org>
3910
3911         [chromium] Separate IOSurface layer type from texture layers
3912         https://bugs.webkit.org/show_bug.cgi?id=85030
3913
3914         Reviewed by Adrienne Walker.
3915
3916         Adds a new layer type for IOSurface layers and pipes through a separate path through to rendering. IOSurface
3917         layers are very simple - they have an IOSurface id and size, nothing else. All IOSurface layers are "flipped" in
3918         our terminology.
3919
3920         * WebCore.gypi:
3921         * platform/graphics/chromium/IOSurfaceLayerChromium.cpp:
3922         (WebCore):
3923         (WebCore::IOSurfaceLayerChromium::create):
3924         (WebCore::IOSurfaceLayerChromium::IOSurfaceLayerChromium):
3925         (WebCore::IOSurfaceLayerChromium::~IOSurfaceLayerChromium):
3926         (WebCore::IOSurfaceLayerChromium::setIOSurfaceProperties):
3927         (WebCore::IOSurfaceLayerChromium::createCCLayerImpl):
3928         (WebCore::IOSurfaceLayerChromium::drawsContent):
3929         (WebCore::IOSurfaceLayerChromium::pushPropertiesTo):
3930         * platform/graphics/chromium/IOSurfaceLayerChromium.h:
3931         (WebCore):
3932         (IOSurfaceLayerChromium):
3933         * platform/graphics/chromium/LayerRendererChromium.cpp:
3934         (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
3935         (WebCore::LayerRendererChromium::cleanupSharedObjects):
3936         * platform/graphics/chromium/LayerRendererChromium.h:
3937         (LayerRendererChromium):
3938         * platform/graphics/chromium/TextureLayerChromium.cpp:
3939         (WebCore::TextureLayerChromium::TextureLayerChromium):
3940         (WebCore::TextureLayerChromium::drawsContent):
3941         (WebCore::TextureLayerChromium::pushPropertiesTo):
3942         * platform/graphics/chromium/TextureLayerChromium.h:
3943         (TextureLayerChromium):
3944         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
3945         (WebCore::CCIOSurfaceDrawQuad::create):
3946         (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
3947         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
3948         (CCIOSurfaceDrawQuad):
3949         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
3950         (WebCore):
3951         (WebCore::CCIOSurfaceLayerImpl::CCIOSurfaceLayerImpl):
3952         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
3953         (WebCore::CCIOSurfaceLayerImpl::willDraw):
3954         (WebCore::CCIOSurfaceLayerImpl::appendQuads):
3955         (WebCore::CCIOSurfaceLayerImpl::dumpLayerProperties):
3956         (WebCore::CCIOSurfaceLayerImpl::didLoseContext):
3957         (WebCore::CCIOSurfaceLayerImpl::setIOSurfaceProperties):
3958         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
3959         (WebCore):
3960         (CCIOSurfaceLayerImpl):
3961         (WebCore::CCIOSurfaceLayerImpl::create):
3962         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
3963         (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
3964         (WebCore::CCTextureLayerImpl::~CCTextureLayerImpl):
3965         (WebCore::CCTextureLayerImpl::appendQuads):
3966         (WebCore::CCTextureLayerImpl::didLoseContext):
3967         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
3968         (CCTextureLayerImpl):
3969
3970 2012-04-27  Arvid Nilsson  <anilsson@rim.com>
3971
3972         [BlackBerry] OpenGL related bug fixes
3973         https://bugs.webkit.org/show_bug.cgi?id=84836
3974
3975         Reviewed by Antonio Gomes.
3976
3977         PR147254, 148933, 149117, 149721, 150228
3978
3979         No new tests, covered by existing BlackBerry browser stress tests
3980
3981         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
3982         (WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):
3983         * platform/graphics/blackberry/LayerCompositingThread.cpp:
3984         (WebCore::LayerCompositingThread::drawTextures):
3985         * platform/graphics/blackberry/LayerRenderer.cpp:
3986         (WebCore::LayerRenderer::~LayerRenderer):
3987         (WebCore::LayerRenderer::drawLayers):
3988         (WebCore::LayerRenderer::initializeSharedGLObjects):
3989
3990 2012-04-27  Nat Duca  <nduca@chromium.org>
3991
3992         Implement high-resolution time via window.performance.webkitNow()
3993         https://bugs.webkit.org/show_bug.cgi?id=66684
3994
3995         This implements the high resolution time spec from
3996         http://www.w3.org/TR/hr-time/, giving javascript access to
3997         sub-millisecond timestamps that increase over time instead of being
3998         subject to skewing, for example when the host machine's clock changes.
3999
4000         Reviewed by Tony Gentilcore.
4001
4002         Test: fast/performance/performance-now-timestamps.html
4003
4004         * page/Performance.cpp:
4005         (WebCore::Performance::now):
4006         (WebCore):
4007         * page/Performance.h:
4008         (Performance):
4009         * page/Performance.idl:
4010
4011 2012-04-27  Filip Pizlo  <fpizlo@apple.com>
4012
4013         If you get a list of DOMWrapperWorld*'s and then plan to allocate in the heap, you should ref
4014         the DOMWrapperWorld*'s
4015         https://bugs.webkit.org/show_bug.cgi?id=85098
4016         <rdar://problem/11318170>
4017
4018         Reviewed by Sam Weinig.
4019
4020         No new tests because this addresses hard-to-repro flaky behavior arising from GCs at inconvenient
4021         times.
4022