"Not enough arguments" error should be TypeError
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-27  Kentaro Hara  <haraken@chromium.org>
2
3         "Not enough arguments" error should be TypeError
4         https://bugs.webkit.org/show_bug.cgi?id=84628
5
6         Reviewed by Darin Adler.
7
8         Currently, some custom bindings implement "Not enough arguments"
9         error as SyntaxError. The Web IDL spec requires that it should be
10         TypeError: http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
11         Thus, this patch changes SyntaxError to TypeError.
12
13         Tests: http/tests/websocket/tests/hixie76/url-parsing.html:
14                http/tests/websocket/tests/hybi/url-parsing.html:
15                http/tests/xmlhttprequest/exceptions.html:
16                svg/dom/SVGLength.html:
17                webaudio/audionode.html:
18
19         * bindings/js/JSAudioContextCustom.cpp:
20         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
21         * bindings/js/JSSVGLengthCustom.cpp:
22         (WebCore::JSSVGLength::convertToSpecifiedUnits):
23         * bindings/js/JSWebSocketCustom.cpp:
24         (WebCore::JSWebSocketConstructor::constructJSWebSocket):
25         (WebCore::JSWebSocket::send):
26         * bindings/js/JSXMLHttpRequestCustom.cpp:
27         (WebCore::JSXMLHttpRequest::open):
28         * bindings/v8/custom/V8AudioContextCustom.cpp:
29         (WebCore::V8AudioContext::constructorCallback):
30         * bindings/v8/custom/V8SVGLengthCustom.cpp:
31         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
32         * bindings/v8/custom/V8WebSocketCustom.cpp:
33         (WebCore::V8WebSocket::constructorCallback):
34         (WebCore::V8WebSocket::sendCallback):
35         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
36         (WebCore::V8XMLHttpRequest::openCallback):
37
38 2012-04-27  Kenneth Russell  <kbr@google.com>
39
40         Remove SHADER_COMPILER constant
41         https://bugs.webkit.org/show_bug.cgi?id=85115
42
43         Reviewed by Darin Adler.
44
45         Removed constant which was previously removed from spec. Updated
46         layout test and expected results.
47
48         * html/canvas/WebGLRenderingContext.idl:
49
50 2012-04-27  Arvid Nilsson  <anilsson@rim.com>
51
52         [BlackBerry] Fixed background is scrolling in http://www.nieuwecode.nl
53         https://bugs.webkit.org/show_bug.cgi?id=85109
54
55         Reviewed by Antonio Gomes.
56
57         Since the BlackBerry port uses very similar fixed position acceleration
58         as the Qt WebKit2 port, the same fix that worked for them in bug 83980
59         works for us.
60
61         Fixed by opting in to the FIXED_POSITION_CREATES_STACKING_CONTEXT
62         mechanism.
63
64         Covered by existing manual test fixed-position-no-z-index.html.
65
66         * css/StyleResolver.cpp:
67
68 2012-04-27  Nat Duca  <nduca@chromium.org>
69
70         Expose high-resolution on requestAnimationFrame callback
71         https://bugs.webkit.org/show_bug.cgi?id=66683
72
73         This changes requestAnimationFrame's animationStartTime argument
74         to be a high resolution DOM timestamp, per disucssion here:
75         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
76
77         Reviewed by James Robinson.
78
79         Covered by existing requestAnimationFrame tests.
80
81         * dom/Document.cpp:
82         (WebCore::Document::serviceScriptedAnimations):
83         * dom/Document.h:
84         (Document):
85         * dom/ScriptedAnimationController.cpp:
86         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
87         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
88         (WebCore):
89         (WebCore::ScriptedAnimationController::windowScreenDidChange):
90         (WebCore::ScriptedAnimationController::scheduleAnimation):
91         (WebCore::ScriptedAnimationController::animationTimerFired):
92         (WebCore::ScriptedAnimationController::displayRefreshFired):
93         * dom/ScriptedAnimationController.h:
94         (ScriptedAnimationController):
95         * page/FrameView.cpp:
96         (WebCore::FrameView::serviceScriptedAnimations):
97         * page/FrameView.h:
98         (FrameView):
99         * platform/graphics/DisplayRefreshMonitor.cpp:
100         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
101         (WebCore::DisplayRefreshMonitor::notifyClients):
102         * platform/graphics/DisplayRefreshMonitor.h:
103         (DisplayRefreshMonitor):
104         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
105         (WebCore::DisplayRefreshMonitor::displayLinkFired):
106         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
107         (WebCore):
108         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
109         (WebCore::DisplayRefreshMonitor::displayLinkFired):
110
111 2012-04-27  Kentaro Hara  <haraken@chromium.org>
112
113         [V8] Implement a helper method V8Proxy::throwNotEnoughArgumentsError()
114         https://bugs.webkit.org/show_bug.cgi?id=85097
115
116         Reviewed by Kenneth Russell.
117
118         In bug 84787, kbr requested to avoid hard-coding
119         throwError("Not enough arguments", V8Proxy::TypeError) here and there.
120         This patch implements V8Proxy::throwNotEnoughArgumentsError()
121         and uses it in V8 bindings.
122
123         No tests. No change in behavior.
124
125         * bindings/scripts/CodeGeneratorV8.pm:
126         (GenerateArgumentsCountCheck):
127         (GenerateEventConstructorCallback):
128         * bindings/v8/V8Proxy.cpp:
129         (WebCore::V8Proxy::throwNotEnoughArgmentsError):
130         (WebCore):
131         * bindings/v8/V8Proxy.h:
132         (V8Proxy):
133         * bindings/v8/custom/V8DataViewCustom.cpp:
134         (WebCore::V8DataView::getInt8Callback):
135         (WebCore::V8DataView::getUint8Callback):
136         (WebCore::V8DataView::setInt8Callback):
137         (WebCore::V8DataView::setUint8Callback):
138         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
139         (WebCore::V8DirectoryEntry::getDirectoryCallback):
140         (WebCore::V8DirectoryEntry::getFileCallback):
141         * bindings/v8/custom/V8IntentConstructor.cpp:
142         (WebCore::V8Intent::constructorCallback):
143         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
144         (WebCore::V8WebKitMutationObserver::constructorCallback):
145         (WebCore::V8WebKitMutationObserver::observeCallback):
146
147         Test: bindings/scripts/test/TestObj.idl
148
149         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
150         (GenerateArgumentsCountCheck):
151         (GenerateEventConstructorCallback):
152
153         * bindings/v8/V8Proxy.cpp: Ditto.
154         (WebCore::V8Proxy::throwNotEnoughArgumentsError):
155         (WebCore):
156         * bindings/v8/V8Proxy.h:
157         (V8Proxy):
158         * bindings/v8/custom/V8DataViewCustom.cpp:
159         (WebCore::V8DataView::getInt8Callback):
160         (WebCore::V8DataView::getUint8Callback):
161         (WebCore::V8DataView::setInt8Callback):
162         (WebCore::V8DataView::setUint8Callback):
163         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
164         (WebCore::V8DirectoryEntry::getDirectoryCallback):
165         (WebCore::V8DirectoryEntry::getFileCallback):
166         * bindings/v8/custom/V8IntentConstructor.cpp:
167         (WebCore::V8Intent::constructorCallback):
168         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
169         (WebCore::V8WebKitMutationObserver::constructorCallback):
170         (WebCore::V8WebKitMutationObserver::observeCallback):
171
172         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.
173         (WebCore::Float64ArrayV8Internal::fooCallback):
174         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
175         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
176         (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
177         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
178         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
179         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
180         (WebCore::V8TestEventConstructor::constructorCallback):
181         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
182         (WebCore::TestEventTargetV8Internal::itemCallback):
183         (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
184         * bindings/scripts/test/V8/V8TestInterface.cpp:
185         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
186         (WebCore::V8TestInterface::constructorCallback):
187         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
188         (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
189         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
190         (WebCore::V8TestNamedConstructorConstructorCallback):
191         * bindings/scripts/test/V8/V8TestObj.cpp:
192         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
193         (WebCore::TestObjV8Internal::intMethodWithArgsCallback):
194         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
195         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
196         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
197         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
198         (WebCore::TestObjV8Internal::serializedValueCallback):
199         (WebCore::TestObjV8Internal::idbKeyCallback):
200         (WebCore::TestObjV8Internal::optionsObjectCallback):
201         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
202         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
203         (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
204         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
205         (WebCore::TestObjV8Internal::overloadedMethod1Callback):
206         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
207         (WebCore::TestObjV8Internal::overloadedMethod3Callback):
208         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
209         (WebCore::TestObjV8Internal::overloadedMethod5Callback):
210         (WebCore::TestObjV8Internal::overloadedMethod6Callback):
211         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
212         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
213         (WebCore::TestObjV8Internal::overloadedMethod12Callback):
214         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
215         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
216         (WebCore::TestObjV8Internal::convert1Callback):
217         (WebCore::TestObjV8Internal::convert2Callback):
218         (WebCore::TestObjV8Internal::convert3Callback):
219         (WebCore::TestObjV8Internal::convert4Callback):
220         (WebCore::TestObjV8Internal::convert5Callback):
221         (WebCore::TestObjV8Internal::strictFunctionCallback):
222         (WebCore::V8TestObj::constructorCallback):
223         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
224         (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
225         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
226
227 2012-04-27  Mark Pilgrim  <pilgrim@chromium.org>
228
229         [Chromium] Call lowMemoryUsageMB directly
230         https://bugs.webkit.org/show_bug.cgi?id=84840
231
232         Reviewed by Kentaro Hara.
233
234         Part of a refactoring series. See tracking bug 82948.
235
236         * bindings/v8/V8GCController.cpp:
237         (WebCore::V8GCController::checkMemoryUsage):
238         * platform/MemoryUsageSupport.cpp:
239         (WebCore::MemoryUsageSupport::lowMemoryUsageMB):
240         (WebCore):
241         * platform/MemoryUsageSupport.h:
242         (MemoryUsageSupport):
243         * platform/chromium/MemoryUsageSupportChromium.cpp:
244         (WebCore::MemoryUsageSupport::lowMemoryUsageMB):
245         (WebCore):
246         * platform/chromium/PlatformSupport.h:
247         (PlatformSupport):
248
249 2012-04-27  Yi Shen  <yi.4.shen@nokia.com>
250
251         REGRESSION(113723): Pressing enter in this list example deletes the whole list
252         https://bugs.webkit.org/show_bug.cgi?id=85016
253
254         Reviewed by Enrica Casucci.
255
256         The bug was caused by CompositeEditCommand::breakOutOfEmptyListItem, which calls isListItem
257         on the empty list's siblings to decide which part of the list should get removed. However,
258         the check fails when the empty list's sibling is a text node, or a list element (e.g. ul, ol).
259         Fixed it by skipping empty list's non-element sibling and calling isListElement to do further
260         check.
261
262         Test: added new test cases in the existing test (break-out-of-empty-list-item.html)
263
264         * editing/CompositeEditCommand.cpp:
265         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
266
267 2012-04-27  Ian Vollick  <vollick@chromium.org>
268
269         [chromium] Add pause and resume support for accelerated css animations.
270         https://bugs.webkit.org/show_bug.cgi?id=84601
271
272         Reviewed by James Robinson.
273
274         Tested in:
275         CCLayerAnimationControllerTest.syncPauseResume
276         CCActiveAnimationTest.TrimTimeTimeOffset
277         CCActiveAnimationTest.TrimTimeSuspendResume
278         CCActiveAnimationTest.IsFinishedNeedsSynchronizedStartTime
279         CCActiveAnimationTest.RunStateChangesIgnoredWhileSuspended
280
281         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
282         (WebCore::GraphicsLayerChromium::suspendAnimations):
283         (WebCore::GraphicsLayerChromium::resumeAnimations):
284         * platform/graphics/chromium/GraphicsLayerChromium.h:
285         (GraphicsLayerChromium):
286         * platform/graphics/chromium/LayerChromium.cpp:
287         (WebCore::LayerChromium::suspendAnimations):
288         (WebCore::LayerChromium::resumeAnimations):
289         * platform/graphics/chromium/LayerChromium.h:
290         (LayerChromium):
291         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
292         (WebCore::CCActiveAnimation::CCActiveAnimation):
293         (WebCore::CCActiveAnimation::setRunState):
294         (WebCore::CCActiveAnimation::suspend):
295         (WebCore::CCActiveAnimation::resume):
296         (WebCore::CCActiveAnimation::isFinishedAt):
297         (WebCore::CCActiveAnimation::trimTimeToCurrentIteration):
298         (WebCore::CCActiveAnimation::cloneForImplThread):
299         (WebCore::CCActiveAnimation::pushPropertiesTo):
300         * platform/graphics/chromium/cc/CCActiveAnimation.h:
301         (CCActiveAnimation):
302         (WebCore::CCActiveAnimation::setStartTime):
303         (WebCore::CCActiveAnimation::timeOffset):
304         (WebCore::CCActiveAnimation::setTimeOffset):
305         (WebCore::CCActiveAnimation::isFinished):
306         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
307         (WebCore::CCLayerAnimationController::addAnimation):
308         (WebCore::CCLayerAnimationController::pauseAnimation):
309         (WebCore::CCLayerAnimationController::suspendAnimations):
310         (WebCore::CCLayerAnimationController::resumeAnimations):
311         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
312         (WebCore::CCLayerAnimationController::getActiveAnimation):
313         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
314         (WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
315         (WebCore::CCLayerAnimationController::pushPropertiesToImplThread):
316         (WebCore):
317         (WebCore::CCLayerAnimationController::tickAnimations):
318         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
319         (CCLayerAnimationController):
320
321 2012-04-27  Tim Horton  <timothy_horton@apple.com>
322
323         SMIL animation causes leak of the related Document (and many elements)
324         https://bugs.webkit.org/show_bug.cgi?id=83856
325         <rdar://problem/11216047>
326
327         Reviewed by Dean Jackson.
328
329         The SVGAnimatedProperty cache was previously holding a reference to the properties it contained;
330         said references were cleared in the SVGAnimatedProperty destructor (which was never called because
331         there was always one remaining reference from the cache).
332
333         The SVGAnimatedProperty cache now holds raw pointers instead of RefPtrs; the SVGAnimateElement now
334         owns its own SVGAnimatedProperties, both for itself and for any <use/> instances of itself. They're
335         cleared and destroyed within SVGAnimateElement::targetElementWillChange, at which time they're removed
336         from the cache.
337
338         SVGPropertyTearOffs now keep a reference to their SVGElement (m_contextElement) instead of their SVGAnimatedProperty;
339         this way, there is no reference cycle, but the animated property (owned by the element) and the element itself are
340         kept alive until the TearOff is garbage collected.
341
342         Tests: svg/animations/smil-leak-dynamically-added-element-instances.svg
343                svg/animations/smil-leak-elements.svg
344                svg/animations/smil-leak-element-instances-noBaseValRef.svg
345                svg/animations/smil-leak-element-instances.svg
346                svg/animations/svglength-element-removed-crash.svg
347
348         * svg/SVGAnimateElement.cpp:
349         (WebCore::SVGAnimateElement::calculateAnimatedValue):
350         (WebCore::propertyTypesAreConsistent):
351         (WebCore::SVGAnimateElement::resetToBaseValue):
352         (WebCore::SVGAnimateElement::applyResultsToTarget):
353         (WebCore::SVGAnimateElement::targetElementWillChange):
354         * svg/SVGAnimateElement.h:
355         (SVGAnimateElement):
356         * svg/SVGAnimatedAngle.cpp:
357         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
358         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
359         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
360         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
361         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
362         * svg/SVGAnimatedAngle.h:
363         (SVGAnimatedAngleAnimator):
364         * svg/SVGAnimatedBoolean.cpp:
365         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
366         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
367         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
368         (WebCore::SVGAnimatedBooleanAnimator::animValWillChange):
369         (WebCore::SVGAnimatedBooleanAnimator::animValDidChange):
370         * svg/SVGAnimatedBoolean.h:
371         (SVGAnimatedBooleanAnimator):
372         * svg/SVGAnimatedColor.h:
373         (WebCore::SVGAnimatedColorAnimator::startAnimValAnimation):
374         (WebCore::SVGAnimatedColorAnimator::stopAnimValAnimation):
375         (WebCore::SVGAnimatedColorAnimator::resetAnimValToBaseVal):
376         (WebCore::SVGAnimatedColorAnimator::animValWillChange):
377         (WebCore::SVGAnimatedColorAnimator::animValDidChange):
378         * svg/SVGAnimatedEnumeration.cpp:
379         (WebCore::SVGAnimatedEnumerationAnimator::startAnimValAnimation):
380         (WebCore::SVGAnimatedEnumerationAnimator::stopAnimValAnimation):
381         (WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):
382         (WebCore::SVGAnimatedEnumerationAnimator::animValWillChange):
383         (WebCore::SVGAnimatedEnumerationAnimator::animValDidChange):
384         * svg/SVGAnimatedEnumeration.h:
385         (SVGAnimatedEnumerationAnimator):
386         * svg/SVGAnimatedInteger.cpp:
387         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
388         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
389         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
390         (WebCore::SVGAnimatedIntegerAnimator::animValWillChange):
391         (WebCore::SVGAnimatedIntegerAnimator::animValDidChange):
392         * svg/SVGAnimatedInteger.h:
393         (SVGAnimatedIntegerAnimator):
394         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
395         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
396         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
397         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
398         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
399         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
400         * svg/SVGAnimatedIntegerOptionalInteger.h:
401         (SVGAnimatedIntegerOptionalIntegerAnimator):
402         * svg/SVGAnimatedLength.cpp:
403         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
404         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
405         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
406         (WebCore::SVGAnimatedLengthAnimator::animValWillChange):
407         (WebCore::SVGAnimatedLengthAnimator::animValDidChange):
408         * svg/SVGAnimatedLength.h:
409         (SVGAnimatedLengthAnimator):
410         * svg/SVGAnimatedLengthList.cpp:
411         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
412         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
413         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
414         (WebCore::SVGAnimatedLengthListAnimator::animValWillChange):
415         (WebCore::SVGAnimatedLengthListAnimator::animValDidChange):
416         * svg/SVGAnimatedLengthList.h:
417         (SVGAnimatedLengthListAnimator):
418         * svg/SVGAnimatedNumber.cpp:
419         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
420         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
421         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
422         (WebCore::SVGAnimatedNumberAnimator::animValWillChange):
423         (WebCore::SVGAnimatedNumberAnimator::animValDidChange):
424         * svg/SVGAnimatedNumber.h:
425         (SVGAnimatedNumberAnimator):
426         * svg/SVGAnimatedNumberList.cpp:
427         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
428         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
429         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
430         (WebCore::SVGAnimatedNumberListAnimator::animValWillChange):
431         (WebCore::SVGAnimatedNumberListAnimator::animValDidChange):
432         * svg/SVGAnimatedNumberList.h:
433         (SVGAnimatedNumberListAnimator):
434         * svg/SVGAnimatedNumberOptionalNumber.cpp:
435         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
436         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
437         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
438         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
439         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
440         * svg/SVGAnimatedNumberOptionalNumber.h:
441         (SVGAnimatedNumberOptionalNumberAnimator):
442         * svg/SVGAnimatedPath.cpp:
443         (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
444         (WebCore::SVGAnimatedPathAnimator::stopAnimValAnimation):
445         (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
446         (WebCore::SVGAnimatedPathAnimator::animValWillChange):
447         (WebCore::SVGAnimatedPathAnimator::animValDidChange):
448         * svg/SVGAnimatedPath.h:
449         (SVGAnimatedPathAnimator):
450         * svg/SVGAnimatedPointList.cpp:
451         (WebCore::SVGAnimatedPointListAnimator::startAnimValAnimation):
452         (WebCore::SVGAnimatedPointListAnimator::stopAnimValAnimation):
453         (WebCore::SVGAnimatedPointListAnimator::resetAnimValToBaseVal):
454         (WebCore::SVGAnimatedPointListAnimator::animValWillChange):
455         (WebCore::SVGAnimatedPointListAnimator::animValDidChange):
456         * svg/SVGAnimatedPointList.h:
457         (SVGAnimatedPointListAnimator):
458         * svg/SVGAnimatedPreserveAspectRatio.cpp:
459         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
460         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
461         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
462         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValWillChange):
463         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValDidChange):
464         * svg/SVGAnimatedPreserveAspectRatio.h:
465         (SVGAnimatedPreserveAspectRatioAnimator):
466         * svg/SVGAnimatedRect.cpp:
467         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
468         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
469         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
470         (WebCore::SVGAnimatedRectAnimator::animValWillChange):
471         (WebCore::SVGAnimatedRectAnimator::animValDidChange):
472         * svg/SVGAnimatedRect.h:
473         (SVGAnimatedRectAnimator):
474         * svg/SVGAnimatedString.cpp:
475         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
476         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
477         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
478         (WebCore::SVGAnimatedStringAnimator::animValWillChange):
479         (WebCore::SVGAnimatedStringAnimator::animValDidChange):
480         * svg/SVGAnimatedString.h:
481         (SVGAnimatedStringAnimator):
482         * svg/SVGAnimatedTransformList.cpp:
483         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
484         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
485         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
486         (WebCore::SVGAnimatedTransformListAnimator::animValWillChange):
487         (WebCore::SVGAnimatedTransformListAnimator::animValDidChange):
488         * svg/SVGAnimatedTransformList.h:
489         (SVGAnimatedTransformListAnimator):
490         * svg/SVGAnimatedTypeAnimator.h:
491         (SVGAnimatedTypeAnimator):
492         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
493         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesFromInstancesForAttributeName):
494         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue):
495         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
496         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
497         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
498         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
499         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
500         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
501         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForTypes):
502         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForTypes):
503         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForTypes):
504         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
505         (WebCore::SVGAnimatedTypeAnimator::executeAction):
506         * svg/properties/SVGAnimatedProperty.h:
507         (SVGAnimatedProperty):
508         * svg/properties/SVGPropertyTearOff.h:
509         (WebCore::SVGPropertyTearOff::animatedProperty):
510         (SVGPropertyTearOff):
511
512 2012-04-27  Adam Klein  <adamk@chromium.org>
513
514         Remove misspelled, unused, unimplemented method from V8Proxy
515         https://bugs.webkit.org/show_bug.cgi?id=85091
516
517         Reviewed by Dimitri Glazkov.
518
519         * bindings/v8/V8Proxy.h:
520         (V8Proxy):
521
522 2012-04-24  Jeffrey Pfau  <jpfau@apple.com>
523
524         Disable RTF in JavaScript drag-and-drop
525         https://bugs.webkit.org/show_bug.cgi?id=76597
526
527         Reviewed by Maciej Stachowiak.
528
529         Test: fast/events/drag-and-drop-subframe-dataTransfer.html
530
531         * platform/mac/ClipboardMac.mm:
532         (WebCore::cocoaTypeFromHTMLClipboardType):
533
534 2012-04-26  James Robinson  <jamesr@chromium.org>
535
536         [chromium] Separate IOSurface layer type from texture layers
537         https://bugs.webkit.org/show_bug.cgi?id=85030
538
539         Reviewed by Adrienne Walker.
540
541         Adds a new layer type for IOSurface layers and pipes through a separate path through to rendering. IOSurface
542         layers are very simple - they have an IOSurface id and size, nothing else. All IOSurface layers are "flipped" in
543         our terminology.
544
545         * WebCore.gypi:
546         * platform/graphics/chromium/IOSurfaceLayerChromium.cpp:
547         (WebCore):
548         (WebCore::IOSurfaceLayerChromium::create):
549         (WebCore::IOSurfaceLayerChromium::IOSurfaceLayerChromium):
550         (WebCore::IOSurfaceLayerChromium::~IOSurfaceLayerChromium):
551         (WebCore::IOSurfaceLayerChromium::setIOSurfaceProperties):
552         (WebCore::IOSurfaceLayerChromium::createCCLayerImpl):
553         (WebCore::IOSurfaceLayerChromium::drawsContent):
554         (WebCore::IOSurfaceLayerChromium::pushPropertiesTo):
555         * platform/graphics/chromium/IOSurfaceLayerChromium.h:
556         (WebCore):
557         (IOSurfaceLayerChromium):
558         * platform/graphics/chromium/LayerRendererChromium.cpp:
559         (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
560         (WebCore::LayerRendererChromium::cleanupSharedObjects):
561         * platform/graphics/chromium/LayerRendererChromium.h:
562         (LayerRendererChromium):
563         * platform/graphics/chromium/TextureLayerChromium.cpp:
564         (WebCore::TextureLayerChromium::TextureLayerChromium):
565         (WebCore::TextureLayerChromium::drawsContent):
566         (WebCore::TextureLayerChromium::pushPropertiesTo):
567         * platform/graphics/chromium/TextureLayerChromium.h:
568         (TextureLayerChromium):
569         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
570         (WebCore::CCIOSurfaceDrawQuad::create):
571         (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
572         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
573         (CCIOSurfaceDrawQuad):
574         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
575         (WebCore):
576         (WebCore::CCIOSurfaceLayerImpl::CCIOSurfaceLayerImpl):
577         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
578         (WebCore::CCIOSurfaceLayerImpl::willDraw):
579         (WebCore::CCIOSurfaceLayerImpl::appendQuads):
580         (WebCore::CCIOSurfaceLayerImpl::dumpLayerProperties):
581         (WebCore::CCIOSurfaceLayerImpl::didLoseContext):
582         (WebCore::CCIOSurfaceLayerImpl::setIOSurfaceProperties):
583         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
584         (WebCore):
585         (CCIOSurfaceLayerImpl):
586         (WebCore::CCIOSurfaceLayerImpl::create):
587         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
588         (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
589         (WebCore::CCTextureLayerImpl::~CCTextureLayerImpl):
590         (WebCore::CCTextureLayerImpl::appendQuads):
591         (WebCore::CCTextureLayerImpl::didLoseContext):
592         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
593         (CCTextureLayerImpl):
594
595 2012-04-27  Arvid Nilsson  <anilsson@rim.com>
596
597         [BlackBerry] OpenGL related bug fixes
598         https://bugs.webkit.org/show_bug.cgi?id=84836
599
600         Reviewed by Antonio Gomes.
601
602         PR147254, 148933, 149117, 149721, 150228
603
604         No new tests, covered by existing BlackBerry browser stress tests
605
606         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
607         (WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):
608         * platform/graphics/blackberry/LayerCompositingThread.cpp:
609         (WebCore::LayerCompositingThread::drawTextures):
610         * platform/graphics/blackberry/LayerRenderer.cpp:
611         (WebCore::LayerRenderer::~LayerRenderer):
612         (WebCore::LayerRenderer::drawLayers):
613         (WebCore::LayerRenderer::initializeSharedGLObjects):
614
615 2012-04-27  Nat Duca  <nduca@chromium.org>
616
617         Implement high-resolution time via window.performance.webkitNow()
618         https://bugs.webkit.org/show_bug.cgi?id=66684
619
620         This implements the high resolution time spec from
621         http://www.w3.org/TR/hr-time/, giving javascript access to
622         sub-millisecond timestamps that increase over time instead of being
623         subject to skewing, for example when the host machine's clock changes.
624
625         Reviewed by Tony Gentilcore.
626
627         Test: fast/performance/performance-now-timestamps.html
628
629         * page/Performance.cpp:
630         (WebCore::Performance::now):
631         (WebCore):
632         * page/Performance.h:
633         (Performance):
634         * page/Performance.idl:
635
636 2012-04-27  Filip Pizlo  <fpizlo@apple.com>
637
638         If you get a list of DOMWrapperWorld*'s and then plan to allocate in the heap, you should ref
639         the DOMWrapperWorld*'s
640         https://bugs.webkit.org/show_bug.cgi?id=85098
641         <rdar://problem/11318170>
642
643         Reviewed by Sam Weinig.
644
645         No new tests because this addresses hard-to-repro flaky behavior arising from GCs at inconvenient
646         times.
647
648         * bindings/js/ScriptController.cpp:
649         (WebCore::ScriptController::getAllWorlds):
650         * bindings/js/ScriptController.h:
651         (ScriptController):
652         * bindings/js/WebCoreJSClientData.h:
653         (WebCore::WebCoreJSClientData::getAllWorlds):
654         * bindings/v8/ScriptController.cpp:
655         (WebCore::ScriptController::getAllWorlds):
656         * bindings/v8/ScriptController.h:
657         (ScriptController):
658         * loader/FrameLoader.cpp:
659         (WebCore::FrameLoader::dispatchDidClearWindowObjectsInAllWorlds):
660         (WebCore::FrameLoader::dispatchGlobalObjectAvailableInAllWorlds):
661
662 2012-04-27  Geoffrey Garen  <ggaren@apple.com>
663
664         Removed the sole use of Weak<Unknown>
665         https://bugs.webkit.org/show_bug.cgi?id=85099
666
667         Reviewed by Sam Weinig.
668
669         The semantics and implementation of Weak<Unknown> are unclear because:
670             - Should you call a finalizer for a non-GC thingy? If so, when?
671
672                 * Possible answer: No.
673
674             - If WeakImpls for GC thingies live with the GC thingies in the
675               heap, where do WeakImpls for non-GC thingies live?
676
677                 * Possible answer: Directly in the Weak<T>.
678
679         Since no clients actually want these behaviors, it's hard to tell if
680         they're the right behaviors, and it's not worth the implementation
681         complexity. If we come up with a client that wants these behaviors, we
682         can always revisit this.
683
684         * bindings/js/JSNodeFilterCondition.cpp:
685         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition): Just leave our
686         filter NULL if it's not an object -- that's a better way to indicate
687         "not a valid filter object".
688
689         (WebCore::JSNodeFilterCondition::acceptNode): Fixed up some naming to
690         clarify that the object we're working with is not necessarily a function.
691
692         * bindings/js/JSNodeFilterCondition.h:
693         (JSNodeFilterCondition): Use Weak<JSObject>, since that more closely
694         matches what we're trying to do.
695
696 2012-04-26  Kentaro Hara  <haraken@chromium.org>
697
698         [V8] Pass Isolate to getDOMXXXMap()
699         https://bugs.webkit.org/show_bug.cgi?id=85022
700
701         Reviewed by Nate Chapin.
702
703         The objective is to pass Isolate around in V8 bindings.
704         This patch passes Isolate to getDOMXXXMap().
705
706         Also this patch removes DOMMap::getDOMDataStore() and
707         DOMData::getDefalutStore(), since the indirection by the
708         methods is redundant. This is not for performance
709         optimization but just for refactoring.
710
711         No tests. No change in behavior.
712
713         * bindings/v8/DOMData.cpp:
714         (WebCore::DOMData::getCurrentStore):
715         * bindings/v8/DOMData.h:
716         (DOMData):
717         * bindings/v8/V8DOMMap.cpp:
718         (WebCore::getDOMNodeMap):
719         (WebCore::getActiveDOMNodeMap):
720         (WebCore::getDOMObjectMap):
721         (WebCore::getActiveDOMObjectMap):
722         (WebCore::removeAllDOMObjects):
723         * bindings/v8/V8DOMMap.h:
724         (WebCore):
725
726 2012-04-26  Kentaro Hara  <haraken@chromium.org>
727
728         [V8] Pass Isolate to V8BindingPerIsolateData::current()
729         https://bugs.webkit.org/show_bug.cgi?id=85023
730
731         Reviewed by Nate Chapin.
732
733         The objective is to pass Isolate around in V8 bindings.
734         This patch passes Isolate to V8BindingPerIsolateData::current().
735
736         No tests. No change in behavior.
737
738         * bindings/v8/V8Binding.h:
739         (WebCore::V8BindingPerIsolateData::current):
740         (WebCore::v8ExternalString):
741
742 2012-04-27  Dimitri Glazkov  <dglazkov@chromium.org>
743
744         Unreviewed, rolling out r115484.
745         http://trac.webkit.org/changeset/115484
746         https://bugs.webkit.org/show_bug.cgi?id=84555
747
748         Broke Chromium compile.
749
750         * bindings/js/JSBlobCustom.cpp:
751         * bindings/v8/custom/V8BlobCustom.cpp:
752         * fileapi/Blob.cpp:
753         * fileapi/Blob.h:
754         (Blob):
755         * fileapi/Blob.idl:
756         * workers/WorkerContext.idl:
757
758 2012-04-27  Alexandru Chiculita  <achicu@adobe.com>
759
760         [CSS Shaders] Implement CSS Animations and Transitions for CSS Shaders
761         https://bugs.webkit.org/show_bug.cgi?id=71406
762
763         Reviewed by Dean Jackson.
764
765         I've implemented the blend function for the CustomFilterOperation. This should enable animations for CSS Shaders.
766         Currently, just floats are implemented. If any of the filter attributes like shader, mesh size or box mode are different, 
767         the fallback is to use the "to" part of the animation instead. If other shader parameters do not match, it will merge the parameter values
768         between the "from" and "to" states.
769
770         Test: css3/filters/custom/custom-filter-animation.html
771
772         * platform/graphics/filters/CustomFilterNumberParameter.h:
773         (WebCore::CustomFilterNumberParameter::blend):
774         (CustomFilterNumberParameter):
775         (WebCore::CustomFilterNumberParameter::operator==):
776         * platform/graphics/filters/CustomFilterOperation.cpp:
777         (WebCore::equalCustomFilterParameters):
778         (WebCore):
779         (WebCore::checkCustomFilterParametersOrder):
780         (WebCore::blendCustomFilterParameters):
781         (WebCore::CustomFilterOperation::CustomFilterOperation):
782         (WebCore::CustomFilterOperation::blend):
783         * platform/graphics/filters/CustomFilterOperation.h:
784         (WebCore):
785         (CustomFilterOperation):
786         (WebCore::CustomFilterOperation::operator==):
787         (WebCore::CustomFilterOperation::operator!=):
788         * platform/graphics/filters/CustomFilterParameter.h:
789         (CustomFilterParameter):
790         (WebCore::CustomFilterParameter::isSameType):
791         (WebCore::CustomFilterParameter::operator==):
792         (WebCore::CustomFilterParameter::operator!=):
793         * platform/graphics/filters/CustomFilterProgram.h:
794         * rendering/style/StyleCustomFilterProgram.h:
795         (StyleCustomFilterProgram):
796         (WebCore::StyleCustomFilterProgram::cachedVertexShader):
797         (WebCore::StyleCustomFilterProgram::cachedFragmentShader):
798         (WebCore::StyleCustomFilterProgram::operator==):
799
800 2012-04-27  Chris Rogers  <crogers@google.com>
801
802         Re-factor scheduling logic from AudioBufferSourceNode into AudioScheduledSourceNode
803         https://bugs.webkit.org/show_bug.cgi?id=84639
804
805         Reviewed by Eric Carlson.
806
807         Playback logic involving noteOn(), noteOff(), and playbackState were intertwined with
808         the AudioBufferSourceNode's buffer playback code.  These are more general concepts and
809         may be implemented separately in another class called AudioScheduledSourceNode.
810
811         No new tests. Covered by existing layout tests.
812
813         * GNUmakefile.list.am:
814         Add AudioScheduledSourceNode files to makefile.
815
816         * Modules/webaudio/AudioBufferSourceNode.cpp:
817         (WebCore):
818         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
819         Re-factor some member variables into new base class AudioScheduledSourceNode.
820
821         (WebCore::AudioBufferSourceNode::process):
822         Re-factor scheduling logic into AudioScheduledSourceNode.
823
824         * Modules/webaudio/AudioBufferSourceNode.h:
825         (AudioBufferSourceNode):
826         Simplify by re-factoring scheduling logic into AudioScheduledSourceNode.
827
828         * Modules/webaudio/AudioScheduledSourceNode.cpp: Added.
829         (WebCore):
830         (WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
831         (WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
832         Get frame information for the current time quantum.
833
834         * Modules/webaudio/AudioScheduledSourceNode.h: Added.
835         (WebCore::AudioScheduledSourceNode::noteOn):
836         (WebCore::AudioScheduledSourceNode::noteOff):
837         (WebCore::AudioScheduledSourceNode::finish):
838         (WebCore::AudioScheduledSourceNode::playbackState):
839         (WebCore::AudioScheduledSourceNode::isPlayingOrScheduled):
840         (WebCore::AudioScheduledSourceNode::hasFinished):
841         Re-factored from AudioBufferSourceNode.
842
843         * WebCore.gypi:
844         * WebCore.xcodeproj/project.pbxproj:
845         Add AudioScheduledSourceNode files to makefiles.
846     
847 2012-04-26  Sam Weinig  <sam@webkit.org>
848
849         Add support for the Blob constructor
850         https://bugs.webkit.org/show_bug.cgi?id=84555
851
852         Reviewed by Maciej Stachowiak.
853
854         Test: fast/files/blob-constructor.html
855
856         This adds an implementation of the Blob constructor that willfully
857         violates the W3C Editor’s Draft 29 February 2012 in the following ways:
858         - Elements in the parts array are coerced to DOMStrings https://www.w3.org/Bugs/Public/show_bug.cgi?id=16721 
859         - Don't throw for invalid key in the dictionary https://www.w3.org/Bugs/Public/show_bug.cgi?id=16727
860         - Values for the endings property are treated as enums https://www.w3.org/Bugs/Public/show_bug.cgi?id=16729 
861
862         * bindings/js/JSBlobCustom.cpp:
863         (WebCore::JSBlobConstructor::constructJSBlob):
864         Implement blob constructor.
865
866         * bindings/v8/custom/V8BlobCustom.cpp:
867         (WebCore::V8Blob::constructorCallback):
868         Implement blob constructor.
869
870         * fileapi/Blob.idl:
871         Add constructor to IDL.
872
873         * workers/WorkerContext.idl:
874         Add Blob constructor to the worker global object.
875
876 2012-04-27  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
877
878         [Qt] Fix minimal build.
879         https://bugs.webkit.org/show_bug.cgi?id=85045
880
881         Reviewed by Tor Arne Vestbø.
882
883         Compile LIBXML XML parser even if ENABLE_XSLT is not set.
884
885         * Target.pri:
886
887 2012-04-27  Shawn Singh  <shawnsingh@chromium.org>
888
889         Infinite backgroundClipRect should not be scrolled.
890         https://bugs.webkit.org/show_bug.cgi?id=84979
891
892         Reviewed by Adrienne Walker.
893
894         Test: compositing/iframes/scroll-fixed-transformed-element.html
895
896         By accidentally scrolling clipRects that should be considered
897         "infinite", they were no longer being considered infinite. This
898         caused a chain of un-intended code paths that caused fixed
899         position elements to stutter when scrolling in Chromium.
900
901         * rendering/RenderLayer.cpp:
902         (WebCore::RenderLayer::backgroundClipRect):
903
904 2012-04-27  Ryosuke Niwa  <rniwa@webkit.org>
905
906         FormatBlock crashes when body element is removed prior to the command execution
907         https://bugs.webkit.org/show_bug.cgi?id=84937
908
909         Reviewed by Tony Chang.
910
911         The crash was because because DOM had been modified since the last time selection had been "validated",
912         and therefore frame selection's endpoints are no longer visible when we instantiated visibleStart
913         and visibleEnd from m_endingSelection of the edit command.
914
915         Fixed the bug by checking the nullity and orphanedness of visible start and visible end directly.
916         I suspect we have similar bugs in other commands. The fundamental problem is that the copy constructor
917         of VisibleSelection never validates so when a VisibleSelection is passed from one class to another
918         (e.g. FrameSelection to EditCommand), we may not adjust end points as needed.
919
920         Test: editing/execCommand/format-block-without-body-crash.html
921
922         * editing/ApplyBlockElementCommand.cpp:
923         (WebCore::ApplyBlockElementCommand::doApply):
924
925 2012-04-27  Enrica Casucci  <enrica@apple.com>
926
927         REGRESSION(r96257): Deleting a large amount of text is very slow.
928         https://bugs.webkit.org/show_bug.cgi?id=83983
929         <rdar://problem/10826076>
930         
931         Reviewed by Ryosuke Niwa.
932
933         The change in r96257 did not cause the performance regression per se,
934         but exposed a problem in the way we calculate the offset in container
935         node when the anchorType is PositionIsOffsetInAnchor.
936         The offset was computed as the minimum between the given offset and
937         lastOffsetInNode. If the container has a very large number of children,
938         we walk the entire list of child nodes in the container simply to find
939         out how many they are.
940         Looking through the entire editing code, I found other 2 cases (one
941         is only an ASSERT) where we could do a similar optimization.
942
943         No new tests. No behavior change, only performance optimization.
944
945         * dom/Position.cpp:
946         (WebCore::Position::computeOffsetInContainerNode):
947         * dom/Position.h:
948         (WebCore::minOffsetForNode):
949         (WebCore::offsetIsBeforeLastNodeOffset):
950         * editing/ApplyStyleCommand.cpp:
951         (WebCore::ApplyStyleCommand::removeInlineStyle):
952         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
953
954 2012-04-27  Julien Chaffraix  <jchaffraix@webkit.org>
955
956         NULL-deref in RenderBox::clippedOverflowRectForRepaint
957         https://bugs.webkit.org/show_bug.cgi?id=84774
958
959         Reviewed by Tony Chang.
960
961         Test: fast/inline/crash-new-continuation-with-outline.html
962
963         The bug comes from trying to repaint the :after content as part of updateBeforeAfterContent.
964         The repainting logic would query the yet-to-be-inserted continuation(). Then we would crash in
965         RenderBox::clippedOverflowRectForRepaint as we didn't have an enclosingLayer() (which any
966         RenderObject in the tree will have).
967
968         The fix is to check in RenderInline::clippedOverflowRectForRepaint that our continuation()
969         is properly inserted in the tree. We could check that it isRooted() but it's an overkill here.
970
971         * rendering/RenderInline.cpp:
972         (WebCore::RenderInline::clippedOverflowRectForRepaint):
973
974 2012-04-27  Antti Koivisto  <antti@apple.com>
975
976         Memory cache pruning should be protected against reentering.
977         https://bugs.webkit.org/show_bug.cgi?id=85077
978
979         Reviewed by Alexey Proskuryakov.
980
981         MemoryCache::pruneDeadResourcesToSize() has some ad-hock protection against reentering.
982         This patch adds more complete protection.
983
984         * loader/cache/MemoryCache.cpp:
985         (WebCore::MemoryCache::MemoryCache):
986         (WebCore::MemoryCache::pruneLiveResourcesToSize):
987         
988             Protect live resource pruning too.
989
990         (WebCore::MemoryCache::pruneDeadResourcesToSize):
991         
992             Remove the existing weak reentrancy handling in favor of full proctection.
993
994         * loader/cache/MemoryCache.h:
995         (MemoryCache):
996
997 2012-04-27  Alexander Pavlov  <apavlov@chromium.org>
998
999         Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
1000         (re-landing r115417 with a test that should work on Windows.)
1001         https://bugs.webkit.org/show_bug.cgi?id=84946
1002
1003         Reviewed by Yury Semikhatsky.
1004
1005         Test: inspector/debugger/disable-script.html
1006
1007         * inspector/Inspector.json:
1008         * inspector/InspectorPageAgent.cpp:
1009         (PageAgentState):
1010         (WebCore::InspectorPageAgent::enable):
1011         (WebCore::InspectorPageAgent::disable):
1012         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
1013         (WebCore):
1014         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
1015         * inspector/InspectorPageAgent.h:
1016         * inspector/front-end/Settings.js:
1017         * inspector/front-end/SettingsScreen.js:
1018         (WebInspector.SettingsScreen):
1019         (WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
1020         (WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):
1021         * inspector/front-end/inspector.js:
1022
1023 2012-04-27  Keishi Hattori  <keishi@webkit.org>
1024
1025         IETC HTML5: verify HTMLDataListElement - instanceof HTMLDataListElement fails.
1026         https://bugs.webkit.org/show_bug.cgi?id=81196
1027
1028         Reviewed by Kent Tamura.
1029
1030         Test: fast/dom/Window/window-properties.html, fast/dom/Window/window-lookup-precedence.html
1031
1032         HTMLDataListElement should be available on DOMWindow.
1033
1034         * page/DOMWindow.idl: Added HTMLDataListElement.
1035
1036 2012-04-27  Dimitri Glazkov  <dglazkov@chromium.org>
1037
1038         Unreviewed, rolling out r115417.
1039         http://trac.webkit.org/changeset/115417
1040         https://bugs.webkit.org/show_bug.cgi?id=84946
1041
1042         Added test is broken on windows.
1043
1044         * inspector/Inspector.json:
1045         * inspector/InspectorPageAgent.cpp:
1046         (WebCore::InspectorPageAgent::enable):
1047         (WebCore::InspectorPageAgent::disable):
1048         * inspector/InspectorPageAgent.h:
1049         * inspector/front-end/Settings.js:
1050         * inspector/front-end/SettingsScreen.js:
1051         (WebInspector.SettingsScreen):
1052         * inspector/front-end/inspector.js:
1053
1054 2012-04-27  Gavin Peters  <gavinp@chromium.org>
1055
1056         Add new ENABLE_LINK_PRERENDER define to control the Prerendering API
1057         https://bugs.webkit.org/show_bug.cgi?id=84871
1058
1059         Reviewed by Adam Barth.
1060
1061         Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
1062         API separates it from prefetching.  Having separate include guards lets ports enable prefetching,
1063         a relatively easy change, without needing to build the infrastructure for prerendering, which
1064         is considerably more complicated.
1065
1066         * Configurations/FeatureDefines.xcconfig:
1067
1068 2012-04-27  Zan Dobersek  <zandobersek@gmail.com>
1069
1070         [Gtk][DOM Bindings] Feature-protected properties are put under condition guards
1071         https://bugs.webkit.org/show_bug.cgi?id=85068
1072
1073         Reviewed by Martin Robinson.
1074
1075         Generated feature-dependent properties are now present regardless of that
1076         feature being enabled. On getting or setting that property's value a warning
1077         is thrown if the feature is not enabled. Additionally, if the generated
1078         interface is feature-dependant, when getting or setting any property's value
1079         a warning is thrown if the feature is not enabled.
1080
1081         No new tests - covered by existing bindings tests.
1082
1083         * bindings/scripts/CodeGeneratorGObject.pm:
1084         (GenerateProperty):
1085         (GenerateProperties):
1086         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Rebaseline.
1087         (webkit_dom_test_interface_set_property):
1088         (webkit_dom_test_interface_get_property):
1089         (webkit_dom_test_interface_class_init):
1090         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
1091         (webkit_dom_test_obj_set_property):
1092         (webkit_dom_test_obj_get_property):
1093         (webkit_dom_test_obj_class_init):
1094         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.
1095         (webkit_dom_test_serialized_script_value_interface_get_property):
1096
1097 2012-04-27  Zan Dobersek  <zandobersek@gmail.com>
1098
1099         [Gtk][DOM Bindings] Conditional string in implementation file generated in wrong place after 113450
1100         https://bugs.webkit.org/show_bug.cgi?id=85065
1101
1102         Reviewed by Martin Robinson.
1103
1104         Put the condition string in implementation file after the header inclusions. This ensures
1105         that build errors do not occur when disabling the future that applies to the condition string
1106         because of WebCore objects and methods that are still in use despite the feature being disabled.
1107
1108         No new tests - covered by bindings tests.
1109
1110         * bindings/scripts/CodeGeneratorGObject.pm:
1111         (WriteData):
1112         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: Rebaseline generated results.
1113         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Ditto.
1114         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.
1115
1116 2012-04-27  Andreas Kling  <kling@webkit.org>
1117
1118         Avoid mutating Element attribute storage in StepRange constructor.
1119         <http://webkit.org/b/84797>
1120
1121         Reviewed by Antti Koivisto.
1122
1123         Test: fast/selectors/querySelector-in-range-crash.html
1124
1125         * dom/Attribute.h:
1126
1127             Add comment about the volatility of references returned by getters.
1128
1129         * html/StepRange.cpp:
1130         (WebCore::StepRange::StepRange):
1131
1132             Replace hasAttribute/getAttribute pair by a single fastGetAttribute.
1133
1134         * html/HTMLInputElement.cpp:
1135         (WebCore::HTMLInputElement::updateType):
1136         (WebCore::HTMLInputElement::value):
1137
1138             Store the value attribute in an local variable before passing it to sanitizeValue().
1139
1140 2012-04-27  Rob Buis  <rbuis@rim.com>
1141
1142         SVG inline style of 'marker-*' does not override
1143         https://bugs.webkit.org/show_bug.cgi?id=84824
1144
1145         Reviewed by Nikolas Zimmermann.
1146
1147         Properly handle CSSValueNone for clip-path, filter, mask and marker-* properties. Instead
1148         of bailing out, set the none value explicitly, since an earlier match may have set it to
1149         something other than none.
1150
1151         Tests: svg/custom/inline-style-overrides-clipPath-expected.svg
1152                svg/custom/inline-style-overrides-clipPath.svg
1153                svg/custom/inline-style-overrides-filter-expected.svg
1154                svg/custom/inline-style-overrides-filter.svg
1155                svg/custom/inline-style-overrides-markers-expected.svg
1156                svg/custom/inline-style-overrides-markers.svg
1157                svg/custom/inline-style-overrides-mask-expected.svg
1158                svg/custom/inline-style-overrides-mask.svg
1159
1160         * css/SVGCSSStyleSelector.cpp:
1161         (WebCore::StyleResolver::applySVGProperty):
1162
1163 2012-04-27  Christophe Dumez  <christophe.dumez@intel.com>
1164
1165         [EFL] media/video-controls-rendering-toggle-display-none.html is failing
1166         https://bugs.webkit.org/show_bug.cgi?id=84949
1167
1168         Reviewed by Antonio Gomes.
1169
1170         Fix volume slider rendering so that the
1171         media/video-controls-rendering-toggle-display-none.html passes.
1172
1173         * css/mediaControlsEfl.css:
1174         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1175         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
1176         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
1177
1178 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1179
1180         Support values animation mode with just a single value
1181         https://bugs.webkit.org/show_bug.cgi?id=85064
1182
1183         Reviewed by Antti Koivisto.
1184
1185         values="a" is equal to <set to="a"> per SMIL specification.
1186         We currently only support values animation if at least two values are given, fix that.
1187
1188         The reference animations in Dr. Olaf Hoffmanns SVG Animation test suite are mostly using
1189         values animations, sometimes with only a single value given. Lots of the reference animations
1190         are broken in trunk w/o this patch and now work as expected.
1191
1192         See http://hoffmann.bplaced.net/svgtest/index.php?s=en&in=start.
1193
1194         Test: svg/animations/single-values-animation.html
1195
1196         * svg/SVGAnimationElement.cpp:
1197         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
1198         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
1199         (WebCore::SVGAnimationElement::startedActiveInterval):
1200
1201 2012-04-27  Konrad Piascik  <kpiascik@rim.com>
1202
1203         Web Inspector: Allow inspection of Web Socket Frames
1204         https://bugs.webkit.org/show_bug.cgi?id=83282
1205
1206         Reviewed by Pavel Feldman.
1207
1208         Tests: http/tests/inspector/web-socket-frame-error.html
1209                http/tests/inspector/web-socket-frame.html
1210
1211         * English.lproj/localizedStrings.js: Added new Web Inspector front-end UI strings.
1212         * Modules/websockets/WebSocketChannel.cpp:  Added InspectorInstrumentation calls to
1213                                                     the following methods.
1214         (WebCore::WebSocketChannel::fail):
1215         (WebCore::WebSocketChannel::processFrame):
1216         (WebCore::WebSocketChannel::sendFrame):
1217         * WebCore.gypi: Added new Web Inspector resource file.
1218         * WebCore.vcproj/WebCore.vcproj: Added new Web Inspector resource file.
1219         * inspector/Inspector.json: Added new Web Inspector resource file.
1220         * inspector/InspectorInstrumentation.cpp: Added new methods for instrumenting a Web Socket frame or error.
1221         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameImpl):
1222         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameErrorImpl):
1223         (WebCore::InspectorInstrumentation::didSendWebSocketFrameImpl):
1224         * inspector/InspectorInstrumentation.h:
1225         (WebCore):
1226         (InspectorInstrumentation):
1227         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
1228         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
1229         (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
1230         * inspector/InspectorResourceAgent.cpp:
1231         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
1232         (WebCore):
1233         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
1234         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):
1235         * inspector/InspectorResourceAgent.h:
1236         (WebCore):
1237         (InspectorResourceAgent):
1238         * inspector/compile-front-end.py: Added new Web Inspector resource file.
1239         * inspector/front-end/NetworkItemView.js: Added a new View for inspecting Web Socket frames and errors.
1240         (WebInspector.NetworkItemView):
1241         * inspector/front-end/NetworkManager.js: Implemented callback called by InspectorResourceAgent for
1242                                                  the new Web Socket frame and error calls.
1243         (WebInspector.NetworkDispatcher.prototype.webSocketFrameReceived):
1244         (WebInspector.NetworkDispatcher.prototype.webSocketFrameSent):
1245         (WebInspector.NetworkDispatcher.prototype.webSocketFrameError):
1246         * inspector/front-end/NetworkRequest.js: Added a frames array to a Resource request along
1247                                                  with accessor and helper methods
1248         (WebInspector.NetworkRequest):
1249         (WebInspector.NetworkRequest.prototype.resource):
1250         (WebInspector.NetworkRequest.prototype.hasFrames):
1251         (WebInspector.NetworkRequest.prototype.frameLength):
1252         (WebInspector.NetworkRequest.prototype.getFrame):
1253         (WebInspector.NetworkRequest.prototype.addFrameError):
1254         (WebInspector.NetworkRequest.prototype.addFrame):
1255         (WebInspector.NetworkRequest.prototype._pushFrame):
1256         * inspector/front-end/ResourceWebSocketFrameView.js: Added to help display Web Socket frame and error data.
1257         (WebInspector.ResourceWebSocketFrameView):
1258         * inspector/front-end/WebKit.qrc: Added new Web Inspector resource file.
1259         * inspector/front-end/inspector.html: Added new Web Inspector resource file.
1260
1261 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1262
1263         Fix repetitions & by animation support for SVGAnimateTransformElement
1264         https://bugs.webkit.org/show_bug.cgi?id=85051
1265
1266         Reviewed by Antti Koivisto.
1267
1268         Repetitions are currently handled by adjusting percentage (percentage += repeatCount).
1269         This doesn't work for <animateTransform> as each repetition has to be post-multiplied to the animated transform list. Fix that.
1270
1271         By-animations are equal to values="0;by" animations in SMIL. '0' is the neutral element of addition, which is the _zero_ matrix,
1272         not the identity matrix for SVGTransform. Add a new construction mode to SVGTransform to be able to construct zero transforms.
1273
1274         Tests: svg/animations/animateTransform-accumulation-expected.svg
1275                svg/animations/animateTransform-accumulation.svg
1276                svg/animations/animateTransform-by-scale-expected.svg
1277                svg/animations/animateTransform-by-scale.svg
1278                svg/animations/animateTransform-from-by-from-to-comparision-expected.svg
1279                svg/animations/animateTransform-from-by-from-to-comparision.svg
1280                svg/animations/animateTransform-from-by-scale-additive-sum-expected.svg
1281                svg/animations/animateTransform-from-by-scale-additive-sum.svg
1282                svg/animations/animateTransform-from-by-scale-expected.svg
1283                svg/animations/animateTransform-from-by-scale.svg
1284                svg/animations/animateTransform-rotate-around-point-expected.svg
1285                svg/animations/animateTransform-rotate-around-point.svg
1286                svg/animations/animateTransform-skewX-expected.svg
1287                svg/animations/animateTransform-skewX.svg
1288                svg/animations/animateTransform-skewY-expected.svg
1289                svg/animations/animateTransform-skewY.svg
1290                svg/animations/animateTransform-translate-expected.svg
1291                svg/animations/animateTransform-translate.svg
1292                svg/animations/multiple-animateTransform-additive-sum-expected.svg
1293                svg/animations/multiple-animateTransform-additive-sum.svg
1294
1295         * svg/SVGAnimateTransformElement.cpp:
1296         (WebCore::SVGAnimateTransformElement::parseAttribute):
1297         * svg/SVGAnimatedTransformList.cpp:
1298         (WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
1299         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
1300         * svg/SVGAnimationElement.h:
1301         (WebCore::SVGAnimationElement::adjustFromToListValues):
1302         * svg/SVGTransform.cpp:
1303         (WebCore::SVGTransform::SVGTransform):
1304         * svg/SVGTransform.h:
1305         * svg/SVGTransformDistance.cpp:
1306         (WebCore::SVGTransformDistance::SVGTransformDistance):
1307         (WebCore::SVGTransformDistance::scaledDistance):
1308         (WebCore::SVGTransformDistance::addSVGTransforms):
1309         (WebCore::SVGTransformDistance::addToSVGTransform):
1310         (WebCore::SVGTransformDistance::distance):
1311         * svg/SVGTransformDistance.h:
1312         (SVGTransformDistance):
1313
1314 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1315
1316         SVG Animations update baseVal instead of animVal
1317         https://bugs.webkit.org/show_bug.cgi?id=12437
1318
1319         Reviewed by Dirk Schulze.
1320
1321         Cleanup animation code, remove last remaining crufts of the old setAttribute() animation model.
1322         Now only two animation modes remain: animate SVG DOM animVal properties or CSS properties.
1323
1324         Stop caching base values per string in SMILTimeContainer, as it breaks additive="sum" for CSS
1325         properties if the underlying base value is changed from the outside (eg. when calling
1326         style.fontSize="20px", if font-size was 10px, and we're running an additive by-animation with 50px).
1327
1328         This requires us to cache the computed style of a SVGElement, without SMIL style property changes,
1329         in SVGElementRareData, similar to how the computed style itself is cached in ElementRareData.
1330         To be able to compute the base value for a CSS property at any time, we have to exclude any
1331         previous animation effects residing in the SMIL animated style properties, per SMIL2/3 specs.
1332
1333         NOTE: This doesn't change or affect the way CSS Animations/Transitions are applied, we still
1334               have some bugs in that area, but this patch doesn't address them. The idea is to only
1335               remove the cache, to pave the way for future additive="sum" patches.
1336
1337         Tests: svg/animations/change-css-property-while-animating-fill-freeze.html
1338                svg/animations/change-css-property-while-animating-fill-remove.html
1339
1340         * dom/Element.cpp:
1341         (WebCore::Element::recalcStyle):
1342         * dom/Node.h:
1343         * svg/SVGAnimateElement.cpp:
1344         (WebCore::propertyTypesAreConsistent):
1345         (WebCore::SVGAnimateElement::resetToBaseValue):
1346         (WebCore::SVGAnimateElement::applyResultsToTarget):
1347         * svg/SVGAnimateElement.h:
1348         (SVGAnimateElement):
1349         * svg/SVGAnimateMotionElement.cpp:
1350         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
1351         * svg/SVGAnimateMotionElement.h:
1352         (SVGAnimateMotionElement):
1353         * svg/SVGAnimationElement.cpp:
1354         (WebCore::applyCSSPropertyToTarget):
1355         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedCSSValue):
1356         * svg/SVGAnimationElement.h:
1357         * svg/SVGElement.cpp:
1358         (WebCore::SVGElement::SVGElement):
1359         (WebCore::SVGElement::willRecalcStyle):
1360         (WebCore):
1361         (WebCore::SVGElement::rareSVGData):
1362         (WebCore::SVGElement::ensureRareSVGData):
1363         (WebCore::SVGElement::computedStyle):
1364         (WebCore::SVGElement::isAnimatableAttribute):
1365         * svg/SVGElement.h:
1366         (SVGElement):
1367         * svg/SVGElementRareData.h:
1368         (WebCore::SVGElementRareData::SVGElementRareData):
1369         (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
1370         (WebCore::SVGElementRareData::destroyAnimatedSMILStyleProperties):
1371         (WebCore::SVGElementRareData::overrideComputedStyle):
1372         (WebCore::SVGElementRareData::setUseOverrideComputedStyle):
1373         * svg/animation/SMILTimeContainer.cpp:
1374         (WebCore::SMILTimeContainer::updateAnimations):
1375         * svg/animation/SMILTimeContainer.h:
1376         (SMILTimeContainer):
1377         * svg/animation/SVGSMILElement.h:
1378         (SVGSMILElement):
1379
1380 2012-04-26  Alexander Pavlov  <apavlov@chromium.org>
1381
1382         Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
1383         (re-landing r115323 with a fixed test.)
1384         https://bugs.webkit.org/show_bug.cgi?id=84946
1385
1386         Based on user actions in the Inspector frontend, InspectorPageAgent invokes Settings::setScriptEnabled()
1387         for the associated page to switch the script execution therein.
1388
1389         Reviewed by Yury Semikhatsky.
1390
1391         Test: inspector/debugger/disable-script.html
1392
1393         * inspector/Inspector.json:
1394         * inspector/InspectorPageAgent.cpp:
1395         (PageAgentState):
1396         (WebCore::InspectorPageAgent::enable):
1397         (WebCore::InspectorPageAgent::disable):
1398         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
1399         (WebCore):
1400         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
1401         * inspector/InspectorPageAgent.h:
1402         * inspector/front-end/Settings.js:
1403         * inspector/front-end/SettingsScreen.js:
1404         (WebInspector.SettingsScreen):
1405         (WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
1406         (WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):
1407         * inspector/front-end/inspector.js:
1408
1409 2012-04-26  Ryosuke Niwa  <rniwa@webkit.org>
1410
1411         REGRESSION (r94497): Pressing Command+A when inline (Marked Text) is not empty will clean whole content
1412         https://bugs.webkit.org/show_bug.cgi?id=84501
1413
1414         Reviewed by Alexey Proskuryakov.
1415
1416         The bug was caused by setComposition, which is called by cancelComposition, deleting the contents when
1417         the passed text is empty. Fixed it by not deleting text when canceling compositions. This is okay because
1418         as the comment above the line suggests, this particular call to TypingCommand::deleteSelection is only useful
1419         when the confirmed text is empty and the composition text had previously been non-empty.
1420
1421         Test: editing/input/select-all-clear-input-method.html
1422
1423         * editing/Editor.cpp:
1424         (WebCore::Editor::setComposition):
1425
1426 2012-04-26  Keishi Hattori  <keishi@webkit.org>
1427
1428         datalist: Form control in a <datalist> should be barred from constraint validation
1429         https://bugs.webkit.org/show_bug.cgi?id=84359
1430
1431         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element
1432         According to this, if an element has a datalist element ancestor, it is barred from constraint validation.
1433
1434         Reviewed by Kent Tamura.
1435
1436         Test: fast/forms/datalist/datalist-child-validation.html
1437
1438         * html/HTMLFormControlElement.cpp:
1439         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
1440         (WebCore::HTMLFormControlElement::updateAncestors): Updates the ancestor information.
1441         (WebCore::HTMLFormControlElement::insertedInto): Invalidates the ancestor information and calls setNeedsWillValidateCheck
1442         (WebCore::HTMLFormControlElement::removedFrom): Invalidates the ancestor information and calls setNeedsWillValidateCheck
1443         (WebCore::HTMLFormControlElement::disabled):
1444         (WebCore::HTMLFormControlElement::recalcWillValidate): Returns false if element has a datalist ancestor.
1445         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck): Check if ancestor information is valid too.
1446         * html/HTMLFormControlElement.h:
1447         (HTMLFormControlElement):
1448
1449 2012-04-26  Adrienne Walker  <enne@google.com>
1450
1451         [chromium] Remove unused CCLayerImpl::debugID()
1452         https://bugs.webkit.org/show_bug.cgi?id=85019
1453
1454         Reviewed by James Robinson.
1455
1456         CCLayerSorter used debugID() but it was never set anywhere. Change
1457         the CCLayerSorter LOG messages to use id(), which does get set.
1458
1459         * platform/graphics/chromium/cc/CCLayerImpl.h:
1460         (CCLayerImpl):
1461         * platform/graphics/chromium/cc/CCLayerSorter.cpp:
1462         (WebCore::CCLayerSorter::createGraphNodes):
1463         (WebCore::CCLayerSorter::createGraphEdges):
1464         (WebCore::CCLayerSorter::sort):
1465
1466 2012-04-26  Nico Weber  <thakis@chromium.org>
1467
1468         [chromium] Fix C++ language use.
1469         https://bugs.webkit.org/show_bug.cgi?id=85015
1470
1471         Reviewed by James Robinson.
1472
1473         Even though MSVC allows it, a sizeof followed by a non-parenthesized
1474         typename is not valid C++.
1475
1476         No functionality change.
1477
1478         * rendering/RenderThemeChromiumWin.cpp:
1479         (WebCore):
1480         (WebCore::getNonClientMetrics):
1481
1482 2012-04-24  James Robinson  <jamesr@chromium.org>
1483
1484         [chromium] Move ProgramBinding definitions to LayerRendererChromium and normalize naming
1485         https://bugs.webkit.org/show_bug.cgi?id=84808
1486
1487         Reviewed by Adrienne Walker.
1488
1489         The GL programs used are logically part of LayerRendererChromium and not something specific to a layer type,
1490         since a different renderer would want to use a different thing to render the same layer types. This moves all of
1491         the ProgramBinding definitions into LayerRendererChromium and gives them consistent names. With the exception of
1492         CCRenderSurface (noted by an inline comment), these programs are private to LRC.
1493
1494         This patch also deduplicates programs a bit:
1495         1.) Video's NativeTexture and RGBA programs were the same thing, folded.
1496         2.) The TexStretch and TexTransform shaders are basically the same thing, folded together.
1497
1498         * platform/graphics/chromium/LayerChromium.h:
1499         (LayerChromium):
1500         * platform/graphics/chromium/LayerRendererChromium.cpp:
1501         (WebCore::LayerRendererChromium::drawCheckerboardQuad):
1502         (WebCore::LayerRendererChromium::drawDebugBorderQuad):
1503         (WebCore::LayerRendererChromium::drawSolidColorQuad):
1504         (WebCore::LayerRendererChromium::drawTileQuad):
1505         (WebCore::LayerRendererChromium::drawYUV):
1506         (WebCore::LayerRendererChromium::drawRGBA):
1507         (WebCore::LayerRendererChromium::drawNativeTexture2D):
1508         (WebCore::LayerRendererChromium::drawStreamTexture):
1509         (WebCore::LayerRendererChromium::drawTextureQuad):
1510         (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
1511         (WebCore::LayerRendererChromium::initializeSharedObjects):
1512         (WebCore::LayerRendererChromium::tileCheckerboardProgram):
1513         (WebCore::LayerRendererChromium::solidColorProgram):
1514         (WebCore::LayerRendererChromium::headsUpDisplayProgram):
1515         (WebCore::LayerRendererChromium::renderSurfaceProgram):
1516         (WebCore::LayerRendererChromium::renderSurfaceProgramAA):
1517         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
1518         (WebCore::LayerRendererChromium::renderSurfaceMaskProgramAA):
1519         (WebCore::LayerRendererChromium::tileProgram):
1520         (WebCore::LayerRendererChromium::tileProgramOpaque):
1521         (WebCore::LayerRendererChromium::tileProgramAA):
1522         (WebCore::LayerRendererChromium::tileProgramSwizzle):
1523         (WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
1524         (WebCore::LayerRendererChromium::tileProgramSwizzleAA):
1525         (WebCore::LayerRendererChromium::textureProgramFlip):
1526         (WebCore::LayerRendererChromium::textureTexRectProgram):
1527         (WebCore::LayerRendererChromium::textureTexRectProgramFlip):
1528         (WebCore::LayerRendererChromium::videoRGBAProgram):
1529         (WebCore::LayerRendererChromium::videoYUVProgram):
1530         (WebCore::LayerRendererChromium::videoStreamTextureProgram):
1531         (WebCore::LayerRendererChromium::cleanupSharedObjects):
1532         * platform/graphics/chromium/LayerRendererChromium.h:
1533         (WebCore):
1534         (LayerRendererChromium):
1535         * platform/graphics/chromium/ShaderChromium.cpp:
1536         * platform/graphics/chromium/ShaderChromium.h:
1537         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
1538         (CCHeadsUpDisplay):
1539         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1540         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1541         (WebCore):
1542         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1543         (WebCore::CCRenderSurface::copyTextureToFramebuffer):
1544         (WebCore::CCRenderSurface::drawLayer):
1545         * platform/graphics/chromium/cc/CCRenderSurface.h:
1546         (CCRenderSurface):
1547         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1548         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1549         (CCTextureLayerImpl):
1550         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1551         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1552         (CCTiledLayerImpl):
1553         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1554         (WebCore):
1555         (CCVideoLayerImpl):
1556
1557 2012-04-26  Jeffrey Pfau  <jpfau@apple.com>
1558
1559         Invalid cast in WebCore::HTMLCollection::isAcceptableElement
1560         https://bugs.webkit.org/show_bug.cgi?id=84626
1561
1562         Reviewed by Darin Adler.
1563
1564         Check if the object is an HTMLElement before casting.
1565
1566         Test: fast/dom/htmlcollection-non-html.html
1567
1568         * html/HTMLCollection.cpp:
1569         (WebCore::HTMLCollection::isAcceptableElement):
1570
1571 2012-04-26  Dana Jansens  <danakj@chromium.org>
1572
1573         [chromium] Some background filters require inflating damage on the surface behind them
1574         https://bugs.webkit.org/show_bug.cgi?id=84479
1575
1576         Reviewed by Adrienne Walker.
1577
1578         A layer with a background blur will expand the damage from pixels in the
1579         surface below it. We extend the damage tracker to expand damage in a
1580         surface below such layers.
1581
1582         Unit test: CCDamageTrackerTest.verifyDamageForBackgroundBlurredChild
1583
1584         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1585         (WebCore::expandPixelOutsetsWithFilters):
1586         (WebCore):
1587         (WebCore::expandDamageRectInsideRectWithFilters):
1588         (WebCore::expandDamageRectWithFilters):
1589         (WebCore::CCDamageTracker::updateDamageTrackingState):
1590         (WebCore::CCDamageTracker::trackDamageFromActiveLayers):
1591         * platform/graphics/chromium/cc/CCDamageTracker.h:
1592         (CCDamageTracker):
1593
1594 2012-04-26  Simon Fraser  <simon.fraser@apple.com>
1595
1596         Improve compositing logging output
1597         https://bugs.webkit.org/show_bug.cgi?id=85010
1598
1599         Reviewed by Dean Jackson.
1600
1601         In the compositing log channel output, indent the layers
1602         based on z-order tree depth. Tabulate the summary, and
1603         show obligate and secondary backing store area separately.
1604
1605         * rendering/RenderLayer.cpp:
1606         (WebCore::RenderLayer::updateClipRects):
1607         * rendering/RenderLayerCompositor.cpp:
1608         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
1609         (WebCore::RenderLayerCompositor::updateCompositingLayers):
1610         (WebCore::RenderLayerCompositor::logLayerInfo):
1611         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1612         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
1613         (WebCore::RenderLayerCompositor::reasonForCompositing):
1614         * rendering/RenderLayerCompositor.h:
1615         (RenderLayerCompositor):
1616
1617 2012-04-26  Anders Carlsson  <andersca@apple.com>
1618
1619         REGRESSION (r115163): Unable to scroll article body with trackpad on altdevblogaday.com blog post
1620         https://bugs.webkit.org/show_bug.cgi?id=85024
1621         <rdar://problem/11330758>
1622
1623         Reviewed by Sam Weinig.
1624
1625         Fix broken logic in canHaveScrollbars.
1626
1627         * page/scrolling/ScrollingTreeNode.h:
1628         (WebCore::ScrollingTreeNode::canHaveScrollbars):
1629
1630 2012-04-24  James Robinson  <jamesr@chromium.org>
1631
1632         [chromium] Use different CCDrawQuad types for textures vs IOSurfaces
1633         https://bugs.webkit.org/show_bug.cgi?id=84811
1634
1635         Reviewed by Adrienne Walker.
1636
1637         IOSurface and texture backed layers share few properties (only the flipped bool), so it doesn't make a lot of
1638         sense for them to use the same CCDrawQuad type for both. This splits IOSurfaces out to a dedicated quad type to
1639         make it easier to understand which bits of state apply to each.
1640
1641         The logical next step after this is to split the layer type as well, but that will be awkward until bug 84808 is
1642         resolved.
1643
1644         * WebCore.gypi:
1645         * platform/graphics/chromium/LayerRendererChromium.cpp:
1646         (WebCore::LayerRendererChromium::drawQuad):
1647         (WebCore::LayerRendererChromium::drawTextureQuad):
1648         (WebCore):
1649         (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
1650         * platform/graphics/chromium/LayerRendererChromium.h:
1651         (LayerRendererChromium):
1652         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
1653         (WebCore::CCDrawQuad::toIOSurfaceDrawQuad):
1654         (WebCore):
1655         * platform/graphics/chromium/cc/CCDrawQuad.h:
1656         (WebCore):
1657         (CCDrawQuad):
1658         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp.
1659         (WebCore):
1660         (WebCore::CCIOSurfaceDrawQuad::create):
1661         (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
1662         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h.
1663         (WebCore):
1664         (CCIOSurfaceDrawQuad):
1665         (WebCore::CCIOSurfaceDrawQuad::flipped):
1666         (WebCore::CCIOSurfaceDrawQuad::ioSurfaceSize):
1667         (WebCore::CCIOSurfaceDrawQuad::ioSurfaceTextureId):
1668         * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
1669         (WebCore::CCTextureDrawQuad::create):
1670         (WebCore::CCTextureDrawQuad::CCTextureDrawQuad):
1671         * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
1672         (CCTextureDrawQuad):
1673         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1674         (WebCore::CCTextureLayerImpl::appendQuads):
1675
1676 2012-04-26  Benjamin Poulain  <bpoulain@apple.com>
1677
1678         Use WebKit types for the cache of ObjcClass::methodsNamed()
1679         https://bugs.webkit.org/show_bug.cgi?id=85012
1680
1681         Reviewed by Geoffrey Garen.
1682
1683         This patch redefines the method cache ObjcClass to avoid memory allocations in the case of positive match.
1684
1685         Instead of using the converted name as the key, the original identifier string is used. This shortcuts
1686         all the other operations when there is a match.
1687
1688         A side effect is a method can appear multiple times in the cache if it is invoked with different names using
1689         the escape character "$". An attaquer could bloat the cache with a few hundreds strings.
1690         In the common case, having each name mapped is an improvment.
1691
1692         * bridge/objc/objc_class.h:
1693         (ObjcClass):
1694         * bridge/objc/objc_class.mm:
1695         (JSC::Bindings::ObjcClass::ObjcClass):
1696         (JSC::Bindings::ObjcClass::methodsNamed):
1697
1698 2012-04-26  Ojan Vafai  <ojan@chromium.org>
1699
1700         Delete dead code in Arena.h/cpp
1701         https://bugs.webkit.org/show_bug.cgi?id=84997
1702
1703         Reviewed by Eric Seidel.
1704
1705         Also cleaned up some style issues. Renamed some single-letter variable names.
1706         Avoided anything other than totally trivial style changes to be 100% sure
1707         that there is no change in behavior.
1708
1709         No new tests. There's no non-style code changes except inlining CLEAR_UNUSED
1710         and CLEAR_ARENA.
1711
1712         * platform/Arena.cpp:
1713         (WebCore):
1714         (WebCore::CeilingLog2):
1715         (WebCore::InitArenaPool):
1716         (WebCore::ArenaAllocate):
1717         (WebCore::FreeArenaList):
1718         (WebCore::FinishArenaPool):
1719         * platform/Arena.h:
1720         (WebCore):
1721
1722 2012-04-26  Shawn Singh  <shawnsingh@chromium.org>
1723
1724         Re-implement backFaceVisibility to avoid dealing with perspective w < 0 problem
1725         https://bugs.webkit.org/show_bug.cgi?id=84059
1726
1727         Reviewed by Adrienne Walker.
1728
1729         Unit tests added to CCMathUtilTest.cpp.
1730
1731         This patch changes the implementation of backFaceIsVisible so that
1732         it doesn't need to deal with the w < 0 problem from of perspective
1733         projections. Instead, it is equally correct to simply use the
1734         inverse-transpose of the matrix, and quickly check the third row,
1735         third column element. Additionally, it was appropriate to move
1736         this function into TransformationMatrix itself.
1737
1738         Making this change fixes some issues related to disappearing
1739         layers in Chromium (where the compositor incorrectly thought that
1740         the back face was visible, and skipped the layer).
1741
1742         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1743         (WebCore::calculateVisibleLayerRect):
1744         (WebCore::layerShouldBeSkipped):
1745         * platform/graphics/transforms/TransformationMatrix.cpp:
1746         (WebCore::TransformationMatrix::isBackFaceVisible):
1747         (WebCore):
1748         * platform/graphics/transforms/TransformationMatrix.h:
1749         (TransformationMatrix):
1750
1751 2012-04-26  Martin Robinson  <mrobinson@igalia.com>
1752
1753         [Cairo] Wrap cairo surfaces in a class when storing native images
1754         https://bugs.webkit.org/show_bug.cgi?id=83611
1755
1756         Reviewed by Alejandro G. Castro.
1757
1758         No new tests. This is just a refactoring. This shouldn't change
1759         functionality.
1760
1761         Added class that wraps Cairo images surfaces to serve as the "native image"
1762         type for the Cairo platform. This will allow the addition of caching resampled
1763         images as well as versions of the image for non-image Cairo backends. Also
1764         split out BitmapImageCairo.cpp from ImageCairo.cpp since these classes are
1765         defined in two headers.
1766
1767         * GNUmakefile.list.am: Added new files.
1768         * platform/graphics/BitmapImage.h: Added a factory method that takes an image surface to
1769         reduce code churn.
1770         * platform/graphics/ImageSource.h: NativeImagePtr is now NativeImageCairo*.
1771         (WebCore):
1772         * platform/graphics/cairo/BitmapImageCairo.cpp: Copied from Source/WebCore/platform/graphics/cairo/ImageCairo.cpp.
1773         * platform/graphics/cairo/GraphicsContext3DCairo.cpp: Updated to reflect use of NativeImageCairo.
1774         * platform/graphics/cairo/ImageCairo.cpp: Ditto.
1775         * platform/graphics/cairo/NativeImageCairo.cpp: Added.
1776         * platform/graphics/cairo/NativeImageCairo.h: Added.
1777         * platform/graphics/cairo/PatternCairo.cpp: Updated to reflect use of NativeImageCairo.
1778         * platform/graphics/gtk/ImageGtk.cpp: Ditto.
1779         * platform/image-decoders/cairo/ImageDecoderCairo.cpp: Ditto.
1780
1781 2012-04-26  Mark Hahnenberg  <mhahnenberg@apple.com>
1782
1783         [GTK] Massive media tests failures since r115288
1784         https://bugs.webkit.org/show_bug.cgi?id=84950
1785
1786         Reviewed by Filip Pizlo.
1787
1788         No new tests.
1789
1790         Since the "cross-platform" WebCore timer is at too high of a level in terms of the layers 
1791         of WebKit for JSC to use, we are not currently able to use it in JSC, thus only those 
1792         platforms that support CoreFoundation can currently take advantage of the new and improved 
1793         GC activity timer. We've restored the old code paths for those platforms that don't have 
1794         CF so that they will at least have the same behavior as before when calling garbageCollectSoon.
1795
1796         * bindings/js/GCController.cpp: Added back the old WebCore timer along with some 
1797         if-defs that do away with the WebCore timer on platforms that support CoreFoundation.
1798         (WebCore::GCController::GCController):
1799         (WebCore::GCController::garbageCollectSoon):
1800         (WebCore):
1801         (WebCore::GCController::gcTimerFired):
1802         * bindings/js/GCController.h: Ditto.
1803         (GCController):
1804
1805 2012-04-26  Adam Klein  <adamk@chromium.org>
1806
1807         Don't include V8Proxy.h in ScriptValue.h when V8GCController is all that's required
1808         https://bugs.webkit.org/show_bug.cgi?id=84986
1809
1810         Reviewed by Kentaro Hara.
1811
1812         This makes it easier to include ScriptValue.h since it greatly reduces
1813         that header's dependencies.
1814
1815         * bindings/v8/ScriptValue.h: Changed to include just V8GCController.h and
1816         removed comment which is redundant with explicit V8GCController references nearby.
1817
1818 2012-04-26  Aaron Colwell  <acolwell@chromium.org>
1819
1820         Fix missing sourceState change on MEDIA_ERR_SOURCE_NOT_SUPPORTED error.
1821         https://bugs.webkit.org/show_bug.cgi?id=84996
1822
1823         Reviewed by Eric Carlson.
1824
1825         No new tests. http/tests/media/media-source/webm/video-media-source-errors.html was updated to verify that webkitSourceState is always SOURCE_CLOSED when the onerror event fires.
1826
1827         * html/HTMLMediaElement.cpp:
1828         (WebCore::HTMLMediaElement::noneSupported):
1829
1830 2012-04-26  Antti Koivisto  <antti@apple.com>
1831
1832         Cache parsed stylesheets
1833         https://bugs.webkit.org/show_bug.cgi?id=85004
1834
1835         Reviewed by Andreas Kling.
1836
1837         CSS parsing is 1-2% of WebKit CPU usage on average pages, more on sites with large stylesheets.
1838         We currently reparse all stylesheets from source text when they are encountered again. In many
1839         browsing scenarios we can eliminate lot of this by caching the parsed stylesheets. For example 
1840         it is very common for subpages of a site to share the stylesheets.
1841         
1842         This patch enables memory caching for stylesheet loaded using the <link> element. Only stylesheets
1843         that have no import rules are cacheable for now.
1844         
1845         Cached stylesheets are copied on restore so there is no sharing (and no memory wins) yet.
1846         In the future we will also be able to share the actual data structures between pages for 
1847         significant memory savings.
1848         
1849         After browsing around for a while <5% of the memory cache data was in parsed stylesheets so this
1850         does not bloat the cache significantly.
1851
1852         * css/CSSStyleSheet.cpp:
1853         (WebCore):
1854         (WebCore::StyleSheetInternal::estimatedSizeInBytes):
1855         
1856             Estimate stylesheet size so we can handle decoded data pruning correctly.
1857
1858         * css/CSSStyleSheet.h:
1859         (StyleSheetInternal):
1860         * css/StylePropertySet.cpp:
1861         (WebCore::StylePropertySet::averageSizeInBytes):
1862         (WebCore):
1863         * css/StylePropertySet.h:
1864         (StylePropertySet):
1865         * css/StyleRule.cpp:
1866         (WebCore::StyleRule::averageSizeInBytes):
1867         (WebCore):
1868         * css/StyleRule.h:
1869         (StyleRule):
1870         * html/HTMLLinkElement.cpp:
1871         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1872         
1873             Save and restore parsed stylesheet. The current CSS parse context must be identical to the cached 
1874             stylesheets. This ensures that the parsing results would be identical.
1875
1876         * loader/cache/CachedCSSStyleSheet.cpp:
1877         (WebCore):
1878         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
1879         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
1880         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
1881         * loader/cache/CachedCSSStyleSheet.h:
1882         
1883             The parsed stylesheet cache is considered decoded data, similar to the image bitmaps. It uses the
1884             same mechanism for pruning.
1885
1886         (WebCore):
1887         (CachedCSSStyleSheet):
1888
1889 2012-04-26  Anders Carlsson  <andersca@apple.com>
1890
1891         A TileCache should never outlive its WebTileCacheLayer
1892         https://bugs.webkit.org/show_bug.cgi?id=85008
1893         <rdar://problem/11141172>
1894
1895         Reviewed by Andreas Kling.
1896
1897         Since WebTileCacheLayer objects can be destroyed on the scrolling thread, make sure to delete the TileCache layer
1898         when the PlatformCALayer is destroyed. This fixes a crash when the tile revalidation timer fires after the WebTileCacheLayer has
1899         been destroyed, but before the TileCache itself has been destroyed.
1900
1901         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1902         (PlatformCALayer::~PlatformCALayer):
1903         * platform/graphics/ca/mac/WebTileCacheLayer.h:
1904         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1905         (-[WebTileCacheLayer dealloc]):
1906         (-[WebTileCacheLayer invalidate]):
1907
1908 2012-04-26  Benjamin Poulain  <bpoulain@apple.com>
1909
1910         Use String instead of RefPtr<StringImpl> for the cache of ObjcClass
1911         https://bugs.webkit.org/show_bug.cgi?id=84932
1912
1913         Reviewed by Andreas Kling.
1914
1915         The cache with RefPtr<StringImpl*> was added with r115007.
1916
1917         This patch aims at making the code a little easier to read. By using String,
1918         one would not need to know the Traits for StringImpl.
1919
1920         * bridge/objc/objc_class.h:
1921         (ObjcClass):
1922
1923 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1924
1925         [V8] Pass Isolate to wrap() in SerializedScriptValue.cpp
1926         https://bugs.webkit.org/show_bug.cgi?id=84923
1927
1928         Reviewed by Nate Chapin.
1929
1930         The objective is to pass Isolate around in V8 bindings.
1931         In this bug we pass Isolate to wrap() in SerializedScriptValue.cpp.
1932
1933         No tests. No change in behavior.
1934
1935         * bindings/v8/SerializedScriptValue.cpp:
1936
1937 2012-04-26  Hao Zheng  <zhenghao@chromium.org>
1938
1939         [chromium] Complex text support for Android.
1940         https://bugs.webkit.org/show_bug.cgi?id=84431
1941
1942         Complex text support is different on Android from other platforms.
1943         There are 2 kinds of font on Android: system fonts and fallback fonts.
1944         System fonts have a name, and are accessible in FontPlatformData.
1945         Fallback fonts do not have specific names, so they are not accessible
1946         from WebKit directly. There is one font for each script support.
1947         To feed Harfbuzz, use a trick to get correct SkTypeface based on script.
1948
1949         Reviewed by Tony Chang.
1950
1951         No new tests. Current tests are runnable on Android.
1952
1953         * platform/graphics/FontCache.h:
1954         (FontCache): Make ComplexTextController friend of FontCache on Android.
1955         * platform/graphics/chromium/FontCacheAndroid.cpp:
1956         (WebCore::FontCache::createFontPlatformData):
1957         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
1958         (WebCore::ComplexTextController::getComplexFontPlatformData):
1959         (WebCore):
1960         (WebCore::ComplexTextController::setupFontForScriptRun):
1961         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h:
1962         (ComplexTextController):
1963
1964 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1965
1966         [V8] Pass Isolate to wrap() (Part2)
1967         https://bugs.webkit.org/show_bug.cgi?id=84922
1968
1969         Reviewed by Nate Chapin.
1970
1971         The objective is to pass Isolate around in V8 bindings.
1972         This patch passes Isolate to wrap() in custom bindings.
1973
1974         No tests. No change in behavior.
1975
1976         * bindings/v8/custom/V8LocationCustom.cpp:
1977         (WebCore::toV8):
1978         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1979         (WebCore::toV8):
1980         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
1981         (WebCore::toV8):
1982         * bindings/v8/custom/V8StyleSheetCustom.cpp:
1983         (WebCore::toV8):
1984         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
1985         (WebCore::toV8):
1986         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
1987         (WebCore::toV8):
1988         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
1989         (WebCore::toV8):
1990         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
1991         (WebCore::toV8):
1992
1993 2012-04-26  Jon Lee  <jonlee@apple.com>
1994
1995         [WK2] AlternativeTextClient leaks when the page is destroyed
1996         https://bugs.webkit.org/show_bug.cgi?id=84307
1997         <rdar://problem/11328431>
1998
1999         Reviewed by Enrica Casucci.
2000
2001         * page/AlternativeTextClient.h: Add pageDestroyed() call, as in EditorClient.
2002         (AlternativeTextClient):
2003         * page/Page.cpp:
2004         (WebCore::Page::~Page): When the page is destroyed, notify the client if it exists.
2005
2006 2012-04-26  Kentaro Hara  <haraken@chromium.org>
2007
2008         [V8] Pass Isolate to wrap() (Part1)
2009         https://bugs.webkit.org/show_bug.cgi?id=84921
2010
2011         Reviewed by Nate Chapin.
2012
2013         The objective is to pass Isolate around in V8 bindings.
2014         This patch passes Isolate to wrap() in custom bindings.
2015
2016         No tests. No change in behavior.
2017
2018         * bindings/v8/custom/V8BlobCustom.cpp:
2019         (WebCore::toV8):
2020         * bindings/v8/custom/V8CSSRuleCustom.cpp:
2021         (WebCore::toV8):
2022         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
2023         (WebCore::toV8):
2024         * bindings/v8/custom/V8CSSValueCustom.cpp:
2025         (WebCore::toV8):
2026         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2027         (WebCore::toV8):
2028         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
2029         (WebCore::toV8):
2030         * bindings/v8/custom/V8DataViewCustom.cpp:
2031         (WebCore::toV8):
2032         * bindings/v8/custom/V8EventCustom.cpp:
2033         (WebCore::toV8):
2034         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
2035         (WebCore::toV8):
2036         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
2037         (WebCore::toV8):
2038         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
2039         (WebCore::toV8):
2040         * bindings/v8/custom/V8ImageDataCustom.cpp:
2041         (WebCore::toV8):
2042         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
2043         (WebCore::toV8):
2044         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
2045         (WebCore::toV8):
2046         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
2047         (WebCore::toV8):
2048
2049 2012-04-26  Benjamin Poulain  <bpoulain@apple.com>
2050
2051         ObjcClass::methodsNamed() can leak if buffer is dynamically allocated
2052         https://bugs.webkit.org/show_bug.cgi?id=84668
2053
2054         Reviewed by Alexey Proskuryakov.
2055
2056         Change ObjcClass::methodsNamed() to be based on a vector instead of managing
2057         the memory manually.
2058
2059         Tests: platform/mac/plugins/bindings-objc-long-method-name.html
2060                platform/mac/plugins/bindings-objc-method-name-conversion.html
2061
2062         * bridge/objc/objc_class.mm:
2063         (Bindings):
2064         (JSC::Bindings::convertJSMethodNameToObjc):
2065         (JSC::Bindings::ObjcClass::methodsNamed):
2066
2067 2012-04-26  Justin Novosad  <junov@chromium.org>
2068
2069         [Chromium] Single buffered canvas layers with the threaded compositor
2070         https://bugs.webkit.org/show_bug.cgi?id=80540
2071
2072         Reviewed by James Robinson.
2073
2074         Tests:
2075         CCLayerTreeHostTestWriteLayersRedraw
2076         CCLayerTreeHostTestWriteLayersAfterVisible
2077         Canvas2DLayerChromiumTest.testFullLifecycleSingleThreadDeferred
2078         Canvas2DLayerChromiumTest.testFullLifecycleThreadDeferred
2079         CCSchedulerTest.VisibilitySwitchWithTextureAcquisition
2080         CCSchedulerTest.TextureAcquisitionCollision
2081
2082         Disable double buffering and rate limiting on accelerated canvas
2083         when the threaded compositor and deferred canvas are enabled.
2084         Concurrent access to the layer texture by the main renderer thread and
2085         the compositor thread is avoided by enforcing a lock. The state of the
2086         lock is maintained by CCSchedulerStateMachine. Write access by the main
2087         thread is acquired through a signal round trip to the compositor thread,
2088         which may block the main thread in the event that one or more committed
2089         layers need to be protected until the compositor completes the requested
2090         draw. Draws on the impl thread are cancelled if the main thread has
2091         obtained write access to the texture.  The write access is relinquished
2092         by the main thread upon commit completion.  The scheduler state machine
2093         is responsible for preventing the texture lock from causing deadlocks by
2094         detecting and resolving problematic states.
2095
2096         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2097         (WebCore::Canvas2DLayerChromium::create):
2098         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
2099         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
2100         (WebCore::Canvas2DLayerChromium::drawingIntoImplThreadTexture):
2101         (WebCore):
2102         (WebCore::Canvas2DLayerChromium::setTextureId):
2103         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
2104         (WebCore::Canvas2DLayerChromium::update):
2105         (WebCore::Canvas2DLayerChromium::layerWillDraw):
2106         (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
2107         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2108         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2109         (WebCore::CCLayerTreeHost::acquireLayerTextures):
2110         (WebCore):
2111         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2112         (CCLayerTreeHost):
2113         * platform/graphics/chromium/cc/CCProxy.h:
2114         (CCProxy):
2115         * platform/graphics/chromium/cc/CCScheduler.cpp:
2116         (WebCore::CCScheduler::setMainThreadNeedsLayerTextures):
2117         (WebCore):
2118         (WebCore::CCScheduler::processScheduledActions):
2119         * platform/graphics/chromium/cc/CCScheduler.h:
2120         (CCSchedulerClient):
2121         (CCScheduler):
2122         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2123         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
2124         (WebCore::CCSchedulerStateMachine::drawSuspendedUntilCommit):
2125         (WebCore):
2126         (WebCore::CCSchedulerStateMachine::scheduledToDraw):
2127         (WebCore::CCSchedulerStateMachine::shouldDraw):
2128         (WebCore::CCSchedulerStateMachine::shouldAcquireLayerTexturesForMainThread):
2129         (WebCore::CCSchedulerStateMachine::nextAction):
2130         (WebCore::CCSchedulerStateMachine::updateState):
2131         (WebCore::CCSchedulerStateMachine::setMainThreadNeedsLayerTextures):
2132         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
2133         (CCSchedulerStateMachine):
2134         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2135         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2136         (WebCore::CCThreadProxy::CCThreadProxy):
2137         (WebCore::CCThreadProxy::beginFrame):
2138         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
2139         (WebCore):
2140         (WebCore::CCThreadProxy::acquireLayerTextures):
2141         (WebCore::CCThreadProxy::acquireLayerTexturesForMainThreadOnImplThread):
2142         (WebCore::CCThreadProxy::scheduledActionAcquireLayerTexturesForMainThread):
2143         * platform/graphics/chromium/cc/CCThreadProxy.h:
2144         (CCThreadProxy):
2145         * platform/graphics/skia/ImageBufferSkia.cpp:
2146         (WebCore):
2147         (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
2148         (WebCore::AcceleratedDeviceContext::prepareForDraw):
2149         (AcceleratedDeviceContext):
2150         (WebCore::createAcceleratedCanvas):
2151         (WebCore::ImageBuffer::context):
2152
2153 2012-04-26  Kentaro Hara  <haraken@chromium.org>
2154
2155         [V8] Pass Isolate to toV8() in SerializedScriptValue.cpp
2156         https://bugs.webkit.org/show_bug.cgi?id=84918
2157
2158         Reviewed by Nate Chapin.
2159
2160         This is the last step to pass Isolate around in
2161         SerializedScriptValue.cpp. This patch passes Isolate
2162         to toV8().
2163
2164         No tests. No change in behavior.
2165
2166         * bindings/v8/SerializedScriptValue.cpp:
2167
2168 2012-04-26  Kentaro Hara  <haraken@chromium.org>
2169
2170         [V8] Pass Isolate to wrapSlow()
2171         https://bugs.webkit.org/show_bug.cgi?id=84919
2172
2173         Reviewed by Nate Chapin.
2174
2175         The objective is to pass Isolate around in V8 bindings.
2176         In this bug, we pass Isolate to wrapSlow().
2177
2178         Test: bindings/scripts/test/TestObj.idl etc
2179
2180         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
2181         (GenerateHeader):
2182         (GenerateToV8Converters):
2183
2184         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.
2185         (WebCore::V8Float64Array::wrapSlow):
2186         * bindings/scripts/test/V8/V8Float64Array.h:
2187         (V8Float64Array):
2188         (WebCore::V8Float64Array::wrap):
2189         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2190         (WebCore::V8TestActiveDOMObject::wrapSlow):
2191         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2192         (V8TestActiveDOMObject):
2193         (WebCore::V8TestActiveDOMObject::wrap):
2194         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2195         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2196         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2197         (V8TestCustomNamedGetter):
2198         (WebCore::V8TestCustomNamedGetter::wrap):
2199         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2200         (WebCore::V8TestEventConstructor::wrapSlow):
2201         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2202         (V8TestEventConstructor):
2203         (WebCore::V8TestEventConstructor::wrap):
2204         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2205         (WebCore::V8TestEventTarget::wrapSlow):
2206         * bindings/scripts/test/V8/V8TestEventTarget.h:
2207         (V8TestEventTarget):
2208         (WebCore::V8TestEventTarget::wrap):
2209         * bindings/scripts/test/V8/V8TestInterface.cpp:
2210         (WebCore::V8TestInterface::wrapSlow):
2211         * bindings/scripts/test/V8/V8TestInterface.h:
2212         (V8TestInterface):
2213         (WebCore::V8TestInterface::wrap):
2214         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2215         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2216         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2217         (V8TestMediaQueryListListener):
2218         (WebCore::V8TestMediaQueryListListener::wrap):
2219         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2220         (WebCore::V8TestNamedConstructor::wrapSlow):
2221         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2222         (V8TestNamedConstructor):
2223         (WebCore::V8TestNamedConstructor::wrap):
2224         * bindings/scripts/test/V8/V8TestNode.cpp:
2225         (WebCore::V8TestNode::wrapSlow):
2226         * bindings/scripts/test/V8/V8TestNode.h:
2227         (V8TestNode):
2228         (WebCore::V8TestNode::wrap):
2229         * bindings/scripts/test/V8/V8TestObj.cpp:
2230         (WebCore::V8TestObj::wrapSlow):
2231         * bindings/scripts/test/V8/V8TestObj.h:
2232         (V8TestObj):
2233         (WebCore::V8TestObj::wrap):
2234         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2235         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2236         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2237         (V8TestSerializedScriptValueInterface):
2238         (WebCore::V8TestSerializedScriptValueInterface::wrap):
2239
2240 2012-04-25  Antonio Gomes  <agomes@rim.com>
2241
2242         Add ScrollAnimatorBlackBerry as an extension to ScrollAnimatorNone
2243         https://bugs.webkit.org/show_bug.cgi?id=84625
2244
2245         Reviewed by Anders Carlsson.
2246
2247         Patch adds ScrollAnimatorBlackBerry class as an extension to of
2248         ScrollAnimatorNone. The main goal here is extending the later to allow
2249         overscrolling while the animation runs.
2250
2251         Once the animation finishes, the flag gets reseted and
2252         ScrollableArea::constrainsScrollingtoContentEdge is set back to the value
2253         it had before, so this method has to be explicitly called anytime it is wanted.
2254
2255         * CMakeLists.txt:
2256         * platform/ScrollAnimator.h:
2257         (WebCore::ScrollAnimator::animationWillStart):
2258         (WebCore::ScrollAnimator::animationDidFinish):
2259         (ScrollAnimator):
2260         * platform/ScrollAnimatorNone.cpp:
2261         (WebCore):
2262         (WebCore::ScrollAnimatorNone::scroll):
2263         (WebCore::ScrollAnimatorNone::animationTimerFired):
2264         * platform/blackberry/ScrollAnimatorBlackBerry.cpp: Added.
2265         (WebCore):
2266         (WebCore::ScrollAnimator::create):
2267         (WebCore::ScrollAnimatorBlackBerry::ScrollAnimatorBlackBerry):
2268         (WebCore::ScrollAnimatorBlackBerry::animationWillStart):
2269         (WebCore::ScrollAnimatorBlackBerry::animationDidFinish):
2270         (WebCore::ScrollAnimatorBlackBerry::setDisableConstrainsScrollingToContentEdgeWhileAnimating):
2271         * platform/blackberry/ScrollAnimatorBlackBerry.h: Added.
2272         (WebCore):
2273         (ScrollAnimatorBlackBerry):
2274
2275 2012-04-26  Antonio Gomes  <agomes@rim.com>
2276
2277         [BlackBerry] Add smooth_scrolling options to CMAKE and enable it for Blackberry
2278         https://bugs.webkit.org/show_bug.cgi?id=84954
2279
2280         Reviewed by Daniel Bates.
2281
2282         Add the default scroll animator to the build system (ScrollAnimatorNone.cpp)
2283
2284         * CMakeLists.txt:
2285
2286 2012-04-25  Antonio Gomes  <agomes@rim.com>
2287
2288         Make ScrollView::scrollSize scrollbar-independent
2289         https://bugs.webkit.org/show_bug.cgi?id=84873
2290
2291         Reviewed by Anders Carlsson.
2292
2293         For ports that disable scrollbars creation at FrameView creation time
2294         ScrollView::scrollSize should still return the scrollable ammount of
2295         content (if any) if scrolling is not prohibted.
2296
2297         No new test, but it makes ScrollAnimator work for the BlackBerry port.
2298
2299         * platform/ScrollView.cpp:
2300         (WebCore::ScrollView::scrollSize):
2301
2302 2012-04-25  Anders Carlsson  <andersca@apple.com>
2303
2304         The tile cache should know if a frame view can ever have scrollbars
2305         https://bugs.webkit.org/show_bug.cgi?id=84888
2306
2307         Reviewed by Andreas Kling.
2308
2309         If a frame view has overflow: hidden on its body element we know that the document will most
2310         likely never be scrolled. The tile cache should know about this so we can optimize.
2311
2312         * page/FrameView.cpp:
2313         (WebCore::FrameView::performPostLayoutTasks):
2314         * platform/graphics/TiledBacking.h:
2315         (TiledBacking):
2316         * platform/graphics/ca/mac/TileCache.h:
2317         (TileCache):
2318         * platform/graphics/ca/mac/TileCache.mm:
2319         (WebCore::TileCache::TileCache):
2320         (WebCore::TileCache::setCanHaveScrollbars):
2321         (WebCore):
2322         * rendering/RenderLayerBacking.cpp:
2323         (WebCore::RenderLayerBacking::RenderLayerBacking):
2324
2325 2012-04-26  Ken Buchanan  <kenrb@chromium.org>
2326
2327         Crash from removal of line break object after layout
2328         https://bugs.webkit.org/show_bug.cgi?id=75461
2329
2330         Reviewed by David Hyatt.
2331
2332         There is a condition where objects can get removed from underneath
2333         inlines while they represent a line break object in a RootInlineBox
2334         of an ancestor block. If an intermediary inline has already been
2335         marked as needing layout, then the line box will not get dirtied
2336         because dirtyLineFromChangedChild thinks it already has been.
2337
2338         This patch introduces a new set in RenderObject to indicate whether
2339         an ancestral line box corresponding to the current line has been
2340         marked dirty or not. dirtyLinesFromChangedChild() can use this set 
2341         rather than m_selfNeedsLayout, so it will not be confused if a
2342         container was dirtied for some other reason that did not affect the
2343         line box.
2344
2345         * rendering/RenderLineBoxList.cpp:
2346         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): Use the new
2347         set rather than m_selfNeedsLayout in the container to determine
2348         whether to continue propagating upward.
2349         * rendering/RenderObject.cpp:
2350         (WebCore::RenderObject::s_ancestorLineboxDirtySet): Instantiate the
2351         static member.
2352         (WebCore::RenderObject::willBeDestroyed): Clears the object from the
2353         linebox set when it is being destroyed.
2354         * rendering/RenderObject.h:
2355         (WebCore::RenderObject::s_ancestorLineboxDirtySet): Added static
2356         member set.
2357         (WebCore::RenderObject::setNeedsLayout): Clears the
2358         object from the linebox set when layout bits are getting cleared.
2359         (WebCore::RenderObject::ancestorLineBoxDirty): Added.
2360         (WebCore::RenderObject::setAncestorLineBoxDirty): Added.
2361
2362 2012-04-26  Christophe Dumez  <christophe.dumez@intel.com>
2363
2364         [EFL] Enable VIDEO_TRACK feature
2365         https://bugs.webkit.org/show_bug.cgi?id=84830
2366
2367         Reviewed by Gustavo Noronha Silva.
2368
2369         Enable support for VIDEO_TRACK feature by default for EFL port.
2370
2371         * UseJSC.cmake:
2372         * bindings/generic/RuntimeEnabledFeatures.cpp:
2373         (WebCore):
2374
2375 2012-04-26  Antti Koivisto  <antti@apple.com>
2376
2377         Implement StyleSheetInternal copying
2378         https://bugs.webkit.org/show_bug.cgi?id=84969
2379
2380         Reviewed by Andreas Kling.
2381
2382         We need to be able to copy stylesheets to cache them. Copying is already implement for
2383         most of the stylesheet data types but StyleSheetInternal::copy() is still missing.
2384         
2385         Preparation for stylesheet caching. The copying code is not used yet.
2386
2387         * css/CSSNamespace.h:
2388         
2389             Instead of making it copyable, remove CSSNamespace class.
2390     
2391         * css/CSSParser.cpp:
2392         (WebCore::operator==):
2393         (WebCore):
2394         (WebCore::CSSParser::addNamespace):
2395         
2396             Avoid ping-ponging to StyleSheetInternal and back to set the default namespace.
2397
2398         * css/CSSParserMode.h:
2399         (WebCore):
2400         (WebCore::operator!=):
2401
2402             Add equality comparison operator to CSSParseMode. This will be needed to determine
2403             if a cached copy can be used.
2404             
2405         * css/CSSStyleSheet.cpp:
2406         (WebCore::StyleSheetInternal::StyleSheetInternal):
2407         (WebCore):
2408         (WebCore::StyleSheetInternal::isCacheable):
2409         (WebCore::StyleSheetInternal::parserAddNamespace):
2410         (WebCore::StyleSheetInternal::determineNamespace):
2411         
2412             Use HashMap instead of iterating a linked list of CSSNamespaces.
2413
2414         (WebCore::StyleSheetInternal::styleSheetChanged):
2415         
2416             Add mutation bit.
2417
2418         * css/CSSStyleSheet.h:
2419         (WebCore):
2420         (StyleSheetInternal):
2421         (WebCore::StyleSheetInternal::copy):
2422         
2423             Copy constructor. It only usable for cacheable stylesheets.
2424
2425 2012-04-26  Philip Rogers  <pdr@google.com>
2426
2427         Fix Skia's SkPathContainsPoint to work with sub-pixel accuracy
2428         https://bugs.webkit.org/show_bug.cgi?id=84117
2429
2430         Reviewed by Eric Seidel.
2431
2432         Because we do hit testing in object-space (i.e., we may see a 0.1px*0.1px path) we
2433         need to support sub-pixel hit testing in Skia. Skia does not provide analytical
2434         path hit testing, so hit tests are done by rasterizing a path and checking if a
2435         specific pixel is drawn. SkPathContainsPoint did not work with sub-pixel values
2436         because this rasterization was sometimes very small which did not give enough
2437         resolution to check if the hit test pixel was drawn.
2438
2439         This patch scales the path to a very large size during hit testing so that Skia's
2440         raster-based hit testing will work properly. Because Skia avoids unnecessary
2441         path rasterization, this is actually inexpensive.
2442
2443         Below is a summary of a performance test on simple and complex paths:
2444                                                  (before patch, after patch)
2445         Skia/Chrome 10,000 hit tests on a simple path:  (229ms, 238ms)
2446         Skia/Chrome 10,000 hit tests on a complex path: (701ms, 704ms)
2447         For comparison, CG/Safari takes 236ms on the simple path and 466ms on the complex path.
2448  
2449         Therefore, this patch introduces small but measurable regression in hit testing
2450         performance due to scaling the path.
2451
2452         Test: svg/hittest/svg-small-path.xhtml
2453
2454         * platform/graphics/skia/SkiaUtils.cpp:
2455         (WebCore::SkPathContainsPoint):
2456
2457 2012-04-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2458
2459         Unreviewed, rolling out r115323.
2460         http://trac.webkit.org/changeset/115323
2461         https://bugs.webkit.org/show_bug.cgi?id=84975
2462
2463         Bad test, breaks all builds (Requested by apavlov1 on
2464         #webkit).
2465
2466         * inspector/Inspector.json:
2467         * inspector/InspectorPageAgent.cpp:
2468         (WebCore::InspectorPageAgent::enable):
2469         (WebCore::InspectorPageAgent::disable):
2470         * inspector/InspectorPageAgent.h:
2471         * inspector/front-end/Settings.js:
2472         * inspector/front-end/SettingsScreen.js:
2473         (WebInspector.SettingsScreen):
2474         * inspector/front-end/inspector.js:
2475
2476 2012-04-26  Douglas Stockwell  <dstockwell@chromium.org>
2477
2478         IndexedDB: cursor does not correctly iterate over keys added and removed during iteration
2479         https://bugs.webkit.org/show_bug.cgi?id=84467
2480
2481         Reviewed by Ojan Vafai.
2482
2483         Ensure that the iterator over the tree of cached adds/removes always points at
2484         the current key, or if the db iterator is current, the next key:
2485         
2486         - When refreshing the tree iterator after a mutation, always seek unless the
2487         tree iterator is current.
2488         
2489         - When handing conflicts and delete markers, only advance the tree iterator as
2490         far as the db iterator.
2491         
2492         Remove the expensive (and now redundant) logic that issued a get() to check
2493         whether an item had been deleted.
2494
2495         Test: storage/indexeddb/cursor-added-bug.html
2496
2497         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2498         (WebCore):
2499         * platform/leveldb/LevelDBTransaction.cpp:
2500         (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
2501         (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
2502
2503 2012-04-26  Alexander Pavlov  <apavlov@chromium.org>
2504
2505         Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
2506         https://bugs.webkit.org/show_bug.cgi?id=84946
2507
2508         Based on user actions in the Inspector frontend, InspectorPageAgent invokes Settings::setScriptEnabled()
2509         for the associated page to switch the script execution therein.
2510
2511         Reviewed by Yury Semikhatsky.
2512
2513         Test: inspector/debugger/disable-script.html
2514
2515         * inspector/Inspector.json:
2516         * inspector/InspectorPageAgent.cpp:
2517         (PageAgentState):
2518         (WebCore::InspectorPageAgent::enable):
2519         (WebCore::InspectorPageAgent::disable):
2520         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
2521         (WebCore):
2522         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
2523         * inspector/InspectorPageAgent.h:
2524         * inspector/front-end/Settings.js:
2525         * inspector/front-end/SettingsScreen.js:
2526         (WebInspector.SettingsScreen):
2527         (WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
2528         (WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):
2529         * inspector/front-end/inspector.js:
2530
2531 2012-04-26  Dominik Röttsches  <dominik.rottsches@linux.intel.com>
2532
2533         [cairo] CairoGraphicsContext fillRect (with Color) overrides composite operator
2534         https://bugs.webkit.org/show_bug.cgi?id=84848
2535
2536         Reviewed by Martin Robinson.
2537
2538         FillRectWithColor used to be called fillRectSourceOver before r89314
2539         where this operator still made sense. The way this function is used
2540         these days doesn't expect the composite operator to be overridden anymore.
2541
2542         No new tests, covered by existing tests, e.g.
2543         svg/filters/feDropShadow.svg
2544
2545         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2546         (WebCore::fillRectWithColor):
2547
2548 2012-04-26  Nikolas Zimmermann  <nzimmermann@rim.com>
2549
2550         Fix additive by animations for most SMIL list types
2551         https://bugs.webkit.org/show_bug.cgi?id=84968
2552
2553         Reviewed by Antti Koivisto.
2554
2555         Unify SMIL list animation code, to correctly respect the underlying from value for by-animations.
2556         Add lots of new tests covering by-animations for all primitives (except AnimatedPath/TransformList).
2557         AnimatedTransformList is not working correctly yet, and will be covered in a follow-up patch.
2558         AnimatdPath by-animations are complex, and thus also handled in another follow-up patch.
2559
2560         Tests: svg/animations/additive-type-by-animation.html
2561                svg/animations/length-list-animation-expected.svg
2562                svg/animations/length-list-animation.svg
2563                svg/animations/svglength-additive-by-1.html
2564                svg/animations/svglength-additive-by-2.html
2565                svg/animations/svglength-additive-by-3.html
2566                svg/animations/svglength-additive-by-4.html
2567                svg/animations/svglength-additive-by-5.html
2568                svg/animations/svglength-additive-by-6.html
2569                svg/animations/svglength-additive-from-by-1.html
2570                svg/animations/svglength-additive-from-by-2.html
2571                svg/animations/svglength-additive-from-by-3.html
2572                svg/animations/svglength-additive-from-by-4.html
2573
2574         * svg/SVGAnimatedLengthList.cpp:
2575         (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
2576         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
2577         * svg/SVGAnimatedNumberList.cpp:
2578         (WebCore::SVGAnimatedNumberListAnimator::addAnimatedTypes):
2579         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
2580         * svg/SVGAnimatedPointList.cpp:
2581         (WebCore::SVGAnimatedPointListAnimator::addAnimatedTypes):
2582         (WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
2583         * svg/SVGAnimationElement.h:
2584         (WebCore::SVGAnimationElement::adjustFromToListValues):
2585
2586 2012-04-26  Antti Koivisto  <antti@apple.com>
2587
2588         Add copy constructor to CSSSelector
2589         https://bugs.webkit.org/show_bug.cgi?id=84956
2590
2591         Reviewed by Anders Carlsson.
2592
2593         To copy CSSSelectorLists correctly CSSSelector needs a copy constructor.
2594         
2595         This will be needed to implement stylesheet caching. The code is not used yet.
2596
2597         * css/CSSSelector.cpp:
2598         (WebCore::CSSSelector::createRareData):
2599         * css/CSSSelector.h:
2600         (CSSSelector):
2601         (WebCore::CSSSelector::RareData::create):
2602         (RareData):
2603         
2604             Refcount RareData to make copying easier. This has no significant memory impact, rare data is rare.
2605
2606         (WebCore::CSSSelector::CSSSelector):
2607         (WebCore):
2608         (WebCore::CSSSelector::~CSSSelector):
2609         * css/CSSSelectorList.cpp:
2610         (WebCore::CSSSelectorList::CSSSelectorList):
2611         
2612             Use copy constructor instead of memcpy (which doesn't work).
2613
2614 2012-04-26  Raphael Kubo da Costa  <rakuco@webkit.org>
2615
2616         [EFL] Fix the build with DRAG_SUPPORT disabled.
2617         https://bugs.webkit.org/show_bug.cgi?id=84963
2618
2619         Reviewed by Antonio Gomes.
2620
2621         No new tests, build system-related change.
2622
2623         EventHandlerEfl.cpp always assumed DRAG_SUPPORT was enabled and lacked
2624         the proper #if ENABLED() checks for some member variables and methods
2625         conditionally defined in EventHandler.h.
2626
2627         * page/efl/EventHandlerEfl.cpp:
2628         (WebCore):
2629
2630 2012-04-26  Pavel Feldman  <pfeldman@chromium.org>
2631
2632         Web Inspector: remove stackTrace property from requestWillBeSent - it is already a part of the initiator.
2633         https://bugs.webkit.org/show_bug.cgi?id=84964
2634
2635         Reviewed by Yury Semikhatsky.
2636
2637         * inspector/InspectorResourceAgent.cpp:
2638         (WebCore::InspectorResourceAgent::willSendRequest):
2639         * inspector/front-end/ConsoleMessage.js:
2640         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2641         * inspector/front-end/NetworkManager.js:
2642         (WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
2643         (WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
2644         (WebInspector.NetworkDispatcher.prototype._appendRedirect):
2645         (WebInspector.NetworkDispatcher.prototype._createNetworkRequest):
2646         (get WebInspector):
2647
2648 2012-04-26  Stephen Chenney  <schenney@chromium.org>
2649
2650         SVG FEConvolveMatrix does not check for invalid property values
2651         https://bugs.webkit.org/show_bug.cgi?id=84363
2652
2653         Reviewed by Dirk Schulze.
2654
2655         Adding code to check for valid input values on SVG feConvolveMatrix properties.
2656         And adding some of the first effective error reporting for SVG elements.
2657
2658         Tests: svg/filters/feConvolveMatrix-invalid-targetX-expected.svg
2659                svg/filters/feConvolveMatrix-invalid-targetX.svg
2660                svg/filters/feConvolveMatrix-invalid-targetY-expected.svg
2661                svg/filters/feConvolveMatrix-invalid-targetY.svg
2662                svg/filters/feConvolveMatrix-negative-kernelUnitLengthX-expected.svg
2663                svg/filters/feConvolveMatrix-negative-kernelUnitLengthX.svg
2664                svg/filters/feConvolveMatrix-negative-kernelUnitLengthY-expected.svg
2665                svg/filters/feConvolveMatrix-negative-kernelUnitLengthY.svg
2666                svg/filters/feConvolveMatrix-negative-orderX-expected.svg
2667                svg/filters/feConvolveMatrix-negative-orderX.svg
2668                svg/filters/feConvolveMatrix-negative-orderY-expected.svg
2669                svg/filters/feConvolveMatrix-negative-orderY.svg
2670                svg/filters/feConvolveMatrix-non-integral-order-expected.svg
2671                svg/filters/feConvolveMatrix-non-integral-order.svg
2672                svg/filters/feConvolveMatrix-zero-divisor-expected.svg
2673                svg/filters/feConvolveMatrix-zero-divisor.svg
2674
2675         * platform/graphics/filters/FEConvolveMatrix.cpp:
2676         (WebCore::FEConvolveMatrix::FEConvolveMatrix):
2677         (WebCore::FEConvolveMatrix::setKernelSize):
2678         (WebCore::FEConvolveMatrix::setDivisor):
2679         (WebCore::FEConvolveMatrix::setKernelUnitLength):
2680         * svg/SVGFEConvolveMatrixElement.cpp:
2681         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
2682         (WebCore::SVGFEConvolveMatrixElement::build):
2683
2684 2012-04-26  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2685
2686         Move WebKit1 specific conversion of touch-events to WebKit1.
2687         https://bugs.webkit.org/show_bug.cgi?id=84951
2688
2689         Reviewed by Kenneth Rohde Christiansen.
2690
2691         No change in functionality. No new tests. 
2692
2693         * Target.pri:
2694         * platform/PlatformTouchEvent.h:
2695         (PlatformTouchEvent):
2696         * platform/PlatformTouchPoint.h:
2697         (PlatformTouchPoint):
2698         * platform/qt/PlatformTouchEventQt.cpp: Removed.
2699         * platform/qt/PlatformTouchPointQt.cpp: Removed.
2700
2701 2012-04-26  Nikolas Zimmermann  <nzimmermann@rim.com>
2702
2703         Share code used to animate numbers types between all animators
2704         https://bugs.webkit.org/show_bug.cgi?id=84945
2705
2706         Reviewed by Antti Koivisto.
2707
2708         Refactor animateAdditiveNumber() from SVGAnimatedNumberAnimator into SVGAnimationElement,
2709         to reuse it for all primitives. Converted most primitives to use the new code. Lists, paths,
2710         colors are still todo.
2711
2712         Doesn't affect any tests.
2713
2714         * svg/SVGAnimatedAngle.cpp:
2715         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
2716         * svg/SVGAnimatedInteger.cpp:
2717         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
2718         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
2719         * svg/SVGAnimatedInteger.h:
2720         (SVGAnimatedIntegerAnimator):
2721         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
2722         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
2723         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
2724         * svg/SVGAnimatedLength.cpp:
2725         (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
2726         * svg/SVGAnimatedLengthList.cpp:
2727         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
2728         * svg/SVGAnimatedNumber.cpp:
2729         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
2730         * svg/SVGAnimatedNumber.h:
2731         * svg/SVGAnimatedNumberList.cpp:
2732         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
2733         * svg/SVGAnimatedNumberOptionalNumber.cpp:
2734         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
2735         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
2736         * svg/SVGAnimatedNumberOptionalNumber.h:
2737         * svg/SVGAnimatedRect.cpp:
2738         (WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
2739         * svg/SVGAnimationElement.h:
2740         (WebCore::SVGAnimationElement::animateAdditiveNumber):
2741         (SVGAnimationElement):
2742
2743 2012-04-26  Ryosuke Niwa  <rniwa@webkit.org>
2744
2745         Forgotten build fix after r115227.
2746
2747         * css/StylePropertySet.cpp:
2748         (WebCore::StylePropertySet::get4Values):
2749
2750 2012-04-26  Mihnea Ovidenie  <mihnea@adobe.com>
2751
2752         Crash when collecting svg symbol element in named flow.
2753         https://bugs.webkit.org/show_bug.cgi?id=84493
2754
2755         Reviewed by David Hyatt.
2756
2757         Test: fast/regions/symbol-in-named-flow-crash.svg
2758
2759         * dom/Element.cpp:
2760         (WebCore::Element::~Element):
2761         Add an assert that an element that was collected into a named flow was already removed at this point
2762         (when the document is not in the process of destruction)
2763         (WebCore::Element::unregisterNamedFlowContentNode):
2764         Created a new function for unregistering a content node. In the future, this function may be used for
2765         content nodes from shadow dom.
2766         (WebCore::Element::detach):
2767         * dom/Element.h:
2768         (Element):
2769         * dom/NodeRenderingContext.cpp:
2770         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2771         Prevent elements that are part of shadow dom to be collected into a named flow.
2772
2773 2012-04-26  Nikolas Zimmermann  <nzimmermann@rim.com>
2774
2775         Share code used to animate discrete types between all animators
2776         https://bugs.webkit.org/show_bug.cgi?id=84853
2777
2778         Reviewed by Andreas Kling.
2779
2780         Share by-animation handling for non-additive types in a central method in SVGAnimatedTypeAnimator,
2781         to be reusable by SVGAnimatedBoolean/Enumeration/PreserveAspectRatio/String. Add a new test covering
2782         these animations have no effect.
2783
2784         Test: svg/animations/non-additive-type-by-animation.html
2785
2786         * svg/SVGAnimateElement.cpp:
2787         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2788         (WebCore::SVGAnimateElement::isAdditive):
2789         * svg/SVGAnimateElement.h:
2790         (SVGAnimateElement):
2791         * svg/SVGAnimateMotionElement.cpp:
2792         (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
2793         * svg/SVGAnimatedBoolean.cpp:
2794         (WebCore::isTrueString):
2795         (WebCore::SVGAnimatedBooleanAnimator::constructFromString):
2796         (WebCore::SVGAnimatedBooleanAnimator::addAnimatedTypes):
2797         (WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
2798         * svg/SVGAnimatedEnumeration.cpp:
2799         (WebCore::SVGAnimatedEnumerationAnimator::addAnimatedTypes):
2800         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
2801         * svg/SVGAnimatedPreserveAspectRatio.cpp:
2802         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::addAnimatedTypes):
2803         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
2804         * svg/SVGAnimatedString.cpp:
2805         (WebCore::SVGAnimatedStringAnimator::addAnimatedTypes):
2806         (WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
2807         * svg/SVGAnimationElement.cpp:
2808         (WebCore::SVGAnimationElement::startedActiveInterval):
2809         * svg/SVGAnimationElement.h:
2810         (SVGAnimationElement):
2811         (WebCore::SVGAnimationElement::animateDiscreteType):
2812
2813 2012-04-26  Chris Fleizach2  <cfleizach@apple.com>
2814
2815         CrashTracer: [USER] 157 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityRenderObject::isAttachment const + 29
2816         https://bugs.webkit.org/show_bug.cgi?id=84463
2817
2818         Reviewed by Darin Adler.
2819
2820         Accessibility was not being enabled when WK2 was asking only for the focused UI element.
2821
2822         No layout test could be written because the WKTestRunner mechanism works differently when asking for this.
2823
2824         * accessibility/AXObjectCache.cpp:
2825         (WebCore::AXObjectCache::focusedUIElementForPage):
2826         (WebCore::AXObjectCache::rootObject):
2827         (WebCore::AXObjectCache::rootObjectForFrame):
2828
2829 2012-04-25  Dana Jansens  <danakj@chromium.org>
2830
2831         [chromium] Remove guarded virtual methods from WebFilterOperation API
2832         https://bugs.webkit.org/show_bug.cgi?id=84926
2833
2834         Reviewed by James Robinson.
2835
2836         * WebCore.gypi:
2837         * platform/chromium/support/WebFilterOperation.cpp: Removed.
2838         * platform/chromium/support/WebFilterOperations.cpp:
2839         (WebKit::WebFilterOperations::append):
2840
2841 2012-04-25  Benjamin Poulain  <benjamin@webkit.org>
2842
2843         Add a version of StringImpl::find() without offset
2844         https://bugs.webkit.org/show_bug.cgi?id=83968
2845
2846         Reviewed by Sam Weinig.
2847
2848         Remove the zero offset of the find() functions on strings.
2849
2850         * html/parser/XSSAuditor.cpp:
2851         (WebCore::XSSAuditor::init):
2852         * platform/network/ResourceResponseBase.cpp:
2853         (WebCore::trimToNextSeparator):
2854         (WebCore::parseCacheHeader):
2855
2856 2012-04-25  Mark Hahnenberg  <mhahnenberg@apple.com>
2857
2858         WebCore shouldn't call collectAllGarbage directly
2859         https://bugs.webkit.org/show_bug.cgi?id=84897
2860
2861         Reviewed by Geoffrey Garen.
2862
2863         No new tests. 
2864
2865         Currently, GCController calls Heap::collectAllGarbage directly, which leads 
2866         to an overload of collections as the timer in GCController and the timer in 
2867         GCActivityCallback compete for collection time and fire independently. As a 
2868         result, we end up doing almost 600 full collections during an in-browser run 
2869         of SunSpider, or 20 full collections on a single load of TechCrunch. 
2870
2871         We can do better by preventing WebCore from calling collectAllGarbage directly 
2872         and instead going through Heap::reportAbandonedObjectGraph, since that is what 
2873         WebCore is trying to do--notify the Heap that a lot of garbage may have just 
2874         been generated when we left a page.
2875
2876         * WebCore.exp.in:
2877         * bindings/js/GCController.cpp: Removed all timer stuff.
2878         (WebCore::GCController::GCController):
2879         (WebCore::GCController::garbageCollectSoon): Changed to call Heap::reportAbandonedObjectGraph.
2880         (WebCore::GCController::garbageCollectNow): Changed to still directly call collectAllGarbage.
2881         We will deprecate this function soon hopefully.
2882         * bindings/js/GCController.h: Removed timer stuff.
2883         (GCController):
2884         * bindings/js/ScriptProfiler.cpp:
2885         (WebCore::ScriptProfiler::collectGarbage): Changed to call garbageCollectSoon.
2886
2887 2012-04-25  James Robinson  <jamesr@chromium.org>
2888
2889         [chromium] REGRESSION(112286) Compositor initialization blocks for program compilation / linking
2890         https://bugs.webkit.org/show_bug.cgi?id=84822
2891
2892         Reviewed by Adrienne Walker.
2893
2894         r112286 introduced a subtle regression in the chromium compositor startup sequence - by querying the texture
2895         copy program's uniform location at the end of LayerRendererChromium::initialize(), the compositor's thread was
2896         blocked until the service side compiled _all_ eagerly initialized shaders. The intent of the way the compositor
2897         programs are created is that a set of commonly-used programs are sent to the service side, but no blocking calls
2898         are made until after we go through the first paint (with the hope that the service side will complete the
2899         compilation by then).
2900
2901         Fixed by moving program initialization (which also grabs uniform locations) until the first actual use of the
2902         copier. It may be worth deferring the program initialization completely if it's not used very often.
2903
2904         Added unit test in LayerRendererChromiumTests to make sure LRC initialization does not make any
2905         synchronous calls (like getUniformLocation()).
2906
2907         * platform/graphics/chromium/TextureCopier.cpp:
2908         (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
2909         (WebCore::AcceleratedTextureCopier::copyTexture):
2910
2911 2012-04-25  Jason Liu  <jason.liu@torchmobile.com.cn>
2912
2913         [BlackBerry] Authenticated proxy isn't working.
2914         https://bugs.webkit.org/show_bug.cgi?id=84579
2915
2916         Reviewed by Antonio Gomes.
2917
2918         We should try to get username and password from WiFi advanced configuration first
2919         when 407 is received.
2920
2921         No new tests. This is covered by existing http tests when proxy's username and password
2922         are configured for WiFi.
2923
2924         * platform/network/blackberry/NetworkJob.cpp:
2925         (WebCore::NetworkJob::sendRequestWithCredentials):
2926
2927 2012-04-25  Alec Flett  <alecflett@chromium.org>
2928
2929         IndexedDB: implement cursor.advance()
2930         https://bugs.webkit.org/show_bug.cgi?id=84174
2931
2932         Reviewed by Ojan Vafai.
2933
2934         Implement IDBCursor.advance() to spec.
2935
2936         Test: storage/indexeddb/cursor-advance.html
2937
2938         * Modules/indexeddb/IDBBackingStore.h:
2939         * Modules/indexeddb/IDBCursor.cpp:
2940         (WebCore::IDBCursor::advance):
2941         (WebCore):
2942         * Modules/indexeddb/IDBCursor.h:
2943         (IDBCursor):
2944         * Modules/indexeddb/IDBCursor.idl:
2945         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
2946         (WebCore::IDBCursorBackendImpl::advance):
2947         (WebCore):
2948         (WebCore::IDBCursorBackendImpl::advanceInternal):
2949         * Modules/indexeddb/IDBCursorBackendImpl.h:
2950         (IDBCursorBackendImpl):
2951         * Modules/indexeddb/IDBCursorBackendInterface.h:
2952         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2953         (WebCore):
2954
2955 2012-04-24  Adrienne Walker  <enne@google.com>
2956
2957         [chromium] Hold video provider lock from willDraw to didDraw
2958         https://bugs.webkit.org/show_bug.cgi?id=84805
2959
2960         Reviewed by James Robinson.
2961
2962         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2963         (WebCore::CCVideoLayerImpl::willDraw):
2964         (WebCore):
2965         (WebCore::CCVideoLayerImpl::willDrawInternal):
2966         (WebCore::CCVideoLayerImpl::appendQuads):
2967         (WebCore::CCVideoLayerImpl::didDraw):
2968         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2969
2970 2012-04-25  Adrienne Walker  <enne@google.com>
2971
2972         [chromium] Prevent CCLayerImpl::willDraw/didDraw mismatches
2973         https://bugs.webkit.org/show_bug.cgi?id=84812
2974
2975         Reviewed by James Robinson.
2976
2977         Because some layers lock/unlock resources, it needs to be guaranteed
2978         that if willDraw is called on a layer then didDraw will also be called
2979         on that layer before another willDraw or before layer destruction. Add
2980         asserts to make sure that this is the case.
2981
2982         willDraw is called via CCLayerTreeHostImpl::prepareToDraw ->
2983         calculateRenderPasses. didDraw was previously called in
2984         CCLayerTreeHostImpl::drawLayers. Sometimes drawLayers was being
2985         skipped by the caller of these functions based on what prepareToDraw
2986         returned (causing didDraw to not be called). Fix this by having an
2987         explicit step to call didDraw on all layers. This new didDrawAllLayers
2988         function must be called if and only if prepareToDraw is called.
2989
2990         Tested by existing tests via new asserts in CCLayerImpl.
2991
2992         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2993         (WebCore::CCLayerImpl::CCLayerImpl):
2994         (WebCore::CCLayerImpl::~CCLayerImpl):
2995         (WebCore::CCLayerImpl::willDraw):
2996         (WebCore):
2997         (WebCore::CCLayerImpl::didDraw):
2998         * platform/graphics/chromium/cc/CCLayerImpl.h:
2999         (CCLayerImpl):
3000         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3001         (WebCore::CCLayerTreeHostImpl::drawLayers):
3002         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
3003         (WebCore):
3004         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3005         (CCLayerTreeHostImpl):
3006         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
3007         (WebCore::CCScrollbarLayerImpl::willDraw):
3008         (WebCore::CCScrollbarLayerImpl::didDraw):
3009         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3010         (WebCore::CCSingleThreadProxy::doComposite):
3011         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
3012         (WebCore::CCTextureLayerImpl::willDraw):
3013         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3014         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
3015         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3016         (WebCore::CCVideoLayerImpl::willDraw):
3017         (WebCore::CCVideoLayerImpl::didDraw):
3018
3019 2012-04-24  Kent Tamura  <tkent@chromium.org>
3020
3021         Calendar Picker: Resize to minimal size to fit the content
3022         https://bugs.webkit.org/show_bug.cgi?id=84826
3023
3024         Reviewed by Hajime Morita.
3025
3026         Using fixed-size popup isn't nice. The calender picker popup size should
3027         be minimal.
3028
3029         The minimal size depends on font settings, localized labels, and
3030         localized formats. So we put visible objects on a transparent element,
3031         calculate minimal size, resize the popup, then show the objects.
3032
3033         * Resources/calendarPicker.css:
3034         (body): Don't use purple. It was for debugging purpose.
3035         The body is visible for a short period becuse we use transparent element.
3036         (#main):
3037          - Add nowrap to avoid text wrapping.
3038          - Add wider width to avoid wrapping.
3039          - Add opacity to hide incomplete layout.
3040         (.year-month-upper): Don't set flexible box yet.
3041         (.month-selector-box): Fix incorrect display value.
3042         (.days-area):
3043         Don't set table-layout:fixed and width:100% in order that it has the
3044         minimal width.
3045
3046         * Resources/calendarPicker.js:
3047         (initialize): Make a new functio to resize.
3048         (fixWindowSize):
3049         Compute the required width from the right edge of the next year button,
3050         the maximum cell width, and so on.  Then, set CSS properties to have
3051         correct layout.
3052         (YearMonthController.prototype.attachTo):
3053         Set min-width property for a long year-month string.
3054         (YearMonthController.prototype._showPopup):
3055         Center the _monthPopup vertically.
3056
3057         * html/shadow/CalendarPickerElement.cpp:
3058         (WebCore::CalendarPickerElement::contentSize):
3059         Specify small size for the initial size. It's better than showing a
3060         large window then shrink the size.
3061         * page/PagePopupClient.h:
3062         (PagePopupClient): Remove a false comment. We should support resize*().
3063
3064 2012-04-25  Kent Tamura  <tkent@chromium.org>
3065
3066         Unreviewed. Sort Xcode project file.
3067
3068         * WebCore.xcodeproj/project.pbxproj:
3069
3070 2012-04-25  Alpha Lam  <hclam@chromium.org>
3071
3072         Unreviewed, rolling out r115260.
3073         http://trac.webkit.org/changeset/115260
3074         https://bugs.webkit.org/show_bug.cgi?id=84467
3075
3076         r115260 is crashing a list of IndexDB tests, revert.
3077
3078         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
3079         (WebCore):
3080         * platform/leveldb/LevelDBTransaction.cpp:
3081         (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
3082         (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
3083         * platform/leveldb/LevelDBTransaction.h:
3084         (TransactionIterator):
3085
3086 2012-04-25  James Simonsen  <simonjam@chromium.org>
3087
3088         [Web Timing] Add a vendor-prefixed Performance Timeline API
3089         https://bugs.webkit.org/show_bug.cgi?id=80350
3090
3091         As described here: http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
3092
3093         The API is there and should be correct, but it isn't particularly useful,
3094         because nothing is populated. Upcoming changes will add Navigation Timing
3095         and Resource Timing.
3096
3097         Reviewed by Tony Gentilcore.
3098
3099         No new tests. Functionality is disabled on all platforms.
3100
3101         * CMakeLists.txt: Added PerformanceEntry* files.
3102         * DerivedSources.pri: Ditto.
3103         * GNUmakefile.list.am: Ditto.
3104         * WebCore.gypi: Ditto.
3105         * WebCore.vcproj/WebCore.vcproj: Ditto.
3106         * WebCore.xcodeproj/project.pbxproj: Ditto.
3107         * page/Performance.cpp:
3108         (WebCore::Performance::webkitGetEntries): Added.
3109         (WebCore::Performance::webkitGetEntriesByType): Added.
3110         (WebCore::Performance::webkitGetEntriesByName): Added.
3111         * page/Performance.h:
3112         (Performance):
3113         * page/Performance.idl:
3114         * page/PerformanceEntry.cpp: Added.
3115         (WebCore):
3116         (WebCore::PerformanceEntry::PerformanceEntry):
3117         (WebCore::PerformanceEntry::name):
3118         (WebCore::PerformanceEntry::entryType):
3119         (WebCore::PerformanceEntry::startTime):
3120         (WebCore::PerformanceEntry::duration):
3121         * page/PerformanceEntry.h: Added.
3122         (WebCore):
3123         (PerformanceEntry):
3124         * page/PerformanceEntry.idl: Added.
3125         * page/PerformanceEntryList.cpp: Added.
3126         (WebCore):
3127         (WebCore::PerformanceEntryList::PerformanceEntryList):
3128         (WebCore::PerformanceEntryList::~PerformanceEntryList):
3129         (WebCore::PerformanceEntryList::length):
3130         (WebCore::PerformanceEntryList::item):
3131         (WebCore::PerformanceEntryList::append):
3132         * page/PerformanceEntryList.h: Added.
3133         (WebCore):
3134         (PerformanceEntryList):
3135         (WebCore::PerformanceEntryList::create):
3136         * page/PerformanceEntryList.idl: Added.
3137
3138 2012-04-25  Benjamin Poulain  <bpoulain@apple.com>
3139
3140         Move convertJSMethodNameToObjc() to be a utility function of ObjcClass
3141         https://bugs.webkit.org/show_bug.cgi?id=84915
3142
3143         Reviewed by Darin Adler.
3144
3145         The function convertJSMethodNameToObjc() is only useful for ObjcClass::methodsNamed().
3146
3147         This patch moves the function from objc_utility.mm to be a static function in objc_class.mm.
3148         It aims at simplifying the code for future changes of ObjcClass.
3149
3150         * bridge/objc/objc_class.mm:
3151         (Bindings):
3152         (JSC::Bindings::convertJSMethodNameToObjc):
3153         * bridge/objc/objc_utility.h:
3154         * bridge/objc/objc_utility.mm:
3155         (Bindings):
3156
3157 2012-04-25  Kent Tamura  <tkent@chromium.org>
3158
3159         Unreviewed. Sort Xcode project file.
3160
3161         * WebCore.xcodeproj/project.pbxproj:
3162
3163 2012-04-25  Greg Billock  <gbillock@google.com>
3164
3165         Implement object-literal constructor for the Intent object.
3166         https://bugs.webkit.org/show_bug.cgi?id=84220
3167
3168         Reviewed by Kentaro Hara.
3169
3170         The use of the custom constructor will hopefully be temporary, as we plan
3171         to convert to just using the object literal constructor, which can then use codegen.
3172         See spec: http://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview.html
3173
3174         Added support for the service and extras parameters in the Intent
3175         object to support the speced members in the object literal constructor.
3176
3177         Added supporting accessor to Dictionary to retrieve a sub-Dictionary,
3178         and a utility to ScriptValue to serialize with ports.
3179
3180         Test: webintents/web-intent-obj-constructor.html
3181
3182         (WebCore):
3183         * Modules/intents/Intent.cpp:
3184         (WebCore::Intent::create):
3185         (WebCore::Intent::Intent):
3186         (WebCore::Intent::service):
3187         (WebCore):
3188         (WebCore::Intent::extras):
3189         * Modules/intents/Intent.h:
3190         (WebCore):
3191         (Intent):
3192         * Modules/intents/Intent.idl:
3193         * WebCore.gypi:
3194         * bindings/v8/Dictionary.cpp:
3195         (WebCore::Dictionary::get):
3196         (WebCore):
3197         * bindings/v8/Dictionary.h:
3198         (Dictionary):
3199         * bindings/v8/ScriptValue.cpp:
3200         (WebCore::ScriptValue::serialize):
3201         (WebCore):
3202         * bindings/v8/ScriptValue.h:
3203         (WTF):
3204         (WebCore):
3205         (ScriptValue):
3206         * bindings/v8/custom/V8IntentConstructor.cpp: Added.
3207         (WebCore):
3208         (WebCore::V8Intent::constructorCallback):
3209
3210 2012-04-25  Alexandru Chiculita  <achicu@adobe.com>
3211
3212         CSS Shaders: Use u_texture instead of s_texture. It was updated in the spec
3213         https://bugs.webkit.org/show_bug.cgi?id=82618
3214
3215         Reviewed by Dean Jackson.
3216         
3217         Changed the uniform name passed to the CSS Shaders from s_texture to u_texture.
3218         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
3219
3220         No new tests, just updating existing ones.
3221
3222         * platform/graphics/filters/CustomFilterShader.cpp:
3223         (WebCore::CustomFilterShader::defaultFragmentShaderString):
3224         (WebCore::CustomFilterShader::initializeParameterLocations):
3225
3226 2012-04-25  Douglas Stockwell  <dstockwell@chromium.org>
3227
3228         IndexedDB: cursor does not correctly iterate over keys added and removed during iteration
3229         https://bugs.webkit.org/show_bug.cgi?id=84467
3230
3231         Reviewed by Ojan Vafai.
3232
3233         Ensure that the iterator over the tree of cached adds/removes always points at
3234         the current key, or if the db iterator is current, the next key:
3235         
3236         - When refreshing the tree iterator after a mutation, always seek unless the
3237         tree iterator is current.
3238         
3239         - When handing conflicts and delete markers, only advance the tree iterator as
3240         far as the db iterator.
3241         
3242         Remove the expensive (and now redundant) logic that issued a get() to check
3243         whether an item had been deleted.
3244
3245         Test: storage/indexeddb/cursor-added-bug.html
3246
3247         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
3248         (WebCore):
3249         * platform/leveldb/LevelDBTransaction.cpp:
3250         (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
3251         (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
3252
3253 2012-04-25  Antti Koivisto  <antti@apple.com>
3254
3255         Try to fix build with STYLE_SCOPED enabled.
3256
3257         Not reviewed.
3258
3259         * css/StyleResolver.cpp:
3260         (WebCore::StyleResolver::determineScope):
3261
3262 2012-04-25  Alec Flett  <alecflett@chromium.org>
3263
3264         IndexedDB: support openCursor(IDBKey)
3265         https://bugs.webkit.org/show_bug.cgi?id=84652
3266
3267         Reviewed by Ojan Vafai.
3268
3269         Add signatures for openCursor/openKeyCursor(IDBKey).
3270
3271         Test: storage/indexeddb/opencursor-key.html
3272
3273         * Modules/indexeddb/IDBIndex.cpp:
3274         (WebCore::IDBIndex::openCursor):
3275         (WebCore):
3276         (WebCore::IDBIndex::openKeyCursor):
3277         * Modules/indexeddb/IDBIndex.h:
3278         (WebCore::IDBIndex::openCursor):
3279         (IDBIndex):
3280         (WebCore::IDBIndex::openKeyCursor):
3281         * Modules/indexeddb/IDBIndex.idl:
3282         * Modules/indexeddb/IDBObjectStore.cpp:
3283         (WebCore::IDBObjectStore::openCursor):
3284         (WebCore):
3285         * Modules/indexeddb/IDBObjectStore.h:
3286         (WebCore::IDBObjectStore::openCursor):
3287         (IDBObjectStore):
3288         * Modules/indexeddb/IDBObjectStore.idl:
3289
3290 2012-04-25  Antti Koivisto  <antti@apple.com>
3291
3292         Remove owner node pointer from StyleSheetInternal 
3293         https://bugs.webkit.org/show_bug.cgi?id=84882
3294
3295         Reviewed by Andreas Kling.
3296
3297         To make sharing between multiple nodes possible StyleSheetInternal should not have a Node pointer.
3298         
3299         - Make StyleSheetInternal constructor take CSSParserContext instead of Node*
3300         - Move owner node pointer to CSSStyleSheet. CSSStyleSheet now acts as a client for StyleSheetInternal.
3301         
3302         This gets us closer to being able to cache stylesheet data structures.
3303         
3304         * css/CSSImportRule.cpp:
3305         (WebCore::StyleRuleImport::setCSSStyleSheet):
3306         (WebCore::StyleRuleImport::requestStyleSheet):
3307         
3308             Setup CSSParserContext.
3309             Remove FIXME about updateBaseURL(). It is no longer possible to change URL of StyleSheetInternal.
3310
3311         * css/CSSPageRule.cpp:
3312         (WebCore::CSSPageRule::setSelectorText):
3313         * css/CSSParser.cpp:
3314         (WebCore::CSSParserContext::CSSParserContext):
3315         * css/CSSParserMode.h:
3316         (CSSParserContext):
3317     
3318             Expand CSSParserContext constructors.
3319
3320         * css/CSSStyleRule.cpp:
3321         (WebCore::CSSStyleRule::setSelectorText):
3322         * css/StyleResolver.cpp:
3323         (WebCore::StyleResolver::StyleResolver):
3324         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
3325         (WebCore::StyleResolver::collectMatchingRulesForList):
3326         * css/StyleResolver.h:
3327         (StyleResolver):
3328         * css/CSSStyleSheet.cpp:
3329
3330             User stylesheets went back to being CSSStyleSheets. Adapt to that.
3331
3332         (WebCore::StyleSheetInternal::StyleSheetInternal):
3333         (WebCore):
3334         (WebCore::StyleSheetInternal::checkLoaded):
3335         (WebCore::StyleSheetInternal::startLoadingDynamicSheet):
3336         (WebCore::StyleSheetInternal::rootStyleSheet):
3337         (WebCore::StyleSheetInternal::singleOwnerNode):
3338         (WebCore::StyleSheetInternal::singleOwnerDocument):
3339         (WebCore::StyleSheetInternal::styleSheetChanged):
3340         
3341             The owner node is now located through CSSStyleSheet. Only one client is supported atm.
3342
3343         (WebCore::StyleSheetInternal::registerClient):
3344         (WebCore::StyleSheetInternal::unregisterClient):
3345         
3346             Register CSSStyleSheets.
3347
3348         (WebCore::CSSStyleSheet::CSSStyleSheet):
3349         (WebCore::CSSStyleSheet::~CSSStyleSheet):
3350         (WebCore::CSSStyleSheet::rules):
3351         (WebCore::CSSStyleSheet::cssRules):
3352         (WebCore::CSSStyleSheet::ownerDocument):
3353         * css/CSSStyleSheet.h:
3354         (WebCore::StyleSheetInternal::create):
3355         (WebCore::StyleSheetInternal::createInline):
3356         (StyleSheetInternal):
3357         (WebCore::CSSStyleSheet::create):
3358         (CSSStyleSheet):
3359         
3360             Moved m_ownerNode.
3361             Changed constructors
3362             Removed setFinalURL(). 
3363
3364         * css/PropertySetCSSStyleDeclaration.cpp:
3365         (WebCore::StyleRuleCSSStyleDeclaration::setNeedsStyleRecalc):
3366         * dom/Document.cpp:
3367         (WebCore::Document::updateBaseURL):
3368         
3369             Instead of setFinalURL, construct a new StyleSheetInternal if the base url ever changes.
3370
3371         (WebCore::Document::pageUserSheet):
3372         (WebCore::Document::pageGroupUserSheets):
3373         (WebCore::Document::addUserSheet):
3374         (WebCore::Document::elementSheet):
3375         * dom/Document.h:
3376         (Document):
3377         (WebCore::Document::documentUserSheets):
3378         
3379             Adapt to the new interface.
3380             Turned user stylesheets CSSStyleSheets so they can find the owner node.
3381
3382         * dom/ProcessingInstruction.cpp:
3383         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3384         * dom/StyleElement.cpp:
3385         (WebCore::StyleElement::createSheet):
3386         * html/HTMLLinkElement.cpp:
3387         (WebCore::HTMLLinkElement::setCSSStyleSheet):
3388         * inspector/InspectorCSSAgent.cpp:
3389         (WebCore::SelectorProfile::startSelector):
3390         (WebCore::InspectorCSSAgent::bindStyleSheet):
3391         * inspector/InspectorStyleSheet.cpp:
3392         (WebCore::fillMediaListChain):
3393         (WebCore::InspectorStyleSheet::ownerDocument):
3394         * page/PageSerializer.cpp:
3395         (WebCore::PageSerializer::serializeCSSStyleSheet):
3396
3397 2012-04-25  Adam Klein  <adamk@chromium.org>
3398
3399         Fix uninitialized variable warnings in PasteboardMac.mm after 115145
3400         https://bugs.webkit.org/show_bug.cgi?id=84879
3401
3402         Reviewed by Enrica Casucci.
3403
3404         * platform/mac/PasteboardMac.mm:
3405         (WebCore::Pasteboard::getDataSelection): Initialize attributedString to nil.
3406         (WebCore::Pasteboard::writeSelectionForTypes): ditto.
3407
3408 2012-04-25  Kenneth Russell  <kbr@google.com>
3409
3410         Delete CanvasPixelArray, ByteArray, JSByteArray and JSC code once unreferenced
3411         https://bugs.webkit.org/show_bug.cgi?id=83655
3412
3413         Reviewed by Oliver Hunt.
3414
3415         Removed last few references to ByteArray, replacing with
3416         Uint8ClampedArray as necessary, and deleted now-obsolete
3417         CanvasPixelArray, ByteArray and JSByteArray. Removed code from
3418         JavaScriptCore special-casing ByteArray.
3419
3420         No new tests. Did full layout test run on Mac OS; no regressions
3421         seen from this change.
3422
3423         * CMakeLists.txt:
3424         * DerivedSources.pri:
3425         * ForwardingHeaders/runtime/JSByteArray.h: Removed.
3426         * GNUmakefile.list.am:
3427         * PlatformBlackBerry.cmake:
3428         * Target.pri:
3429         * UseV8.cmake:
3430         * WebCore.gypi:
3431         * WebCore.order:
3432         * WebCore.vcproj/WebCore.vcproj:
3433         * WebCore.xcodeproj/project.pbxproj:
3434         * bindings/v8/SerializedScriptValue.cpp:
3435         * bindings/v8/V8Binding.h:
3436         (WebCore::isHostObject):
3437         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: Removed.
3438         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3439         (WebCore::V8InjectedScriptHost::typeCallback):
3440         * bridge/qt/qt_runtime.cpp:
3441         (JSC::Bindings::isJSUint8ClampedArray):
3442         (Bindings):
3443         (JSC::Bindings::valueRealType):
3444         (JSC::Bindings::convertValueToQVariant):
3445         (JSC::Bindings::convertQVariantToValue):
3446         * html/canvas/CanvasPixelArray.cpp: Removed.
3447         * html/canvas/CanvasPixelArray.h: Removed.
3448         * html/canvas/CanvasPixelArray.idl: Removed.
3449         * html/canvas/WebGLRenderingContext.cpp:
3450         (WebCore):
3451         * platform/graphics/filters/FEConvolveMatrix.h:
3452         * rendering/svg/RenderSVGResourceMasker.cpp: