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