5c80ec61d3686ecd4cfeff1f302263451ee6839a
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-01  Peter Kotwicz  <pkotwicz@google.com>
2
3         Decouple scrollbar painting from Scrollbar object
4         https://bugs.webkit.org/show_bug.cgi?id=78028
5
6         Reviewed by James Robinson.
7
8         Added interface ScrollbarThemeClient which Scrollbar inherits from.
9         This allows painting via ScrollbarTheme with a proxy to a Scrollbar
10         object.
11
12         * GNUmakefile.list.am:
13         * Target.pri:
14         * WebCore.gypi:
15         * WebCore.vcproj/WebCore.vcproj:
16         * WebCore.xcodeproj/project.pbxproj:
17         * platform/Scrollbar.cpp:
18         (WebCore::Scrollbar::scrollbarOverlayStyle):
19         (WebCore):
20         (WebCore::Scrollbar::getTickmarks):
21         (WebCore::Scrollbar::isScrollableAreaActive):
22         (WebCore::Scrollbar::isScrollViewScrollbar):
23         (WebCore::Scrollbar::setFrameRect):
24         * platform/Scrollbar.h:
25         (Scrollbar):
26         (WebCore::Scrollbar::x):
27         (WebCore::Scrollbar::y):
28         (WebCore::Scrollbar::width):
29         (WebCore::Scrollbar::height):
30         (WebCore::Scrollbar::size):
31         (WebCore::Scrollbar::location):
32         (WebCore::Scrollbar::parent):
33         (WebCore::Scrollbar::root):
34         (WebCore::Scrollbar::frameRect):
35         (WebCore::Scrollbar::invalidate):
36         (WebCore::Scrollbar::convertFromContainingWindow):
37         (WebCore::Scrollbar::isCustomScrollbar):
38         (WebCore::Scrollbar::orientation):
39         (WebCore::Scrollbar::value):
40         (WebCore::Scrollbar::currentPos):
41         (WebCore::Scrollbar::visibleSize):
42         (WebCore::Scrollbar::totalSize):
43         (WebCore::Scrollbar::maximum):
44         (WebCore::Scrollbar::controlSize):
45         (WebCore::Scrollbar::lineStep):
46         (WebCore::Scrollbar::pageStep):
47         (WebCore::Scrollbar::pressedPart):
48         (WebCore::Scrollbar::hoveredPart):
49         (WebCore::Scrollbar::styleChanged):
50         (WebCore::Scrollbar::enabled):
51         * platform/ScrollbarTheme.h:
52         (WebCore):
53         (WebCore::ScrollbarTheme::updateEnabledState):
54         (WebCore::ScrollbarTheme::paint):
55         (WebCore::ScrollbarTheme::hitTest):
56         (WebCore::ScrollbarTheme::updateScrollbarOverlayStyle):
57         (WebCore::ScrollbarTheme::invalidateParts):
58         (WebCore::ScrollbarTheme::invalidatePart):
59         (WebCore::ScrollbarTheme::shouldCenterOnThumb):
60         (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
61         (WebCore::ScrollbarTheme::shouldDragDocumentInsteadOfThumb):
62         (WebCore::ScrollbarTheme::thumbPosition):
63         (WebCore::ScrollbarTheme::thumbLength):
64         (WebCore::ScrollbarTheme::trackPosition):
65         (WebCore::ScrollbarTheme::trackLength):
66         (WebCore::ScrollbarTheme::registerScrollbar):
67         (WebCore::ScrollbarTheme::unregisterScrollbar):
68         * platform/ScrollbarThemeClient.h: Added.
69         (WebCore):
70         (ScrollbarThemeClient):
71         (WebCore::ScrollbarThemeClient::~ScrollbarThemeClient):
72         * platform/ScrollbarThemeComposite.cpp:
73         (WebCore::ScrollbarThemeComposite::paint):
74         (WebCore::ScrollbarThemeComposite::hitTest):
75         (WebCore::ScrollbarThemeComposite::invalidatePart):
76         (WebCore::ScrollbarThemeComposite::splitTrack):
77         (WebCore::usedTotalSize):
78         (WebCore::ScrollbarThemeComposite::thumbPosition):
79         (WebCore::ScrollbarThemeComposite::thumbLength):
80         (WebCore::ScrollbarThemeComposite::minimumThumbLength):
81         (WebCore::ScrollbarThemeComposite::trackPosition):
82         (WebCore::ScrollbarThemeComposite::trackLength):
83         * platform/ScrollbarThemeComposite.h:
84         (ScrollbarThemeComposite):
85         (WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
86         (WebCore::ScrollbarThemeComposite::paintTrackBackground):
87         (WebCore::ScrollbarThemeComposite::paintTrackPiece):
88         (WebCore::ScrollbarThemeComposite::paintButton):
89         (WebCore::ScrollbarThemeComposite::paintThumb):
90         (WebCore::ScrollbarThemeComposite::paintTickmarks):
91         (WebCore::ScrollbarThemeComposite::constrainTrackRectToTrackPieces):
92         * platform/chromium/ScrollbarThemeChromium.cpp:
93         (WebCore::ScrollbarThemeChromium::hasThumb):
94         (WebCore::ScrollbarThemeChromium::backButtonRect):
95         (WebCore::ScrollbarThemeChromium::forwardButtonRect):
96         (WebCore::ScrollbarThemeChromium::trackRect):
97         (WebCore::ScrollbarThemeChromium::paintTrackBackground):
98         (WebCore::ScrollbarThemeChromium::paintTickmarks):
99         * platform/chromium/ScrollbarThemeChromium.h:
100         (WebCore::ScrollbarThemeChromium::hasButtons):
101         (ScrollbarThemeChromium):
102         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
103         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
104         (WebCore::ScrollbarThemeChromiumAndroid::shouldCenterOnThumb):
105         (WebCore::ScrollbarThemeChromiumAndroid::buttonSize):
106         (WebCore::ScrollbarThemeChromiumAndroid::minimumThumbLength):
107         * platform/chromium/ScrollbarThemeChromiumAndroid.h:
108         (ScrollbarThemeChromiumAndroid):
109         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
110         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
111         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
112         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
113         (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
114         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
115         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
116         * platform/chromium/ScrollbarThemeChromiumLinux.h:
117         (ScrollbarThemeChromiumLinux):
118         * platform/chromium/ScrollbarThemeChromiumMac.h:
119         (ScrollbarThemeChromiumMac):
120         * platform/chromium/ScrollbarThemeChromiumMac.mm:
121         (WebCore::scrollbarStateToThemeState):
122         (WebCore::ScrollbarThemeChromiumMac::paint):
123         (WebCore::ScrollbarThemeChromiumMac::paintGivenTickmarks):
124         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
125         (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
126         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
127         (WebCore::ScrollbarThemeChromiumWin::paintButton):
128         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
129         (WebCore::ScrollbarThemeChromiumWin::getThemeState):
130         (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
131         (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
132         (WebCore::ScrollbarThemeChromiumWin::shouldCenterOnThumb):
133         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
134         * platform/chromium/ScrollbarThemeChromiumWin.h:
135         (ScrollbarThemeChromiumWin):
136         * platform/efl/ScrollbarThemeEfl.cpp:
137         (WebCore::ScrollbarThemeEfl::registerScrollbar):
138         (WebCore::ScrollbarThemeEfl::unregisterScrollbar):
139         * platform/efl/ScrollbarThemeEfl.h:
140         (ScrollbarThemeEfl):
141         * platform/gtk/ScrollbarThemeGtk.cpp:
142         (WebCore):
143         (WebCore::ScrollbarThemeGtk::registerScrollbar):
144         (WebCore::ScrollbarThemeGtk::unregisterScrollbar):
145         (WebCore::ScrollbarThemeGtk::updateScrollbarsFrameThickness):
146         (WebCore::ScrollbarThemeGtk::hasThumb):
147         (WebCore::ScrollbarThemeGtk::backButtonRect):
148         (WebCore::ScrollbarThemeGtk::forwardButtonRect):
149         (WebCore::ScrollbarThemeGtk::trackRect):
150         (WebCore::ScrollbarThemeGtk::thumbRect):
151         (WebCore::ScrollbarThemeGtk::paint):
152         (WebCore::ScrollbarThemeGtk::shouldCenterOnThumb):
153         (WebCore::ScrollbarThemeGtk::buttonSize):
154         (WebCore::ScrollbarThemeGtk::minimumThumbLength):
155         * platform/gtk/ScrollbarThemeGtk.h:
156         (WebCore::ScrollbarThemeGtk::hasButtons):
157         (ScrollbarThemeGtk):
158         * platform/gtk/ScrollbarThemeGtk2.cpp:
159         (WebCore::getWidgetForScrollbar):
160         (WebCore::ScrollbarThemeGtk::paintTrackBackground):
161         (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
162         (WebCore::ScrollbarThemeGtk::paintThumb):
163         (WebCore::ScrollbarThemeGtk::paintButton):
164         * platform/gtk/ScrollbarThemeGtk3.cpp:
165         (WebCore::ScrollbarThemeGtk::paintTrackBackground):
166         (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
167         (WebCore::ScrollbarThemeGtk::paintThumb):
168         (WebCore::ScrollbarThemeGtk::paintButton):
169         * platform/mac/ScrollbarThemeMac.h:
170         (ScrollbarThemeMac):
171         * platform/mac/ScrollbarThemeMac.mm:
172         (WebCore):
173         (WebCore::ScrollbarThemeMac::registerScrollbar):
174         (WebCore::ScrollbarThemeMac::unregisterScrollbar):
175         (WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
176         (WebCore::ScrollbarThemeMac::painterForScrollbar):
177         (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
178         (WebCore::ScrollbarThemeMac::hasButtons):
179         (WebCore::ScrollbarThemeMac::hasThumb):
180         (WebCore::ScrollbarThemeMac::backButtonRect):
181         (WebCore::ScrollbarThemeMac::forwardButtonRect):
182         (WebCore::ScrollbarThemeMac::trackRect):
183         (WebCore::ScrollbarThemeMac::minimumThumbLength):
184         (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
185         (WebCore::ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb):
186         (WebCore::ScrollbarThemeMac::updateEnabledState):
187         (WebCore::ScrollbarThemeMac::paint):
188         * platform/mock/ScrollbarThemeMock.cpp:
189         (WebCore::ScrollbarThemeMock::trackRect):
190         (WebCore::ScrollbarThemeMock::paintTrackBackground):
191         (WebCore::ScrollbarThemeMock::paintThumb):
192         * platform/mock/ScrollbarThemeMock.h:
193         (WebCore::ScrollbarThemeMock::hasButtons):
194         (WebCore::ScrollbarThemeMock::hasThumb):
195         (WebCore::ScrollbarThemeMock::backButtonRect):
196         (WebCore::ScrollbarThemeMock::forwardButtonRect):
197         (ScrollbarThemeMock):
198         * platform/qt/ScrollbarThemeQt.cpp:
199         (WebCore::styleOptionSlider):
200         (WebCore::ScrollbarThemeQt::paint):
201         (WebCore::ScrollbarThemeQt::hitTest):
202         (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
203         (WebCore::ScrollbarThemeQt::invalidatePart):
204         (WebCore::ScrollbarThemeQt::thumbPosition):
205         (WebCore::ScrollbarThemeQt::thumbLength):
206         (WebCore::ScrollbarThemeQt::trackPosition):
207         (WebCore::ScrollbarThemeQt::trackLength):
208         * platform/qt/ScrollbarThemeQt.h:
209         (ScrollbarThemeQt):
210         * platform/win/ScrollbarThemeSafari.cpp:
211         (WebCore::ScrollbarThemeSafari::hasButtons):
212         (WebCore::ScrollbarThemeSafari::hasThumb):
213         (WebCore::ScrollbarThemeSafari::backButtonRect):
214         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
215         (WebCore::ScrollbarThemeSafari::trackRect):
216         (WebCore::ScrollbarThemeSafari::minimumThumbLength):
217         (WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
218         (WebCore::ScrollbarThemeSafari::paintTrackBackground):
219         (WebCore::ScrollbarThemeSafari::paintButton):
220         (WebCore::ScrollbarThemeSafari::paintThumb):
221         * platform/win/ScrollbarThemeSafari.h:
222         (ScrollbarThemeSafari):
223         * platform/win/ScrollbarThemeWin.cpp:
224         (WebCore::ScrollbarThemeWin::hasThumb):
225         (WebCore::ScrollbarThemeWin::backButtonRect):
226         (WebCore::ScrollbarThemeWin::forwardButtonRect):
227         (WebCore::ScrollbarThemeWin::trackRect):
228         (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
229         (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
230         (WebCore::ScrollbarThemeWin::paintTrackBackground):
231         (WebCore::ScrollbarThemeWin::paintTrackPiece):
232         (WebCore::ScrollbarThemeWin::paintButton):
233         (WebCore::paintGripper):
234         (WebCore::ScrollbarThemeWin::paintThumb):
235         * platform/win/ScrollbarThemeWin.h:
236         (WebCore::ScrollbarThemeWin::hasButtons):
237         (ScrollbarThemeWin):
238         * platform/wx/ScrollbarThemeWx.cpp:
239         (WebCore::ScrollbarThemeWx::hasThumb):
240         (WebCore::ScrollbarThemeWx::minimumThumbLength):
241         (WebCore::ScrollbarThemeWx::buttonSize):
242         (WebCore::ScrollbarThemeWx::splitTrack):
243         (WebCore::ScrollbarThemeWx::backButtonRect):
244         (WebCore::ScrollbarThemeWx::forwardButtonRect):
245         (WebCore::ScrollbarThemeWx::trackRect):
246         (WebCore::ScrollbarThemeWx::paint):
247         * platform/wx/ScrollbarThemeWx.h:
248         (ScrollbarThemeWx):
249         (WebCore::ScrollbarThemeWx::hasButtons):
250         * rendering/RenderScrollbar.h:
251         (WebCore::toRenderScrollbar):
252         * rendering/RenderScrollbarTheme.cpp:
253         (WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
254         (WebCore::RenderScrollbarTheme::hasButtons):
255         (WebCore::RenderScrollbarTheme::hasThumb):
256         (WebCore::RenderScrollbarTheme::minimumThumbLength):
257         (WebCore::RenderScrollbarTheme::backButtonRect):
258         (WebCore::RenderScrollbarTheme::forwardButtonRect):
259         (WebCore::RenderScrollbarTheme::trackRect):
260         (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
261         (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
262         (WebCore::RenderScrollbarTheme::paintTrackBackground):
263         (WebCore::RenderScrollbarTheme::paintTrackPiece):
264         (WebCore::RenderScrollbarTheme::paintButton):
265         (WebCore::RenderScrollbarTheme::paintThumb):
266         * rendering/RenderScrollbarTheme.h:
267         (WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
268         (WebCore::RenderScrollbarTheme::registerScrollbar):
269         (WebCore::RenderScrollbarTheme::unregisterScrollbar):
270         (RenderScrollbarTheme):
271
272 2012-03-01  Luke Macpherson   <macpherson@chromium.org>
273
274         Implement CSSPropertyImageRendering in CSSStyleApplyProperty.
275         https://bugs.webkit.org/show_bug.cgi?id=79855
276
277         Reviewed by Eric Seidel.
278
279         No new tests / refactoring only.
280
281         * css/CSSStyleApplyProperty.cpp:
282         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
283         * css/CSSStyleSelector.cpp:
284         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
285
286 2012-03-01  Alok Priyadarshi  <alokp@chromium.org>
287
288         [chromium] Partial texture updates not happening with accelerated painting path
289         https://bugs.webkit.org/show_bug.cgi?id=80040
290
291         Reviewed by James Robinson.
292
293         The order of y-flip and clip-rect was opposite of what it should be.
294         The clip rect was not properly transformed to account for y-flip and hence clipping everything.  
295
296         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
297         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
298
299 2012-03-01  Alexey Proskuryakov  <ap@apple.com>
300
301         FileReader read speed is way too low
302         https://bugs.webkit.org/show_bug.cgi?id=77272
303
304         Reviewed by Oliver Hunt.
305
306         This brings performance to reasonable range, but certainly doesn't exhaust improvement opportunities.
307
308         * platform/network/BlobResourceHandle.cpp: Use a more appropriate block size. Performing
309         cross-thread messaging for every 1024 bytes is slow.
310
311 2012-03-01  Dan Bernstein  <mitz@apple.com>
312
313         ScrollView::setFrameRect() calls contentsResized() even when the frame size is unchanged
314         https://bugs.webkit.org/show_bug.cgi?id=80047
315
316         Reviewed by Anders Carlsson.
317
318         * platform/ScrollView.cpp:
319         (WebCore::ScrollView::setFrameRect): Added a check that the new frame size differs from the
320         old one before calling contentsResized().
321
322 2012-03-01  James Robinson  <jamesr@chromium.org>
323
324         [chromium] Move pageScaleDirty logic from LayerChromium to GraphicsLayerChromium
325         https://bugs.webkit.org/show_bug.cgi?id=79714
326
327         Reviewed by Adrienne Walker.
328
329         When the page scale changes on a composited layer we need to invalidate all of the contents on the layer in
330         order to repaint them at the new scale. The sequence of calls we get make this a bit tricky, since we first
331         receive a page scale changed notification and then receive the new layer bounds. The solution is to defer the
332         invalidation until we have the new layer bounds, which landed in r99774.
333
334         This moves that logic from LayerChromium into GraphicsLayerChromium since IMO this is pretty particular to the
335         way WebCore is passing us invalidations and not something fundamental to the compositor.
336
337         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
338         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
339         (WebCore::GraphicsLayerChromium::setSize):
340         (WebCore::GraphicsLayerChromium::deviceOrPageScaleFactorChanged):
341         * platform/graphics/chromium/GraphicsLayerChromium.h:
342         * platform/graphics/chromium/LayerChromium.cpp:
343         (WebCore::LayerChromium::LayerChromium):
344         (WebCore::LayerChromium::setBounds):
345         * platform/graphics/chromium/LayerChromium.h:
346         (LayerChromium):
347
348 2012-03-01  Joe Thomas  <joethomas@motorola.com>
349
350         :empty still applies to elements made non-empty via page dynamics.
351         https://bugs.webkit.org/show_bug.cgi?id=79734
352
353         Check for :empty style change should be made even if the RenderStyle for the element is NULL
354         as changes to the element's children can trigger a change in :empty state of the parent element.
355
356         Reviewed by Antti Koivisto.
357
358         Test: fast/selectors/empty-element-made-non-empty.html
359
360         * dom/Element.cpp:
361         (WebCore::checkForSiblingStyleChanges):
362
363 2012-02-29  Nat Duca  <nduca@chromium.org>
364
365         [chromium] Move context lost control code from CCSingleThreadProxy to CCLayerTreeHost
366         https://bugs.webkit.org/show_bug.cgi?id=79964
367
368         Reviewed by James Robinson.
369
370         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
371         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
372         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
373         (WebCore::CCLayerTreeHost::recreateContext):
374         (WebCore::CCLayerTreeHost::createContext):
375         (WebCore::CCLayerTreeHost::didLoseContext):
376         (WebCore::CCLayerTreeHost::compositeAndReadback):
377         (WebCore::CCLayerTreeHost::loseContext):
378         (WebCore::CCLayerTreeHost::updateLayers):
379         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
380         (CCLayerTreeHostClient):
381         (CCLayerTreeHost):
382         * platform/graphics/chromium/cc/CCProxy.h:
383         (CCProxy):
384         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
385         (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
386         (WebCore::CCSingleThreadProxy::compositeAndReadback):
387         (WebCore::CCSingleThreadProxy::initializeContext):
388         (WebCore::CCSingleThreadProxy::recreateContext):
389         (WebCore):
390         (WebCore::CCSingleThreadProxy::loseContext):
391         (WebCore::CCSingleThreadProxy::compositeImmediately):
392         (WebCore::CCSingleThreadProxy::doComposite):
393         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
394         (CCSingleThreadProxy):
395         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
396         (WebCore::CCThreadProxy::initializeContext):
397         (WebCore::CCThreadProxy::recreateContext):
398         (WebCore):
399         (WebCore::CCThreadProxy::loseContext):
400         * platform/graphics/chromium/cc/CCThreadProxy.h:
401         (CCThreadProxy):
402
403 2012-03-01  Abhishek Arya  <inferno@chromium.org>
404
405         Prevent layout root to remain set on renderers getting destroyed.
406         https://bugs.webkit.org/show_bug.cgi?id=79953
407
408         Reviewed by Eric Seidel.
409
410         Implement Julien Chaffraix's idea.
411
412         * page/FrameView.h:
413         (WebCore::FrameView::clearLayoutRoot): helper to clear layout root.
414         * rendering/RenderObject.cpp:
415         (WebCore::clearLayoutRootIfNeeded): if we know we are going
416         away and we are the view's layout root, then we need to reset the layout
417         root to prevent being used.
418         (WebCore):
419         (WebCore::RenderObject::willBeDestroyed): call clearLayoutRootIfNeeded at end.
420
421 2012-03-01  Kangil Han  <kangil.han@samsung.com>
422
423         [DRT] Remove all PlainTextController usages in existing tests by adding internal API
424         https://bugs.webkit.org/show_bug.cgi?id=78570
425
426         Reviewed by Hajime Morita.
427
428         This patch will remove all PlainTextController usages
429         in existing DRT tests by adding internal API to WebCore/testing/Internals
430
431         Changed editing/text-iterator/script-tests/basic-iteration.js to use internals.rangeAsText
432
433         * testing/Internals.cpp:
434         (WebCore::Internals::rangeAsText):
435         (WebCore):
436         * testing/Internals.h:
437         (Internals):
438         * testing/Internals.idl:
439
440 2012-03-01  Adam Barth  <abarth@webkit.org>
441
442         DOMWindow shouldn't have any INDEXED_DATABASE ifdefs
443         https://bugs.webkit.org/show_bug.cgi?id=80013
444
445         Reviewed by Kentaro Hara.
446
447         Before this patch, DOMWindow still knew about IDB because of the
448         database factory.  This patch moves the factory to
449         DOMWindowIndexedDatabase.
450
451         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
452         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
453         (WebCore::DOMWindowIndexedDatabase::from):
454         (WebCore):
455         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
456         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
457         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
458         (DOMWindowIndexedDatabase):
459         * page/DOMWindow.cpp:
460         (WebCore::DOMWindow::~DOMWindow):
461         (WebCore::DOMWindow::clear):
462         (WebCore):
463         * page/DOMWindow.h:
464         (DOMWindow):
465
466 2012-03-01  Anders Carlsson  <andersca@apple.com>
467
468         Glitchy scrolling on pages where the scroll layer needs to be updated on the main thread
469         https://bugs.webkit.org/show_bug.cgi?id=80038
470         <rdar://problem/10933831>
471
472         Reviewed by Simon Fraser.
473
474         When we need to update the scroll layer position on the main thread, we need to cache the
475         scroll position we sent to the main thread and assume that that's the correct scroll position.
476
477         * page/scrolling/mac/ScrollingTreeNodeMac.h:
478         (ScrollingTreeNodeMac):
479         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
480         (WebCore::ScrollingTreeNodeMac::update):
481         (WebCore::ScrollingTreeNodeMac::setScrollPosition):
482         (WebCore::ScrollingTreeNodeMac::scrollPosition):
483
484 2012-03-01  Julien Chaffraix  <jchaffraix@webkit.org>
485
486         Unreviewed, rolling out r109367.
487         http://trac.webkit.org/changeset/109367
488         https://bugs.webkit.org/show_bug.cgi?id=75568
489
490         Some tests started to fail in a non obvious way.
491
492         * rendering/RenderBlock.cpp:
493         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
494         (WebCore::RenderBlock::layoutBlock):
495         (WebCore::RenderBlock::paint):
496         (WebCore::RenderBlock::isPointInOverflowControl):
497         * rendering/RenderBlock.h:
498         (RenderBlock):
499         * rendering/RenderBox.cpp:
500         (WebCore::RenderBox::willBeDestroyed):
501         (WebCore::RenderBox::styleDidChange):
502         (WebCore::RenderBox::scrollWidth):
503         (WebCore::RenderBox::scrollHeight):
504         (WebCore::RenderBox::scrollLeft):
505         (WebCore::RenderBox::scrollTop):
506         (WebCore::RenderBox::setScrollLeft):
507         (WebCore::RenderBox::setScrollTop):
508         (WebCore::RenderBox::includeVerticalScrollbarSize):
509         (WebCore::RenderBox::includeHorizontalScrollbarSize):
510         (WebCore::RenderBox::scrolledContentOffset):
511         (WebCore::RenderBox::cachedSizeForOverflowClip):
512         (WebCore::RenderBox::pushContentsClip):
513         (WebCore::RenderBox::popContentsClip):
514         (WebCore::RenderBox::addLayoutOverflow):
515         * rendering/RenderBox.h:
516         (RenderBox):
517         (WebCore):
518         * rendering/RenderBoxModelObject.cpp:
519         (WebCore):
520         (WebCore::RenderBoxModelObject::styleDidChange):
521         * rendering/RenderBoxModelObject.h:
522         (WebCore::RenderBoxModelObject::requiresLayer):
523         (RenderBoxModelObject):
524         * rendering/RenderDeprecatedFlexibleBox.cpp:
525         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
526         * rendering/RenderTableRow.h:
527         (WebCore::RenderTableRow::requiresLayer):
528
529 2012-03-01  Kenichi Ishibashi  <bashi@chromium.org>
530
531         REGRESSION: Outlook 2007 doesn't display fonts correctly on emails composed by WebKit
532         https://bugs.webkit.org/show_bug.cgi?id=79448
533
534         Reviewed by Ryosuke Niwa.
535
536         Don't produce single quotes around face attribute of font elements.
537
538         Test: editing/style/font-face-unquote.html
539
540         * editing/EditingStyle.cpp:
541         (WebCore::StyleChange::extractTextStyles): Remove single quotes from m_applyFontFace.
542
543 2012-03-01  Beth Dakin  <bdakin@apple.com>
544
545         Reviewed by Kevin Decker.
546
547         Part of https://bugs.webkit.org/show_bug.cgi?id=79705
548
549         Here's some of that tweaking promised in the comment. Adjusting 
550         gMaximumUnpaintedAreaRatio down a bit.
551         * page/Page.cpp:
552         (WebCore):
553
554 2012-03-01  Levi Weintraub  <leviw@chromium.org>
555
556         Add roundToInt method for LayoutUnits
557         https://bugs.webkit.org/show_bug.cgi?id=79283
558
559         Reviewed by Eric Seidel.
560
561         Adding a roundToInt method that rounds a LayoutUnit to the nearest integer. This
562         only has an effect once we switch to sub-pixel positioning. Points and offsets
563         are rounded for painting and hit testing.
564
565         No new tests. No change in behavior.
566
567         * dom/MouseRelatedEvent.cpp:
568         (WebCore::MouseRelatedEvent::offsetX):
569         (WebCore::MouseRelatedEvent::offsetY):
570         * html/shadow/MediaControlElements.cpp:
571         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
572         * rendering/LayoutState.cpp:
573         (WebCore::LayoutState::computeLineGridPaginationOrigin):
574         * rendering/LayoutTypes.h:
575         (WebCore::roundToInt): Stub until we switch to sub-pixel LayoutUnits.
576         (WebCore):
577         * rendering/RenderBlock.cpp:
578         (WebCore::RenderBlock::pageLogicalTopForOffset):
579         * rendering/RenderBlock.h:
580         (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Correcting to use the
581         pixel snapped methods on FloatingObjects and removing the fixme.
582         (WebCore::RenderBlock::pixelSnappedLogicalTopForFloat): Ditto.
583         (WebCore::RenderBlock::pixelSnappedLogicalBottomForFloat): Ditto.
584         (WebCore::RenderBlock::pixelSnappedLogicalLeftForFloat): Ditto.
585         (WebCore::RenderBlock::pixelSnappedLogicalRightForFloat): Ditto.
586         (WebCore::RenderBlock::pixelSnappedLogicalWidthForFloat): Ditto.
587         * rendering/RenderBlockLineLayout.cpp:
588         (WebCore::LineWidth::updateAvailableWidth):
589         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Using
590         pixelSnappedLogicalLeft/RightOffsetForLine convenience methods for line layout. When
591         we switch to sub-pixel positioning, we still pixel snap blocks before painting them,
592         but text is rendered using floats. We need to ensure the text is laid out using the
593         actual pixel width of the containing block to avoid bleeding out of the block.
594         * rendering/RenderBoxModelObject.h: Moving the fixme to pixelSnappedWidth/Height and
595         adding the necessary rounding for Left/Top.
596         (WebCore::RenderBoxModelObject::pixelSnappedOffsetLeft):
597         (WebCore::RenderBoxModelObject::pixelSnappedOffsetTop):
598         * rendering/RenderLayer.cpp:
599         (WebCore::RenderLayer::scrollRectToVisible):
600         * rendering/RenderListBox.cpp:
601         (WebCore::RenderListBox::scrollHeight): Rounding the height for scrollHeight. Scrolling
602         always uses rounded values.
603         * rendering/svg/RenderSVGRoot.cpp:
604         (WebCore::RenderSVGRoot::localToParentTransform): Similar to the line box tree, since
605         SVG renders using floats, we need to start with pixel snapped values from the render
606         tree or we'll end up with the contents not properly aligned to the rest of the page.
607         * rendering/svg/SVGRenderSupport.cpp:
608         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
609
610 2012-03-01  Pavel Feldman  <pfeldman@chromium.org>
611
612         Web Inspector: arrays in object properties sections do not scale.
613         https://bugs.webkit.org/show_bug.cgi?id=64596
614
615         Reviewed by Vsevolod Vlasov.
616
617         Test: inspector/console/console-big-array.html
618
619         * inspector/front-end/ConsoleMessage.js:
620         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
621         (WebInspector.ConsoleMessageImpl.prototype._printArray):
622         * inspector/front-end/ObjectPropertiesSection.js:
623         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
624         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
625         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
626         (WebInspector.ObjectPropertyTreeElement.prototype.startEditing):
627         (WebInspector.ArrayGroupingTreeElement):
628         (WebInspector.ArrayGroupingTreeElement.populateAsArray):
629         (WebInspector.ArrayGroupingTreeElement._populate.appendElement):
630         (WebInspector.ArrayGroupingTreeElement._populate):
631         (WebInspector.ArrayGroupingTreeElement.prototype.onpopulate):
632         * inspector/front-end/RemoteObject.js:
633         (WebInspector.RemoteObject.prototype.release):
634         (WebInspector.RemoteObject.prototype.arrayLength):
635         (WebInspector.LocalJSONObject.prototype.isError):
636         (WebInspector.LocalJSONObject.prototype.arrayLength):
637         * inspector/front-end/ScopeChainSidebarPane.js:
638         (WebInspector.ScopeVariableTreeElement.prototype.get propertyPath):
639         * inspector/front-end/StylesSidebarPane.js:
640         (WebInspector.StylePropertyTreeElement.prototype._mouseDown):
641         * inspector/front-end/inspector.css:
642         (.console-formatted-object, .console-formatted-node, .console-formatted-array):
643         (.console-formatted-object .section, .console-formatted-node .section, .console-formatted-array .section):
644
645 2012-03-01  Adam Barth  <abarth@webkit.org>
646
647         Unreviewed, rolling out r109336.
648         http://trac.webkit.org/changeset/109336
649         https://bugs.webkit.org/show_bug.cgi?id=80013
650
651         It's causing some crashes
652
653         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
654         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
655         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
656         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
657         (DOMWindowIndexedDatabase):
658         * page/DOMWindow.cpp:
659         (WebCore::DOMWindow::~DOMWindow):
660         (WebCore::DOMWindow::clear):
661         (WebCore):
662         (WebCore::DOMWindow::setIDBFactory):
663         * page/DOMWindow.h:
664         (DOMWindow):
665         (WebCore::DOMWindow::idbFactory):
666
667 2012-03-01  Tom Sepez  <tsepez@chromium.org>
668
669         Move m_frame protector from FrameLoader::changeLocation to FrameLoader::urlSelected
670         https://bugs.webkit.org/show_bug.cgi?id=79882
671
672         Reviewed by Adam Barth.
673
674         Test: fast/frames/url-selected-crash.html
675
676         * loader/FrameLoader.cpp:
677         (WebCore::FrameLoader::changeLocation):
678         (WebCore::FrameLoader::urlSelected):
679
680 2012-03-01  Julien Chaffraix  <jchaffraix@webkit.org>
681
682         Lazily allocate overflow: hidden layers if we have overflowing content
683         https://bugs.webkit.org/show_bug.cgi?id=75568
684
685         Reviewed by David Hyatt.
686
687         Change covered by the existing tests and the tons of rebaselines.
688
689         This change makes us lazily allocate our RenderLayer for overflow: hidden layers only.
690
691         Apart from saving some memory, it will also speed up the rendering as we don't need to
692         go through the layer's machinery when painting and hit testing.
693
694         On http://dglazkov.github.com/performance-tests/biggrid.html benchmark, this puts the
695         overflow: hidden case in par with the overflow: visible case when scrolling that is a
696         very-smooth scrolling vs a jerky one currently (mostly due to the painting speedup).
697
698         * rendering/RenderBlock.cpp:
699         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
700         Changed this method to update our size cache if needed.
701
702         * rendering/RenderBlock.cpp:
703         (WebCore::RenderBlock::layoutBlock):
704         (WebCore::RenderBlock::paint):
705         (WebCore::RenderBlock::isPointInOverflowControl):
706         * rendering/RenderBlock.h:
707         (RenderBlock):
708         * rendering/RenderBox.cpp:
709         (WebCore::RenderBox::styleDidChange):
710         (WebCore::RenderBox::scrollWidth):
711         (WebCore::RenderBox::scrollHeight):
712         (WebCore::RenderBox::scrollLeft):
713         (WebCore::RenderBox::scrollTop):
714         (WebCore::RenderBox::setScrollLeft):
715         (WebCore::RenderBox::setScrollTop):
716         (WebCore::RenderBox::includeVerticalScrollbarSize):
717         (WebCore::RenderBox::includeHorizontalScrollbarSize):
718         (WebCore::RenderBox::pushContentsClip):
719         (WebCore::RenderBox::popContentsClip):
720         (WebCore::RenderBox::addLayoutOverflow):
721         Added layer() check to the previous call sites.
722
723         * rendering/RenderBoxModelObject.cpp:
724         (WebCore::RenderBoxModelObject::ensureLayer):
725         Added this function to create and add a new layer.
726
727         (WebCore::RenderBoxModelObject::willBeDestroyed):
728         (WebCore):
729         (WebCore::RenderBoxModelObject::styleDidChange):
730         Patched those method to handle updating / removing
731         cached size entries.
732
733         (WebCore::cachedSizeForOverflowClipMap):
734         (WebCore::RenderBoxModelObject::cachedSizeForOverflowClip):
735         (WebCore::RenderBoxModelObject::updateCachedSizeForOverflowClip):
736         (WebCore::RenderBoxModelObject::clearCachedSizeForOverflowClip):
737         This logic stores the size information for later repainting.
738         It is in practice replicating what RenderLayer is doing.
739
740         * rendering/RenderBoxModelObject.h:
741         (WebCore::RenderBoxModelObject::requiresLayer):
742         Updated to call requiresLayerForOverflowClip.
743
744         (WebCore::RenderBoxModelObject::requiresLayerForOverflowClip):
745         Added this method to check if we can lazily allocate the layer.
746
747         * rendering/RenderDeprecatedFlexibleBox.cpp:
748         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
749         Removed some checks as they are part of updateScrollInfoAfterLayout.
750
751         * rendering/RenderObject.cpp:
752         (WebCore::RenderObject::scrolledContentOffset):
753         Added a layer() check.
754
755         * rendering/RenderTableRow.h:
756         (RenderTableRow):
757         Added a comment about why we need a layout for table rows.
758
759 2012-03-01  Abhishek Arya  <inferno@chromium.org>
760
761         Protect functions using two container node function, each of which can fire mutation events.
762         https://bugs.webkit.org/show_bug.cgi?id=78397
763
764         Reviewed by Ryosuke Niwa.
765
766         Tests: fast/dom/document-set-title-mutation-crash.html
767                fast/dom/option-text-mutation-crash.html
768
769         * dom/Node.cpp:
770         (WebCore::Node::setTextContent):
771         * dom/Text.cpp:
772         (WebCore::Text::replaceWholeText):
773         * editing/markup.cpp:
774         (WebCore::trimFragment):
775         (WebCore::replaceChildrenWithFragment):
776         (WebCore::replaceChildrenWithText):
777         * html/HTMLOptionElement.cpp:
778         (WebCore::HTMLOptionElement::setText):
779         * html/HTMLScriptElement.cpp:
780         (WebCore::HTMLScriptElement::setText):
781         * html/HTMLTableElement.cpp:
782         (WebCore::HTMLTableElement::insertRow):
783         * html/HTMLTextAreaElement.cpp:
784         (WebCore::HTMLTextAreaElement::setDefaultValue):
785         * html/HTMLTitleElement.cpp:
786         (WebCore::HTMLTitleElement::setText):
787
788 2012-03-01  Alexey Proskuryakov  <ap@apple.com>
789
790         Some trivial file stream cleanup
791         https://bugs.webkit.org/show_bug.cgi?id=79955
792
793         Reviewed by Sam Weinig.
794
795         No change in functionality.
796
797         * fileapi/FileStreamProxy.cpp: Tweaked comment, and added copyright for earlier changes.
798
799         * fileapi/FileStreamProxy.h: Added a FIXME telling that this should be in platform.
800
801         * platform/AsyncFileStream.h: Tweaked includes and added a FIXME about this to stop being
802         a subclass.
803
804         * platform/FileStreamClient.h: Removed obvious comments, and added ones explaing in-band
805         error signals.
806
807         * platform/network/BlobResourceHandle.cpp: Removed an include outside of platform, and an
808         unused constant.
809
810 2012-03-01  Shinya Kawanaka  <shinyak@chromium.org>
811
812         Appending ShadowRoot into an element should not cause crash.
813         https://bugs.webkit.org/show_bug.cgi?id=79620
814
815         Reviewed by Dimitri Glazkov.
816
817         We should treat ShadowRoot as a document fragment.
818
819         Test: fast/dom/shadow/shadow-root-append.html
820
821         * dom/ContainerNode.cpp:
822         (WebCore::collectTargetNodes):
823
824 2012-03-01  Pavel Podivilov  <podivilov@chromium.org>
825
826         Web Inspector: use live location to update console message bubbles.
827         https://bugs.webkit.org/show_bug.cgi?id=80023
828
829         Reviewed by Vsevolod Vlasov.
830
831         * inspector/front-end/DebuggerPresentationModel.js:
832         (WebInspector.DebuggerPresentationModel):
833         (WebInspector.DebuggerPresentationModel.prototype._uiSourceCodeListChanged):
834         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
835         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript.updateLocation):
836         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
837         (WebInspector.DebuggerPresentationModel.prototype._addPendingConsoleMessage):
838         (WebInspector.DebuggerPresentationModel.prototype._addPendingConsoleMessagesToScript):
839         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
840         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
841         (WebInspector.DebuggerPresentationModel.prototype._scriptForURLAndLocation):
842         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
843         * inspector/front-end/RawSourceCode.js:
844         (WebInspector.RawSourceCode):
845
846 2012-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
847
848         Web Inspector: [InspectorIndexedDB] Show tooltips with IndexedDB objects meta information
849         https://bugs.webkit.org/show_bug.cgi?id=80022
850
851         Reviewed by Pavel Feldman.
852
853         Added tooltips with meta information for IndexedDB databases, object stores and indexes.
854         Added keyPath: prefix to key columns in IndexedDB data grid.
855
856         * English.lproj/localizedStrings.js:
857         * inspector/front-end/IndexedDBViews.js:
858         (WebInspector.IDBDataView.prototype._createDataGrid):
859         (WebInspector.IDBDataView.prototype._keyPathHeader):
860         * inspector/front-end/ResourcesPanel.js:
861         (WebInspector.IDBDatabaseTreeElement.prototype.update):
862         (WebInspector.IDBDatabaseTreeElement.prototype._updateTooltip):
863         (WebInspector.IDBObjectStoreTreeElement.prototype.update):
864         (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
865         (WebInspector.IDBIndexTreeElement.prototype.update):
866         (WebInspector.IDBIndexTreeElement.prototype._updateTooltip):
867
868 2012-03-01  Pavel Feldman  <pfeldman@google.com>
869
870         Web Inspector: hide color picker on Esc and Enter.
871         https://bugs.webkit.org/show_bug.cgi?id=79915
872
873         Reviewed by Vsevolod Vlasov.
874
875         * inspector/front-end/Spectrum.js:
876         (WebInspector.Spectrum.prototype.reposition):
877         (WebInspector.Spectrum.prototype.hide):
878         (WebInspector.Spectrum.prototype._onKeyDown):
879
880 2012-03-01  Huang Dongsung  <luxtella@company100.net>
881
882         [Qt] Fixed incorrect size pixmap creation for a new transparency layer.
883         https://bugs.webkit.org/show_bug.cgi?id=79658
884
885         If QPainter does not have clipping, beginPlatformTransparencyLayer can create
886         wrong size pixmap, so it causes incorrect rendering.
887
888         Reviewed by Simon Hausmann.
889
890         * platform/graphics/qt/GraphicsContextQt.cpp:
891         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
892
893 2012-03-01  Simon Hausmann  <simon.hausmann@nokia.com>
894
895         [Qt] Remove dead style option code.
896         https://bugs.webkit.org/show_bug.cgi?id=80017
897
898         Reviewed by Kenneth Rohde Christiansen.
899
900         QtStyleOptionWebComboBox provides functionality (bool multiple()) that
901         is not called from anywhere (and the base class does not have it as a
902         virtual function).
903
904         * Target.pri:
905         * platform/qt/QtStyleOptionWebComboBox.h: Removed.
906         * platform/qt/RenderThemeQStyle.cpp:
907         (WebCore::RenderThemeQStyle::paintMenuList):
908         (WebCore::RenderThemeQStyle::paintMenuListButton):
909
910 2012-03-01  Stephen Chenney  <schenney@chromium.org>
911
912         Crash in WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget
913         https://bugs.webkit.org/show_bug.cgi?id=79831
914
915         Reviewed by Eric Seidel.
916
917         Out-of-order operations in the SVGSMILElement::removedFromDocument
918         method caused its target to be removed and then re-added due to a
919         later call. This led to the target being set on the animation while
920         the target element itself was unaware. At deletion time, this caused a
921         crash (or assert in debug builds). Thanks to Abhishek Arya for help
922         with the layout test.
923
924         Test: svg/animations/smil-element-target-crash-main.html
925
926         * svg/animation/SVGSMILElement.cpp:
927         (WebCore::SVGSMILElement::removedFromDocument):
928
929 2012-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
930
931         Web Inspector: move heap snapshot nodes data to external array.
932         https://bugs.webkit.org/show_bug.cgi?id=79911
933
934         Reviewed by Vsevolod Vlasov.
935
936         Tests:
937         heap-shapshot.html
938         heap-shapshot-loader.html
939
940         * inspector/front-end/HeapSnapshot.js:
941         (WebInspector.Int32Array):
942         (WebInspector.Int32Array.prototype.get array):
943         (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
944         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
945         (WebInspector.HeapSnapshot):
946         (WebInspector.HeapSnapshot.prototype._init):
947
948 2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>
949
950         Introduce SMIL overrideStyle, to make SVG stop mutating CSS styles directly
951         https://bugs.webkit.org/show_bug.cgi?id=79790
952
953         Reviewed by Zoltan Herczeg.
954
955         Next step towards enabling animVal support for XML attribute animations.
956         When SVG CSS properties are animated using SMIL, we currently mutate
957         the target elements style, and have to keep a baseValue around as String
958         to be able to recover from the DOM mutations at the end, if fill!="freeze".
959
960         The approach required by SMIL is to keep around an override style declaration
961         set and apply it right after the inline style declarations. Implement that
962         finally, to avoid mutating styles directly.
963
964         Test: svg/animations/attributeTypes.html
965
966         * css/CSSStyleSelector.cpp: Model "SMIL animation style" applying just like "inline style" declarations.
967         (WebCore::CSSStyleSelector::addElementStyleProperties): Refactored common code from matchAllRules().
968         (WebCore::CSSStyleSelector::matchAllRules): Apply "SMIL animation style" after "inline style" declarations, as specified in SMIL2.
969         * css/CSSStyleSelector.h: Add new addElementStyleProperties() helper.
970         * svg/SVGAnimateElement.cpp: Keep track of animation state, if it's about to end, clear "SMIL animation style" upon next applyResultToTarget() call.
971         (WebCore::SVGAnimateElement::SVGAnimateElement):
972         (WebCore::SVGAnimateElement::applyResultsToTarget): Reset the CSS property we're animating int the "SMIL animation style", after animation ends.
973                                                             (Instead of resetting target->style() properties to the old baseValue, as we used to do).
974         (WebCore::SVGAnimateElement::endedActiveInterval): Set m_aboutToStopAnimation to true, so next call to applyResultsToTarget() knows the animation ends.
975         * svg/SVGAnimateElement.h: Store bool m_aboutToSTopAnimation;
976         * svg/SVGAnimationElement.cpp:
977         (WebCore::setTargetAttributeAnimatedCSSValue):
978         (WebCore::setTargetAttributeAnimatedXMLValue):
979             Refactored both of these methods from setTargetAttributeAnimatedValue().
980             Changed the CSS part, to apply property changes to the "SMIL animation style" instead of the regular StylePropertySet.
981         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue): Refactored code, use shouldApplyAnimation() to determine whether this animation should run.
982         (WebCore::SVGAnimationElement::resetAnimationState): New helper calling setTargetAttributeAnimatedValue with a null-string for CSS attributes, when the animation ends.
983                                                              This is used to detect that the CSS property should be removed from the "SMIL animation style".
984         (WebCore::SVGAnimationElement::shouldApplyAnimation): Refactored from existing code, and make it more obvious how attributeType influences the animation, all according to SVG 1.1/SMIL2.
985         * svg/SVGAnimationElement.h:
986         * svg/SVGElement.cpp: Manage the "SMIL animation style", in SVGElementRareData, if needed. Only gets created if SMIL animations on CSS properties run.
987         (WebCore::SVGElement::~SVGElement): Destroy SMIL animation style, upon destruction.
988         (WebCore::SVGElement::animatedSMILStyleProperties): Returns the StylePropertySet for the "SMIL animation style", if it's available.
989         (WebCore::SVGElement::ensureAnimatedSMILStyleProperties): Enforces creating the StylePropertySet for the "SMIL animation style".
990         * svg/SVGElement.h: Expose new methods.
991         * svg/SVGElementRareData.h: Stores the "SMIL animation style", actual managment is done by SVGElement, if needed.
992         (WebCore::SVGElementRareData::animatedSMILStyleProperties): Retrieve it.
993         (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties): Create it.
994         (WebCore::SVGElementRareData::destroyAnimatedSMILStyleProperties): Destroy it.
995         * svg/animation/SVGSMILElement.h: Make endedActiveInterval() virtual again, its needed by SVGAnimateElement now.
996
997 2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>
998
999         Unreviewed, rolling out r109255.
1000         http://trac.webkit.org/changeset/109255
1001         https://bugs.webkit.org/show_bug.cgi?id=79932
1002
1003         Breaks rounded rects with dashed strokes in SVG
1004
1005         * WebCore.exp.in:
1006         * platform/graphics/Path.cpp:
1007         (WebCore::Path::addRoundedRect):
1008         * platform/graphics/Path.h:
1009         (Path):
1010         * platform/graphics/cg/PathCG.cpp:
1011         * platform/mac/WebCoreSystemInterface.h:
1012         * platform/mac/WebCoreSystemInterface.mm:
1013
1014 2012-03-01  Adam Barth  <abarth@webkit.org>
1015
1016         DOMWindow shouldn't have any INDEXED_DATABASE ifdefs
1017         https://bugs.webkit.org/show_bug.cgi?id=80013
1018
1019         Reviewed by Kentaro Hara.
1020
1021         Before this patch, DOMWindow still knew about IDB because of the
1022         database factory.  This patch moves the factory to
1023         DOMWindowIndexedDatabase.
1024
1025         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
1026         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
1027         (WebCore::DOMWindowIndexedDatabase::from):
1028         (WebCore):
1029         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
1030         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
1031         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
1032         (DOMWindowIndexedDatabase):
1033         * page/DOMWindow.cpp:
1034         (WebCore::DOMWindow::~DOMWindow):
1035         (WebCore::DOMWindow::clear):
1036         (WebCore):
1037         * page/DOMWindow.h:
1038         (DOMWindow):
1039
1040 2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>
1041
1042         SVG <use> element allows invalid contents
1043         https://bugs.webkit.org/show_bug.cgi?id=77764
1044
1045         Reviewed by Zoltan Herczeg.
1046
1047         Unbreak the world after r109299 - dozens of SVGUseElement tests fail in trunk because:
1048         - text nodes weren't allowed in SVG shadow subtrees
1049         - tagName matching ignores any prefixes, thus svg:circle fails to identify as SVGCircleElement
1050
1051         * svg/SVGUseElement.cpp:
1052         (WebCore::isDisallowedElement):
1053
1054 2012-03-01  Luke Macpherson   <macpherson@chromium.org>
1055
1056         Handle CSSPropertyWebkitHyphens in CSSStyleApplyProperty.
1057         https://bugs.webkit.org/show_bug.cgi?id=80004
1058
1059         Reviewed by Eric Seidel.
1060
1061         No new tests / refactoring only.
1062
1063         * css/CSSStyleApplyProperty.cpp:
1064         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1065         * css/CSSStyleSelector.cpp:
1066         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1067
1068 2012-02-29  Pavel Podivilov  <podivilov@chromium.org>
1069
1070         Web Inspector: abstract out the common pattern of creating auto-updated locations.
1071         https://bugs.webkit.org/show_bug.cgi?id=79906
1072
1073         Reviewed by Vsevolod Vlasov.
1074
1075         * inspector/front-end/DebuggerPresentationModel.js:
1076         (WebInspector.PresentationCallFrame.prototype.uiLocation):
1077         (WebInspector.DebuggerPresentationModel.CallFramePlacard):
1078         (WebInspector.DebuggerPresentationModel.CallFramePlacard.prototype.discard):
1079         (WebInspector.DebuggerPresentationModel.CallFramePlacard.prototype._update):
1080         (WebInspector.DebuggerPresentationModel.LinkifierFormatter.prototype.formatRawSourceCodeAnchor):
1081         (WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype.formatRawSourceCodeAnchor):
1082         (WebInspector.DebuggerPresentationModel.Linkifier):
1083         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawSourceCode):
1084         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.reset):
1085         (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):
1086         * inspector/front-end/RawSourceCode.js:
1087         (WebInspector.RawSourceCode.prototype.createLiveLocation):
1088         (WebInspector.RawSourceCode.LiveLocation):
1089         (WebInspector.RawSourceCode.LiveLocation.prototype.init):
1090         (WebInspector.RawSourceCode.LiveLocation.prototype.dispose):
1091         (WebInspector.RawSourceCode.LiveLocation.prototype._update):
1092
1093 2012-03-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1094
1095         Make the tiling code slightly smarter
1096         https://bugs.webkit.org/show_bug.cgi?id=80015
1097
1098         Reviewed by Simon Hausmann.
1099
1100         Avoid doing the same tranformations all over in each call to
1101         tileRectForCoordinate.
1102
1103         Do not resize tiles and then drop them because they are not out of
1104         the keep rect; instead drop before resizing.
1105
1106         Rename dropTilesOutsideRect to setKeepRect as it now stored the keep
1107         rect. This is used to avoid unneeded iteration of all tiles for
1108         invalidates outside the keep rect.
1109
1110         * platform/graphics/TiledBackingStore.cpp:
1111         (WebCore::TiledBackingStore::invalidate):
1112         (WebCore):
1113         (WebCore::TiledBackingStore::commitScaleChange):
1114         (WebCore::TiledBackingStore::coverageRatio):
1115         (WebCore::TiledBackingStore::createTiles):
1116         (WebCore::TiledBackingStore::adjustForContentsRect):
1117         (WebCore::TiledBackingStore::resizeEdgeTiles):
1118         (WebCore::TiledBackingStore::setKeepRect):
1119         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
1120         (WebCore::TiledBackingStore::tileRectForCoordinate):
1121         (WebCore::TiledBackingStore::setSupportsAlpha):
1122         * platform/graphics/TiledBackingStore.h:
1123         (TiledBackingStore):
1124
1125 2012-02-29  Kinuko Yasuda  <kinuko@chromium.org>
1126
1127         Use the new createSnapshotFileAndReadMetadata API for FileEntry.file()
1128         https://bugs.webkit.org/show_bug.cgi?id=79928
1129
1130         Reviewed by David Levin.
1131
1132         No new tests: no functionality changes.
1133         fast/filesystem/ tests should use the new code (they should pass once
1134         the corresponding chromium change is rolled in).
1135
1136         * fileapi/DOMFileSystem.cpp:
1137         (WebCore::DOMFileSystem::createFile): Updated to use the new API.
1138         * fileapi/DOMFileSystemSync.cpp:
1139         (WebCore::DOMFileSystemSync::createFile): Updated to use the new API.
1140         * fileapi/FileSystemCallbacks.cpp:
1141         * fileapi/FileSystemCallbacks.h:
1142         (FileSystemCallbacksBase):
1143         * platform/AsyncFileSystem.h:
1144         (AsyncFileSystem):
1145         * platform/AsyncFileSystemCallbacks.h: Added default implementation (which just calls ASSERT_NOTREACHED()) so that subclasses can focus only on the callback methods that they're interested in.
1146
1147 2012-02-29  Pavel Podivilov  <podivilov@chromium.org>
1148
1149         Web Inspector: add UISourceCode.isEditable property.
1150         https://bugs.webkit.org/show_bug.cgi?id=79909
1151
1152         Reviewed by Vsevolod Vlasov.
1153
1154         * inspector/front-end/DebuggerPresentationModel.js:
1155         (WebInspector.DebuggerPresentationModel.prototype.canEditScriptSource):
1156         * inspector/front-end/RawSourceCode.js:
1157         (WebInspector.RawSourceCode.prototype._createUISourceCode):
1158         * inspector/front-end/UISourceCode.js:
1159         (WebInspector.UISourceCode):
1160
1161 2012-02-29  Shinya Kawanaka  <shinyak@chromium.org> 
1162
1163         Fallback elements in non-youngest shadow tree should not be rendered.
1164         https://bugs.webkit.org/show_bug.cgi?id=80002
1165
1166         Reviewed by Hajime Morita.
1167
1168         Fallback elements in non-youngest shadow tree should not be rendered, so its phase should be
1169         AttachingNotDistributed instead of AttachingFallbacked.
1170
1171         Tests: multiple-shadowroot-rendering.html covers this patch.
1172
1173         * dom/NodeRenderingContext.cpp:
1174         (WebCore::NodeRenderingContext::NodeRenderingContext):
1175
1176 2012-02-29  Adam Barth  <abarth@webkit.org>
1177
1178         ScriptExecutionContext has too many ifdef ENABLE(SQL_DATABASE)
1179         https://bugs.webkit.org/show_bug.cgi?id=79633
1180
1181         Reviewed by Eric Seidel.
1182
1183         This class creates a DatabaseContext object to supplement the
1184         ScriptExecutionContext with database-specific information.  This new
1185         object lets us remove a bunch of database-specific (and ifdefed) logic
1186         from ScriptExecutionContext.(cpp|h).
1187
1188         * CMakeLists.txt:
1189         * GNUmakefile.list.am:
1190         * Target.pri:
1191         * WebCore.exp.in:
1192         * WebCore.gypi:
1193         * WebCore.vcproj/WebCore.vcproj:
1194         * WebCore.xcodeproj/project.pbxproj:
1195         * dom/ScriptExecutionContext.cpp:
1196         (WebCore::ScriptExecutionContext::ScriptExecutionContext):
1197         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
1198         (WebCore):
1199         * dom/ScriptExecutionContext.h:
1200         (WebCore):
1201         (ScriptExecutionContext):
1202         * history/PageCache.cpp:
1203         (WebCore::logCanCacheFrameDecision):
1204         (WebCore::PageCache::canCachePageContainingThisFrame):
1205         * loader/FrameLoader.cpp:
1206         (WebCore::FrameLoader::stopLoading):
1207         * platform/Supplementable.h:
1208         (WebCore::Supplementable::provideSupplement):
1209         (WebCore::Supplementable::requireSupplement):
1210         (Supplementable):
1211         * storage/AbstractDatabase.cpp:
1212         (WebCore::AbstractDatabase::AbstractDatabase):
1213         * storage/AbstractDatabase.h:
1214         (WebCore):
1215         (WebCore::AbstractDatabase::databaseContext):
1216         (AbstractDatabase):
1217         * storage/Database.cpp:
1218         (WebCore::Database::openDatabase):
1219         (WebCore::Database::Database):
1220         (WebCore::Database::openAndVerifyVersion):
1221         (WebCore::Database::markAsDeletedAndClose):
1222         (WebCore::Database::close):
1223         (WebCore::Database::closeImmediately):
1224         (WebCore::Database::performOpenAndVerify):
1225         (WebCore::Database::scheduleTransaction):
1226         (WebCore::Database::scheduleTransactionStep):
1227         (WebCore::Database::transactionClient):
1228         (WebCore::Database::transactionCoordinator):
1229         (WebCore::Database::tableNames):
1230         (WebCore::Database::securityOrigin):
1231         * storage/DatabaseContext.cpp: Added.
1232         (WebCore):
1233         (WebCore::existingDatabaseContextFrom):
1234         (WebCore::DatabaseContext::DatabaseContext):
1235         (WebCore::DatabaseContext::~DatabaseContext):
1236         (WebCore::DatabaseContext::from):
1237         (WebCore::DatabaseContext::databaseThread):
1238         (WebCore::DatabaseContext::hasOpenDatabases):
1239         (WebCore::DatabaseContext::stopDatabases):
1240         * storage/DatabaseContext.h: Added.
1241         (WebCore):
1242         (DatabaseContext):
1243         (WebCore::DatabaseContext::setHasOpenDatabases):
1244         * storage/SQLTransaction.cpp:
1245         (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
1246         (WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
1247         * workers/WorkerThread.cpp:
1248         (WebCore::WorkerThreadShutdownStartTask::performTask):
1249
1250 2012-02-29  Shinya Kawanaka  <shinyak@chromium.org>
1251
1252         Refactoring: HTMLContentSelector should be InsertionPoint-aware.
1253         https://bugs.webkit.org/show_bug.cgi?id=79901
1254
1255         Reviewed by Hajime Morita.
1256
1257         ContentSelectorQuery took HTMLContentElement as argument, but patch changes it to take InsertionPoint instead.
1258         If InsertionPoint is not HTMLContentElement, ContentSelectorQuery will selects the rest of light children.
1259
1260         Now InsertionPoint has pure virtual method 'select'. <shadow> will implement this as a method returning empty string.
1261
1262         * dom/ShadowRoot.cpp:
1263         (WebCore::ShadowRoot::hasInsertionPoint):
1264         * dom/ShadowRoot.h:
1265         (ShadowRoot):
1266         * dom/ShadowTree.cpp:
1267         (WebCore::ShadowTree::needsReattachHostChildrenAndShadow):
1268         (WebCore::ShadowTree::hostChildrenChanged):
1269         * html/shadow/ContentSelectorQuery.cpp:
1270         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
1271         (WebCore::ContentSelectorQuery::matches):
1272         * html/shadow/ContentSelectorQuery.h:
1273         (WebCore):
1274         (ContentSelectorQuery):
1275         * html/shadow/HTMLContentElement.cpp:
1276         (WebCore::HTMLContentElement::detach):
1277         * html/shadow/HTMLContentElement.h:
1278         (WebCore::toHTMLContentElement):
1279         (WebCore):
1280         * html/shadow/HTMLContentSelector.cpp:
1281         (WebCore::HTMLContentSelector::select):
1282         * html/shadow/HTMLContentSelector.h:
1283         (HTMLContentSelector):
1284         * html/shadow/InsertionPoint.h:
1285         (InsertionPoint):
1286
1287 2012-02-29  Luke Macpherson   <macpherson@chromium.org>
1288
1289         Handle CSSPropertySpeak in CSSStyleApplyProperty.
1290         https://bugs.webkit.org/show_bug.cgi?id=79879
1291
1292         Reviewed by Eric Seidel.
1293
1294         No new tests / refactoring only.
1295
1296         * css/CSSStyleApplyProperty.cpp:
1297         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1298         * css/CSSStyleSelector.cpp:
1299         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1300         * rendering/style/RenderStyle.h:
1301
1302 2012-02-29  Luke Macpherson   <macpherson@chromium.org>
1303
1304         Handle CSSPropertyWebkitColumnAxis in CSSStyleApplyProperty.
1305         https://bugs.webkit.org/show_bug.cgi?id=79869
1306
1307         Reviewed by Eric Seidel.
1308
1309         No new tests / refactoring only.
1310
1311         * css/CSSStyleApplyProperty.cpp:
1312         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1313         * css/CSSStyleSelector.cpp:
1314         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1315
1316 2012-02-29  Erik Arvidsson  <arv@chromium.org>
1317
1318         Rename DOMSelection to Selection
1319         https://bugs.webkit.org/show_bug.cgi?id=79688
1320
1321         Reviewed by Adam Barth.
1322
1323         No new tests. Existing tests have been updated to cover this.
1324
1325         * page/DOMSelection.idl:
1326         * page/DOMWindow.idl:
1327
1328 2012-02-29  Joshua Bell  <jsbell@chromium.org>
1329
1330         IndexedDB: IDBDatabase.objectStoreNames and IDObjectStore.indexNames results should be sorted
1331         https://bugs.webkit.org/show_bug.cgi?id=79950
1332
1333         Reviewed by Tony Chang.
1334
1335         Test: storage/indexeddb/list-ordering.html
1336
1337         * dom/DOMStringList.cpp: Added sort method, not exposed via IDL.
1338         (WebCore::DOMStringList::sort):
1339         (WebCore):
1340         * dom/DOMStringList.h:
1341         (DOMStringList):
1342         * storage/IDBDatabaseBackendImpl.cpp:
1343         (WebCore::IDBDatabaseBackendImpl::objectStoreNames):
1344         * storage/IDBObjectStoreBackendImpl.cpp:
1345         (WebCore::IDBObjectStoreBackendImpl::indexNames):
1346
1347 2012-02-29  W. James MacLean  <wjmaclean@chromium.org>
1348
1349         [chromium] Estimate pixel count for frame rate control
1350         https://bugs.webkit.org/show_bug.cgi?id=74982
1351
1352         Reviewed by James Robinson.
1353
1354         Value checks added to unit tests.
1355
1356         Adds mechanism to compute and collect statistics on pixel overdraw for selected frames.
1357
1358         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1359         (WebCore::CCLayerTreeHostImpl::optimizeRenderPasses):
1360         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1361         (WebCore::wedgeProduct):
1362         (WebCore):
1363         (WebCore::quadArea):
1364         (WebCore::CCQuadCuller::cullOccludedQuads):
1365         * platform/graphics/chromium/cc/CCQuadCuller.h:
1366         (CCQuadCuller):
1367         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1368         (WebCore::CCRenderPass::optimizeQuads):
1369         * platform/graphics/chromium/cc/CCRenderPass.h:
1370         (CCOverdrawCounts):
1371         (WebCore):
1372         (CCRenderPass):
1373
1374 2012-02-29  Jason Liu  <jason.liu@torchmobile.com.cn>
1375
1376         [BlackBerry]Make about:cache feature available in release version.
1377         https://bugs.webkit.org/show_bug.cgi?id=79866
1378
1379         Reviewed by Antonio Gomes.
1380
1381         No tests.
1382         * platform/network/blackberry/NetworkJob.cpp:
1383         (WebCore::NetworkJob::handleAbout):
1384
1385 2012-02-29  James Simonsen  <simonjam@chromium.org>
1386
1387         [chromium] Fix navigation start time on cross-renderer navigation
1388         https://bugs.webkit.org/show_bug.cgi?id=75922
1389
1390         Reviewed by Darin Fisher.
1391
1392         * loader/DocumentLoadTiming.cpp:
1393         (WebCore::DocumentLoadTiming::setNavigationStart): Added.
1394         * loader/DocumentLoadTiming.h:
1395
1396 2012-02-29  Stephen Chenney  <schenney@chromium.org>
1397
1398         SVG <use> element allows invalid contents
1399         https://bugs.webkit.org/show_bug.cgi?id=77764
1400
1401         Reviewed by Nikolas Zimmermann.
1402
1403         Modify the isDisallowedElement method to disallow all of the
1404         disallowed elements, instead of just a few. It is now a whitelist
1405         implementation.
1406
1407         This also fixes bugs 78807, 78838 and 79798 related to memory
1408         corruption issues.
1409
1410         Tests: svg/custom/bug78807.svg
1411                svg/custom/bug78838.html
1412                svg/custom/bug79798.html
1413
1414         * svg/SVGUseElement.cpp:
1415         (WebCore::isDisallowedElement):
1416
1417 2012-02-29  Ami Fischman  <fischman@chromium.org>
1418
1419         Continue the search for playable mime types among <source> children of <video> even when using data: URLs
1420         https://bugs.webkit.org/show_bug.cgi?id=79934
1421
1422         Reviewed by Eric Carlson.
1423
1424         Test: media/sources-fallback-codecs.html
1425
1426         * html/HTMLMediaElement.cpp:
1427         (WebCore::HTMLMediaElement::selectNextSourceChild):
1428
1429 2012-02-29  Ian Vollick  <vollick@chromium.org>
1430
1431         [chromium] Add impl-thread support for animation-timing-function
1432         https://bugs.webkit.org/show_bug.cgi?id=79819
1433
1434         Reviewed by James Robinson.
1435
1436         * WebCore.gypi:
1437         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
1438         (WebCore::CCKeyframe::CCKeyframe):
1439         (WebCore):
1440         (WebCore::CCKeyframe::~CCKeyframe):
1441         (WebCore::CCKeyframe::time):
1442         (WebCore::CCKeyframe::timingFunction):
1443         (WebCore::CCFloatKeyframe::create):
1444         (WebCore::CCFloatKeyframe::CCFloatKeyframe):
1445         (WebCore::CCFloatKeyframe::~CCFloatKeyframe):
1446         (WebCore::CCFloatKeyframe::value):
1447         (WebCore::CCFloatKeyframe::clone):
1448         (WebCore::CCTransformKeyframe::create):
1449         (WebCore::CCTransformKeyframe::CCTransformKeyframe):
1450         (WebCore::CCTransformKeyframe::~CCTransformKeyframe):
1451         (WebCore::CCTransformKeyframe::value):
1452         (WebCore::CCTransformKeyframe::clone):
1453         (WebCore::CCKeyframedFloatAnimationCurve::create):
1454         (WebCore::CCKeyframedFloatAnimationCurve::CCKeyframedFloatAnimationCurve):
1455         (WebCore::CCKeyframedFloatAnimationCurve::addKeyframe):
1456         (WebCore::CCKeyframedFloatAnimationCurve::duration):
1457         (WebCore::CCKeyframedFloatAnimationCurve::clone):
1458         (WebCore::CCKeyframedFloatAnimationCurve::getValue):
1459         (WebCore::CCKeyframedTransformAnimationCurve::create):
1460         (WebCore::CCKeyframedTransformAnimationCurve::CCKeyframedTransformAnimationCurve):
1461         (WebCore::CCKeyframedTransformAnimationCurve::~CCKeyframedTransformAnimationCurve):
1462         (WebCore::CCKeyframedTransformAnimationCurve::addKeyframe):
1463         (WebCore::CCKeyframedTransformAnimationCurve::duration):
1464         (WebCore::CCKeyframedTransformAnimationCurve::clone):
1465         (WebCore::CCKeyframedTransformAnimationCurve::getValue):
1466         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
1467         (CCKeyframe):
1468         (CCFloatKeyframe):
1469         (WebCore):
1470         (CCTransformKeyframe):
1471         (CCKeyframedFloatAnimationCurve):
1472         (CCKeyframedTransformAnimationCurve):
1473         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1474         * platform/graphics/chromium/cc/CCTimingFunction.cpp: Added.
1475         (WebCore):
1476         (WebCore::CCTimingFunction::CCTimingFunction):
1477         (WebCore::CCTimingFunction::~CCTimingFunction):
1478         (WebCore::CCTimingFunction::duration):
1479         (WebCore::CCCubicBezierTimingFunction::create):
1480         (WebCore::CCCubicBezierTimingFunction::CCCubicBezierTimingFunction):
1481         (WebCore::CCCubicBezierTimingFunction::~CCCubicBezierTimingFunction):
1482         (WebCore::CCCubicBezierTimingFunction::getValue):
1483         (WebCore::CCCubicBezierTimingFunction::clone):
1484         (WebCore::CCEaseTimingFunction::create):
1485         (WebCore::CCEaseInTimingFunction::create):
1486         (WebCore::CCEaseOutTimingFunction::create):
1487         (WebCore::CCEaseInOutTimingFunction::create):
1488         * platform/graphics/chromium/cc/CCTimingFunction.h: Added.
1489         (WebCore):
1490         (CCTimingFunction):
1491         (CCCubicBezierTimingFunction):
1492         (CCEaseTimingFunction):
1493         (CCEaseInTimingFunction):
1494         (CCEaseOutTimingFunction):
1495         (CCEaseInOutTimingFunction):
1496
1497 2012-02-29  Shinya Kawanaka  <shinyak@chromium.org>
1498
1499         Methods in ShadowTree and TreeScopeAdopter should be multiple shadow roots aware.
1500         https://bugs.webkit.org/show_bug.cgi?id=79768
1501
1502         Reviewed by Hajime Morita.
1503
1504         Some methods in ShadowTree and TreeScopeAdopter were not multiple shadow roots aware.
1505         They should consider multiple shadow roots.
1506
1507         Test: fast/dom/shadow/multiple-shadowroot-adopt.html
1508
1509         * dom/ShadowTree.cpp:
1510         (WebCore::ShadowTree::setParentTreeScope):
1511         (WebCore):
1512         (WebCore::ShadowTree::childNeedsStyleRecalc):
1513         (WebCore::ShadowTree::needsStyleRecalc):
1514         * dom/ShadowTree.h:
1515         (WebCore):
1516         (ShadowTree):
1517         * dom/TreeScopeAdopter.cpp:
1518         (WebCore::shadowTreeFor):
1519         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
1520         (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
1521         (WebCore::TreeScopeAdopter::moveShadowTreeToNewDocument):
1522         (WebCore):
1523         * dom/TreeScopeAdopter.h:
1524         (TreeScopeAdopter):
1525
1526 2012-02-29  David Levin  <levin@chromium.org>
1527
1528         [chromium] Add the ability to turn off autoresize.
1529         https://bugs.webkit.org/show_bug.cgi?id=77452
1530
1531         Reviewed by Darin Fisher.
1532
1533         Test: fast/autoresize/turn-off-autoresize.html
1534
1535         * page/FrameView.cpp:
1536         (WebCore::FrameView::enableAutoSizeMode): Fix the code
1537         path for turning off autoresize to set the scrollbars to auto.
1538
1539 2012-02-29  David Barton  <dbarton@mathscribe.com>
1540
1541         <msubsup> setNeedsLayout() correction
1542         https://bugs.webkit.org/show_bug.cgi?id=79856
1543
1544         Reviewed by Julien Chaffraix.
1545
1546         m_scripts->setNeedsLayout(true, false); needs to be added to the fix for bug 79274.
1547
1548         No new tests. It's actually difficult to test the need for this with the current code,
1549         because there are a lot of extra setNeedsLayout() calls right now. I caught this after
1550         removing some of those calls that should be redundant, for a future patch. Actually
1551         removing those calls now changes other behavior, due to other bugs, so I'll save all
1552         that for future patches. We should land this fix now though I think, as it could
1553         possibly matter in some cases.
1554
1555         * rendering/mathml/RenderMathMLSubSup.cpp:
1556         (WebCore::RenderMathMLSubSup::layout):
1557
1558 2012-02-29  Andreas Kling  <awesomekling@apple.com>
1559
1560         IsSynchronizingStyleAttributeFlag could be purged.
1561         <http://webkit.org/b/79313>
1562
1563         Reviewed by Anders Carlsson.
1564
1565         We were using IsSynchronizingStyleAttributeFlag to prevent various things from
1566         happening below setAttribute() when serializing the "style" attribute based on
1567         an element's inline style.
1568
1569         Simplify the whole thing by adding a way to set an attribute without triggering
1570         any callbacks (a 'notifyChanged' argument to Element::setAttribute().)
1571         This removes the need for IsSynchronizingStyleAttributeFlag in the first place
1572         and makes StyledElement::updateStyleAttribute() a bit cheaper to boot.
1573
1574         * dom/Element.cpp:
1575         (WebCore::Element::setAttribute):
1576         (WebCore::Element::setAttributeInternal):
1577         (WebCore::Element::willModifyAttribute):
1578         (WebCore::Element::didModifyAttribute):
1579         (WebCore::Element::didRemoveAttribute):
1580         * dom/Element.h:
1581         * dom/Node.h:
1582         * dom/StyledElement.cpp:
1583         (WebCore::StyledElement::updateStyleAttribute):
1584         (WebCore::StyledElement::attributeChanged):
1585         * html/HTMLElement.cpp:
1586         (WebCore::StyledElement::copyNonAttributeProperties):
1587
1588 2012-02-29  Daniel Cheng  <dcheng@chromium.org>
1589
1590         [chromium] REGRESSION: Cannot drag a file out
1591         https://bugs.webkit.org/show_bug.cgi?id=79817
1592
1593         Reviewed by Ryosuke Niwa.
1594
1595         Temporary fix for file drag out. This change won't be needed once DataTransferItemList
1596         support is better implemented.
1597
1598         Test: platform/chromium/fast/events/drag-downloadURL.html
1599
1600         * platform/chromium/ChromiumDataObject.cpp:
1601         (WebCore::ChromiumDataObject::types):
1602
1603 2012-02-29  Luke Macpherson   <macpherson@chromium.org>
1604
1605         Clean up CSSPrimitiveValue::computeLengthDouble().
1606         https://bugs.webkit.org/show_bug.cgi?id=77065
1607
1608         Reviewed by Eric Seidel.
1609
1610         Refactoring only / no behavioral change.
1611
1612         * css/CSSPrimitiveValue.cpp:
1613         (WebCore::CSSPrimitiveValue::computeLengthDouble):
1614
1615 2012-02-29  Beth Dakin  <bdakin@apple.com>
1616
1617         Speculative build-fix.
1618
1619         * rendering/RenderImage.cpp:
1620         (WebCore::RenderImage::paintReplaced):
1621
1622 2012-02-29  Beth Dakin  <bdakin@apple.com>
1623
1624         https://bugs.webkit.org/show_bug.cgi?id=79705
1625         didNewFirstVisuallyNonEmptyLayout should be enhanced to look at size instead 
1626         of a raw tally
1627         -and corresponding-
1628         <rdar://problem/10821314>
1629
1630         Reviewed by Dave Hyatt.
1631
1632         Instead of firing didNewFirstVisuallyNonEmptyLayout() when a raw tally of 
1633         relevant painted objects has reached a port-defined threshold, this patch 
1634         looks at the size of those objects with respect to the view area. The patch 
1635         also looks at relevant objects that cannot yet be fully painted, such as 
1636         incrementally loading images. 
1637
1638         We no longer need a HashSet for the relevant painted objects since Region can 
1639         do all of the heavy lifting. We now have a Region for the painted and 
1640         unpainted regions. We do need a HashSet for the unpainted objects though, 
1641         because we need to know if a painted object needs to be subtracted from the 
1642         unpainted region before being added to the painted region.
1643         * page/Page.cpp:
1644         (WebCore):
1645         (WebCore::Page::isCountingRelevantRepaintedObjects):
1646         (WebCore::Page::startCountingRelevantRepaintedObjects):
1647         (WebCore::Page::resetRelevantPaintedObjectCounter):
1648         (WebCore::Page::addRelevantRepaintedObject):
1649         (WebCore::Page::addRelevantUnpaintedObject):
1650         * page/Page.h:
1651         (Page):
1652
1653         New function on Region iterates through the rects and calculates the total 
1654         area.
1655         * platform/graphics/Region.cpp:
1656         (WebCore::Region::totalArea):
1657         (WebCore):
1658         * platform/graphics/Region.h:
1659         (Region):
1660
1661         Remove code from these classes since they are not actually relevant objects.
1662         * rendering/InlineBox.cpp:
1663         (WebCore::InlineBox::paint):
1664         * rendering/RenderRegion.cpp:
1665         (WebCore::RenderRegion::paintReplaced):
1666         * rendering/RenderReplaced.cpp:
1667         (WebCore::RenderReplaced::paint):
1668
1669         All of these other callers send a rect that actually represents their size 
1670         (usually the visualOverflowRect) instead of the paintInfo's paintRect, and 
1671         they call addRelevantUnpaintedObject when appropriate.
1672         * rendering/InlineTextBox.cpp:
1673         (WebCore::InlineTextBox::paint):
1674         * rendering/RenderEmbeddedObject.cpp:
1675         (WebCore::RenderEmbeddedObject::paint):
1676         (WebCore::RenderEmbeddedObject::paintReplaced):
1677         * rendering/RenderHTMLCanvas.cpp:
1678         (WebCore::RenderHTMLCanvas::paintReplaced):
1679         * rendering/RenderImage.cpp:
1680         (WebCore::RenderImage::paintReplaced):
1681         * rendering/RenderVideo.cpp:
1682         (WebCore::RenderVideo::paintReplaced):
1683         * rendering/svg/RenderSVGRoot.cpp:
1684         (WebCore::RenderSVGRoot::paintReplaced):
1685
1686 2012-02-29  Joshua Bell  <jsbell@chromium.org>
1687
1688         IndexedDB: Resource leak with IDBObjectStore.openCursor
1689         https://bugs.webkit.org/show_bug.cgi?id=79835
1690
1691         IDBCursor object that were never continue()'d to the end would leak due to a 
1692         reference cycle with IDBRequest. In addition, the IDBRequest would never be
1693         marked "finished" which would prevent GC from reclaiming it. IDBTransactions
1694         now track and notify IDBCursors to break these references when the transaction
1695         can no longer not process requests.
1696
1697         Reviewed by Tony Chang.
1698
1699         Tests: storage/indexeddb/cursor-continue.html
1700
1701         * storage/IDBCursor.cpp:
1702         (WebCore::IDBCursor::IDBCursor): Register with IDBTransaction bookkeeping.
1703         (WebCore::IDBCursor::continueFunction): Early error if transaction has finished.
1704         (WebCore::IDBCursor::close): Break the reference cycle with IDBRequest, and notify it
1705         that the cursor is finished.
1706         (WebCore):
1707         * storage/IDBCursor.h:
1708         (WebCore):
1709         (IDBCursor):
1710         * storage/IDBRequest.cpp:
1711         (WebCore::IDBRequest::IDBRequest):
1712         (WebCore::IDBRequest::finishCursor): If there is no request in flight, mark itself as
1713         finished to allow GC.
1714         (WebCore):
1715         (WebCore::IDBRequest::dispatchEvent): Once an in-flight request has been processed,
1716         mark the request as finished if the cursor is finished, to allow GC.
1717         * storage/IDBRequest.h:
1718         (IDBRequest):
1719         * storage/IDBTransaction.cpp: Track open cursors, close them when finished.
1720         (WebCore::IDBTransaction::OpenCursorNotifier::OpenCursorNotifier):
1721         (WebCore):
1722         (WebCore::IDBTransaction::OpenCursorNotifier::~OpenCursorNotifier):
1723         (WebCore::IDBTransaction::registerOpenCursor):
1724         (WebCore::IDBTransaction::unregisterOpenCursor):
1725         (WebCore::IDBTransaction::closeOpenCursors):
1726         (WebCore::IDBTransaction::onAbort):
1727         (WebCore::IDBTransaction::onComplete):
1728         * storage/IDBTransaction.h:
1729         (WebCore):
1730         (OpenCursorNotifier):
1731         (IDBTransaction):
1732
1733 2012-02-29  David Hyatt  <hyatt@apple.com>
1734
1735         https://bugs.webkit.org/show_bug.cgi?id=79940
1736         <rdar://problem/10080189>
1737         
1738         Add support in WebKit for an intra-line character grid for Japanese text layout.
1739         
1740         Patch logicalLeftOffsetForLine and logicalRightOffsetForLine in order to get the
1741         basic edge snapping grid functionality up and running. See all the FIXMEs in the function for
1742         some of the issues that still have to be dealt with for it to really work well.
1743
1744         Reviewed by Dan Bernstein.
1745
1746         Added new tests in fast/line-grid.
1747
1748         * rendering/RenderBlock.cpp:
1749         (WebCore::RenderBlock::logicalLeftOffsetForLine):
1750         (WebCore::RenderBlock::logicalRightOffsetForLine):
1751
1752 2012-02-29  Anders Carlsson  <andersca@apple.com>
1753
1754         [Chromium] Some Layout Tests in platform/chromium/rubberbanding and platform/chromium/compositing/rubberbanding are failing
1755         https://bugs.webkit.org/show_bug.cgi?id=79878
1756
1757         Reviewed by James Robinson.
1758
1759         Make sure that ScrollableArea::setScrollOffsetFromAnimation doesn't end up
1760         setting the ScrollAnimator's current scroll position by making a new function, scrollPositionChanged,
1761         that both notifyScrollPositionChanged and setScrollOffsetFromAnimation call and move the call to update
1762         the position to notifyScrollPositionChanged.
1763
1764         * platform/ScrollableArea.cpp:
1765         (WebCore::ScrollableArea::notifyScrollPositionChanged):
1766         (WebCore):
1767         (WebCore::ScrollableArea::scrollPositionChanged):
1768         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
1769         * platform/ScrollableArea.h:
1770         (ScrollableArea):
1771
1772 2012-02-29  Dana Jansens  <danakj@chromium.org>
1773
1774         [chromium] Don't let invalidation for next frame prevent tile upload
1775         https://bugs.webkit.org/show_bug.cgi?id=79841
1776
1777         Reviewed by James Robinson.
1778
1779         We currently don't push dirty tiles to the impl thread so there are no
1780         tiles with garbage data on the impl thread. However, this judgement is
1781         overzealous and blocks tiles that get invalidated by WebKit for the
1782         next frame during the paint of the current frame.
1783
1784         Instead, check if a tile is dirty and was not painted for the current
1785         frame when deciding to push the tile to the impl thread. This requires
1786         that we know if a tile was painted during the current frame, which we
1787         can do if we always reset m_updateRect to be empty each frame.
1788
1789         New unit tests: TiledLayerChromiumTest.pushTilesMarkedDirtyDuringPaint
1790                         TiledLayerChromiumTest.pushTilesLayerMarkedDirtyDuringPaintOnNextLayer
1791                         TiledLayerChromiumTest.pushTilesLayerMarkedDirtyDuringPaintOnPreviousLayer
1792
1793         * platform/graphics/chromium/TiledLayerChromium.cpp:
1794         (WebCore::UpdatableTile::isDirtyForCurrentFrame):
1795         (WebCore::TiledLayerChromium::pushPropertiesTo):
1796         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1797         (WebCore::TiledLayerChromium::resetUpdateState):
1798         (WebCore):
1799         (WebCore::TiledLayerChromium::prepareToUpdate):
1800         * platform/graphics/chromium/TiledLayerChromium.h:
1801         (TiledLayerChromium):
1802
1803 2012-02-29  Tommy Widenflycht  <tommyw@google.com>
1804
1805         MediaStream API: MediaStreamTrackList out-of-bounds access fix
1806         https://bugs.webkit.org/show_bug.cgi?id=79889
1807
1808         Reviewed by Adam Barth.
1809
1810         Out-of-bounds access to MediaStreamTrackList ASSERTS instead of returning 0,
1811         this is not according to ecmascript standard. Also fixed a similar issue in MediaStreamList.
1812
1813         Test: fast/mediastream/peerconnection-mediastreamlist.html
1814
1815         * Modules/mediastream/MediaStreamList.cpp:
1816         (WebCore::MediaStreamList::item):
1817         * Modules/mediastream/MediaStreamTrackList.cpp:
1818         (WebCore::MediaStreamTrackList::item):
1819
1820 2012-02-29  Leo Yang  <leo.yang@torchmobile.com.cn>
1821
1822         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FloatSize.h
1823         https://bugs.webkit.org/show_bug.cgi?id=79893
1824
1825         Reviewed by Antonio Gomes.
1826
1827         Add conversion convenience between WebCore::FloatSize and BlackBerry::Platform::FloatSize.
1828
1829         The porting can't be built yet, no new tests.
1830
1831         * platform/graphics/FloatSize.h:
1832         (Platform):
1833         (FloatSize):
1834
1835 2012-02-29  Leo Yang  <leo.yang@torchmobile.com.cn>
1836
1837         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FloatRect.h
1838         https://bugs.webkit.org/show_bug.cgi?id=79891
1839
1840         Reviewed by Antonio Gomes.
1841
1842         Add conversion convenience between WebCore::FloatRect and BlackBerry::Platform::FloatRect.
1843
1844         The porting can't be built yet, no new tests.
1845
1846         * platform/graphics/FloatRect.h:
1847         (Platform):
1848         (FloatRect):
1849
1850 2012-02-29  Tim Horton  <timothy_horton@apple.com>
1851
1852         Make use of CG rounded-rect primitives
1853         https://bugs.webkit.org/show_bug.cgi?id=79932
1854         <rdar://problem/9274953>
1855
1856         Reviewed by Simon Fraser.
1857
1858         Dispatch to potentially platform-specific rounded rectangle path
1859         construction from addPathForRoundedRect. Make use of this to call
1860         wkCGPathAddRoundedRect on Lion and above, as long as the rounded
1861         corners are all equivalent.
1862
1863         No new tests, as this is covered by many that use rounded corners,
1864         and is only a performance improvement.
1865
1866         * WebCore.exp.in:
1867         * platform/graphics/Path.cpp:
1868         (WebCore::Path::addRoundedRect):
1869         (WebCore):
1870         (WebCore::Path::addPathForRoundedRect):
1871         * platform/graphics/Path.h:
1872         (Path):
1873         * platform/graphics/cg/PathCG.cpp:
1874         (WebCore::Path::addPathForRoundedRect):
1875         (WebCore):
1876         * platform/mac/WebCoreSystemInterface.h:
1877         * platform/mac/WebCoreSystemInterface.mm:
1878
1879 2012-02-29  Leo Yang  <leo.yang@torchmobile.com.cn>
1880
1881         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FloatPoint.h
1882         https://bugs.webkit.org/show_bug.cgi?id=79887
1883
1884         Reviewed by Antonio Gomes.
1885
1886         Add conversion convenience between WebCore::FloatPoint and BlackBerry::Platform::FloatPoint.
1887
1888         The porting can't be built yet, no new tests.
1889
1890         * platform/graphics/FloatPoint.h:
1891         (Platform):
1892         (FloatPoint):
1893
1894 2012-02-29  Kaustubh Atrawalkar  <kaustubh@motorola.com>
1895
1896         ShadowRoot need innerHTML
1897         https://bugs.webkit.org/show_bug.cgi?id=78473
1898
1899         Reviewed by Hajime Morita.
1900
1901         Refactor code for sharing common code between HTMLElement & ShadowRoot.
1902         Implement innerHTML attribute for ShadowRoot.
1903
1904         Test: fast/dom/shadow/shadow-root-innerHTML.html
1905
1906         * dom/ShadowRoot.cpp:
1907         (WebCore::ShadowRoot::cloneNode):
1908         (WebCore):
1909         (WebCore::ShadowRoot::innerHTML):
1910         (WebCore::ShadowRoot::setInnerHTML):
1911         * dom/ShadowRoot.h:
1912         (ShadowRoot):
1913         * dom/ShadowRoot.idl:
1914         * editing/markup.cpp:
1915         (WebCore::urlToMarkup):
1916         (WebCore):
1917         (WebCore::createFragmentFromSource):
1918         (WebCore::hasOneChild):
1919         (WebCore::hasOneTextChild):
1920         (WebCore::replaceChildrenWithFragment):
1921         (WebCore::replaceChildrenWithText):
1922         * editing/markup.h:
1923         * html/HTMLElement.cpp:
1924         (WebCore):
1925
1926 2012-02-29  Julien Chaffraix  <jchaffraix@webkit.org>
1927
1928         Stop doubling maximalOutlineSize during painting
1929         https://bugs.webkit.org/show_bug.cgi?id=79724
1930
1931         Reviewed by Tony Chang.
1932
1933         Refactoring only, covered by existing tests (mostly repaint ones).
1934
1935         * rendering/RenderReplaced.cpp:
1936         (WebCore::RenderReplaced::shouldPaint):
1937         * rendering/RenderTableCell.cpp:
1938         (WebCore::RenderTableCell::paintCollapsedBorders):
1939         Introduce a local repaint rectangle that we inflate by the maximalOutlineSize
1940         to simplify the comparison logic. Also tried to make it clearer what's going on
1941         by tweaking the existing code.
1942
1943         * rendering/RenderTableSection.cpp:
1944         (WebCore::RenderTableSection::paintObject):
1945         Remove the doubling.
1946
1947 2012-02-29  Ken Buchanan  <kenrb@chromium.org>
1948
1949         Crash when changing list marker locations
1950         https://bugs.webkit.org/show_bug.cgi?id=79681
1951
1952         Reviewed by David Hyatt.
1953
1954         This fixes a regression crash from r108548.
1955
1956         There are some conditions where removing the anonymous block
1957         parent at that point can cause problems. One is when there is
1958         a continuation from it, and another when it is a sibling of
1959         lineBoxParent and it causes lineBoxParent to be deleted
1960         incidentally. This patch delays the destruction until after
1961         lineBoxParent has been used and makes an exception for
1962         continuations.
1963
1964         * rendering/RenderListItem.cpp:
1965         (WebCore::RenderListItem::updateMarkerLocation)
1966
1967 2012-02-29  Max Feil  <mfeil@rim.com>
1968
1969         [BlackBerry] Add support for FLAC audio and OGG/Vorbis audio
1970         https://bugs.webkit.org/show_bug.cgi?id=79519
1971
1972         Reviewed by Antonio Gomes.
1973
1974         A layout test already exists for OGG. We do not support OGG
1975         video at this time, only audio.
1976
1977         Test: media/media-can-play-flac-audio.html
1978
1979         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
1980         (WebCore):
1981
1982 2012-02-28  Beth Dakin  <bdakin@apple.com>
1983
1984         https://bugs.webkit.org/show_bug.cgi?id=79868
1985         Overlay scrollbars should respond to AppKit's NSEventPhaseMayBegin
1986         -and corresponding-
1987         <rdar://problem/10688637>
1988
1989         Reviewed by Anders Carlsson.
1990
1991         Scrollbars are currently drawn on the main thread even when scrolling happens 
1992         on the scrolling thread, so we have to call back to the main thread for the 
1993         time being to make the right drawing calls for NSEventPhaseMayBegin.
1994         * page/scrolling/ScrollingCoordinator.cpp:
1995         (WebCore::ScrollingCoordinator::handleWheelEventPhase):
1996         (WebCore):
1997         * page/scrolling/ScrollingCoordinator.h:
1998         (ScrollingCoordinator):
1999         * page/scrolling/ScrollingTree.cpp:
2000         (WebCore::ScrollingTree::handleWheelEventPhase):
2001         (WebCore):
2002         * page/scrolling/ScrollingTree.h:
2003         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
2004         (WebCore::ScrollingTreeNodeMac::handleWheelEvent):
2005         * platform/ScrollAnimator.h:
2006         (WebCore::ScrollAnimator::handleWheelEventPhase):
2007         (ScrollAnimator):
2008
2009         Call into AppKit on NSEventPhaseMayBegin.
2010         * platform/mac/ScrollAnimatorMac.h:
2011         (ScrollAnimatorMac):
2012         * platform/mac/ScrollAnimatorMac.mm:
2013         (WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
2014         (WebCore):
2015         (WebCore::ScrollAnimatorMac::handleWheelEventPhase):
2016         (WebCore::ScrollAnimatorMac::handleWheelEvent):
2017
2018 2012-02-28  Jer Noble  <jer.noble@apple.com>
2019
2020         Full screen video volume slider has "progress bar"
2021         https://bugs.webkit.org/show_bug.cgi?id=79812
2022
2023         Reviewed by Eric Carlson.
2024
2025         No new tests; strictly a platform-specific look-and-feel change.
2026
2027         The full-screen volume slider has a "media-slider"" appearance, which is rendering as if
2028         the volume slider has a "progress".  Make a concrete "media-fullscreen-volume-slider" appearance
2029         which has the correct look-and-feel.
2030
2031         Add two new appearance keywords, media-fullscreen-volume-slider and thumb, and their associated
2032         types and CSS keywords:
2033         * css/CSSValueKeywords.in:
2034         * css/CSSPrimitiveValueMappings.h:
2035         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2036         * html/shadow/MediaControlElements.h:
2037         * platform/ThemeTypes.h:
2038
2039         Handle the new slider and thumb types when rendering:
2040         * rendering/RenderMediaControls.cpp:
2041         (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):
2042         (WebCore::RenderMediaControls::paintMediaControlsPart):
2043         * rendering/RenderTheme.cpp:
2044         (WebCore::RenderTheme::adjustStyle):
2045         (WebCore::RenderTheme::paint):
2046         * rendering/RenderTheme.h:
2047         (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderTrack):
2048         (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderThumb):
2049         * rendering/RenderThemeMac.h:
2050         (RenderThemeMac):
2051         * rendering/RenderThemeMac.mm:
2052         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
2053         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
2054         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
2055         * rendering/RenderMediaControlsChromium.cpp:
2056         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2057
2058         * accessibility/AccessibilitySlider.cpp:
2059         (WebCore::AccessibilitySlider::orientation): Mark the fullscreen volume slider as horizontal.
2060         * html/shadow/SliderThumbElement.cpp:
2061         (WebCore::RenderSliderThumb::updateAppearance): Give MediaFullScreenVolumeSliderParts 
2062             MediaFullScreenVolumeSliderThumbParts.
2063         * css/fullscreenQuickTime.css: Change the styles for the fullscreen slider, min, and max buttons.
2064         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-min-button):
2065         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-slider):
2066         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-max-button):
2067         * html/shadow/MediaControlRootElement.cpp:
2068         (WebCore::MediaControlRootElement::reset): Set the value of the fullscreen volume slider
2069             when resetting.
2070
2071 2012-02-29  Antti Koivisto  <antti@apple.com>
2072
2073         Applying region style should not need to access parent rules
2074         https://bugs.webkit.org/show_bug.cgi?id=79910 
2075          
2076         Reviewed by Andreas Kling.
2077
2078         Currently CSSStyleSelector::applyProperties looks into parent rules to see if a rule is
2079         part of region style. The plan is to eliminate the rule parent pointer so this needs to be refactored.
2080         
2081         Add a bit to RuleData to indicate if the StyleRule is part of a region style.
2082
2083         * css/CSSStyleSelector.cpp:
2084         (RuleData):
2085         (WebCore::RuleData::isInRegionRule):
2086         (RuleSet):
2087         (WebCore::CSSStyleSelector::addMatchedProperties):
2088         (WebCore::CSSStyleSelector::sortAndTransferMatchedRules):
2089         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2090         * css/CSSStyleSelector.h:
2091         (CSSStyleSelector):
2092
2093 2012-02-27  Vsevolod Vlasov  <vsevik@chromium.org>
2094
2095         Web Inspector: [InspectorIndexedDB] Add refresh to IndexedDB support.
2096         https://bugs.webkit.org/show_bug.cgi?id=79695
2097
2098         Reviewed by Pavel Feldman.
2099
2100         * inspector/front-end/IndexedDBViews.js:
2101         (WebInspector.IDBDataView):
2102         (WebInspector.IDBDataView.prototype._refreshButtonClicked):
2103         (WebInspector.IDBDataView.prototype.get statusBarItems):
2104         * inspector/front-end/ResourcesPanel.js:
2105         (WebInspector.IndexedDBTreeElement):
2106         (WebInspector.IndexedDBTreeElement.prototype.onattach):
2107         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
2108         (WebInspector.IDBDatabaseTreeElement.prototype.onattach):
2109         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
2110         (WebInspector.IDBDatabaseTreeElement.prototype._refreshIndexedDB):
2111
2112 2012-02-29  Andrey Kosyakov  <caseq@chromium.org>
2113
2114         Web Inspector: timeline markers are not shown on the timeline panel
2115         https://bugs.webkit.org/show_bug.cgi?id=79921
2116
2117         Reviewed by Pavel Feldman.
2118
2119         * inspector/front-end/TimelinePanel.js:
2120         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.addTimestampRecords):
2121         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
2122
2123 2012-02-29  Kenichi Ishibashi  <bashi@chromium.org>
2124
2125         Align InlineBox::m_expansion to a byte boundary
2126         https://bugs.webkit.org/show_bug.cgi?id=79761
2127
2128         Add a bit to m_expansion to align a byte boundary.
2129         This will make valgrind memcheck happy.
2130         I confirmed sizeof(InlineBox) is unchanged.
2131
2132         Reviewed by Hajime Morita.
2133
2134         No new tests. No behavior changes.
2135
2136         * rendering/InlineBox.h:
2137         (InlineBox): Aligned m_expansion to a byte boundary.
2138
2139 2012-02-28  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2140
2141         Do not iterate all tiles for resizing when the content didn't change
2142         https://bugs.webkit.org/show_bug.cgi?id=79787
2143
2144         Reviewed by Simon Hausmann.
2145
2146         * platform/graphics/TiledBackingStore.cpp:
2147         (WebCore::TiledBackingStore::createTiles):
2148
2149 2012-02-29  Parag Radke  <parag@motorola.com>
2150
2151         Crash in WebCore::CompositeEditCommand::insertNodeAt
2152         https://bugs.webkit.org/show_bug.cgi?id=67764
2153
2154         Reviewed by Ryosuke Niwa.
2155
2156         If caret position after deletion and destination position coincides then
2157         removing the node will result in removing the destination node also. Hence crash.
2158
2159         Test: editing/deleting/delete-block-merge-contents-025.html
2160
2161         * editing/CompositeEditCommand.cpp:
2162         (WebCore::CompositeEditCommand::cleanupAfterDeletion):
2163         If the caret position after delete and the destination position
2164         renderes at the same place, pruning the node and making an early exit.
2165
2166 2012-02-29  Pavel Feldman  <pfeldman@google.com>
2167
2168         Web Inspector: remove calculator's updateBoundaries in the timeline panel.
2169         https://bugs.webkit.org/show_bug.cgi?id=79907
2170
2171         Reviewed by Yury Semikhatsky.
2172
2173         * inspector/front-end/NetworkPanel.js:
2174         (WebInspector.NetworkBaseCalculator.prototype.computeBarGraphLabels):
2175         (WebInspector.NetworkBaseCalculator.prototype.formatTime):
2176         (WebInspector.NetworkTimeCalculator.prototype.computeBarGraphLabels):
2177         (WebInspector.NetworkTimeCalculator.prototype.formatTime):
2178         (WebInspector.NetworkTransferTimeCalculator.prototype.formatTime):
2179         (WebInspector.NetworkTransferDurationCalculator.prototype.formatTime):
2180         * inspector/front-end/TimelineGrid.js:
2181         (WebInspector.TimelineGrid.prototype.updateDividers):
2182         * inspector/front-end/TimelineOverviewPane.js:
2183         (WebInspector.TimelineOverviewCalculator.prototype.formatTime):
2184         (WebInspector.TimelineStartAtZeroOverview):
2185         (WebInspector.TimelineStartAtZeroOverview.prototype.update):
2186         * inspector/front-end/TimelinePanel.js:
2187         (WebInspector.TimelinePanel):
2188         (WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked):
2189         (WebInspector.TimelinePanel.prototype._refresh):
2190         (WebInspector.TimelinePanel.prototype._refreshRecords):
2191         (WebInspector.TimelinePanel.prototype.get timelinePaddingLeft):
2192         (WebInspector.TimelineCalculator):
2193         (WebInspector.TimelineCalculator.prototype.setWindow):
2194         (WebInspector.TimelineCalculator.prototype.setRecords):
2195         (WebInspector.TimelineCalculator.prototype.formatTime):
2196         (WebInspector.TimelineFitInWindowCalculator):
2197         (WebInspector.TimelineFitInWindowCalculator.prototype.setWindow):
2198         (WebInspector.TimelineFitInWindowCalculator.prototype.setRecords):
2199         * inspector/front-end/TimelinePresentationModel.js:
2200         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
2201
2202 2012-02-29  Yury Semikhatsky  <yurys@chromium.org>
2203
2204         Web Inspector: enable Profiles panel for workers
2205         https://bugs.webkit.org/show_bug.cgi?id=79908
2206
2207         Introduced worker profiler agent. Enabled script profiling for
2208         workers.
2209
2210         Reviewed by Pavel Feldman.
2211
2212         * bindings/js/ScriptProfiler.cpp:
2213         (WebCore::ScriptProfiler::startForPage):
2214         (WebCore):
2215         (WebCore::ScriptProfiler::startForWorkerContext):
2216         (WebCore::ScriptProfiler::stopForPage):
2217         (WebCore::ScriptProfiler::stopForWorkerContext):
2218         * bindings/js/ScriptProfiler.h:
2219         (WebCore):
2220         (ScriptProfiler):
2221         * bindings/v8/ScriptProfiler.cpp:
2222         (WebCore::ScriptProfiler::startForPage):
2223         (WebCore):
2224         (WebCore::ScriptProfiler::startForWorkerContext):
2225         (WebCore::ScriptProfiler::stopForPage):
2226         (WebCore::ScriptProfiler::stopForWorkerContext):
2227         * bindings/v8/ScriptProfiler.h:
2228         (WebCore):
2229         (ScriptProfiler):
2230         * inspector/InspectorProfilerAgent.cpp:
2231         (WebCore):
2232         (PageProfilerAgent):
2233         (WebCore::PageProfilerAgent::PageProfilerAgent):
2234         (WebCore::PageProfilerAgent::~PageProfilerAgent):
2235         (WebCore::PageProfilerAgent::startProfiling):
2236         (WebCore::PageProfilerAgent::stopProfiling):
2237         (WebCore::InspectorProfilerAgent::create):
2238         (WorkerProfilerAgent):
2239         (WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
2240         (WebCore::WorkerProfilerAgent::~WorkerProfilerAgent):
2241         (WebCore::WorkerProfilerAgent::startProfiling):
2242         (WebCore::WorkerProfilerAgent::stopProfiling):
2243         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2244         (WebCore::InspectorProfilerAgent::start):
2245         (WebCore::InspectorProfilerAgent::stop):
2246         * inspector/InspectorProfilerAgent.h:
2247         (WebCore):
2248         (InspectorProfilerAgent):
2249         * inspector/WorkerInspectorController.cpp:
2250         (WebCore::WorkerInspectorController::WorkerInspectorController):
2251         (WebCore::WorkerInspectorController::connectFrontend):
2252         (WebCore::WorkerInspectorController::disconnectFrontend):
2253         (WebCore::WorkerInspectorController::restoreInspectorStateFromCookie):
2254         * inspector/WorkerInspectorController.h:
2255         (WebCore):
2256         (WorkerInspectorController):
2257         * inspector/front-end/ProfilesPanel.js:
2258         * inspector/front-end/inspector.js:
2259         (WebInspector._createPanels):
2260
2261 2012-02-29  Alexander Pavlov  <apavlov@chromium.org>
2262
2263         Web Inspector: Clicking relative links fails when query string contains a slash
2264         https://bugs.webkit.org/show_bug.cgi?id=79905
2265
2266         Reviewed by Vsevolod Vlasov.
2267
2268         * inspector/front-end/ResourceUtils.js:
2269         (WebInspector.completeURL):
2270
2271 2012-02-29  Pavel Feldman  <pfeldman@google.com>
2272
2273         Web Inspector: Ctrl R should reload page from the console panel as well.
2274         https://bugs.webkit.org/show_bug.cgi?id=79883
2275
2276         Reviewed by Vsevolod Vlasov.
2277
2278         * inspector/front-end/inspector.js:
2279         (WebInspector.documentKeyDown):
2280
2281 2012-02-28  Pavel Podivilov  <podivilov@chromium.org>
2282
2283         Extended attributes list should go before 'static' and 'const' modifiers in IDLs.
2284         https://bugs.webkit.org/show_bug.cgi?id=79807
2285
2286         Reviewed by Kentaro Hara.
2287
2288         No new tests. Generated code isn't changed.
2289
2290         * bindings/scripts/IDLParser.pm:
2291         (ParseInterface):
2292         * bindings/scripts/IDLStructure.pm:
2293         * bindings/scripts/test/TestObj.idl:
2294         * bindings/scripts/test/TestSupplemental.idl:
2295         * html/DOMURL.idl:
2296         * html/HTMLMediaElement.idl:
2297         * html/HTMLTrackElement.idl:
2298
2299 2012-02-28  Yury Semikhatsky  <yurys@chromium.org>
2300
2301         Web Inspector: move DOM counter graphs out of experimental
2302         https://bugs.webkit.org/show_bug.cgi?id=79802
2303
2304         Enable DOM counter graphs by default.
2305
2306         Reveal nearest record from the left hand side when there is no
2307         record containing the point where the user clicked.
2308
2309         Reviewed by Pavel Feldman.
2310
2311         * inspector/front-end/Settings.js:
2312         (WebInspector.ExperimentsSettings):
2313         * inspector/front-end/TimelinePanel.js:
2314         (WebInspector.TimelinePanel):
2315         (WebInspector.TimelinePanel.prototype._endSplitterDragging):
2316         (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
2317         (WebInspector.TimelinePanel.prototype.sidebarResized):
2318         (WebInspector.TimelinePanel.prototype._resetPanel):
2319         (WebInspector.TimelinePanel.prototype._refresh):
2320         (WebInspector.TimelinePanel.prototype.revealRecordAt):
2321
2322 2012-02-28  MORITA Hajime  <morrita@google.com>
2323
2324         [Refactoring] Shadow related attach paths should be in ShadowTree.
2325         https://bugs.webkit.org/show_bug.cgi?id=79854
2326
2327         Reviewed by Ryosuke Niwa.
2328
2329         No new tests. No behavior change.
2330
2331         This change introduces ShadowTree::attachHost() and ShadowTree::detachHost()
2332         and moves shadow-enabled attachment code from Element to ShadowRoot.
2333         This also factored out small ContainerNode method to use it from ShadowTree.
2334
2335         Even after this change, the traveral order in ShadowTree
2336         attachment has some unclear part. Coming changes will clarify
2337         these. This change is aimed to be purely textural.
2338
2339         * dom/ContainerNode.cpp:
2340         (WebCore::ContainerNode::attach):
2341         (WebCore::ContainerNode::detach):
2342         * dom/ContainerNode.h:
2343         (ContainerNode):
2344         (WebCore::ContainerNode::attachAsNode): Added.
2345         (WebCore::ContainerNode::attachChildren): Added.
2346         (WebCore::ContainerNode::attachChildrenIfNeeded): Added.
2347         (WebCore::ContainerNode::attachChildrenLazily): Added.
2348         (WebCore::ContainerNode::detachAsNode): Added.
2349         (WebCore::ContainerNode::detachChildrenIfNeeded): Added.
2350         (WebCore::ContainerNode::detachChildren): Added.
2351         * dom/Element.cpp:
2352         (WebCore::Element::attach):
2353         (WebCore::Element::detach):
2354         * dom/ShadowTree.cpp:
2355         (WebCore::ShadowTree::addShadowRoot):
2356         (WebCore::ShadowTree::removeAllShadowRoots):
2357         (WebCore::ShadowTree::detachHost):
2358         (WebCore):
2359         (WebCore::ShadowTree::attachHost):
2360         (WebCore::ShadowTree::reattachHostChildrenAndShadow):
2361         * dom/ShadowTree.h:
2362         (ShadowTree):
2363
2364 2012-02-28  Arko Saha  <arko@motorola.com>
2365
2366         Microdata: Implement HTMLPropertiesCollection collection.namedItem().
2367         https://bugs.webkit.org/show_bug.cgi?id=73156
2368
2369         Reviewed by Kentaro Hara.
2370
2371         Tests: fast/dom/MicroData/nameditem-must-be-case-sensitive.html
2372                fast/dom/MicroData/nameditem-must-return-correct-item-properties.html
2373                fast/dom/MicroData/properties-collection-nameditem-test.html
2374
2375         * bindings/scripts/CodeGeneratorJS.pm: Modified code generator to generate
2376         JS bindings code for HTMLPropertiesCollection [NamedGetter] property.
2377         (GenerateImplementation):
2378         * html/HTMLPropertiesCollection.cpp:
2379         (WebCore::HTMLPropertiesCollection::names):
2380         (WebCore):
2381         (WebCore::HTMLPropertiesCollection::namedItem): Returns a NodeList object
2382         containing any elements that add a property named name.
2383         (WebCore::HTMLPropertiesCollection::hasNamedItem): Checks if the items can
2384         be retrieved or not based on the property named name.
2385         * html/HTMLPropertiesCollection.h: Added namedItem(), hasProperty(),
2386         hasNamedItem() methods.
2387         (HTMLPropertiesCollection):
2388         * html/HTMLPropertiesCollection.idl: Added namedItem() IDL method.
2389
2390 2012-02-28  Kinuko Yasuda  <kinuko@chromium.org>
2391
2392         Add size field to Metadata in FileSystem API
2393         https://bugs.webkit.org/show_bug.cgi?id=79813
2394
2395         Reviewed by David Levin.
2396
2397         Test: fast/filesystem/op-get-metadata.html
2398
2399         * fileapi/FileSystemCallbacks.cpp:
2400         (WebCore::MetadataCallbacks::didReadMetadata):
2401         * fileapi/Metadata.h:
2402         (WebCore::Metadata::create):
2403         (WebCore::Metadata::modificationTime):
2404         (WebCore::Metadata::size): Added.
2405         (WebCore::Metadata::Metadata):
2406         * fileapi/Metadata.idl:
2407
2408 2012-02-28  Dmitry Lomov  <dslomov@google.com>
2409
2410         [JSC] Implement ArrayBuffer transfer
2411         https://bugs.webkit.org/show_bug.cgi?id=73493.
2412         Implement ArrayBuffer transfer, per Khronos spec:  http://www.khronos.org/registry/typedarray/specs/latest/#9.
2413         This brings parity with V8 implementation of transferable typed arrays.
2414
2415         Reviewed by Oliver Hunt.
2416
2417         Covered by existing tests.
2418
2419         * bindings/js/JSDOMWindowCustom.cpp:
2420         (WebCore::handlePostMessage):
2421         * bindings/js/JSDictionary.cpp:
2422         (WebCore::JSDictionary::convertValue):
2423         * bindings/js/JSHistoryCustom.cpp:
2424         (WebCore::JSHistory::pushState):
2425         (WebCore::JSHistory::replaceState):
2426         * bindings/js/JSMessageEventCustom.cpp:
2427         (WebCore::handleInitMessageEvent):
2428         * bindings/js/JSMessagePortCustom.cpp:
2429         (WebCore::fillMessagePortArray):
2430         * bindings/js/JSMessagePortCustom.h:
2431         (WebCore):
2432         (WebCore::handlePostMessage):
2433         * bindings/js/ScriptValue.cpp:
2434         (WebCore::ScriptValue::serialize):
2435         * bindings/js/SerializedScriptValue.cpp:
2436         (WebCore):
2437         (WebCore::CloneSerializer::serialize):
2438         (CloneSerializer):
2439         (WebCore::CloneSerializer::CloneSerializer):
2440         (WebCore::CloneSerializer::fillTransferMap):
2441         (WebCore::CloneSerializer::dumpArrayBufferView):
2442         (WebCore::CloneSerializer::dumpIfTerminal):
2443         (WebCore::CloneDeserializer::deserialize):
2444         (WebCore::CloneDeserializer::CloneDeserializer):
2445         (WebCore::CloneDeserializer::readTerminal):
2446         (CloneDeserializer):
2447         (WebCore::SerializedScriptValue::SerializedScriptValue):
2448         (WebCore::SerializedScriptValue::transferArrayBuffers):
2449         (WebCore::SerializedScriptValue::create):
2450         (WebCore::SerializedScriptValue::deserialize):
2451         * bindings/js/SerializedScriptValue.h:
2452         (WebCore):
2453         (SerializedScriptValue):
2454
2455 2012-02-28  Kevin Ollivier  <kevino@theolliviers.com>
2456
2457         [wx] Unreviewed. Build fixes after recent bindings changes.
2458
2459         * bindings/scripts/CodeGeneratorCPP.pm: 
2460         (ShouldSkipType):
2461         * testing/Internals.idl:
2462
2463 2012-02-28  Yoshifumi Inoue  <yosin@chromium.org>
2464
2465         [Forms] Spin button sometimes ignores Indeterminate of m_upDownState
2466         https://bugs.webkit.org/show_bug.cgi?id=79754
2467
2468         Reviewed by Kent Tamura.
2469
2470         This patch checks enum value Indeterminate before using m_upDownState. This make
2471         sure Indeterminate state doesn't act like Down state.
2472
2473         m_upDownState can be Indeterminate at mousedown event if mouse pointer is on
2474         spin button when it is displayed.
2475
2476         Test: fast/forms/number/spin-button-state.html
2477
2478         * html/shadow/TextControlInnerElements.cpp:
2479         (WebCore::SpinButtonElement::defaultEventHandler):
2480         (WebCore::SpinButtonElement::repeatingTimerFired):
2481
2482 2012-02-27  MORITA Hajime  <morrita@google.com>
2483
2484         [Refactoring] RenderSummary and RenderDetail is no longer needed.
2485         https://bugs.webkit.org/show_bug.cgi?id=79641
2486
2487         Reviewed by Kent Tamura.
2488
2489         Removed RenderDetails and RenderSummary because its only
2490         modification they had is already handled by RenderBlock::styleWillChange().
2491         These are just a historical artifact. We could have removed these
2492         classes when they were switched to shadow-based implementations.
2493
2494         Tests: fast/html/details-inline-expected.html
2495                fast/html/details-inline.html
2496
2497         * CMakeLists.txt:
2498         * GNUmakefile.list.am:
2499         * Target.pri:
2500         * WebCore.gypi:
2501         * WebCore.vcproj/WebCore.vcproj:
2502         * WebCore.xcodeproj/project.pbxproj:
2503         * html/HTMLDetailsElement.cpp:
2504         (WebCore::HTMLDetailsElement::createRenderer):
2505         * html/HTMLSummaryElement.cpp:
2506         (WebCore::HTMLSummaryElement::createRenderer):
2507         (WebCore::HTMLSummaryElement::defaultEventHandler):
2508         * rendering/RenderDetails.cpp: Removed.
2509         * rendering/RenderDetails.h: Removed.
2510         * rendering/RenderDetailsMarker.cpp:
2511         (WebCore::RenderDetailsMarker::isOpen):
2512         * rendering/RenderDetailsMarker.h:
2513         (RenderDetailsMarker):
2514         * rendering/RenderObject.h:
2515         (RenderObject):
2516         * rendering/RenderSummary.cpp: Removed.
2517         * rendering/RenderSummary.h: Removed.
2518         * rendering/RenderingAllInOne.cpp:
2519
2520 2012-02-28  Simon Fraser  <simon.fraser@apple.com>
2521
2522         Optimize the rects being drawn into compositing layers
2523         https://bugs.webkit.org/show_bug.cgi?id=79852
2524
2525         Reviewed by Dan Bernstein.
2526
2527         Use the newly added WebKitSystemInterface method
2528         to limit the area being painted in a CALayer
2529         -drawInContext callback. This avoids redundant drawing,
2530         for performance.
2531
2532         * platform/graphics/mac/WebLayer.mm:
2533         (drawLayerContents):
2534
2535 2012-02-28  Simon Fraser  <simon.fraser@apple.com>
2536
2537         Fix the SnowLeopard build.
2538
2539         * WebCore.exp.in:
2540
2541 2012-02-28  Anders Carlsson  <andersca@apple.com>
2542
2543         With tiled drawing enabled, pressing Down arrow after scrolling via mouse gesture causes page to jump back up to top
2544         https://bugs.webkit.org/show_bug.cgi?id=79249
2545         <rdar://problem/10866273>
2546
2547         Reviewed by Sam Weinig.
2548
2549         ScrollableArea::notifyScrollPositionChanged must make sure that the scroll animator position is kept up to date.
2550
2551         * platform/ScrollAnimator.cpp:
2552         (WebCore::ScrollAnimator::setCurrentPosition):
2553         (WebCore):
2554         * platform/ScrollAnimator.h:
2555         (ScrollAnimator):
2556         * platform/ScrollableArea.cpp:
2557         (WebCore::ScrollableArea::notifyScrollPositionChanged):
2558
2559 2012-02-28  Daniel Cheng  <dcheng@chromium.org>
2560
2561         Unreviewed, rolling out r107894.
2562         http://trac.webkit.org/changeset/107894
2563         https://bugs.webkit.org/show_bug.cgi?id=30416
2564
2565         dataTransfer.types should be an Array since DOMStringList is deprecated.
2566
2567         * bindings/js/JSClipboardCustom.cpp:
2568         (WebCore::JSClipboard::types):
2569         (WebCore):
2570         * bindings/v8/custom/V8ClipboardCustom.cpp:
2571         (WebCore::V8Clipboard::typesAccessorGetter):
2572         (WebCore):
2573         * dom/Clipboard.cpp:
2574         (WebCore::Clipboard::hasStringOfType):
2575         * dom/Clipboard.h:
2576         (Clipboard):
2577         * dom/Clipboard.idl:
2578         * platform/blackberry/ClipboardBlackBerry.cpp:
2579         (WebCore::ClipboardBlackBerry::types):
2580         * platform/blackberry/ClipboardBlackBerry.h:
2581         (ClipboardBlackBerry):
2582         * platform/chromium/ChromiumDataObject.cpp:
2583         (WebCore::ChromiumDataObject::types):
2584         * platform/chromium/ChromiumDataObject.h:
2585         (ChromiumDataObject):
2586         * platform/chromium/ClipboardChromium.cpp:
2587         (WebCore::ClipboardChromium::types):
2588         (WebCore::ClipboardChromium::mayUpdateItems):
2589         * platform/chromium/ClipboardChromium.h:
2590         (ClipboardChromium):
2591         * platform/chromium/DragDataChromium.cpp:
2592         (WebCore::containsHTML):
2593         (WebCore::DragData::containsURL):
2594         (WebCore::DragData::asURL):
2595         (WebCore::DragData::containsPlainText):
2596         (WebCore::DragData::canSmartReplace):
2597         (WebCore::DragData::asFragment):
2598         * platform/efl/ClipboardEfl.cpp:
2599         (WebCore::ClipboardEfl::types):
2600         * platform/efl/ClipboardEfl.h:
2601         (ClipboardEfl):
2602         * platform/gtk/ClipboardGtk.cpp:
2603         (WebCore::ClipboardGtk::types):
2604         * platform/gtk/ClipboardGtk.h:
2605         (ClipboardGtk):
2606         * platform/mac/ClipboardMac.h:
2607         (ClipboardMac):
2608         * platform/mac/ClipboardMac.mm:
2609         (WebCore::addHTMLClipboardTypesForCocoaType):
2610         (WebCore::ClipboardMac::types):
2611         * platform/qt/ClipboardQt.cpp:
2612         (WebCore::ClipboardQt::types):
2613         * platform/qt/ClipboardQt.h:
2614         (ClipboardQt):
2615         * platform/win/ClipboardWin.cpp:
2616         (WebCore::addMimeTypesForFormat):
2617         (WebCore::ClipboardWin::types):
2618         * platform/win/ClipboardWin.h:
2619         (ClipboardWin):
2620         * platform/wx/ClipboardWx.cpp:
2621         (WebCore::ClipboardWx::types):
2622         * platform/wx/ClipboardWx.h:
2623         (ClipboardWx):
2624
2625 2012-02-28  Simon Fraser  <simon.fraser@apple.com>
2626
2627         Update WebKitSystemInterface.
2628
2629         Reviewed by Sam Weinig.
2630
2631         * WebCore.exp.in:
2632         (drawLayerContents):
2633         * platform/mac/WebCoreSystemInterface.h:
2634         * platform/mac/WebCoreSystemInterface.mm:
2635
2636 2012-02-27  MORITA Hajime  <morrita@google.com>
2637
2638         <content> element should behave as HTMLUnknownElement outside of a shadow DOM subtree
2639         https://bugs.webkit.org/show_bug.cgi?id=79551
2640
2641         Reviewed by Dimitri Glazkov.
2642
2643         The problem happened because HTMLContentElement doesn't create renderer anytime.
2644         
2645         This change allows it to create a renderer unless the HTMLContentElement is shadowed.
2646         Since this could happen not only on <content> but also on upcoming <shadow>,
2647         the corresponding part of the code is pulled up to InsertionPoint.
2648
2649         Tests: fast/dom/shadow/content-element-outside-shadow-style-expected.html
2650                fast/dom/shadow/content-element-outside-shadow-style.html
2651
2652         * dom/NodeRenderingContext.cpp:
2653         (WebCore::NodeRenderingContext::NodeRenderingContext):
2654         * dom/ShadowRoot.h:
2655         (WebCore):
2656         (WebCore::TreeScope::isShadowRoot):
2657         * dom/TreeScope.h:
2658         (TreeScope):
2659         * html/shadow/HTMLContentElement.h:
2660         * html/shadow/InsertionPoint.cpp:
2661         (WebCore::InsertionPoint::isShadowBoundary):
2662         (WebCore):
2663         * html/shadow/InsertionPoint.h:
2664         (InsertionPoint):
2665         (WebCore::isShadowBoundary):
2666         (WebCore):
2667
2668 2012-02-28  Daniel Cheng  <dcheng@chromium.org>
2669
2670         Clipboard::getData should return an empty string instead of undefined
2671         https://bugs.webkit.org/show_bug.cgi?id=79712
2672
2673         Reviewed by Tony Chang.
2674
2675         Per the spec, an empty string should be returned when there is no data for the given typestring.
2676
2677         Test: fast/events/dataTransfer-getData-returns-empty-string.html
2678
2679         * bindings/js/JSClipboardCustom.cpp:
2680         * bindings/v8/custom/V8ClipboardCustom.cpp:
2681         * dom/Clipboard.h:
2682         (Clipboard):
2683         * dom/Clipboard.idl:
2684         * platform/blackberry/ClipboardBlackBerry.cpp:
2685         (WebCore::ClipboardBlackBerry::getData):
2686         * platform/blackberry/ClipboardBlackBerry.h:
2687         (ClipboardBlackBerry):
2688         * platform/chromium/ClipboardChromium.cpp:
2689         (WebCore::ClipboardChromium::getData):
2690         * platform/chromium/ClipboardChromium.h:
2691         (ClipboardChromium):
2692         * platform/efl/ClipboardEfl.cpp:
2693         (WebCore::ClipboardEfl::getData):
2694         * platform/efl/ClipboardEfl.h:
2695         (ClipboardEfl):
2696         * platform/gtk/ClipboardGtk.cpp:
2697         (WebCore::ClipboardGtk::getData):
2698         * platform/gtk/ClipboardGtk.h:
2699         (ClipboardGtk):
2700         * platform/mac/ClipboardMac.h:
2701         (ClipboardMac):
2702         * platform/mac/ClipboardMac.mm:
2703         (WebCore::ClipboardMac::getData):
2704         * platform/qt/ClipboardQt.cpp:
2705         (WebCore::ClipboardQt::getData):
2706         * platform/qt/ClipboardQt.h:
2707         (ClipboardQt):
2708         * platform/win/ClipboardUtilitiesWin.cpp:
2709         (WebCore::getFullCFHTML):
2710         (WebCore::getURL):
2711         (WebCore::getPlainText):
2712         (WebCore::getTextHTML):
2713         (WebCore::getCFHTML):
2714         (WebCore::fragmentFromHTML):
2715         * platform/win/ClipboardUtilitiesWin.h:
2716         (WebCore):
2717         * platform/win/ClipboardWin.cpp:
2718         (WebCore::ClipboardWin::getData):
2719         * platform/win/ClipboardWin.h:
2720         (ClipboardWin):
2721         * platform/wx/ClipboardWx.cpp:
2722         (WebCore::ClipboardWx::getData):
2723         * platform/wx/ClipboardWx.h:
2724         (ClipboardWx):
2725
2726 2012-02-28  Kenichi Ishibashi  <bashi@chromium.org>
2727
2728         [Chromium] Uninitialized value in LocaleToScriptCodeForFontSelection
2729         https://bugs.webkit.org/show_bug.cgi?id=79779
2730
2731         Set USCRIPT_COMMON to scriptCode as the initial value.
2732
2733         Reviewed by Kent Tamura.
2734
2735         No new tests. No behavior change.
2736
2737         * platform/text/LocaleToScriptMappingICU.cpp:
2738         (WebCore::localeToScriptCodeForFontSelection):
2739
2740 2012-02-28  Kenneth Russell  <kbr@google.com>
2741
2742         [chromium] Work around IOSurface-related corruption during readback
2743         https://bugs.webkit.org/show_bug.cgi?id=79735
2744
2745         Reviewed by James Robinson.
2746
2747         Copy the compositor's IOSurface-backed output into a temporary
2748         texture and perform the ReadPixels operation against that texture.
2749
2750         It is infeasible to write an automated test for this issue.
2751         Tested manually by performing print preview multiple times against
2752         pages containing WebGL content on 10.7 and observing that the
2753         corruption in the output is no longer present.
2754
2755         * platform/graphics/chromium/LayerRendererChromium.cpp:
2756         (WebCore::LayerRendererChromium::getFramebufferPixels):
2757
2758 2012-02-28  Adrienne Walker  <enne@google.com>
2759
2760         [chromium] Inform v8 about extra memory used for PatternSkia clamp mode
2761         https://bugs.webkit.org/show_bug.cgi?id=79846
2762
2763         Reviewed by James Robinson.
2764
2765         For large images, creating a non-repeating Pattern in Skia can
2766         allocate a lot of memory. Inform v8 about this so that it can
2767         potentially garbage collect any Pattern objects that aren't being used
2768         and that are holding onto large image copies.
2769
2770         * platform/graphics/Pattern.cpp:
2771         (WebCore::Pattern::Pattern):
2772         * platform/graphics/Pattern.h:
2773         (Pattern):
2774         * platform/graphics/skia/PatternSkia.cpp:
2775         (WebCore::Pattern::platformDestroy):
2776         (WebCore::Pattern::platformPattern):
2777
2778 2012-02-28  Jonathan Backer  <backer@chromium.org>
2779
2780         [chromium] Reset damage tracker on visibility change.
2781         https://bugs.webkit.org/show_bug.cgi?id=79267
2782
2783         Reviewed by James Robinson.
2784
2785         Unit tests: CCLayerTreeHostImplTest.cpp
2786
2787         * platform/graphics/chromium/LayerRendererChromium.cpp:
2788         (WebCore::LayerRendererChromium::setVisible):
2789
2790 2012-02-28  Sheriff Bot  <webkit.review.bot@gmail.com>
2791
2792         Unreviewed, rolling out r108834.
2793         http://trac.webkit.org/changeset/108834
2794         https://bugs.webkit.org/show_bug.cgi?id=79840
2795
2796         Seems to cause a number of crashes under
2797         FrameView::doDeferredRepaints (Requested by jamesr__ on
2798         #webkit).
2799
2800         * svg/graphics/SVGImage.cpp:
2801         (WebCore::SVGImage::draw):
2802         * svg/graphics/SVGImage.h:
2803         * svg/graphics/SVGImageCache.cpp:
2804         (WebCore::SVGImageCache::imageContentChanged):
2805         (WebCore::SVGImageCache::redrawTimerFired):
2806         * svg/graphics/SVGImageCache.h:
2807         (SVGImageCache):
2808
2809 2012-02-29  Mario Sanchez Prada  <msanchez@igalia.com>
2810
2811         [GTK] Add support for nested event loops in RunLoop
2812         https://bugs.webkit.org/show_bug.cgi?id=79499
2813
2814         Reviewed by Martin Robinson.
2815
2816         Run a new nested mainloop if the main event loop is already
2817         running when calling to RunLoop::run(), and take care of stopping
2818         the right main loop too when RunLoop::stop() is invoked.
2819
2820         * platform/RunLoop.h:
2821         (RunLoop):
2822         * platform/gtk/RunLoopGtk.cpp:
2823         (WebCore::RunLoop::RunLoop):
2824         (WebCore::RunLoop::~RunLoop):
2825         (WebCore::RunLoop::run):
2826         (WebCore::RunLoop::innermostLoop):
2827         (WebCore::RunLoop::pushNestedMainLoop):
2828         (WebCore::RunLoop::popNestedMainLoop):
2829         (WebCore):
2830         (WebCore::RunLoop::stop):
2831
2832 2012-02-28  Julien Chaffraix  <jchaffraix@webkit.org>
2833
2834         Move RenderLayer::size() calls to a common function
2835         https://bugs.webkit.org/show_bug.cgi?id=76972
2836
2837         Reviewed by Simon Fraser.
2838
2839         Refactoring only.
2840
2841         This change introduces RenderBox::cachedSizeForOverflowClip() that handles all the cached size
2842         requests that currently goes through the RenderLayer. This indirection helps to decouple the need
2843         for a RenderLayer so that we can lazily allocate RenderLayers as part of bug 75568.
2844
2845         * rendering/RenderBox.cpp:
2846         (WebCore::RenderBox::cachedSizeForOverflowClip):
2847         Added this function to handle the calls to RenderLayer's size(). Unfortunately a lot of the
2848         code calls RenderLayer::size() directly so I could not make it private.
2849
2850         * rendering/LayoutState.cpp:
2851         (WebCore::LayoutState::LayoutState):
2852         * rendering/RenderBox.cpp:
2853         (WebCore::RenderBox::computeRectForRepaint):
2854         * rendering/RenderBox.h:
2855         (RenderBox):
2856         * rendering/RenderInline.cpp:
2857         (WebCore::RenderInline::clippedOverflowRectForRepaint):
2858         (WebCore::RenderInline::computeRectForRepaint):
2859         * rendering/RenderObject.cpp:
2860         (WebCore::RenderObject::computeRectForRepaint):
2861         Fixed the call sites above.
2862
2863 2012-02-28  Tim Dresser  <tdresser@chromium.org>
2864
2865         Provide DefaultDeviceScaleFactor though WebSettings
2866         https://bugs.webkit.org/show_bug.cgi?id=79534
2867
2868         Reviewed by Darin Fisher.
2869
2870         * page/Settings.cpp:
2871         (WebCore::Settings::Settings):
2872         (WebCore::Settings::setDefaultDeviceScaleFactor):
2873         (WebCore):
2874         * page/Settings.h:
2875         (Settings):
2876         (WebCore::Settings::defaultDeviceScaleFactor):
2877
2878 2012-02-28  Oliver Hunt  <oliver@apple.com>
2879
2880         Fix build.
2881
2882         * mathml/MathMLElement.cpp:
2883         (WebCore::MathMLElement::collectStyleForAttribute):
2884
2885 2012-02-28  Dean Jackson  <dino@apple.com>
2886
2887         https://bugs.webkit.org/show_bug.cgi?id=79824
2888
2889         Unreviewed build fix for when ENABLE(CSS_FILTERS) is on
2890         but ENABLE(CSS_SHADERS) is off.
2891
2892         * css/WebKitCSSFilterValue.cpp:
2893         (WebCore::WebKitCSSFilterValue::typeUsesSpaceSeparator):
2894
2895 2012-02-28  Dave Moore  <davemoore@chromium.org>
2896
2897         Slow content causes choppy scrolling
2898         https://bugs.webkit.org/show_bug.cgi?id=79403
2899
2900         Reviewed by James Robinson.
2901
2902         This code helps make scrolling (via wheel or pad) less choppy
2903         when the content takes a long time to respond to the fake mouse moves
2904         generated during scrolls.
2905
2906
2907  * page/EventHandler.cpp:
2908         (WebCore):
2909         (MaximumDurationTracker):
2910         (WebCore::MaximumDurationTracker::MaximumDurationTracker):
2911         (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
2912         (WebCore::EventHandler::EventHandler):
2913         (WebCore::EventHandler::clear):
2914         (WebCore::EventHandler::mouseMoved):
2915         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
2916         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad):
2917         * page/EventHandler.h:
2918
2919 2012-02-28  Andreas Kling  <awesomekling@apple.com>
2920
2921         StyledElement::isPresentationAttribute() only needs the attribute name.
2922         <http://webkit.org/b/79828>
2923
2924         Reviewed by Anders Carlsson.
2925
2926         Pass the QualifiedName to isPresentationAttribute instead of the whole
2927         Attribute. We only need the name to know what kind of attribute it is.
2928
2929         This makes the code a little less ugly and makes it possible to use
2930         the function without having an Attribute object.
2931
2932         * dom/StyledElement.cpp:
2933         (WebCore::StyledElement::attributeChanged):
2934         * dom/StyledElement.h:
2935         (WebCore::StyledElement::isPresentationAttribute):
2936         * html/HTMLBRElement.cpp:
2937         (WebCore::HTMLBRElement::isPresentationAttribute):
2938         * html/HTMLBRElement.h:
2939         * html/HTMLBodyElement.cpp:
2940         (WebCore::HTMLBodyElement::isPresentationAttribute):
2941         * html/HTMLBodyElement.h:
2942         * html/HTMLButtonElement.cpp:
2943         (WebCore::HTMLButtonElement::isPresentationAttribute):
2944         * html/HTMLButtonElement.h:
2945         * html/HTMLDivElement.cpp:
2946         (WebCore::HTMLDivElement::isPresentationAttribute):
2947         * html/HTMLDivElement.h:
2948         * html/HTMLElement.cpp:
2949         (WebCore::HTMLElement::isPresentationAttribute):
2950         * html/HTMLElement.h:
2951         * html/HTMLEmbedElement.cpp:
2952         (WebCore::HTMLEmbedElement::isPresentationAttribute):
2953         * html/HTMLEmbedElement.h:
2954         * html/HTMLFontElement.cpp:
2955         (WebCore::HTMLFontElement::isPresentationAttribute):
2956         * html/HTMLFontElement.h:
2957         * html/HTMLFrameSetElement.cpp:
2958         (WebCore::HTMLFrameSetElement::isPresentationAttribute):
2959         * html/HTMLFrameSetElement.h:
2960         * html/HTMLHRElement.cpp:
2961         (WebCore::HTMLHRElement::isPresentationAttribute):
2962         * html/HTMLHRElement.h:
2963         * html/HTMLIFrameElement.cpp:
2964         (WebCore::HTMLIFrameElement::isPresentationAttribute):
2965         * html/HTMLIFrameElement.h:
2966         * html/HTMLImageElement.cpp:
2967         (WebCore::HTMLImageElement::isPresentationAttribute):
2968         * html/HTMLImageElement.h:
2969         * html/HTMLInputElement.cpp:
2970         (WebCore::HTMLInputElement::isPresentationAttribute):
2971         * html/HTMLInputElement.h:
2972         * html/HTMLLIElement.cpp:
2973         (WebCore::HTMLLIElement::isPresentationAttribute):
2974         * html/HTMLLIElement.h:
2975         * html/HTMLMarqueeElement.cpp:
2976         (WebCore::HTMLMarqueeElement::isPresentationAttribute):
2977         * html/HTMLMarqueeElement.h:
2978         * html/HTMLOListElement.cpp:
2979         (WebCore::HTMLOListElement::isPresentationAttribute):
2980         * html/HTMLOListElement.h:
2981         * html/HTMLObjectElement.cpp:
2982         (WebCore::HTMLObjectElement::isPresentationAttribute):
2983         * html/HTMLObjectElement.h:
2984         * html/HTMLParagraphElement.cpp:
2985         (WebCore::HTMLParagraphElement::isPresentationAttribute):
2986         * html/HTMLParagraphElement.h:
2987         * html/HTMLPlugInElement.cpp:
2988         (WebCore::HTMLPlugInElement::isPresentationAttribute):
2989         * html/HTMLPlugInElement.h:
2990         * html/HTMLPreElement.cpp:
2991         (WebCore::HTMLPreElement::isPresentationAttribute):
2992         * html/HTMLPreElement.h:
2993         * html/HTMLSelectElement.cpp:
2994         (WebCore::HTMLSelectElement::isPresentationAttribute):
2995         * html/HTMLSelectElement.h:
2996         * html/HTMLTableCaptionElement.cpp:
2997         (WebCore::HTMLTableCaptionElement::isPresentationAttribute):
2998         * html/HTMLTableCaptionElement.h:
2999         * html/HTMLTableCellElement.cpp:
3000         (WebCore::HTMLTableCellElement::isPresentationAttribute):
3001         * html/HTMLTableCellElement.h:
3002         * html/HTMLTableColElement.cpp:
3003         (WebCore::HTMLTableColElement::isPresentationAttribute):
3004         * html/HTMLTableColElement.h:
3005         * html/HTMLTableElement.cpp:
3006         (WebCore::HTMLTableElement::isPresentationAttribute):
3007         * html/HTMLTableElement.h:
3008         * html/HTMLTablePartElement.cpp:
3009         (WebCore::HTMLTablePartElement::isPresentationAttribute):
3010         * html/HTMLTablePartElement.h:
3011         * html/HTMLTextAreaElement.cpp:
3012         (WebCore::HTMLTextAreaElement::isPresentationAttribute):
3013         * html/HTMLTextAreaElement.h:
3014         * html/HTMLUListElement.cpp:
3015         (WebCore::HTMLUListElement::isPresentationAttribute):
3016         * html/HTMLUListElement.h:
3017         * html/HTMLVideoElement.cpp:
3018         (WebCore::HTMLVideoElement::isPresentationAttribute):
3019         * html/HTMLVideoElement.h:
3020         * mathml/MathMLElement.cpp:
3021         (WebCore::MathMLElement::isPresentationAttribute):
3022         * mathml/MathMLElement.h:
3023         * svg/SVGImageElement.cpp:
3024         (WebCore::SVGImageElement::isPresentationAttribute):
3025         * svg/SVGImageElement.h:
3026         * svg/SVGStyledElement.cpp:
3027         (WebCore::SVGStyledElement::isPresentationAttribute):
3028         * svg/SVGStyledElement.h:
3029         * svg/SVGTextContentElement.cpp:
3030         (WebCore::SVGTextContentElement::isPresentationAttribute):
3031         * svg/SVGTextContentElement.h:
3032
3033 2012-02-28  Enrica Casucci  <enrica@apple.com>
3034
3035         More Pasteboard code cleanup.
3036         https://bugs.webkit.org/show_bug.cgi?id=79816
3037
3038         Removing the last references to NSPasteboard.
3039
3040         Reviewed by Alexey Proskuryakov.
3041
3042         No new tests. No change in functionality.
3043
3044         * WebCore.xcodeproj/project.pbxproj:
3045         * editing/mac/EditorMac.mm:
3046         (WebCore::Editor::pasteWithPasteboard):
3047         (WebCore::Editor::takeFindStringFromSelection):
3048         * loader/EmptyClients.h:
3049         (WebCore::EmptyEditorClient::setInsertionPasteboard):
3050         * page/DragClient.h:
3051         * page/EditorClient.h:
3052         * platform/DragData.h:
3053         * platform/Pasteboard.h:
3054         * platform/mac/ClipboardMac.h:
3055         * platform/mac/PasteboardHelper.h: Removed.
3056
3057 2012-02-28  Sheriff Bot  <webkit.review.bot@gmail.com>
3058
3059         Unreviewed, rolling out r109137.
3060         http://trac.webkit.org/changeset/109137
3061         https://bugs.webkit.org/show_bug.cgi?id=79833
3062
3063         Broke cr-mac build (Requested by aklein on #webkit).
3064
3065         * platform/graphics/mac/SimpleFontDataMac.mm:
3066         (WebCore):
3067         (WebCore::pathFromFont):
3068
3069 2012-02-28  Jungshik Shin  <jshin@chromium.org>
3070
3071         Add a fallback path to LineBreakIteratorPoolICU when the locale
3072         name from a web page is invalid and ICU fails to get a line break
3073         iterator instance. Also add a null check to 
3074         TextBreakIteratorICU::acquireLineBreakIterator.
3075
3076         Reviewed by Dan Bernstein.
3077
3078         https://bugs.webkit.org/show_bug.cgi?id=67640
3079
3080         Test: fast/text/invalid-locale.html
3081
3082         * platform/text/LineBreakIteratorPoolICU.h:
3083         (WebCore::LineBreakIteratorPool::take):
3084         * platform/text/TextBreakIteratorICU.cpp:
3085         (WebCore::acquireLineBreakIterator):
3086
3087 2012-02-28  Abhishek Arya  <inferno@chromium.org>
3088
3089         Crash due to accessing removed continuation in multi-column layout.
3090         https://bugs.webkit.org/show_bug.cgi?id=78417
3091
3092         Reviewed by David Hyatt.
3093
3094         This patch addresses two problems:
3095         1. Run-in block got split due to addition of a column-span child.
3096         The clone part was incorrectly intruding into the sibling block,
3097         even when it was part of the continuation chain.
3098         2. Like r73296, we don't need to set continuation on an
3099         anonymous block since we haven't split a real element.
3100
3101         Test: fast/multicol/span/runin-continuation-crash.html
3102
3103         * rendering/RenderBlock.cpp:
3104         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
3105         (WebCore::RenderBlock::handleRunInChild):
3106
3107 2012-02-28  Abhishek Arya  <inferno@chromium.org>
3108
3109         Incorrect before child parent calculation when adding new children
3110         to anonymous column blocks.
3111         https://bugs.webkit.org/show_bug.cgi?id=79755
3112
3113         Reviewed by David Hyatt.
3114
3115         before child can be wrapped in anonymous containers, so need to
3116         take care of that in before child parent calculation.
3117
3118         Test: fast/multicol/span/before-child-anonymous-column-block.html
3119
3120         * rendering/RenderBlock.cpp:
3121         (WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
3122
3123 2012-02-28  Ned Holbrook  <nholbrook@apple.com>
3124
3125         Reimplement pathFromFont() in SimpleFontDataMac.mm
3126         https://bugs.webkit.org/show_bug.cgi?id=79811
3127
3128         Reviewed by Dan Bernstein.
3129
3130         Debug-only function, so no new tests.
3131
3132         * platform/graphics/mac/SimpleFontDataMac.mm:
3133         (WebCore::pathFromFont): Reimplemented.
3134
3135 2012-02-28  Alexis Menard  <alexis.menard@openbossa.org>
3136
3137         getComputedStyle fails for 'first-line' pseudo-element
3138         https://bugs.webkit.org/show_bug.cgi?id=57505
3139
3140         Reviewed by Tony Chang.
3141
3142         Querying the selector with a pseudo-element using getComputedStyle should work
3143         even if the selector was not declared in the stylesheet. When not declared, we need
3144         to use the RenderStyle created to do the rendering as there is no pseudo-style.
3145         This match the behavior of Firefox.
3146
3147         No new tests : Updated expectation and extended getComputedStyle-with-pseudo-element.html.
3148
3149         * dom/Element.cpp:
3150         (WebCore::Element::computedStyle):
3151
3152 2012-02-28  Ashod Nakashian  <ashodnakashian@yahoo.com>
3153
3154         Move FILE_SYSTEM code out of WorkerContext and into the fileapi folder
3155         https://bugs.webkit.org/show_bug.cgi?id=79449
3156
3157         Reviewed by Adam Barth.
3158
3159         This moves FILE_SYSTEM code out of WorkerContext and into the fileapi/WorkerContextFileSystem.
3160         None-functional changes, no new tests necessary.
3161
3162         * CMakeLists.txt:
3163         * DerivedSources.make:
3164         * DerivedSources.pri:
3165         * GNUmakefile.list.am:
3166         * Target.pri:
3167         * WebCore.gypi:
3168         * WebCore.vcproj/WebCore.vcproj:
3169         * fileapi/WorkerContextFileSystem.cpp: Added.
3170         (WebCore):
3171         (WebCore::WorkerContextFileSystem::webkitRequestFileSystem):
3172         (WebCore::WorkerContextFileSystem::webkitRequestFileSystemSync):
3173         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemURL):
3174         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemSyncURL):
3175         * fileapi/WorkerContextFileSystem.h: Added.
3176         (WebCore):
3177         (WorkerContextFileSystem):
3178         * fileapi/WorkerContextFileSystem.idl: Added.
3179         * workers/WorkerContext.cpp:
3180         (WebCore::WorkerContext::ensureEventTargetData):
3181         * workers/WorkerContext.h:
3182         (WebCore):
3183         (WorkerContext):
3184         * workers/WorkerContext.idl:
3185
3186 2012-02-28  Alexey Proskuryakov  <ap@apple.com>
3187
3188         FileReader crashes when file is not readable
3189         https://bugs.webkit.org/show_bug.cgi?id=79715
3190
3191         Reviewed by Jian Li.
3192
3193         Test: fast/files/file-reader-directory-crash.html
3194
3195         * platform/SharedBuffer.cpp: (WebCore::SharedBuffer::SharedBuffer): Crash early if a caller
3196         mixed up in-band error signal with length again.
3197
3198         * platform/network/BlobResourceHandle.cpp:
3199         (WebCore): Changed errors into an enum. Added a proper domain for blob errors.
3200         (WebCore::BlobResourceHandle::didReceiveResponse): There is already a constant for INT_MAX
3201         in C/C++.
3202         (WebCore::BlobResourceHandle::didRead): Don't send "-1" for failure down the success path.
3203         (WebCore::BlobResourceHandle::notifyFail): Use a proper domain for blob errors, and a non-
3204         empty message.
3205
3206 2012-02-28  Adam Klein  <adamk@chromium.org>
3207
3208         Unreviewed, fix cr-win build after r109119.
3209
3210         * platform/graphics/chromium/TransparencyWin.h:
3211         (TransparencyWin):
3212
3213 2012-02-28  Mario Sanchez Prada  <msanchez@igalia.com>
3214
3215         [GTK] Add GMainLoop and GMainContext to be handled by GRefPtr
3216         https://bugs.webkit.org/show_bug.cgi?id=79496
3217
3218         Reviewed by Martin Robinson.
3219
3220         Updated places where raw pointers to GMainLoop and GMainContext
3221         were being used, replacing them with GRefPtr-based code.
3222
3223         * platform/RunLoop.h:
3224         (RunLoop):
3225         * platform/gtk/RunLoopGtk.cpp:
3226         (WebCore::RunLoop::RunLoop):
3227         (WebCore::RunLoop::~RunLoop):
3228         (WebCore::RunLoop::mainLoop):
3229         (WebCore::RunLoop::stop):
3230         (WebCore::RunLoop::wakeUp):
3231         (WebCore::RunLoop::TimerBase::start):
3232         * platform/network/soup/ResourceHandleSoup.cpp:
3233         (WebCoreSynchronousLoader):
3234         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
3235         (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
3236         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
3237         (WebCore::WebCoreSynchronousLoader::run):
3238
3239 2012-02-28  Alok Priyadarshi  <alokp@chromium.org>
3240
3241         Heap-use-after-free in WebCore::RenderLayer::addChild
3242         https://bugs.webkit.org/show_bug.cgi?id=79698
3243
3244         Reviewed by Simon Fraser.
3245
3246         This patch fixes a regression introduced in r108659.
3247         The reflection layer was moved to the parent by mistake. It was then
3248         deleted and the parent was left holding on to a deleted pointer. This
3249         patch restores the location where reflection layer is removed - before
3250         moving the child layers.
3251
3252         Test: fast/reflections/toggle-reflection-crash.html
3253
3254         * rendering/RenderLayer.cpp:
3255         (WebCore::RenderLayer::removeOnlyThisLayer):
3256
3257 2012-02-28  Ken Buchanan  <kenrb@chromium.org>
3258
3259         Crash from list marker having inline and block children
3260         https://bugs.webkit.org/show_bug.cgi?id=79793
3261
3262         Reviewed by Julien Chaffraix.
3263
3264         Crashing condition in which an anonymous block was being collapsed
3265         even though it had a block sibling. removeChild() was not checking
3266         for siblings that might precede :before content renderers, such
3267         as list items. This patch corrects that.
3268
3269         * rendering/RenderBlock.cpp:
3270         (WebCore::RenderBlock::removeChild)
3271
3272 2012-02-28  Adam Klein  <adamk@chromium.org>
3273
3274         Unreviewed, speculative test fix after r109016.
3275
3276         * platform/graphics/chromium/TransparencyWin.cpp:
3277         (WebCore::TransparencyWin::OwnedBuffers::OwnedBuffers): Explicitly pass a scale of 1 to ImageBuffer::create.
3278         * platform/graphics/chromium/TransparencyWin.h:
3279         (WebCore): Update names of re-enabled tests.
3280
3281 2012-02-28  Antti Koivisto  <antti@apple.com>
3282
3283         Give StyleRule files of its own
3284         https://bugs.webkit.org/show_bug.cgi?id=79778
3285
3286         Totally rubber-stamped by Andreas Kling.
3287
3288         * CMakeLists.txt:
3289         * GNUmakefile.list.am:
3290         * Target.pri:
3291         * WebCore.gypi:
3292         * WebCore.vcproj/WebCore.vcproj:
3293         * WebCore.xcodeproj/project.pbxproj:
3294         * css/CSSParser.cpp:
3295         * css/CSSStyleRule.cpp:
3296         (WebCore):
3297         (WebCore::CSSStyleRule::style):
3298         * css/CSSStyleRule.h:
3299         (WebCore):
3300         (CSSStyleRule):
3301         * css/CSSStyleSelector.cpp:
3302         * css/CSSStyleSheet.cpp:
3303         * css/StyleRule.cpp: Copied from Source/WebCore/css/CSSStyleRule.cpp.
3304         (WebCore):
3305         * css/StyleRule.h: Copied from Source/WebCore/css/CSSStyleRule.h.
3306         (WebCore):
3307         * editing/EditingStyle.cpp:
3308         * inspector/InspectorCSSAgent.cpp:
3309         * inspector/InspectorInstrumentation.cpp:
3310         * inspector/InspectorStyleSheet.cpp:
3311         * page/PageSerializer.cpp:
3312
3313 2012-02-28  Pavel Feldman  <pfeldman@google.com>
3314
3315         Web Inspector: remove window aspects from the timeline presentation model.
3316         https://bugs.webkit.org/show_bug.cgi?id=79803
3317
3318         Reviewed by Yury Semikhatsky.
3319
3320         * inspector/front-end/TimelineOverviewPane.js:
3321         (WebInspector.TimelineOverviewPane):
3322         (WebInspector.TimelineOverviewPane.prototype.accept):
3323         (WebInspector.TimelineOverviewPane.prototype._setWindowIndices):
3324         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
3325         (WebInspector.TimelineOverviewPane.prototype.windowRight):
3326         (WebInspector.TimelineOverviewPane.prototype._fireWindowChanged):
3327         (WebInspector.TimelineOverviewWindow.prototype._dragWindow):
3328         (WebInspector.TimelineOverviewPane.WindowSelector):
3329         * inspector/front-end/TimelinePanel.js:
3330         (WebInspector.TimelinePanel):
3331         (WebInspector.TimelinePanel.prototype._onCategoryCheckboxClicked):
3332         (WebInspector.TimelinePanel.prototype._updateBoundaries):
3333         * inspector/front-end/TimelinePresentationModel.js:
3334         (WebInspector.TimelinePresentationModel.prototype.reset):
3335         (WebInspector.TimelineCategory):
3336         (WebInspector.TimelineCategory.prototype.get hidden):
3337         (WebInspector.TimelineCategory.prototype.set hidden):
3338
3339 2012-02-28  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3340
3341         Improve the visual of the tiling
3342         https://bugs.webkit.org/show_bug.cgi?id=79648
3343
3344         Reviewed by Noam Rosenthal.
3345
3346         When we cover the view with tiles[1], we do so from the center
3347         and out, in bigger and bigger cicles by finding the current minimum
3348         covered distance.
3349
3350         This looks like painting a rect, then a cross, then a rect, ...
3351         and can be noticed when a page blocks during tiling.
3352
3353         We can do this better by only covering with tiles in rects at a time.
3354
3355         The original code was done so that it gave preference to tiles in
3356         vertical direction due to that being the most common scrolling
3357         direction. This is not needed anymore as we are now using the
3358         trajectory vector when panning, which always gives preference for
3359         creating tiles in the panned direction.
3360
3361         [1] It should be noted that we always cover the visibleRect in one go,
3362             and that we here are talking about covering the coverRect beyond
3363             the visibleRect
3364
3365         * platform/graphics/TiledBackingStore.cpp:
3366         (WebCore::TiledBackingStore::tileDistance):
3367
3368 2012-02-28  Yury Semikhatsky  <yurys@chromium.org>
3369
3370         Web Inspector: preserve memory counters size after frontend reopening
3371         https://bugs.webkit.org/show_bug.cgi?id=79792
3372
3373         Clear collected counter values when timeline panel is reset. Persist
3374         timeline grid/counters splitter position to restore it when front-end
3375         is opened next time.
3376
3377         Reviewed by Pavel Feldman.
3378
3379         * inspector/front-end/MemoryStatistics.js:
3380         (WebInspector.MemoryStatistics.prototype.reset):
3381         * inspector/front-end/TimelinePanel.js:
3382         (WebInspector.TimelinePanel):
3383         (WebInspector.TimelinePanel.prototype._setSplitterPosition):
3384         (WebInspector.TimelinePanel.prototype._resetPanel):
3385         * inspector/front-end/timelinePanel.css:
3386         (#counter-values-bar):
3387
3388 2012-02-28  Pavel Feldman  <pfeldman@google.com>
3389
3390         Web Inspector: move filtering of the timeline records into the presentation model.
3391         https://bugs.webkit.org/show_bug.cgi?id=79789
3392
3393         Reviewed by Yury Semikhatsky.
3394
3395         * inspector/front-end/TimelineModel.js:
3396         * inspector/front-end/TimelineOverviewPane.js:
3397         (WebInspector.TimelineOverviewPane):
3398         (WebInspector.TimelineOverviewPane.prototype.setStartAtZero):
3399         (WebInspector.TimelineOverviewPane.prototype.scrollWindow):
3400         (WebInspector.TimelineOverviewPane.prototype.accept):
3401         (WebInspector.TimelineOverviewPane.prototype._setWindowIndices):
3402         (WebInspector.TimelineStartAtZeroOverview):
3403         (WebInspector.TimelineStartAtZeroOverview.prototype._onWindowChanged):
3404         * inspector/front-end/TimelinePanel.js:
3405         (WebInspector.TimelinePanel):
3406         (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
3407         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
3408         (WebInspector.TimelinePanel.prototype._glueParentButtonClicked):
3409         (WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked):
3410         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
3411         (WebInspector.TimelinePanel.prototype._resetPanel):
3412         (WebInspector.TimelinePanel.prototype._refresh):
3413         (WebInspector.TimelinePanel.prototype.revealRecordAt):
3414         (WebInspector.TimelinePanel.prototype._refreshRecords):
3415         (WebInspector.TimelineExpandableElement.prototype._update):
3416         (WebInspector.TimelineCategoryFilter):
3417         (WebInspector.TimelineCategoryFilter.prototype.accept):
3418         (WebInspector.TimelineIsLongFilter):
3419         (WebInspector.TimelineIsLongFilter.prototype.accept):
3420         * inspector/front-end/TimelinePresentationModel.js:
3421         (WebInspector.TimelinePresentationModel):
3422         (WebInspector.TimelinePresentationModel.prototype.addFilter):
3423         (WebInspector.TimelinePresentationModel.prototype.reset):
3424         (WebInspector.TimelinePresentationModel.prototype.minimumRecordTime):
3425         (WebInspector.TimelinePresentationModel.prototype.maximumRecordTime):
3426         (WebInspector.TimelinePresentationModel.prototype.addRecord):
3427         (WebInspector.TimelinePresentationModel.prototype._updateBoundaries):
3428         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
3429         (WebInspector.TimelinePresentationModel.prototype.setGlueRecords):
3430         (WebInspector.TimelinePresentationModel.prototype.fireWindowChanged):
3431         (WebInspector.TimelinePresentationModel.prototype.get _recordStyles):
3432         (WebInspector.TimelinePresentationModel.prototype.filteredRecords):
3433         (WebInspector.TimelinePresentationModel.prototype._filterRecords):
3434         (WebInspector.TimelinePresentationModel.Record.prototype.get visibleChildrenCount):
3435         (WebInspector.TimelinePresentationModel.Record.prototype.get invisibleChildrenCount):
3436         (WebInspector.TimelinePresentationModel.Filter):
3437         (WebInspector.TimelinePresentationModel.Filter.prototype.accept):
3438
3439 2012-02-28  Florin Malita  <fmalita@google.com>
3440
3441         Percent width/height SVG not always scaled on window resize
3442         https://bugs.webkit.org/show_bug.cgi?id=79490
3443
3444         Reviewed by Nikolas Zimmermann.
3445
3446         Tests: fast/repaint/percent-minheight-resize-expected.html
3447                fast/repaint/percent-minheight-resize.html
3448                svg/custom/svg-percent-scale-expected.html
3449                svg/custom/svg-percent-scale-vonly-expected.html
3450                svg/custom/svg-percent-scale-vonly.html
3451                svg/custom/svg-percent-scale.html
3452
3453         Fix a couple of problems preventing correct SVG scaling on window resize:
3454
3455         - RenderReplaced::computePreferredLogicalWidths is not SVG attribute aware and computes
3456         a non-zero m_minPreferredLogicalWidth even when the SVG widh/height are percentages.
3457
3458         - RenderBlock::layoutInlineChildren is also not SVG attribute aware and does not trigger
3459         percent height child layouts on vertical-only resizes.
3460
3461         * rendering/RenderBlockLineLayout.cpp:
3462         (WebCore::RenderBlock::layoutInlineChildren):
3463         Use hasRelativeDimensions() instead of direct width/height->isPercent tests. This also fixes
3464         an HTML issue where percent {min,max}Height inline elements are not updated on vertical-only resizes.
3465
3466         * rendering/RenderBox.cpp:
3467         (WebCore::RenderBox::hasRelativeDimensions):
3468         (WebCore):
3469         * rendering/RenderBox.h:
3470         (RenderBox):
3471         Add virtual hasRelativeDimensions() method.
3472
3473         * rendering/RenderReplaced.cpp:
3474         (WebCore::RenderReplaced::computePreferredLogicalWidths):
3475         Use hasRelativeDimensions() instead of direct width/height->isPercent tests.
3476
3477         * rendering/svg/RenderSVGRoot.cpp:
3478         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
3479         (WebCore::RenderSVGRoot::willBeDestroyed):
3480         Register percent-height SVG elements with the gPercentHeightDescendantsMap, and clean-up on destruction
3481         or height unit change.
3482
3483         (WebCore::RenderSVGRoot::hasRelativeDimensions):
3484         (WebCore):
3485         * rendering/svg/RenderSVGRoot.h:
3486         (RenderSVGRoot):
3487         SVG-aware hasRelativeDimensions() override.
3488
3489 2012-02-28  Yury Semikhatsky  <yurys@chromium.org>
3490
3491         Web Inspector: show resource dividers on memory counter graphs
3492         https://bugs.webkit.org/show_bug.cgi?id=79782
3493
3494         Resource dividers are drawn on the memory counter graphs.
3495
3496         Reviewed by Pavel Feldman.
3497
3498         * inspector/front-end/MemoryStatistics.js:
3499         (WebInspector.MemoryStatistics.prototype.updateDividers):
3500         (WebInspector.MemoryStatistics.prototype.setMainTimelineGrid):
3501         (WebInspector.MemoryStatistics.prototype._updateSize):
3502         (WebInspector.MemoryStatistics.prototype.show):
3503         (WebInspector.MemoryStatistics.prototype.refresh):
3504         (WebInspector.MemoryStatistics.prototype._refreshDividers):
3505         * inspector/front-end/TimelineGrid.js:
3506         (WebInspector.TimelineGrid.prototype.get dividersElement):
3507         (WebInspector.TimelineGrid.prototype.updateDividers):
3508         * inspector/front-end/TimelinePanel.js:
3509         (WebInspector.TimelinePanel):
3510         (WebInspector.TimelinePanel.prototype._timelinesOverviewModeChanged):
3511         (WebInspector.TimelinePanel.prototype._refreshRecords):
3512         (WebInspector.TimelinePanel.prototype.get timlinePaddingLeft):
3513         * inspector/front-end/timelinePanel.css:
3514         (#memory-graphs-canvas-container):
3515         (#memory-graphs-canvas-container .resources-dividers):
3516
3517 2012-02-28  Nikolas Zimmermann  <nzimmermann@rim.com>
3518
3519         Integrate SVGUseElement within the new shadow root concept
3520         https://bugs.webkit.org/show_bug.cgi?id=78902
3521
3522         Reviewed by Zoltan Herczeg.
3523
3524         Replace SVG shadow tree implementation with the new, modern #shadow-root implementation.
3525
3526         Current situation in trunk:
3527         SVGUseElement doesn't create/hold the shadow tree, unlike its expected in
3528         the modern #shadow-root concept, but its renderer RenderSVGShadowTreeRootContainer.
3529         That creates a cycle, as the actual DOM tree is stored as RefPtr<SVGGElement> inside
3530         a renderer - that's weak conceptually, and has lead to sublte security bugs in the past.
3531
3532         Whenever a target element of a <use> element changed, invalidateShadowTree() is called
3533         which calls setNeedsStyleRecalc(), and sets m_needsShadodwTreeRecreation to true.
3534         Once style recalculation happens, the RenderSVGShadowTreeRootContainer then eventually
3535         built the shadow tree, by cloning the target node, building the SVGElementInstance tree
3536         etc, -- all within the render tree.
3537
3538         To easy reviewing, here's a dump of the current render tree for a simple <use> example:
3539         <defs><rect id="rect"/></defs><use xlink:href="#rect"/>
3540
3541         Dump of render tree:
3542         RenderSVGHiddenContainer {defs}        // <defs> (SVGDefsElement)
3543             RenderSVGRect {rect}               // <rect> (SVGRectElement)
3544         RenderSVGShadowTreeRootContainer {use} // <use> (SVGUseElement)
3545             RenderSVGContainer {g}             // <g> (SVGShadowTreeRootElement)
3546                 RenderSVGRect {rect}           // <rect> (SVGRectElement, clone of <rect> in <defs>)
3547
3548         The SVGShadowTreeRootElement is created & stored by RenderSVGShadowTreeRootContainer,
3549         the renderer of the <use> element. The RenderSVGTransformableContainer renderer created
3550         for the SVGShadowTreeRootElement stores the x/y translation induced by the <use> attributes.
3551
3552         There are lots of places all over WebCore that assume the existance of a <g> renderer
3553         as first child of the <use> element, representing the "SVG shadow tree root".
3554
3555         Summary of this patch:
3556         Let SVGUseElement create&maintain a #shadow-root, and append the cloned target elements
3557         into this shadow root. We no longer have to take care of attachment/detachment, style
3558         recalculation, etc. - that's handled transparenly by ShadowRoot(List) now.
3559
3560         This makes SVGShadowTreeElements & RenderSVGShadowTreeRootContainer obsolete. Switch
3561         SVGUseElement to create a RenderSVGTransformableContainer as its renderer, and make
3562         it respect the translation induced by the x/y attributes, given for a <use> element.
3563
3564         Remove all occourences of SVGShadowRoot, remove all special cases it induced.
3565
3566         It's all covered by existing tests, took a while to make them all pass again.
3567
3568         * CMakeLists.txt: Remove SVGShadowTreeElements/RenderSVGShadowTreeRootContainer from build.
3569         * GNUmakefile.list.am: Ditto.
3570         * Target.pri: Ditto.
3571         * WebCore.gypi: Ditto.
3572         * WebCore.vcproj/WebCore.vcproj: Ditto.
3573         * WebCore.xcodeproj/project.pbxproj: Ditto.
3574         * css/CSSStyleSelector.cpp:
3575         (WebCore::CSSStyleSelector::collectMatchingRulesForList): Enable fast path for selector checking, now that special shadow tree rules are gone.
3576         * css/SelectorChecker.cpp:
3577         (WebCore::linkAttribute): No need to guard this code with ENABLE(SVG).
3578         (WebCore::SelectorChecker::checkSelector): Remove obsolete SVG shadow root special case.
3579         * dom/EventDispatcher.cpp:
3580         (WebCore::eventTargetRespectingSVGTargetRules): Remove loop, simplify & cleanup this code.
3581         (WebCore::EventDispatcher::adjustToShadowBoundaries): s/isShadowRootOrSVGShadowRoot/isShadowRoot/.
3582         (WebCore::EventDispatcher::adjustRelatedTarget): Ditto.
3583         (WebCore::EventDispatcher::ensureEventAncestors): Simplify logic for SVG, fixed a FIXME.
3584         * dom/Node.cpp: Remove obsolete svgShadowHost().
3585         (WebCore::Node::shadowTreeRootNode): Remove obsolete isSVGShadowRoot() checks.
3586         (WebCore::Node::nonBoundaryShadowTreeRootNode): Ditto.
3587         (WebCore::Node::isInShadowTree): Make it const.
3588         * dom/Node.h: Remove isSVGShadowRoot/svgShadowHost.
3589         (WebCore::Node::isShadowRoot): s/IsShadowRootOrSVGShadowRootFlag/isShadowRoot/.
3590         (WebCore::Node::parentNode): Augment comments.
3591         (WebCore::Node::parentNodeGuaranteedHostFree): Ditto.
3592         * dom/Range.cpp:
3593         (WebCore::Range::checkNodeBA): Remove obsolete SVG shadow root special case.
3594         * dom/ScriptElement.cpp:
3595         (WebCore::ScriptElement::prepareScript): Ditto.
3596         * rendering/RenderObject.h: Remove isSVGShadowTreeRootContainer.
3597         (WebCore::RenderObject::isSVGTransformableContainer): Added.
3598         * rendering/svg/RenderSVGAllInOne.cpp: Remove SVGShadowTreeElements/RenderSVGShadowTreeRootContainer from build.
3599         * rendering/svg/RenderSVGModelObject.cpp:
3600         (WebCore::isGraphicsElement): To check for <use>, a tag name comparision is needed now, as it no longer has a special renderer.
3601         * rendering/svg/RenderSVGResourceClipper.cpp:
3602         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage): Ditto.
3603         (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect): Ditto.
3604         (WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto.
3605         * rendering/svg/RenderSVGResourceContainer.cpp: Remove RenderSVGShadowTreeRootContainer.h include.
3606         * rendering/svg/RenderSVGShadowTreeRootContainer.cpp: Removed.
3607         * rendering/svg/RenderSVGShadowTreeRootContainer.h: Removed.
3608         * rendering/svg/RenderSVGTransformableContainer.cpp: Keep track of last used additional x/y translation.
3609         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform): Handle x/y translation for <use> contains here, instead of storing it in the SVGShadowTreeRootElement.
3610         * rendering/svg/RenderSVGTransformableContainer.h: Store last used x/y translation.
3611         (WebCore::RenderSVGTransformableContainer::isSVGTransformableContainer): Return true.
3612         (WebCore::toRenderSVGTransformableContainer): Add conversion helpers.
3613         * rendering/svg/RenderSVGViewportContainer.cpp: Ditto.
3614         (WebCore::RenderSVGViewportContainer::calcViewport): Handle width/height attributes inheritance from the <use> element, if we're a <svg> or <symbol> replacement in the shadow tree.
3615         * rendering/svg/RenderSVGViewportContainer.h: Remove isSVGContainer() override which is not needed here (already present in RenderSVGContainer).
3616         * rendering/svg/SVGShadowTreeElements.cpp: Removed.
3617         * rendering/svg/SVGShadowTreeElements.h: Removed.
3618         * svg/SVGAElement.cpp:
3619         (WebCore::SVGAElement::createRenderer): Check if parentNode is really a SVGElement, before casting.
3620         * svg/SVGElement.cpp:
3621         (WebCore::SVGElement::isOutermostSVGSVGElement): Early exit if tag name isn't <svg>, or if we're in a shadow tree (can't be an outermost <svg> element then).
3622         (WebCore::hasLoadListener): Deploy parentOrHostElement() usage to remove any special cases, related to shadow boundaries.
3623         (WebCore::SVGElement::sendSVGLoadEventIfPossible): Ditto.
3624         (WebCore::SVGElement::customStyleForRenderer): Ditto.
3625         * svg/SVGElementInstance.cpp:
3626         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Call updateStyleIfNeeded() instead of updateLayoutIgnorePendingStylesheets().
3627         * svg/SVGGElement.cpp:
3628         (WebCore::SVGGElement::rendererIsNeeded): s/parentNode/parentOrHostElement/ - we need to cross shadow boundaries now.
3629         * svg/SVGGElement.h: Remove obsolete isShadowTreeContainerElement().
3630         * svg/SVGLocatable.cpp:
3631         (WebCore::SVGLocatable::nearestViewportElement): s/parentNode/parentOrHostElement/ - we need to cross shadow boundaries now.
3632         (WebCore::SVGLocatable::farthestViewportElement): Ditto.
3633         (WebCore::SVGLocatable::computeCTM): Ditto.
3634         * svg/SVGStyledElement.cpp:
3635         (WebCore::SVGStyledElement::title): Ditto. (+ simplify code a lot, no need to walk the shadow tree to find its root anymore, use isInShadowTree() helper.)
3636         (WebCore::SVGStyledElement::rendererIsNeeded): Ditto.
3637         * svg/SVGUseElement.cpp:
3638         (WebCore::SVGUseElement::SVGUseElement): Remove no longer needed m_updatesBlocked.
3639         (WebCore::SVGUseElement::create): Always call ensureShadowRoot(), to create a #shadow-root, upon creating a SVGUseElement.
3640         (WebCore::SVGUseElement::insertedIntoDocument): Align with SVGFEImageElement/SVGTRefElement - call buildPendingResource() from insertedIntoDocument(), finally! (no renderer needed anymore to update the SVG shadow subtree).
3641         (WebCore::SVGUseElement::removedFromDocument): Align with SVGFEImageElement/SVGTRefElement - immediately release the SVGElementInstance & shadow tree, once we're removed from the document.
3642         (WebCore::SVGUseElement::svgAttributeChanged): Simplify code a lot, no longer need to deal with x/y/width/height attributes, the renderes in the shadow tree grab these values from their corresponding <use> elements automatically now.
3643         (WebCore::SVGUseElement::willRecalcStyle):
3644             New main part of the logic. invalidateShadowTree() calls setNeedsStyleRecalc, and sets m_needsShadowTreeRecreation=true. If we encounter this case, force rebuilding the SVG shadow tree
3645             and the SVGElementInstance tree, immediately, before executing the actual style recalc. This allows us to lazily rebuild the SVG shadow tree for the <use> element. Consider:
3646             <defs><rect id="rect"></defs> <use xlink:href="#rect"/>. Now from a script we change the rect x/y/width/height attributes:
3647             rect.setAttribute("x", "10"); rect.setAttribute("y", "10")... each call will lead to a SVGUseElement::invalidateShadowTree() call by SVGElementInstance::invalidateAllInstancesOfElement, invoked after the <rect> element got parsed.
3648             This won't update the shadow tree four times, but only once upon the next style recalculation - otherwise performance is a nightmare.
3649             This will serve as future starting point, to explore partial SVG subtree re-clones, which should easily be doable now.
3650         (WebCore::dumpInstanceTree): Add a 'static' to allow DUMP_INSTANCE_TREE to be used in clang builds.
3651         (WebCore::SVGUseElement::clearResourceReferences): Added helper to release instance & shadow tree.
3652         (WebCore::SVGUseElement::buildPendingResource): Modeled exactly like SVGFEImageElement/SVGTRefElement. It's possible to share more code between these in future.
3653         (WebCore::SVGUseElement::buildShadowAndInstanceTree): Cleanup code, adapt to new shadow-root concept.
3654         (WebCore::SVGUseElement::createRenderer): Create a RenderSVGTransformableContainer, no longer a <use> specific renderer.
3655         (WebCore::removeDisallowedElementsFromSubtree): Use new replacedChild/appendChild variants, that don't require a ExceptionCode to be passed in.
3656         (WebCore::SVGUseElement::buildShadowTree): Ditto.
3657         (WebCore::SVGUseElement::expandUseElementsInShadowTree): Ditto.
3658         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Ditto.
3659         (WebCore::SVGUseElement::invalidateShadowTree): Only trigger style recalculations if needed.
3660         * svg/SVGUseElement.h: Remove lots of now unnecessary overrides: attach/detach/didRecalcStyle/updateContainerOffset/updateContainerSizes/etc..
3661         * svg/animation/SVGSMILElement.cpp:
3662         (WebCore::SVGSMILElement::insertedIntoDocument): No need to walk the shadow tree to find its root anymore, use isInShadowTree() helper.
3663
3664 2012-02-28  Shinya Kawanaka  <shinyak@chromium.org>
3665
3666         Element should be able to have multiple shadow roots.
3667         https://bugs.webkit.org/show_bug.cgi?id=77931
3668
3669         Reviewed by Hajime Morita.
3670
3671         This patch enables us to add multiple shadow subtrees into elements.
3672         Note that multiple shadow subtrees are enabled
3673         only if RuntimeEnabledFeatures::multipleShadowSubtrees is enabled.
3674
3675         Since we don't have <shadow> element yet, only the youngest shadow tree
3676         will be rendered. This patch includes tests to confirm adding a new shadow
3677         tree dynamically to confirm only the youngest shadow tree is renderered.
3678
3679         Tests: fast/dom/shadow/multiple-shadowroot-rendering.html
3680                fast/dom/shadow/multiple-shadowroot.html
3681
3682         * WebCore.exp.in:
3683         * dom/Element.cpp:
3684           Uses ShadowRootList interfaces directly instead of ShadowRootList emulation methods.
3685         (WebCore::Element::~Element):
3686         (WebCore::Element::attach):
3687         (WebCore::Element::addShadowRoot):
3688         (WebCore::Element::removeShadowRootList):
3689         * dom/Element.h:
3690         (Element):
3691         * dom/NodeRenderingContext.cpp:
3692           Makes non-youngest shadow subtrees hidden.
3693         (WebCore::NodeRenderingContext::NodeRenderingContext):
3694         (WebCore::NodeRenderingContext::hostChildrenChanged):
3695           Since non-youngest children may be changed, make sure host children are changed.
3696         * dom/ShadowRoot.cpp:
3697         (WebCore::ShadowRoot::create):
3698         * dom/ShadowRoot.h:
3699           Utility methods to make code intention clear are added.
3700         (WebCore::ShadowRoot::youngerShadowRoot):
3701         (WebCore::ShadowRoot::olderShadowRoot):
3702         (ShadowRoot):
3703         (WebCore::ShadowRoot::isYoungest):
3704         (WebCore::ShadowRoot::isOldest):
3705         * dom/ShadowRootList.cpp:
3706         (WebCore::ShadowRootList::popShadowRoot):
3707         (WebCore::ShadowRootList::attach):
3708         (WebCore::ShadowRootList::detach):
3709           Detaches shadow subtrees.
3710         * testing/Internals.cpp:
3711         (WebCore::Internals::address):
3712         (WebCore):
3713         (WebCore::Internals::youngerShadowRoot):
3714         (WebCore::Internals::olderShadowRoot):
3715         (WebCore::Internals::removeShadowRoot):
3716         * testing/Internals.h:
3717         (Internals):
3718         * testing/Internals.idl:
3719
3720 2012-02-28  Antti Koivisto  <antti@apple.com>
3721
3722         Split CSSStyleRule into internal and CSSOM type
3723         https://bugs.webkit.org/show_bug.cgi?id=79763
3724
3725         Reviewed by Andreas Kling.
3726
3727         - Split the data out as StyleRule
3728         - Make CSSStyleSelector operate on StyleRule instead of CSSStyleRule
3729         
3730         This is an intermediate step. Both CSSStyleRule and StyleRule are still always constructed so
3731         the patch increases memory consumption by a few pointers per css rule. Upcoming
3732         patches will make CSSStyleRules to be constructed on demand.
3733         
3734         The patch does not yet move StyleRule to a file of its own.
3735
3736         * css/CSSPageRule.cpp:
3737         (WebCore::CSSPageRule::CSSPageRule):
3738         * css/CSSPageRule.h:
3739         (WebCore::CSSPageRule::create):
3740         (CSSPageRule):
3741         * css/CSSParser.cpp:
3742         (WebCore::CSSParser::createStyleRule):
3743         (WebCore::CSSParser::createPageRule):
3744         * css/CSSRule.h:
3745         (WebCore::CSSRule::CSSRule):
3746         (CSSRule):
3747         * css/CSSStyleRule.cpp:
3748         (WebCore::StyleRule::StyleRule):
3749         (WebCore):
3750         (WebCore::StyleRule::~StyleRule):
3751         (WebCore::StyleRule::addSubresourceStyleURLs):
3752         (WebCore::StyleRule::ensureCSSStyleRule):
3753         (WebCore::CSSStyleRule::CSSStyleRule):
3754         (WebCore::CSSStyleRule::~CSSStyleRule):
3755         (WebCore::CSSStyleRule::generateSelectorText):
3756         (WebCore::CSSStyleRule::setSelectorText):
3757         (WebCore::CSSStyleRule::cssText):
3758         * css/CSSStyleRule.h:
3759         (WebCore):
3760         (StyleRule):
3761         (WebCore::StyleRule::selectorList):
3762         (WebCore::StyleRule::properties):
3763         (WebCore::StyleRule::sourceLine):
3764         (WebCore::StyleRule::adoptSelectorVector):
3765         (WebCore::StyleRule::adoptSelectorList):
3766         (WebCore::StyleRule::setProperties):
3767         (WebCore::CSSStyleRule::create):
3768         (WebCore::CSSStyleRule::style):
3769         (CSSStyleRule):
3770         (WebCore::CSSStyleRule::styleRule):
3771         * css/CSSStyleSelector.cpp:
3772         (RuleData):
3773         (WebCore::RuleData::rule):
3774         (RuleSet):
3775         (WebCore::CSSStyleSelector::addMatchedProperties):
3776         (WebCore::CSSStyleSelector::sortAndTransferMatchedRules):
3777         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3778         * css/CSSStyleSelector.h:
3779         (WebCore::CSSStyleSelector::RuleSelectorPair::RuleSelectorPair):
3780         (RuleSelectorPair):
3781         (MatchResult):
3782         (CSSStyleSelector):
3783         * css/CSSStyleSheet.cpp:
3784         (WebCore::CSSStyleSheet::addSubresourceStyleURLs):
3785         * editing/EditingStyle.cpp:
3786         (WebCore::styleFromMatchedRulesForElement):
3787         * inspector/InspectorCSSAgent.cpp:
3788         (WebCore::SelectorProfile::startSelector):
3789         * inspector/InspectorInstrumentation.cpp:
3790         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
3791         (WebCore::InspectorInstrumentation::willProcessRuleImpl):
3792         * inspector/InspectorInstrumentation.h:
3793         (WebCore):
3794         (InspectorInstrumentation):
3795         (WebCore::InspectorInstrumentation::willMatchRule):
3796         (WebCore::InspectorInstrumentation::willProcessRule):
3797         * inspector/InspectorStyleSheet.cpp:
3798         (WebCore::InspectorStyleSheet::buildObjectForRule):
3799         (WebCore::InspectorStyleSheet::revalidateStyle):
3800         * page/PageSerializer.cpp:
3801         (WebCore::PageSerializer::serializeFrame):
3802         (WebCore::PageSerializer::serializeCSSStyleSheet):
3803         (WebCore::PageSerializer::retrieveResourcesForRule):
3804         (WebCore::PageSerializer::retrieveResourcesForProperties):
3805         * page/PageSerializer.h:
3806         (WebCore):
3807         (PageSerializer):
3808
3809 2012-02-28  Roland Steiner  <rolandsteiner@chromium.org>
3810
3811         RuntimeEnabledFeatures::setMultipleShadowSubtreesEnabled should not be inline
3812         https://bugs.webkit.org/show_bug.cgi?id=79753
3813
3814         Moved the function implementation to the .cpp file.
3815
3816         Reviewed by Hajime Morita.
3817
3818         No new tests. (no functional change)
3819
3820         * bindings/generic/RuntimeEnabledFeatures.cpp:
3821         (WebCore::RuntimeEnabledFeatures::setMultipleShadowSubtreesEnabled):
3822         (WebCore):
3823         * bindings/generic/RuntimeEnabledFeatures.h:
3824         (RuntimeEnabledFeatures):
3825
3826 2012-02-28  Noel Gordon  <noel.gordon@gmail.com>
3827
3828         Fix comment about RGB swizzle decoding and Adobe transform=0 images
3829         https://bugs.webkit.org/show_bug.cgi?id=79457
3830
3831         Unreviewed. No new tests, comment change only.
3832
3833         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3834         (WebCore::JPEGImageReader::decode):
3835
3836 2012-02-27  Shinya Kawanaka  <shinyak@chromium.org>
3837
3838         Element::removeShadowRoot() and setShadowRoot() should be moved into ShadowTree.
3839         https://bugs.webkit.org/show_bug.cgi?id=78313
3840
3841         Reviewed by Hajime Morita.
3842
3843         This patch is for refactoring ShadowTree related code.
3844           (1) Element::removeShadowRoot() and Element::setShadowRoot() are moved into ShadowTree.
3845           (2) ShadowTree is now put on its own heap.
3846
3847         No new tests, no change in behavior.
3848
3849         * WebCore.exp.in:
3850         * dom/Element.cpp:
3851         (WebCore::Element::~Element):
3852         (WebCore::Element::shadowTree):
3853         (WebCore::Element::ensureShadowTree):
3854           Ensure the existence of ShadowTree. This does not ensure ShadowRoot exists.
3855         * dom/Element.h:
3856         (Element):
3857         * dom/ElementRareData.h:
3858           Makes ShadowTree on Heap.
3859         (ElementRareData):
3860         (WebCore::ElementRareData::~ElementRareData):
3861         * dom/ShadowRoot.cpp:
3862         (WebCore::ShadowRoot::create):
3863         * dom/ShadowTree.cpp:
3864         (WebCore::validateShadowRoot):
3865         (WebCore):
3866         (WebCore::ShadowTree::addShadowRoot):
3867         (WebCore::ShadowTree::removeAllShadowRoots):
3868         * dom/ShadowTree.h:
3869         (ShadowTree):
3870         * testing/Internals.cpp:
3871         (WebCore::Internals::removeShadowRoot):
3872
3873 2012-02-27  David Barton  <dbarton@mathscribe.com>
3874
3875         Fix <msubsup> formatting, especially for a tall base, subscript, or superscript
3876         https://bugs.webkit.org/show_bug.cgi?id=79274
3877
3878         Reviewed by Julien Chaffraix.
3879
3880         Move the <msubsup> formatting code in stretchToHeight() to layout(). Then revise the
3881         combined code to produce more vertically accurate results, and without extra white
3882         space. Finally, don't multiply msub/msup/msubsup operator stretching by 1.2.
3883
3884         Test: Added the bug report's attached test case to mathml/presentation/subsup.xhtml, and
3885         it and 5 other test files in mathml/presentation now produce improved results. The
3886         integral sign in mo-stretch.html is no longer scaled up by an extra 1.2, and baselines
3887         are more accurate so the base is higher in msubsup-sub-changed.png. Several examples are
3888         slightly tighter vertically, because their (somewhat) anonymous blocks wrapping
3889         subscripts and superscripts now have the correct font size.
3890
3891         * rendering/mathml/RenderMathMLSubSup.cpp:
3892         (WebCore):
3893         (WebCore::RenderMathMLSubSup::addChild):
3894         (WebCore::RenderMathMLSubSup::stretchToHeight):
3895         (WebCore::RenderMathMLSubSup::layout):
3896         * rendering/mathml/RenderMathMLSubSup.h:
3897         (RenderMathMLSubSup):
3898         * rendering/style/RenderStyle.h:
3899
3900 2012-02-27  Ned Holbrook  <nholbrook@apple.com>
3901
3902         kCTFontTableOptionExcludeSynthetic is unneeded
3903         https://bugs.webkit.org/show_bug.cgi?id=79744
3904
3905         Reviewed by Dan Bernstein.
3906
3907         The aforementioned option is a no-op, so no new tests.
3908
3909         * platform/graphics/mac/SimpleFontDataMac.mm:
3910         (WebCore::fontHasVerticalGlyphs): Specify no options.
3911
3912 2012-02-27  Wei James  <james.wei@intel.com>
3913
3914         Multi-Channel support in AudioBufferSourceNode
3915         https://bugs.webkit.org/show_bug.cgi?id=79202
3916
3917         Reviewed by Chris Rogers.
3918
3919         Test: webaudio/audiobuffersource-multi-channels.html
3920
3921         * webaudio/AudioBufferSourceNode.cpp:
3922         (WebCore::AudioBufferSourceNode::renderSilenceAndFinishIfNotLooping):
3923         (WebCore::AudioBufferSourceNode::renderFromBuffer):
3924         (WebCore::AudioBufferSourceNode::setBuffer):
3925         * webaudio/AudioBufferSourceNode.h:
3926         (AudioBufferSourceNode):
3927
3928 2012-02-27  Leo Yang  <leo.yang@torchmobile.com.cn>
3929
3930         [BlackBerry] Upstream the BlackBerry change to platform/graphics/IntRect.h
3931         https://bugs.webkit.org/show_bug.cgi?id=79732
3932
3933         Reviewed by Antonio Gomes.
3934
3935         Add conversion convenience between WebCore::IntRect and BlackBerry::Platform::IntRect.
3936
3937         The porting can't be built yet, no new tests.
3938
3939         * platform/graphics/IntRect.h:
3940         (Platform):
3941         (IntRect):
3942
3943 2012-02-27  Emil A Eklund  <eae@chromium.org>
3944
3945         Printed font-size should not be dependant on zoom level
3946         https://bugs.webkit.org/show_bug.cgi?id=79717
3947
3948         Reviewed by Adam Barth.
3949
3950         Ignore full page zoom level when printing a document.
3951
3952         Test: printing/zoomed-document.html
3953
3954         * css/CSSStyleSelector.cpp:
3955         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3956
3957 2012-02-27  Kenichi Ishibashi  <bashi@chromium.org>
3958
3959         [Chromium] Unreviewed gardening, further compile fixes for
3960         TransparencyWinTest.
3961
3962         * platform/graphics/chromium/TransparencyWin.h:
3963         (WebCore):
3964
3965 2012-02-27  Kenichi Ishibashi  <bashi@chromium.org>
3966
3967         [Chromium] Unreviewed gardening, fix compile error after r109043
3968
3969         * platform/graphics/chromium/TransparencyWin.h:
3970         (TransparencyWin):
3971
3972 2012-02-27  Adam Barth  <abarth@webkit.org>
3973
3974         EventFactory.in should be named EventNames.in
3975         https://bugs.webkit.org/show_bug.cgi?id=79727
3976
3977         Reviewed by Kentaro Hara.
3978
3979         Originally EventFactory.in was just used to generate EventFactory.cpp,
3980         but now we're able to generate a bunch of other Event-related code from
3981         this "in" file.
3982
3983         In writing some documentation about how to use these mechanisms, the
3984         name EventFactory.in didn't seem like the right name.  This patch
3985         renames EventFactory.in to EventNames.in, which more accurately
3986         describes the role of this file (and matches the naming convention of
3987         HTMLTagNames.in).
3988
3989         * CMakeLists.txt:
3990         * DerivedSources.make:
3991         * DerivedSources.pri:
3992         * GNUmakefile.am:
3993         * WebCore.gyp/WebCore.gyp:
3994         * WebCore.gyp/scripts/action_makenames.py:
3995         (main):
3996         * WebCore.xcodeproj/project.pbxproj:
3997         * dom/EventNames.in: Copied from Source/WebCore/dom/EventFactory.in.
3998         * dom/EventFactory.in: Removed.
3999
4000 2012-02-27  Yoshifumi Inoue  <yosin@chromium.org>
4001
4002         [Forms] Make order of attribute/method in HTMLInputElement.idl as same as specification
4003         https://bugs.webkit.org/show_bug.cgi?id=79622
4004
4005         For ease of maintainability, this patch reorders attributes and methods declaration
4006         matching with specification.
4007
4008         Reviewed by Adam Barth.
4009
4010         No new tests. No behavior change.
4011
4012         * html/HTMLInputElement.idl: Reorder and remove obsolete comments.
4013
4014 2012-02-27  Luke Macpherson   <macpherson@chromium.org>
4015
4016         Sort CSSStyleSelector property handler constructors by CSS property name.
4017         https://bugs.webkit.org/show_bug.cgi?id=79713
4018
4019         Reviewed by Andreas Kling.
4020
4021         No new tests / refactoring only.
4022
4023         This patch is simply an automated sort of the property constructors.
4024         Presently they are all over the place and it is difficult to know where to insert new rules.
4025         This patch provides a clear pattern and should reduce future conflicts when adding properties.
4026
4027         * css/CSSStyleApplyProperty.cpp:
4028         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
4029
4030 2012-02-27  James Kozianski  <koz@chromium.org>
4031
4032         [chromium] Plumb extensionGroup into didCreateScriptContext().
4033         https://bugs.webkit.org/show_bug.cgi?id=79072
4034
4035         Reviewed by Darin Fisher.
4036
4037         * bindings/v8/V8DOMWindowShell.cpp:
4038         (WebCore::V8DOMWindowShell::initContextIfNeeded):
4039         * bindings/v8/V8IsolatedContext.cpp:
4040         (WebCore::V8IsolatedContext::V8IsolatedContext):
4041         * loader/EmptyClients.h:
4042         (WebCore::EmptyFrameLoaderClient::didCreateScriptContext):
4043         * loader/FrameLoaderClient.h:
4044         (FrameLoaderClient):
4045
4046 2012-02-27  Huang Dongsung  <luxtella@company100.net>
4047
4048         Fixed a typo in CanvasRenderingContext2D::drawImage(HTMLCanvasElement);
4049         incorrect source and destination rect used.
4050         https://bugs.webkit.org/show_bug.cgi?id=79566
4051
4052         Pass dstRect and bufferSrcRect to
4053         CanvasRenderingContext2D::fullCanvasCompositedDrawImage() for the destination
4054         and source rect, respectively.
4055
4056         Reviewed by Daniel Bates.
4057
4058         * html/canvas/CanvasRenderingContext2D.cpp:
4059         (WebCore::CanvasRenderingContext2D::drawImage):
4060
4061 2012-02-27  Hyowon Kim  <hw1008.kim@samsung.com>
4062
4063         [EFL] Initial implementation of GraphicsContext3DPrivate
4064         https://bugs.webkit.org/show_bug.cgi?id=62961
4065
4066         Reviewed by Noam Rosenthal.
4067
4068         This patch adds the GraphicsContext3DPrivate class using Evas_GL.
4069         GraphicsContext3DPrivate delegates all GL function calls to Evas_GL_API.
4070
4071         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Added.
4072         (WebCore):
4073         (WebCore::GraphicsContext3DPrivate::create):
4074         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
4075         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
4076         (WebCore::GraphicsContext3DPrivate::initialize):
4077         (WebCore::GraphicsContext3DPrivate::createSurface):
4078         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
4079         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
4080         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
4081         (WebCore::GraphicsContext3DPrivate::activeTexture):
4082         (WebCore::GraphicsContext3DPrivate::attachShader):
4083         (WebCore::GraphicsContext3DPrivate::bindAttribLocation):
4084         (WebCore::GraphicsContext3DPrivate::bindBuffer):
4085         (WebCore::GraphicsContext3DPrivate::bindFramebuffer):
4086         (WebCore::GraphicsContext3DPrivate::bindRenderbuffer):
4087         (WebCore::GraphicsContext3DPrivat