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