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