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