Move the 'overflow' event dispatching logic out of RenderLayer
[WebKit.git] / Source / WebCore / ChangeLog
1 2012-03-02  Julien Chaffraix  <jchaffraix@webkit.org>
2
3         Move the 'overflow' event dispatching logic out of RenderLayer
4         https://bugs.webkit.org/show_bug.cgi?id=80090
5
6         Reviewed by Simon Fraser.
7
8         Test: fast/events/overflow-events-writing-mode.html
9
10         This moves the 'overflow' event dispatch from RenderLayer to an helper class
11         OverflowEventDispatcher. For now, the class lives in RenderBlock as it matches
12         the existing code but it may be moved later to its own class as FrameView could
13         benefit from it too or if we need to support 'overflow' events on RenderBoxes.
14
15         * rendering/RenderBlock.cpp:
16         (WebCore):
17         (OverflowEventDispatcher):
18         (WebCore::OverflowEventDispatcher::OverflowEventDispatcher):
19         (WebCore::OverflowEventDispatcher::~OverflowEventDispatcher):
20         (WebCore::OverflowEventDispatcher::computeOverflowStatus):
21         RAII dispatcher class that stores the information before layout and compare
22         them after to dispatch the right information.
23
24         (WebCore::RenderBlock::layout): Added an instance of OverflowEventDispatcher.
25
26         * rendering/RenderBox.h:
27         (WebCore::RenderBox::hasHorizontalLayoutOverflow):
28         (WebCore::RenderBox::hasVerticalLayoutOverflow):
29         Helper method to know if we have an horizontal / vertical layout overflow.
30
31         * rendering/RenderLayer.cpp:
32         (WebCore::RenderLayer::RenderLayer):
33         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
34         * rendering/RenderLayer.h:
35         Removed the scroll tracking logic as we don't need it anymore. This removes
36         3 booleans from RenderLayer.
37
38 2012-03-02  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
39
40         Create a method in Element to compare attributes with other Element
41         https://bugs.webkit.org/show_bug.cgi?id=80169
42
43         Reviewed by Ryosuke Niwa.
44
45         Avoid manually peeking at attribute storage to get this information. This
46         simplify the callsites. The actual implementation of comparison was moved to
47         ElementAttributeData. The mapsEquivalent() function still exists for the sake
48         of DocumentType nodes.
49
50         * dom/Element.cpp:
51         (WebCore::Element::hasEquivalentAttributes):
52         (WebCore):
53         * dom/Element.h:
54         (Element):
55         * dom/ElementAttributeData.cpp:
56         (WebCore::ElementAttributeData::isEquivalent):
57         (WebCore):
58         * dom/ElementAttributeData.h:
59         (ElementAttributeData):
60         * dom/NamedNodeMap.cpp:
61         (WebCore::NamedNodeMap::mapsEquivalent):
62         * dom/Node.cpp:
63         (WebCore::Node::isEqualNode):
64         * editing/htmlediting.cpp:
65         (WebCore::areIdenticalElements): Use Element::hasTagName() instead of matching
66         directly to make code a bit clearer.
67
68 2012-03-02  Zan Dobersek  <zandobersek@gmail.com>
69
70         [GTK] Smooth scrolling support
71         https://bugs.webkit.org/show_bug.cgi?id=16123
72
73         Reviewed by Martin Robinson.
74
75         No new tests - no new functionality.
76
77         Add the ScrollAnimatorNone class to compilation and enable
78         the smooth scrolling feature by default at compilation time.
79
80         * GNUmakefile.am:
81         * GNUmakefile.list.am:
82
83 2012-03-02  Philippe Normand  <pnormand@igalia.com>
84
85         [GStreamer] media/media-can-play-flac-audio.html fails
86         https://bugs.webkit.org/show_bug.cgi?id=80124
87
88         Reviewed by Martin Robinson.
89
90         Handle audio/x-flac in the mimeTypeCache() function so that we
91         advertize both audio/flac and audio/x-flac.
92
93         No new tests, this is covered already by media/media-can-play-flac-audio.html.
94
95         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
96
97 2012-03-02  Pavel Podivilov  <podivilov@chromium.org>
98
99         Web Inspector: fix fronted compilation.
100         https://bugs.webkit.org/show_bug.cgi?id=80154
101
102         Reviewed by Yury Semikhatsky.
103
104         * inspector/front-end/DebuggerModel.js:
105         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
106         * inspector/front-end/DebuggerPresentationModel.js:
107         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
108         * inspector/front-end/ScriptsSearchScope.js:
109         (WebInspector.ScriptsSearchResultsPane.prototype.createAnchor):
110
111 2012-03-02  Kaustubh Atrawalkar  <kaustubh@motorola.com>
112
113         Rename DOMURL to URL in the bindings
114         https://bugs.webkit.org/show_bug.cgi?id=78214
115
116         Reviewed by Kentaro Hara.
117
118         No new tests. Interface name change.
119
120         * html/DOMURL.idl: Added InterfaceName attribute to DOMURL.
121
122 2012-03-02  Roland Steiner  <rolandsteiner@chromium.org>
123
124         Add :scope pseudo-class
125         https://bugs.webkit.org/show_bug.cgi?id=79077
126
127         Add :scope pseudo class name & pseudoId
128         Add selector check for the new pseudo-class
129
130         Reviewed by Antti Koivisto.
131
132         Test: fast/css/style-scoped/scope-pseudo.html
133
134         * css/CSSSelector.cpp:
135         (WebCore::CSSSelector::pseudoId):
136         (WebCore::nameToPseudoTypeMap):
137         (WebCore::CSSSelector::extractPseudoType):
138         * css/CSSSelector.h:
139         * css/SelectorChecker.cpp:
140         (WebCore::SelectorChecker::checkOneSelector):
141
142 2012-03-01  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
143
144         Make parser code not depend on NamedNodeMap
145         https://bugs.webkit.org/show_bug.cgi?id=79963
146
147         Reviewed by Adam Barth.
148
149         Instead of creating Element-less NamedNodeMaps, the parsing code now creates
150         AttributeVectors, that are used to fill Element via the parserSetAttributes()
151         method. This allows us to remove even more methods from the NamedNodeMap.
152
153         The AttributeVector class contains convenience methods that take the attribute's
154         QualifiedName as parameter. This class is also used inside ElementAttributeData.
155
156         * dom/Attr.h:
157         (Attr):
158         * dom/Element.cpp:
159         (WebCore::Element::getAttribute):
160         (WebCore::Element::parserSetAttributes): Now we have to create the attribute
161         storage, and fill it (by Vector::swap()) with the passed attributes. Also use an
162         early return to reduce indentation.
163         (WebCore::Element::insertedIntoDocument):
164         (WebCore::Element::removedFromDocument):
165         (WebCore::Element::getURLAttribute):
166         (WebCore::Element::getNonEmptyURLAttribute):
167         * dom/Element.h:
168         (Element):
169         (WebCore::Element::fastHasAttribute):
170         (WebCore::Element::fastGetAttribute):
171         (WebCore::Element::hasAttributesWithoutUpdate):
172         (WebCore::Element::attributeItem):
173         (WebCore::Element::getAttributeItem):
174         * dom/ElementAttributeData.cpp:
175         (WebCore::AttributeVector::removeAttribute):
176         (WebCore):
177         * dom/ElementAttributeData.h:
178         (AttributeVector):
179         (WebCore::AttributeVector::create):
180         (WebCore::AttributeVector::attributeItem):
181         (WebCore::AttributeVector::AttributeVector):
182         (WebCore):
183         (WebCore::AttributeVector::getAttributeItem):
184         (WebCore::AttributeVector::getAttributeItemIndex):
185         (WebCore::AttributeVector::insertAttribute): Boolean parameter isn't necessary
186         since all the callers used 'false', indicating that duplicates were not allowed.
187         (WebCore::ElementAttributeData::attributeItem):
188         (WebCore::ElementAttributeData::getAttributeItem):
189         (WebCore::ElementAttributeData::getAttributeItemIndex):
190         (ElementAttributeData):
191         * dom/NamedNodeMap.cpp:
192         (WebCore::NamedNodeMap::getNamedItem):
193         (WebCore::NamedNodeMap::setNamedItem):
194         (WebCore::NamedNodeMap::removeNamedItem):
195         (WebCore::NamedNodeMap::mapsEquivalent):
196         * dom/NamedNodeMap.h:
197         * html/parser/HTMLConstructionSite.cpp:
198         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
199         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
200         (WebCore::HTMLConstructionSite::insertScriptElement):
201         (WebCore::HTMLConstructionSite::createElement):
202         (WebCore::HTMLConstructionSite::createHTMLElement):
203         (WebCore):
204         * html/parser/HTMLToken.h:
205         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
206         * html/parser/HTMLTreeBuilder.cpp:
207         (WebCore::HTMLTreeBuilder::processFakeStartTag):
208         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
209         (WebCore):
210         * html/parser/HTMLTreeBuilder.h:
211         * html/parser/TextDocumentParser.cpp:
212         (WebCore::TextDocumentParser::insertFakePreElement):
213         * xml/parser/MarkupTokenBase.h:
214         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
215         (WebCore::AtomicMarkupTokenBase::attributes):
216         (WebCore::AtomicMarkupTokenBase::takeAttributes):
217         (AtomicMarkupTokenBase):
218         (WebCore::::initializeAttributes):
219         * xml/parser/XMLToken.h:
220         (WebCore::AtomicXMLToken::AtomicXMLToken):
221         * xml/parser/XMLTreeBuilder.cpp:
222         (WebCore::XMLTreeBuilder::processNamespaces):
223         (WebCore::XMLTreeBuilder::processAttributes):
224
225 2012-03-02  Yury Semikhatsky  <yurys@chromium.org>
226
227         Web Inspector: assertion failure in JSMainThreadExecState::instrumentedCall
228         https://bugs.webkit.org/show_bug.cgi?id=80152
229
230         Extracted common code of JS call instrumentation into instrumentFunctionCall method
231         and call it directly where the instrumentation is needed instead of calling
232         JSMainThreadExecState::instrumentedCall which works on the main thread only.
233
234         Reviewed by Pavel Feldman.
235
236         * bindings/js/JSCallbackData.cpp:
237         (WebCore::JSCallbackData::invokeCallback):
238         * bindings/js/JSEventListener.cpp:
239         (WebCore::JSEventListener::handleEvent):
240         * bindings/js/JSMainThreadExecState.h:
241         (WebCore::JSMainThreadExecState::instrumentFunctionCall):
242
243 2012-03-02  Yoshifumi Inoue  <yosin@chromium.org>
244
245         [Forms] Make order of attribute/method in HTMLTextAreaElement.idl as same as specification
246         https://bugs.webkit.org/show_bug.cgi?id=80101
247
248         Reviewed by Kent Tamura.
249
250         No new tests. No behavior changes.
251
252         * html/HTMLTextAreaElement.idl: Reorder attribute/method position.
253
254 2012-03-02  Patrick Gansterer  <paroga@webkit.org>
255
256         Build fix after r109538.
257
258         * CMakeLists.txt:
259         * Modules/websockets/WebSocketDeflater.cpp:
260
261 2012-03-02  Roland Steiner  <rolandsteiner@chromium.org>
262
263         Scoped stylesheets don't appear to work in Shadow DOM
264         https://bugs.webkit.org/show_bug.cgi?id=79549
265
266         Make the scope stack in CSSStyleSelector use ContainerNode* instead of Element*.
267         Adapt using sites accordingly.
268         Push the ShadowRoot to the scope stack in the same way that elements are pushed.
269         Fix an issue with removedFromDocument() on destruction.
270
271         Reviewed by Antti Koivisto.
272
273         Test: fast/css/style-scoped/style-scoped-in-shadow.html
274
275         * css/CSSStyleSelector.cpp:
276         (RuleSet):
277         (WebCore::CSSStyleSelector::CSSStyleSelector):
278         (WebCore::CSSStyleSelector::determineScope):
279         (WebCore::CSSStyleSelector::ruleSetForScope):
280         (WebCore::CSSStyleSelector::appendAuthorStylesheets):
281         (WebCore::CSSStyleSelector::setupScopeStack):
282         (WebCore::CSSStyleSelector::pushScope):
283         (WebCore):
284         (WebCore::CSSStyleSelector::popScope):
285         (WebCore::CSSStyleSelector::pushParentElement):
286         (WebCore::CSSStyleSelector::popParentElement):
287         (WebCore::CSSStyleSelector::pushParentShadowRoot):
288         (WebCore::CSSStyleSelector::popParentShadowRoot):
289         (WebCore::CSSStyleSelector::matchScopedAuthorRules):
290         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
291         * css/CSSStyleSelector.h:
292         (CSSStyleSelector):
293         (WebCore::CSSStyleSelector::pushScope):
294         (WebCore::CSSStyleSelector::popScope):
295         (WebCore::CSSStyleSelector::MatchOptions::MatchOptions):
296         (MatchOptions):
297         (WebCore::CSSStyleSelector::scopeStackIsConsistent):
298         (WebCore::CSSStyleSelector::ScopeStackFrame::ScopeStackFrame):
299         (ScopeStackFrame):
300         * css/SelectorChecker.h:
301         (SelectorCheckingContext):
302         * dom/Element.cpp:
303         (WebCore::StyleSelectorParentPusher::push):
304         (WebCore::StyleSelectorParentPusher::~StyleSelectorParentPusher):
305         (WebCore::Element::beginParsingChildren):
306         (WebCore::Element::finishParsingChildren):
307         * dom/ShadowRoot.cpp:
308         (WebCore::ShadowRoot::attach):
309         (WebCore):
310         * dom/ShadowRoot.h:
311         (ShadowRoot):
312         * dom/ShadowTree.cpp:
313         (WebCore::ShadowTree::recalcShadowTreeStyle):
314         * html/HTMLStyleElement.cpp:
315         (WebCore::HTMLStyleElement::removedFromDocument):
316
317 2012-03-02  Yoshifumi Inoue  <yosin@chromium.org>
318
319         [Forms] Make order of attribute/method in HTMLSelectElement.idl as same as specification
320         https://bugs.webkit.org/show_bug.cgi?id=80097
321
322         Reviewed by Kent Tamura.
323
324         No new tests. No behavior changes.
325
326         * html/HTMLSelectElement.idl: Reorder attribute/method position.
327
328 2012-03-02  Pavel Podivilov  <podivilov@chromium.org>
329
330         Web Inspector: limit RawSourceCode usages to DebuggerPresentationModel.
331         https://bugs.webkit.org/show_bug.cgi?id=80146
332
333         Reviewed by Vsevolod Vlasov.
334
335         * inspector/front-end/DebuggerPresentationModel.js:
336         (WebInspector.DebuggerPresentationModel.prototype.uiLocationToRawLocation):
337         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
338         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawLocation):
339         * inspector/front-end/ObjectPopoverHelper.js:
340         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
341         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
342         * inspector/front-end/ScriptsSearchScope.js:
343         (WebInspector.ScriptsSearchResultsPane.prototype.createAnchor):
344
345 2012-03-02  Pavel Podivilov  <podivilov@chromium.org>
346
347         Web Inspector: update execution line using LiveLocation.
348         https://bugs.webkit.org/show_bug.cgi?id=80143
349
350         Reviewed by Vsevolod Vlasov.
351
352         * inspector/front-end/DebuggerPresentationModel.js:
353         (WebInspector.DebuggerPresentationModel.prototype._uiSourceCodeListChanged):
354         (WebInspector.DebuggerPresentationModel.prototype._debuggerResumed):
355         (WebInspector.DebuggerPresentationModel.prototype.set selectedCallFrame.updateExecutionLine):
356         (WebInspector.DebuggerPresentationModel.prototype.set selectedCallFrame):
357
358 2012-03-02  Leo Yang  <leo.yang@torchmobile.com.cn>
359
360         [BlackBerry] Build fix for LocalizedStringsBlackBerry.cpp
361         https://bugs.webkit.org/show_bug.cgi?id=80099
362
363         Unreviewed build fix.
364
365         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
366
367 2012-03-02  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
368
369         Fix build on AppleWebKit after 109548.
370
371         * WebCore.exp.in:
372
373 2012-03-02  Yoshifumi Inoue  <yosin@chromium.org>
374
375         [Forms] Make order of attribute/method in HTMLOptionElement.idl as same as specification
376         https://bugs.webkit.org/show_bug.cgi?id=80095
377
378         Reviewed by Kentaro Hara.
379
380         No new tests. No behavior changes.
381
382         * html/HTMLOptionElement.idl: Reorder attribute/method position.
383
384 2012-03-02  Adam Barth  <abarth@webkit.org>
385
386         WorkerContext shouldn't know about IndexedDB
387         https://bugs.webkit.org/show_bug.cgi?id=80094
388
389         Reviewed by Kentaro Hara.
390
391         There are still a couple IndexedDB stragglers we should clean up in
392         WebCore proper.  This patch moves some IndexedDB logic from
393         WorkerContext into the indexeddb module.
394
395         In the process of writing this patch, I noticed that some IndexedDB
396         files were missing from various build systems, so I added them.  I
397         suspect that means IndexedDB is only enabled by default on Chromium.
398
399         * CMakeLists.txt:
400         * DerivedSources.make:
401         * DerivedSources.pri:
402         * GNUmakefile.list.am:
403         * Modules/indexeddb/WorkerContextIndexedDatabase.cpp: Added.
404         (WebCore):
405         (WebCore::WorkerContextIndexedDatabase::WorkerContextIndexedDatabase):
406         (WebCore::WorkerContextIndexedDatabase::~WorkerContextIndexedDatabase):
407         (WebCore::WorkerContextIndexedDatabase::from):
408         (WebCore::WorkerContextIndexedDatabase::webkitIndexedDB):
409         * Modules/indexeddb/WorkerContextIndexedDatabase.h: Added.
410         (WebCore):
411         (WorkerContextIndexedDatabase):
412         * Modules/indexeddb/WorkerContextIndexedDatabase.idl: Added.
413         * Target.pri:
414         * WebCore.gypi:
415         * WebCore.vcproj/WebCore.vcproj:
416         * WebCore.xcodeproj/project.pbxproj:
417         * workers/WorkerContext.cpp:
418         (WebCore):
419         * workers/WorkerContext.h:
420         (WebCore):
421         (WorkerContext):
422         * workers/WorkerContext.idl:
423
424 2012-03-02  Simon Hausmann  <simon.hausmann@nokia.com>
425
426         [Qt] Compile WebCore without QtWidgets
427         https://bugs.webkit.org/show_bug.cgi?id=80141
428
429         Reviewed by Tor Arne Vestbø.
430
431         * Target.pri: Don't add widgets to QT.
432         * WebCore.pri: Use QT += opengl only with Qt 4, because it has an implicit QtWidgets
433         dependency. With Qt 5 all necessary OpenGL API is part of QtGui (with a QOpenGL* prefix).
434
435 2012-03-02  Yoshifumi Inoue  <yosin@chromium.org>
436
437         [Forms] Make order of attribute/method in HTMLFormElement.idl as same as specification
438         https://bugs.webkit.org/show_bug.cgi?id=80093
439
440         Reviewed by Kentaro Hara.
441
442         No new tests. No behavior changes
443
444         * html/HTMLFormElement.idl: Reorder attribute/method position.
445
446 2012-03-02  Yoshifumi Inoue  <yosin@chromium.org>
447
448         [Forms] Make order of attribute/method in HTMLButtonElement.idl as same as specification
449         https://bugs.webkit.org/show_bug.cgi?id=80091
450
451         Reviewed by Kentaro Hara.
452
453         No new tests. No behavior changes.
454
455         * html/HTMLButtonElement.idl: Reorder attribute/method position.
456
457 2012-03-02  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
458
459         Suspend/Resume API for pausing timers and animations.
460         https://bugs.webkit.org/show_bug.cgi?id=76063
461
462         Reviewed by Kenneth Rohde Christiansen.
463
464         * dom/ActiveDOMObject.h:
465             New ReasonForSuspension: PageWillBePaused.
466         * html/HTMLMediaElement.cpp:
467         (WebCore::HTMLMediaElement::suspend): Handle new ReasonForSuspension.
468         * page/Frame.cpp:
469         (WebCore::Frame::Frame):
470         (WebCore::Frame::setDocument):
471         (WebCore::Frame::suspendActiveDOMObjectsAndAnimations):
472         (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
473         * page/Frame.h:
474         (WebCore::Frame::activeDOMObjectsAndAnimationsSuspended):
475             Frame now maintains a state of suspending animation and ActiveDOMObjects,
476             which is inherited to all child-frames.
477         * page/Page.cpp:
478         (WebCore::Page::suspendActiveDOMObjectsAndAnimations):
479         (WebCore::Page::resumeActiveDOMObjectsAndAnimations):
480         * page/Page.h:
481             Functions for suspending and resuming active DOM objects and animations in all frames.
482         * rendering/RenderObject.cpp:
483         (WebCore::RenderObject::willRenderImage):
484             WillRenderImage now checks for suspension. This causes animated images to pause
485             together with all other types of animations.
486
487 2012-03-02  Yoshifumi Inoue  <yosin@chromium.org>
488
489         [Forms] Make order of attribute/method in HTMLFieldSetElement.idl as same as specification
490         https://bugs.webkit.org/show_bug.cgi?id=80092
491
492         Reviewed by Kentaro Hara.
493
494         No new tests. No behavior changes.
495
496         * html/HTMLFieldSetElement.idl: Reorder attribute/method position.
497
498 2012-03-02  Antti Koivisto  <antti@apple.com>
499
500         possible regression: r104060 maybe causing crashes
501         https://bugs.webkit.org/show_bug.cgi?id=75676
502
503         Rubber-stamped by Simon Hausmann.
504
505         Remove the speculative fix (the problem was elsewhere, http://trac.webkit.org/changeset/104845).
506
507         Also remove the debugging code added for this bug.
508     
509         * dom/Document.cpp:
510         (WebCore::Document::Document):
511         (WebCore::Document::clearStyleSelector):
512         (WebCore::Document::updateActiveStylesheets):
513         * dom/Document.h:
514         (Document):
515
516 2012-03-01  Alexander Pavlov  <apavlov@chromium.org>
517
518         Web Inspector: Implement suggestions in Watch Expressions
519         https://bugs.webkit.org/show_bug.cgi?id=79912
520
521         Drive-by: make subproperties in ObjectPropertySections editable
522
523         Reviewed by Pavel Feldman.
524
525         * inspector/front-end/ConsoleView.js:
526         (WebInspector.ConsoleView):
527         (WebInspector.ConsoleView.prototype.completionsForTextPrompt):
528         * inspector/front-end/DatabaseQueryView.js:
529         * inspector/front-end/ObjectPropertiesSection.js:
530         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
531         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
532         (WebInspector.ObjectPropertyTreeElement.prototype.ondblclick):
533         (WebInspector.ObjectPropertyTreeElement.prototype.renderPromptAsBlock):
534         (WebInspector.ObjectPropertyTreeElement.prototype.elementAndValueToEdit):
535         (WebInspector.ObjectPropertyTreeElement.prototype.startEditing.blurListener):
536         (WebInspector.ObjectPropertyTreeElement.prototype.startEditing):
537         (WebInspector.ObjectPropertyTreeElement.prototype.editingEnded):
538         (WebInspector.ObjectPropertyTreeElement.prototype.editingCancelled):
539         (WebInspector.ObjectPropertyTreeElement.prototype.editingCommitted):
540         (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
541         (WebInspector.ObjectPropertyPrompt):
542         * inspector/front-end/StylesSidebarPane.js:
543         * inspector/front-end/TextPrompt.js:
544         (WebInspector.TextPrompt.prototype.complete):
545         * inspector/front-end/WatchExpressionsSidebarPane.js:
546         (WebInspector.WatchExpressionTreeElement.prototype.renderPromptAsBlock):
547         (WebInspector.WatchExpressionTreeElement.prototype.elementAndValueToEdit):
548         (WebInspector.WatchExpressionTreeElement.prototype.editingCancelled):
549         * inspector/front-end/inspector.css:
550         (.watch-expressions > li.editing-sub-part .text-prompt):
551
552 2012-03-02  Antti Koivisto  <antti@apple.com>
553
554         REGRESSION (r104060): Page contents not painted if inserting a new stylesheet and temporary body node
555         https://bugs.webkit.org/show_bug.cgi?id=76590
556
557         Reviewed by Maciej Stachowiak.
558
559         Test: fast/css/pending-stylesheet-repaint.html
560         
561         If there has been a style recalc with a pending stylesheet, the forced repaint will need to be triggered even
562         if the stylesheet doesn't affect the rendering. Otherwise we may end up never painting at all.
563
564         * dom/Document.cpp:
565         (WebCore::Document::styleSelectorChanged):
566
567 2012-03-02  Simon Hausmann  <simon.hausmann@nokia.com>
568
569         [Qt] Move QStyle theming code out of WebCore into WebKit1
570         https://bugs.webkit.org/show_bug.cgi?id=80128
571
572         Reviewed by Kenneth Rohde Christiansen.
573
574         Moved QStyle dependant code into WebKit1, where it's okay to depend on
575         QtWidgets/QStyle. Added factory hooks into RenderThemeQt to allow changing
576         the default "mobile" style to QStyle on start-up.
577
578         * Target.pri:
579         * platform/qt/RenderThemeQt.cpp:
580         (WebCore):
581         (WebCore::RenderThemeQt::setCustomTheme):
582         (WebCore::RenderThemeQt::customScrollbarTheme):
583         (WebCore::createTheme):
584         (WebCore::RenderTheme::themeForPage):
585         (WebCore::RenderThemeQt::extraDefaultStyleSheet):
586         * platform/qt/RenderThemeQt.h:
587         (WebCore):
588         (RenderThemeQt):
589         * platform/qt/RenderThemeQtMobile.cpp:
590         * platform/qt/ScrollbarThemeQt.cpp:
591         (WebCore::ScrollbarTheme::nativeTheme):
592
593 2012-03-02  Luke Macpherson   <macpherson@chromium.org>
594
595         Handle CSSPropertyWebkitColumnRuleStyle in CSSStyleApplyProperty.
596         https://bugs.webkit.org/show_bug.cgi?id=80085
597
598         Reviewed by Eric Seidel.
599
600         No new tests / refactoring only.
601
602         * css/CSSStyleApplyProperty.cpp:
603         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
604         * css/CSSStyleSelector.cpp:
605         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
606
607 2012-03-02  Yury Semikhatsky  <yurys@chromium.org>
608
609         Web Inspector: enable Timeline panel for workers
610         https://bugs.webkit.org/show_bug.cgi?id=80130
611
612         Enabled Timeline panel for worker inspector. Refactored
613         JS function calls instrumentation to work for both
614         worker contexts and documents.
615
616         Reviewed by Pavel Feldman.
617
618         * bindings/js/JSCallbackData.cpp:
619         (WebCore::JSCallbackData::invokeCallback):
620         * bindings/js/JSEventListener.cpp:
621         (WebCore::JSEventListener::handleEvent):
622         * bindings/js/JSMainThreadExecState.h:
623         (WebCore):
624         (WebCore::JSMainThreadExecState::instrumentedCall):
625         * bindings/js/ScriptState.cpp:
626         (WebCore::scriptExecutionContextFromScriptState):
627         (WebCore):
628         * bindings/js/ScriptState.h:
629         (WebCore):
630         * bindings/v8/ScriptState.cpp:
631         (WebCore::ScriptState::scriptExecutionContext):
632         (WebCore):
633         (WebCore::scriptExecutionContextFromScriptState):
634         * bindings/v8/ScriptState.h:
635         (WebCore):
636         (ScriptState):
637         * bindings/v8/V8Proxy.cpp:
638         (WebCore::V8Proxy::instrumentedCallFunction):
639         * bindings/v8/V8WorkerContextEventListener.cpp:
640         (WebCore::V8WorkerContextEventListener::callListenerFunction):
641         * inspector/InjectedScript.cpp:
642         (WebCore::InjectedScript::callFunctionWithEvalEnabled):
643         * inspector/InspectorInstrumentation.cpp:
644         (WebCore):
645         (WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
646         * inspector/InspectorInstrumentation.h:
647         (InspectorInstrumentation):
648         (WebCore::InspectorInstrumentation::willCallFunction):
649         (WebCore):
650         (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
651         * inspector/WorkerInspectorController.cpp:
652         (WebCore::WorkerInspectorController::WorkerInspectorController):
653         (WebCore::WorkerInspectorController::connectFrontend):
654         (WebCore::WorkerInspectorController::disconnectFrontend):
655         (WebCore::WorkerInspectorController::restoreInspectorStateFromCookie):
656         * inspector/WorkerInspectorController.h:
657         (WebCore):
658         (WorkerInspectorController):
659         * inspector/front-end/inspector.js:
660         (WebInspector._createPanels):
661
662 2012-03-02  Kenichi Ishibashi  <bashi@chromium.org>
663
664         Adding WebSocket per-frame DEFLATE extension
665         https://bugs.webkit.org/show_bug.cgi?id=77522
666
667         Add WebSocketDeflateFramer class which handles deflate-frame extension.
668         This class encapsulates WebSocketDeflater and WebSocketInflater classes,
669         which depend on zlib, so that WebSocketChannel is not necessary to aware
670         zlib dependency.
671
672         Reviewed by Kent Tamura.
673
674         Tests: http/tests/websocket/tests/hybi/compressed-control-frame.html
675                http/tests/websocket/tests/hybi/deflate-frame-comp-bit-onoff.html
676                http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter.html
677                http/tests/websocket/tests/hybi/deflate-frame-parameter.html
678
679         * CMakeLists.txt: Added WebSocketDeflateFramer.(cpp|h)
680         * GNUmakefile.list.am: Ditto.
681         * Target.pri: Ditto.
682         * WebCore.gypi: Ditto.
683         * WebCore.gyp/WebCore.gyp: Added zlib dependency.
684         * WebCore.vcproj/WebCore.vcproj: Added WebSocketDeflateFramer.(cpp|h)
685         * WebCore.xcodeproj/project.pbxproj: Ditto.
686         * websockets/WebSocket.cpp:
687         (WebCore::WebSocket::didConnect): Set m_extensions.
688         * websockets/WebSocketChannel.cpp:
689         (WebCore::WebSocketChannel::connect): Add deflate-frame extension processor to WebSocketHanshake if deflate can use.
690         (WebCore::WebSocketChannel::fail): Call m_deflateFramer.didFail().
691         (WebCore::WebSocketChannel::processFrame): Decompress frames if needed.
692         (WebCore::WebSocketChannel::sendFrame): Compress frames if possible.
693         * websockets/WebSocketChannel.h:
694         * websockets/WebSocketDeflateFramer.cpp: Added.
695         (WebCore):
696         (WebSocketExtensionDeflateFrame):
697         (WebCore::WebSocketExtensionDeflateFrame::create):
698         (WebCore::WebSocketExtensionDeflateFrame::~WebSocketExtensionDeflateFrame):
699         (WebCore::WebSocketExtensionDeflateFrame::WebSocketExtensionDeflateFrame):
700         (WebCore::WebSocketExtensionDeflateFrame::handshakeString):
701         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
702         (WebCore::DeflateResultHolder::DeflateResultHolder):
703         (WebCore::DeflateResultHolder::~DeflateResultHolder):
704         (WebCore::DeflateResultHolder::fail):
705         (WebCore::InflateResultHolder::InflateResultHolder):
706         (WebCore::InflateResultHolder::~InflateResultHolder):
707         (WebCore::InflateResultHolder::fail):
708         (WebCore::WebSocketDeflateFramer::WebSocketDeflateFramer):
709         (WebCore::WebSocketDeflateFramer::createExtensionProcessor):
710         (WebCore::WebSocketDeflateFramer::canDeflate):
711         (WebCore::WebSocketDeflateFramer::enableDeflate):
712         (WebCore::WebSocketDeflateFramer::deflate):
713         (WebCore::WebSocketDeflateFramer::resetDeflateContext):
714         (WebCore::WebSocketDeflateFramer::inflate):
715         (WebCore::WebSocketDeflateFramer::resetInflateContext):
716         (WebCore::WebSocketDeflateFramer::didFail):
717         * websockets/WebSocketDeflateFramer.h: Added.
718         (WebCore):
719         (DeflateResultHolder):
720         (WebCore::DeflateResultHolder::succeeded):
721         (WebCore::DeflateResultHolder::failureReason):
722         (InflateResultHolder):
723         (WebCore::InflateResultHolder::succeeded):
724         (WebCore::InflateResultHolder::failureReason):
725         (WebSocketDeflateFramer):
726         (WebCore::WebSocketDeflateFramer::enabled):
727
728 2012-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
729
730         Web Inspector: [InspectorIndexedDB] Show meaningful description for object store items values.
731         https://bugs.webkit.org/show_bug.cgi?id=79691
732
733         Reviewed by Pavel Feldman.
734
735         * inspector/front-end/IndexedDBModel.js:
736         (WebInspector.IndexedDBModel.idbKeyFromKey):
737         * inspector/front-end/IndexedDBViews.js:
738         (WebInspector.IDBDataView.prototype._updateData.callback):
739         (WebInspector.IDBDataView.prototype._updateData):
740         (WebInspector.IDBDataGridNode.prototype.createCell):
741         (WebInspector.IDBDataGridNode.prototype._formatValue):
742         * inspector/front-end/ObjectPropertiesSection.js:
743         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
744         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
745         * inspector/front-end/RemoteObject.js:
746         (WebInspector.LocalJSONObject.prototype.get subtype):
747         * inspector/front-end/indexedDBViews.css:
748         (.indexed-db-data-view .data-grid .data-container td):
749         (.indexed-db-data-view .data-grid .data-container td.primaryKey-column):
750         (.indexed-db-data-view .data-grid .data-container td.primaryKey-column div.primitive-value):
751         (.indexed-db-data-view .data-grid .data-container td .section .header .title):
752
753 2012-03-02  Wei James  <james.wei@intel.com>
754
755         [Chromium] Layout Test webaudio/audiobuffersource-channels.html is failing
756         https://bugs.webkit.org/show_bug.cgi?id=79765
757
758         Reviewed by Chris Rogers.
759
760         * webaudio/AudioBuffer.cpp:
761         (WebCore::AudioBuffer::create):
762         * webaudio/AudioBufferSourceNode.cpp:
763         (WebCore::AudioBufferSourceNode::setBuffer):
764         * webaudio/AudioContext.h:
765         (WebCore):
766         (AudioContext):
767         (WebCore::AudioContext::maxNumberOfChannels):
768         * webaudio/AudioNodeOutput.cpp:
769         (WebCore::AudioNodeOutput::AudioNodeOutput):
770         (WebCore::AudioNodeOutput::setNumberOfChannels):
771
772 2012-03-02  Luke Macpherson   <macpherson@chromium.org>
773
774         Handle CSSPropertyWebkitRegionBreakAfter, CSSPropertyWebkitRegionBreakBefore and CSSPropertyWebkitRegionBreakInside in CSSStyleApplyProperty.
775         https://bugs.webkit.org/show_bug.cgi?id=80066
776
777         Reviewed by Eric Seidel.
778
779         No new tests / refactoring only.
780
781         * css/CSSStyleApplyProperty.cpp:
782         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
783         * css/CSSStyleSelector.cpp:
784         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
785
786 2012-03-02  Pablo Flouret  <pablof@motorola.com>
787
788         Implement DefaultParagraphSeparator execCommand, to let authors choose the default block element
789         https://bugs.webkit.org/show_bug.cgi?id=59961
790
791         Reviewed by Ryosuke Niwa.
792
793         http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#the-defaultparagraphseparator-command
794
795         Test: editing/execCommand/default-paragraph-separator.html
796
797         * editing/Editor.cpp:
798         (WebCore::Editor::Editor):
799         * editing/Editor.h:
800         (WebCore::Editor::defaultParagraphSeparator):
801         (WebCore::Editor::setDefaultParagraphSeparator):
802         (Editor):
803         * editing/EditorCommand.cpp:
804         (WebCore::executeDefaultParagraphSeparator):
805         (WebCore):
806         (WebCore::valueDefaultParagraphSeparator):
807         (WebCore::createCommandMap):
808         * editing/htmlediting.cpp:
809         (WebCore::createDefaultParagraphElement):
810
811         * html/HTMLParagraphElement.cpp:
812         (WebCore::HTMLParagraphElement::create):
813         (WebCore):
814         * html/HTMLParagraphElement.h:
815         (HTMLParagraphElement):
816             Added create(Document*) method that defaults to pTag as the QualifiedName.
817
818 2012-03-02  Kenneth Russell  <kbr@google.com>
819
820         [chromium] Fix errors in LayerRendererChromium cleanup
821         https://bugs.webkit.org/show_bug.cgi?id=80064
822
823         Reviewed by James Robinson.
824
825         Tested manually by forcing lost context while rendering Flash on
826         Mac OS in a Debug build.
827
828         * platform/graphics/chromium/LayerRendererChromium.cpp:
829         (WebCore::LayerRendererChromium::cleanupSharedObjects):
830
831 2012-03-02  Andy Estes  <aestes@apple.com>
832
833         Fix errors found when building the Mac port with ICONDATABASE disabled.
834         https://bugs.webkit.org/show_bug.cgi?id=80059
835
836         Reviewed by Brady Eidson.
837
838         * WebCore.exp.in: Only export IconDatabase symbols when the feature is
839         enabled.
840         * loader/icon/IconDatabase.h:
841         (WebCore::IconDatabase::create): WebKit calls this static method, so it
842         should be defined on the stub class.
843         (WebCore::IconDatabase::allowDatabaseCleanup): Ditto.
844         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Ditto.
845
846 2012-03-02  Luke Macpherson   <macpherson@chromium.org>
847
848         Handle CSSPropertyWebkitColorCorrection in CSSStyleApplyProperty.
849         https://bugs.webkit.org/show_bug.cgi?id=80056
850
851         Reviewed by Eric Seidel.
852
853         No new tests / refactoring only.
854
855         * css/CSSStyleApplyProperty.cpp:
856         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
857         * css/CSSStyleSelector.cpp:
858         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
859
860 2012-03-02  John Bauman  <jbauman@chromium.org>
861
862         [chromium] Send didCommitAndDrawFrame after swap
863         https://bugs.webkit.org/show_bug.cgi?id=80052
864
865         Reviewed by James Robinson.
866
867         Sending didCommitAndDrawFrame before the swap was causing plugins to
868         redraw themselves between compositing and the swap, which reduces
869         opportunities for optimization.
870
871         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
872         (WebCore::CCSingleThreadProxy::compositeAndReadback):
873         (WebCore::CCSingleThreadProxy::compositeImmediately):
874         (WebCore::CCSingleThreadProxy::doComposite):
875         (WebCore):
876         (WebCore::CCSingleThreadProxy::didSwapFrame):
877         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
878         (CCSingleThreadProxy):
879
880 2012-03-02  Raymond Toy  <rtoy@google.com>
881
882         AudioParam needs tests for the parameter automation routines.
883         https://bugs.webkit.org/show_bug.cgi?id=77666
884
885         Reviewed by Chris Rogers.
886
887         Tests: webaudio/audioparam-linearRampToValueAtTime.html
888                webaudio/audioparam-setTargetValueAtTime.html
889                webaudio/audioparam-setValueAtTime.html
890                webaudio/audioparam-setValueCurveAtTime.html
891
892         * webaudio/AudioParamTimeline.cpp:
893         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl): Round the
894         curveIndex to fix timing issue in setValueCurveAtTime.
895
896 2012-03-01  Pablo Flouret  <pablof@motorola.com>
897
898         Fix code generators to correctly guard header declarations that have a [Conditional] attribute.
899         https://bugs.webkit.org/show_bug.cgi?id=79375
900
901         Reviewed by Kentaro Hara.
902
903         In most cases code generators weren't checking the Conditional attribute
904         when generating code in headers for function/attribute/constants, they
905         were just guarding against the Conditional for the whole interface.
906
907         * bindings/scripts/CodeGeneratorCPP.pm:
908         (GenerateHeader):
909         * bindings/scripts/CodeGeneratorJS.pm:
910         (GenerateHeader):
911         * bindings/scripts/CodeGeneratorObjC.pm:
912         (GenerateHeader):
913         * bindings/scripts/CodeGeneratorV8.pm:
914         (GenerateHeader):
915         * bindings/scripts/test/CPP/WebDOMTestInterface.h:
916         * bindings/scripts/test/CPP/WebDOMTestObj.h:
917         * bindings/scripts/test/JS/JSTestInterface.h:
918         (JSTestInterface):
919         (WebCore):
920         * bindings/scripts/test/JS/JSTestObj.h:
921         (WebCore):
922         * bindings/scripts/test/ObjC/DOMTestInterface.h:
923         * bindings/scripts/test/ObjC/DOMTestObj.h:
924
925
926 2012-03-01  Dana Jansens  <danakj@chromium.org>
927
928         [chromium] Make opaque paint tracker aware of SkCanvas layers
929         https://bugs.webkit.org/show_bug.cgi?id=79145
930
931         Reviewed by Stephen White.
932
933         The current opaque paint tracker ignored SkCanvas layers entirely. But
934         SkCanvas layers can be used to apply things like alpha. So we make it
935         know about layers, and apply any clipping and SkPaint objects for layers
936         when tracking a paint.
937
938         Image clipping is done via a layer, so we can now also remove the
939         special-case code around image clipping in PlatformContextSkia and
940         OpaqueRegionSkia.
941
942         Unit test: PlatformContextSkiaTest.contextTransparencyLayerTest
943
944         Test: compositing/culling/clear-fixed-iframe.html
945
946         * platform/graphics/skia/OpaqueRegionSkia.cpp:
947         (WebCore::OpaqueRegionSkia::didDrawRect):
948         (WebCore::OpaqueRegionSkia::didDrawPath):
949         (WebCore::OpaqueRegionSkia::didDrawPoints):
950         (WebCore::OpaqueRegionSkia::didDrawBounded):
951         (WebCore::OpaqueRegionSkia::didDraw):
952         (WebCore):
953         * platform/graphics/skia/OpaqueRegionSkia.h:
954         (OpaqueRegionSkia):
955         * platform/graphics/skia/PlatformContextSkia.cpp:
956         * platform/graphics/skia/PlatformContextSkia.h:
957         (PlatformContextSkia):
958
959 2012-03-02  Kent Tamura  <tkent@chromium.org>
960
961         Add HTML-capable popup API to ChromeClient
962         https://bugs.webkit.org/show_bug.cgi?id=79078
963
964         Reviewed by Dimitri Glazkov.
965
966         This API will be used to implement a calendar picker of <input type=date>.
967         The code is enclosed with ENABLE_PAGE_POPUP, and doesn't change any
968         behavior for now.
969
970         * page/ChromeClient.h: Added declarations of openPagePopup() and closePagePopup().
971         * loader/EmptyClients.h:
972         (EmptyChromeClient): Add empty implementations of new ChromeClient functions.
973         * page/PagePopup.h: Added.
974         (PagePopup): Define an empty interface
975         * page/PagePopupClient.h: Added.
976         (PagePopupClient): Define an interface to provide various information to HTMLPopup.
977
978 2012-03-01  Hironori Bono  <hbono@chromium.org>
979
980         Render overflow controls of an RTL element to its left-side.
981         https://bugs.webkit.org/show_bug.cgi?id=54623
982
983         This change adds a new flag WTF_USE_RTL_SCROLLBAR and render the
984         vertical scrollbars and resizers of RTL elements to their left side if
985         this new flag is enabled.
986
987         Reviewed by Ryosuke Niwa.
988
989         Test: platform/chromium/fast/events/rtl-scrollbar.html
990
991         * rendering/RenderBlock.cpp:
992         (WebCore::RenderBlock::addOverflowFromPositionedObjects): Move child elements right.
993         (WebCore::RenderBlock::determineLogicalLeftPositionForChild): ditto.
994         * rendering/RenderBox.cpp:
995         (WebCore::RenderBox::overflowClipRect): Move the content rectangle right.
996         * rendering/RenderLayer.cpp:
997         (WebCore::cornerStart): Added a function that calculates the X position of a resizer.
998         (WebCore):
999         (WebCore::cornerRect): Use cornerStart to move a resizer.
1000         (WebCore::RenderLayer::verticalScrollbarStart): Added a function that calculates
1001         the X position of a vertical scrollbar.
1002         (WebCore::RenderLayer::horizontalScrollbarStart): Added a function that calculates
1003         the X position of a horizontal scrollbar.
1004         (WebCore::RenderLayer::scrollbarOffset): Render a vertical scrollbar to the left side
1005         and move a horizontal scrollbar right by the width of the vertical scrollbar.
1006         (WebCore::RenderLayer::invalidateScrollbarRect): ditto.
1007         (WebCore::RenderLayer::positionOverflowControls): ditto.
1008         (WebCore::RenderLayer::hitTestOverflowControls): ditto.
1009         * rendering/RenderLayer.h:
1010         (RenderLayer):
1011         * rendering/style/RenderStyle.h: Added shouldPlaceBlockDirectionScrollbarOnLogicalLeft,
1012         which returns if we need to move a left scrollbar to its right side.
1013
1014 2012-03-01  Kent Tamura  <tkent@chromium.org>
1015
1016         REGRESSION(90089): Input type='search' text shakes up and down when the style is changed.
1017         https://bugs.webkit.org/show_bug.cgi?id=79445
1018
1019         Reviewed by Dimitri Glazkov.
1020
1021         If the inner text height of a search field is smaller than the
1022         content box height of the <input>, the height of the container
1023         element should be same as the content box height.
1024
1025         When the element style is changed, the RenderStyle height of the
1026         container element is cleared, but the renderer height of the
1027         container element remains. We had a bug that layout() didn't set
1028         the RenderStyle height in a case that the renderer height was the
1029         desired height. It shrunk the renderer height as the result of
1030         layout for children.
1031
1032         Tests: fast/forms/search/search-shaking-text.html
1033
1034         * rendering/RenderTextControlSingleLine.cpp:
1035         (WebCore::RenderTextControlSingleLine::layout):
1036         Always set the RenderStyle height explicitly.
1037
1038 2012-03-01  Kentaro Hara  <haraken@chromium.org>
1039
1040         Unreviewed, rebaselined run-bindings-tests results.
1041
1042         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1043         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1044
1045 2012-03-01  Dan Bernstein  <mitz@apple.com>
1046
1047         <rdar://problem/10942540> REGRESSION (r108956): Safari Webpage Preview Fetcher crashes in WebCore::localizedString() when using a WebKit nightly build
1048         https://bugs.webkit.org/show_bug.cgi?id=80034
1049
1050         Reviewed by Benjamin Poulain.
1051
1052         Safari Webpage Preview Fetcher can’t access the WebCore framework when launched from a WebKit
1053         nightly build. After r108956, this causes it to crash.
1054
1055         * platform/mac/LocalizedStringsMac.cpp:
1056         (WebCore::localizedString): Added a null-check for the value returned from
1057         CFBundleGetBundleWithIdentifier(CFSTR("com.apple.WebCore")).
1058
1059 2012-03-01  Jason Liu  <jason.liu@torchmobile.com.cn>
1060
1061         [BlackBerry]Array of Cookies in HTTP request header are not in order.
1062         https://bugs.webkit.org/show_bug.cgi?id=79870
1063
1064         Std::sort and HashMap are not stable. So cookies with the same creating
1065         time sometimes are sent disorder.
1066         Change std::sort with std::stable-sort.
1067         We don't need using HashMap to save so few cookies for one domain.
1068         It is a wast of time to create HashMap, too.
1069         So change it with vector.
1070
1071         Reviewed by George Staikos.
1072
1073         Test: http/tests/cookies/resources/setArraycookies.php
1074
1075         * platform/blackberry/CookieManager.cpp:
1076         (WebCore::cookieSorter):
1077         (WebCore::CookieManager::getRawCookies):
1078         (WebCore::CookieManager::checkAndTreatCookie):
1079         (WebCore::CookieManager::addCookieToMap):
1080         * platform/blackberry/CookieManager.h:
1081         * platform/blackberry/CookieMap.cpp:
1082         (WebCore::CookieMap::addOrReplaceCookie):
1083         (WebCore::CookieMap::removeCookieAtIndex):
1084         (WebCore::CookieMap::removeCookie):
1085         (WebCore):
1086         (WebCore::CookieMap::getAllCookies):
1087         (WebCore::CookieMap::updateOldestCookie):
1088         (WebCore::CookieMap::deleteAllCookiesAndDomains):
1089         * platform/blackberry/CookieMap.h:
1090         (WebCore::CookieMap::count):
1091         (CookieMap):
1092
1093 2012-03-01  Adam Barth  <abarth@webkit.org>
1094
1095         Move WebCore/storage/IDB* files into WebCore/Modules/indexeddb
1096         https://bugs.webkit.org/show_bug.cgi?id=80071
1097
1098         Reviewed by Kentaro Hara.
1099
1100         Now that we've removed all the ENABLE(INDEXED_DATABASE) ifdefs from
1101         WebCore proper, we can move IndexedDB into its own module.
1102
1103         * CMakeLists.txt:
1104         * DerivedSources.make:
1105         * DerivedSources.pri:
1106         * GNUmakefile.list.am:
1107         * Modules/indexeddb/IDBAny.cpp: Copied from Source/WebCore/storage/IDBAny.cpp.
1108         * Modules/indexeddb/IDBAny.h: Copied from Source/WebCore/storage/IDBAny.h.
1109         * Modules/indexeddb/IDBAny.idl: Copied from Source/WebCore/storage/IDBAny.idl.
1110         * Modules/indexeddb/IDBBackingStore.h: Copied from Source/WebCore/storage/IDBBackingStore.h.
1111         * Modules/indexeddb/IDBCallbacks.h: Copied from Source/WebCore/storage/IDBCallbacks.h.
1112         * Modules/indexeddb/IDBCursor.cpp: Copied from Source/WebCore/storage/IDBCursor.cpp.
1113         * Modules/indexeddb/IDBCursor.h: Copied from Source/WebCore/storage/IDBCursor.h.
1114         * Modules/indexeddb/IDBCursor.idl: Copied from Source/WebCore/storage/IDBCursor.idl.
1115         * Modules/indexeddb/IDBCursorBackendImpl.cpp: Copied from Source/WebCore/storage/IDBCursorBackendImpl.cpp.
1116         * Modules/indexeddb/IDBCursorBackendImpl.h: Copied from Source/WebCore/storage/IDBCursorBackendImpl.h.
1117         * Modules/indexeddb/IDBCursorBackendInterface.h: Copied from Source/WebCore/storage/IDBCursorBackendInterface.h.
1118         * Modules/indexeddb/IDBCursorWithValue.cpp: Copied from Source/WebCore/storage/IDBCursorWithValue.cpp.
1119         * Modules/indexeddb/IDBCursorWithValue.h: Copied from Source/WebCore/storage/IDBCursorWithValue.h.
1120         * Modules/indexeddb/IDBCursorWithValue.idl: Copied from Source/WebCore/storage/IDBCursorWithValue.idl.
1121         * Modules/indexeddb/IDBDatabase.cpp: Copied from Source/WebCore/storage/IDBDatabase.cpp.
1122         * Modules/indexeddb/IDBDatabase.h: Copied from Source/WebCore/storage/IDBDatabase.h.
1123         * Modules/indexeddb/IDBDatabase.idl: Copied from Source/WebCore/storage/IDBDatabase.idl.
1124         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Copied from Source/WebCore/storage/IDBDatabaseBackendImpl.cpp.
1125         * Modules/indexeddb/IDBDatabaseBackendImpl.h: Copied from Source/WebCore/storage/IDBDatabaseBackendImpl.h.
1126         * Modules/indexeddb/IDBDatabaseBackendInterface.h: Copied from Source/WebCore/storage/IDBDatabaseBackendInterface.h.
1127         * Modules/indexeddb/IDBDatabaseCallbacks.h: Copied from Source/WebCore/storage/IDBDatabaseCallbacks.h.
1128         * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: Copied from Source/WebCore/storage/IDBDatabaseCallbacksImpl.cpp.
1129         * Modules/indexeddb/IDBDatabaseCallbacksImpl.h: Copied from Source/WebCore/storage/IDBDatabaseCallbacksImpl.h.
1130         * Modules/indexeddb/IDBDatabaseError.h: Copied from Source/WebCore/storage/IDBDatabaseError.h.
1131         * Modules/indexeddb/IDBDatabaseError.idl: Copied from Source/WebCore/storage/IDBDatabaseError.idl.
1132         * Modules/indexeddb/IDBDatabaseException.cpp: Copied from Source/WebCore/storage/IDBDatabaseException.cpp.
1133         * Modules/indexeddb/IDBDatabaseException.h: Copied from Source/WebCore/storage/IDBDatabaseException.h.
1134         * Modules/indexeddb/IDBDatabaseException.idl: Copied from Source/WebCore/storage/IDBDatabaseException.idl.
1135         * Modules/indexeddb/IDBEventDispatcher.cpp: Copied from Source/WebCore/storage/IDBEventDispatcher.cpp.
1136         * Modules/indexeddb/IDBEventDispatcher.h: Copied from Source/WebCore/storage/IDBEventDispatcher.h.
1137         * Modules/indexeddb/IDBFactory.cpp: Copied from Source/WebCore/storage/IDBFactory.cpp.
1138         * Modules/indexeddb/IDBFactory.h: Copied from Source/WebCore/storage/IDBFactory.h.
1139         * Modules/indexeddb/IDBFactory.idl: Copied from Source/WebCore/storage/IDBFactory.idl.
1140         * Modules/indexeddb/IDBFactoryBackendImpl.cpp: Copied from Source/WebCore/storage/IDBFactoryBackendImpl.cpp.
1141         * Modules/indexeddb/IDBFactoryBackendImpl.h: Copied from Source/WebCore/storage/IDBFactoryBackendImpl.h.
1142         * Modules/indexeddb/IDBFactoryBackendInterface.cpp: Copied from Source/WebCore/storage/IDBFactoryBackendInterface.cpp.
1143         * Modules/indexeddb/IDBFactoryBackendInterface.h: Copied from Source/WebCore/storage/IDBFactoryBackendInterface.h.
1144         * Modules/indexeddb/IDBIndex.cpp: Copied from Source/WebCore/storage/IDBIndex.cpp.
1145         * Modules/indexeddb/IDBIndex.h: Copied from Source/WebCore/storage/IDBIndex.h.
1146         * Modules/indexeddb/IDBIndex.idl: Copied from Source/WebCore/storage/IDBIndex.idl.
1147         * Modules/indexeddb/IDBIndexBackendImpl.cpp: Copied from Source/WebCore/storage/IDBIndexBackendImpl.cpp.
1148         * Modules/indexeddb/IDBIndexBackendImpl.h: Copied from Source/WebCore/storage/IDBIndexBackendImpl.h.
1149         * Modules/indexeddb/IDBIndexBackendInterface.h: Copied from Source/WebCore/storage/IDBIndexBackendInterface.h.
1150         * Modules/indexeddb/IDBKey.cpp: Copied from Source/WebCore/storage/IDBKey.cpp.
1151         * Modules/indexeddb/IDBKey.h: Copied from Source/WebCore/storage/IDBKey.h.
1152         * Modules/indexeddb/IDBKey.idl: Copied from Source/WebCore/storage/IDBKey.idl.
1153         * Modules/indexeddb/IDBKeyPath.cpp: Copied from Source/WebCore/storage/IDBKeyPath.cpp.
1154         * Modules/indexeddb/IDBKeyPath.h: Copied from Source/WebCore/storage/IDBKeyPath.h.
1155         * Modules/indexeddb/IDBKeyPathBackendImpl.cpp: Copied from Source/WebCore/storage/IDBKeyPathBackendImpl.cpp.
1156         * Modules/indexeddb/IDBKeyPathBackendImpl.h: Copied from Source/WebCore/storage/IDBKeyPathBackendImpl.h.
1157         * Modules/indexeddb/IDBKeyRange.cpp: Copied from Source/WebCore/storage/IDBKeyRange.cpp.
1158         * Modules/indexeddb/IDBKeyRange.h: Copied from Source/WebCore/storage/IDBKeyRange.h.
1159         * Modules/indexeddb/IDBKeyRange.idl: Copied from Source/WebCore/storage/IDBKeyRange.idl.
1160         * Modules/indexeddb/IDBLevelDBBackingStore.cpp: Copied from Source/WebCore/storage/IDBLevelDBBackingStore.cpp.
1161         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/storage/IDBLevelDBBackingStore.h.
1162         * Modules/indexeddb/IDBLevelDBCoding.cpp: Copied from Source/WebCore/storage/IDBLevelDBCoding.cpp.
1163         * Modules/indexeddb/IDBLevelDBCoding.h: Copied from Source/WebCore/storage/IDBLevelDBCoding.h.
1164         * Modules/indexeddb/IDBObjectStore.cpp: Copied from Source/WebCore/storage/IDBObjectStore.cpp.
1165         * Modules/indexeddb/IDBObjectStore.h: Copied from Source/WebCore/storage/IDBObjectStore.h.
1166         * Modules/indexeddb/IDBObjectStore.idl: Copied from Source/WebCore/storage/IDBObjectStore.idl.
1167         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Copied from Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp.
1168         * Modules/indexeddb/IDBObjectStoreBackendImpl.h: Copied from Source/WebCore/storage/IDBObjectStoreBackendImpl.h.
1169         * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Copied from Source/WebCore/storage/IDBObjectStoreBackendInterface.h.
1170         * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: Copied from Source/WebCore/storage/IDBPendingTransactionMonitor.cpp.
1171         * Modules/indexeddb/IDBPendingTransactionMonitor.h: Copied from Source/WebCore/storage/IDBPendingTransactionMonitor.h.
1172         * Modules/indexeddb/IDBRequest.cpp: Copied from Source/WebCore/storage/IDBRequest.cpp.
1173         * Modules/indexeddb/IDBRequest.h: Copied from Source/WebCore/storage/IDBRequest.h.
1174         * Modules/indexeddb/IDBRequest.idl: Copied from Source/WebCore/storage/IDBRequest.idl.
1175         * Modules/indexeddb/IDBTracing.h: Copied from Source/WebCore/storage/IDBTracing.h.
1176         * Modules/indexeddb/IDBTransaction.cpp: Copied from Source/WebCore/storage/IDBTransaction.cpp.
1177         * Modules/indexeddb/IDBTransaction.h: Copied from Source/WebCore/storage/IDBTransaction.h.
1178         * Modules/indexeddb/IDBTransaction.idl: Copied from Source/WebCore/storage/IDBTransaction.idl.
1179         * Modules/indexeddb/IDBTransactionBackendImpl.cpp: Copied from Source/WebCore/storage/IDBTransactionBackendImpl.cpp.
1180         * Modules/indexeddb/IDBTransactionBackendImpl.h: Copied from Source/WebCore/storage/IDBTransactionBackendImpl.h.
1181         * Modules/indexeddb/IDBTransactionBackendInterface.h: Copied from Source/WebCore/storage/IDBTransactionBackendInterface.h.
1182         * Modules/indexeddb/IDBTransactionCallbacks.h: Copied from Source/WebCore/storage/IDBTransactionCallbacks.h.
1183         * Modules/indexeddb/IDBTransactionCoordinator.cpp: Copied from Source/WebCore/storage/IDBTransactionCoordinator.cpp.
1184         * Modules/indexeddb/IDBTransactionCoordinator.h: Copied from Source/WebCore/storage/IDBTransactionCoordinator.h.
1185         * Modules/indexeddb/IDBVersionChangeEvent.cpp: Copied from Source/WebCore/storage/IDBVersionChangeEvent.cpp.
1186         * Modules/indexeddb/IDBVersionChangeEvent.h: Copied from Source/WebCore/storage/IDBVersionChangeEvent.h.
1187         * Modules/indexeddb/IDBVersionChangeEvent.idl: Copied from Source/WebCore/storage/IDBVersionChangeEvent.idl.
1188         * Modules/indexeddb/IDBVersionChangeRequest.cpp: Copied from Source/WebCore/storage/IDBVersionChangeRequest.cpp.
1189         * Modules/indexeddb/IDBVersionChangeRequest.h: Copied from Source/WebCore/storage/IDBVersionChangeRequest.h.
1190         * Modules/indexeddb/IDBVersionChangeRequest.idl: Copied from Source/WebCore/storage/IDBVersionChangeRequest.idl.
1191         * Target.pri:
1192         * WebCore.gypi:
1193         * WebCore.vcproj/WebCore.vcproj:
1194         * WebCore.xcodeproj/project.pbxproj:
1195         * storage/IDBAny.cpp: Removed.
1196         * storage/IDBAny.h: Removed.
1197         * storage/IDBAny.idl: Removed.
1198         * storage/IDBBackingStore.h: Removed.
1199         * storage/IDBCallbacks.h: Removed.
1200         * storage/IDBCursor.cpp: Removed.
1201         * storage/IDBCursor.h: Removed.
1202         * storage/IDBCursor.idl: Removed.
1203         * storage/IDBCursorBackendImpl.cpp: Removed.
1204         * storage/IDBCursorBackendImpl.h: Removed.
1205         * storage/IDBCursorBackendInterface.h: Removed.
1206         * storage/IDBCursorWithValue.cpp: Removed.
1207         * storage/IDBCursorWithValue.h: Removed.
1208         * storage/IDBCursorWithValue.idl: Removed.
1209         * storage/IDBDatabase.cpp: Removed.
1210         * storage/IDBDatabase.h: Removed.
1211         * storage/IDBDatabase.idl: Removed.
1212         * storage/IDBDatabaseBackendImpl.cpp: Removed.
1213         * storage/IDBDatabaseBackendImpl.h: Removed.
1214         * storage/IDBDatabaseBackendInterface.h: Removed.
1215         * storage/IDBDatabaseCallbacks.h: Removed.
1216         * storage/IDBDatabaseCallbacksImpl.cpp: Removed.
1217         * storage/IDBDatabaseCallbacksImpl.h: Removed.
1218         * storage/IDBDatabaseError.h: Removed.
1219         * storage/IDBDatabaseError.idl: Removed.
1220         * storage/IDBDatabaseException.cpp: Removed.
1221         * storage/IDBDatabaseException.h: Removed.
1222         * storage/IDBDatabaseException.idl: Removed.
1223         * storage/IDBEventDispatcher.cpp: Removed.
1224         * storage/IDBEventDispatcher.h: Removed.
1225         * storage/IDBFactory.cpp: Removed.
1226         * storage/IDBFactory.h: Removed.
1227         * storage/IDBFactory.idl: Removed.
1228         * storage/IDBFactoryBackendImpl.cpp: Removed.
1229         * storage/IDBFactoryBackendImpl.h: Removed.
1230         * storage/IDBFactoryBackendInterface.cpp: Removed.
1231         * storage/IDBFactoryBackendInterface.h: Removed.
1232         * storage/IDBIndex.cpp: Removed.
1233         * storage/IDBIndex.h: Removed.
1234         * storage/IDBIndex.idl: Removed.
1235         * storage/IDBIndexBackendImpl.cpp: Removed.
1236         * storage/IDBIndexBackendImpl.h: Removed.
1237         * storage/IDBIndexBackendInterface.h: Removed.
1238         * storage/IDBKey.cpp: Removed.
1239         * storage/IDBKey.h: Removed.
1240         * storage/IDBKey.idl: Removed.
1241         * storage/IDBKeyPath.cpp: Removed.
1242         * storage/IDBKeyPath.h: Removed.
1243         * storage/IDBKeyPathBackendImpl.cpp: Removed.
1244         * storage/IDBKeyPathBackendImpl.h: Removed.
1245         * storage/IDBKeyRange.cpp: Removed.
1246         * storage/IDBKeyRange.h: Removed.
1247         * storage/IDBKeyRange.idl: Removed.
1248         * storage/IDBLevelDBBackingStore.cpp: Removed.
1249         * storage/IDBLevelDBBackingStore.h: Removed.
1250         * storage/IDBLevelDBCoding.cpp: Removed.
1251         * storage/IDBLevelDBCoding.h: Removed.
1252         * storage/IDBObjectStore.cpp: Removed.
1253         * storage/IDBObjectStore.h: Removed.
1254         * storage/IDBObjectStore.idl: Removed.
1255         * storage/IDBObjectStoreBackendImpl.cpp: Removed.
1256         * storage/IDBObjectStoreBackendImpl.h: Removed.
1257         * storage/IDBObjectStoreBackendInterface.h: Removed.
1258         * storage/IDBPendingTransactionMonitor.cpp: Removed.
1259         * storage/IDBPendingTransactionMonitor.h: Removed.
1260         * storage/IDBRequest.cpp: Removed.
1261         * storage/IDBRequest.h: Removed.
1262         * storage/IDBRequest.idl: Removed.
1263         * storage/IDBTracing.h: Removed.
1264         * storage/IDBTransaction.cpp: Removed.
1265         * storage/IDBTransaction.h: Removed.
1266         * storage/IDBTransaction.idl: Removed.
1267         * storage/IDBTransactionBackendImpl.cpp: Removed.
1268         * storage/IDBTransactionBackendImpl.h: Removed.
1269         * storage/IDBTransactionBackendInterface.h: Removed.
1270         * storage/IDBTransactionCallbacks.h: Removed.
1271         * storage/IDBTransactionCoordinator.cpp: Removed.
1272         * storage/IDBTransactionCoordinator.h: Removed.
1273         * storage/IDBVersionChangeEvent.cpp: Removed.
1274         * storage/IDBVersionChangeEvent.h: Removed.
1275         * storage/IDBVersionChangeEvent.idl: Removed.
1276         * storage/IDBVersionChangeRequest.cpp: Removed.
1277         * storage/IDBVersionChangeRequest.h: Removed.
1278         * storage/IDBVersionChangeRequest.idl: Removed.
1279
1280 2012-03-01  Luke Macpherson   <macpherson@chromium.org>
1281
1282         Handle CSSPropertyWebkitBorderFit in CSSStyleApplyProperty.
1283         https://bugs.webkit.org/show_bug.cgi?id=79998
1284
1285         Reviewed by Andreas Kling.
1286
1287         No new tests / refactoring only.
1288
1289         * css/CSSStyleApplyProperty.cpp:
1290         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1291         * css/CSSStyleSelector.cpp:
1292         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1293
1294 2012-03-01  Anders Carlsson  <andersca@apple.com>
1295
1296         Crash when doing repeated double-tap-to-zoom gesture on apple startpage
1297         https://bugs.webkit.org/show_bug.cgi?id=80081
1298         <rdar://problem/10966391>
1299
1300         Reviewed by Sam Weinig.
1301
1302         Setting the contents scale on the tile cache layer was creating a WebTileCacheLayer presentation layer copy with a null _tileCache.
1303
1304         Implement -[WebTileCacheLayer actionForKey:] and have it always return nil so we'll avoid implicit animations, and thus creating presentation layers.
1305
1306         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1307         (-[WebTileCacheLayer initWithLayer:]):
1308         Implement this and assert that it's never reached. We should never create presentation layers since we don't animate this layer.
1309
1310         (-[WebTileCacheLayer actionForKey:]):
1311         Implement this and always return nil.
1312
1313 2012-03-01  Hajime Morrita  <morrita@chromium.org>
1314
1315         Custom scrollbars do not support transparency
1316         https://bugs.webkit.org/show_bug.cgi?id=50547
1317
1318         Reviewed by James Robinson.
1319
1320         RenderScrollbar, which is used even for outermost frame when
1321         -webkit-scrollbar is specified, assumes that its background is
1322         painted by the enclosing container. But there is no such container
1323         for outermost frame. This causes visual glitches when the
1324         scrollbar has transparency.
1325
1326         This change clears background region for custom
1327         outermostscrollbars to erase such glitches.
1328
1329         Test: fast/frames/transparent-scrollbar.html
1330
1331         * page/FrameView.cpp:
1332         (WebCore::FrameView::paintScrollbar): The background is cleared here.
1333         (WebCore):
1334         * page/FrameView.h:
1335         (FrameView):
1336         * platform/ScrollView.cpp:
1337         (WebCore::ScrollView::paintScrollbar): Added to hook in FrameView
1338         (WebCore):
1339         (WebCore::ScrollView::paintScrollbars):
1340         * platform/ScrollView.h:
1341         (ScrollView):
1342
1343 2012-03-01  Kent Tamura  <tkent@chromium.org>
1344
1345         REGRESSION(r106388): Form state is restored to a wrong document.
1346         https://bugs.webkit.org/show_bug.cgi?id=79206
1347
1348         Reviewed by Brady Eidson.
1349
1350         In some cases, the URL of the current HistoryItem and the document
1351         URL are mismatched.
1352         A form state should be restored only if the document was loaded
1353         with a HistoryItem and the document is not loaded as a
1354         redirection.
1355
1356         Test: fast/loader/form-state-restore-with-locked-back-forward-list.html
1357
1358         * loader/FrameLoader.cpp:
1359         (WebCore::FrameLoader::checkCompleted): Clear m_requestedHistoryItem.
1360         (WebCore::FrameLoader::loadItem):
1361         Save the requested HistoryItem for didLoadWithLodItem().
1362         * loader/FrameLoader.h:
1363         (WebCore::FrameLoader::requestedHistoryItem):
1364         Added. Accessor for m_requestedHistoryItem.
1365         * loader/HistoryController.cpp:
1366         (WebCore::HistoryController::restoreDocumentState):
1367         Restore a form state only if the current document was loaded with
1368         FrameLoader::loadItem() and not redirection.
1369
1370 2012-03-01  Xingnan Wang  <xingnan.wang@intel.com>
1371
1372         SSE optimization for vsvesq and vmaxmgv
1373         https://bugs.webkit.org/show_bug.cgi?id=77950
1374
1375         Reviewed by Chris Rogers.
1376
1377         Achieved the performance of 3.7x on vsvesq and 4.1x on vmaxmgv.
1378
1379         * platform/audio/VectorMath.cpp:
1380         (WebCore::VectorMath::vsvesq):
1381         (WebCore::VectorMath::vmaxmgv):
1382
1383 2012-03-01  Luke Macpherson   <macpherson@chromium.org>
1384
1385         Handle CSSPropertyBoxSizing in CSSStyleApplyProperty.
1386         https://bugs.webkit.org/show_bug.cgi?id=80001
1387
1388         Reviewed by Andreas Kling.
1389
1390         No new tests / refactoring only.
1391
1392         * css/CSSStyleApplyProperty.cpp:
1393         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1394         * css/CSSStyleSelector.cpp:
1395         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1396
1397 2012-03-01  James Robinson  <jamesr@chromium.org>
1398
1399         [chromium] LayerChromium::contentChanged is redundant with setNeedsDisplay
1400         https://bugs.webkit.org/show_bug.cgi?id=79708
1401
1402         Reviewed by Adrienne Walker.
1403
1404         Some layer types need special handling when they receive damage. WebGL layers need to know if their texture is
1405         updated for clear-on-swap behavior and both WebGL and canvas 2d layers have rate limiting mechanisms tied to
1406         receiving invalidations. This mechanism was implemented by LayerChromium::contentChanged(), but this is
1407         redundant with setNeedsDisplay().
1408
1409         Covered by existing tests.
1410
1411         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1412         (WebCore::Canvas2DLayerChromium::setNeedsDisplay):
1413         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1414         (Canvas2DLayerChromium):
1415         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1416         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
1417         * platform/graphics/chromium/LayerChromium.cpp:
1418         (WebCore::LayerChromium::setNeedsDisplay):
1419         * platform/graphics/chromium/LayerChromium.h:
1420         (LayerChromium):
1421         * platform/graphics/chromium/VideoLayerChromium.cpp:
1422         (WebCore::VideoLayerChromium::setNeedsDisplay):
1423         * platform/graphics/chromium/VideoLayerChromium.h:
1424         (VideoLayerChromium):
1425         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1426         (WebCore::WebGLLayerChromium::setNeedsDisplay):
1427         * platform/graphics/chromium/WebGLLayerChromium.h:
1428         (WebGLLayerChromium):
1429
1430 2012-03-01  James Robinson  <jamesr@chromium.org>
1431
1432         [chromium] Rename LayerChromium::name to debugName to be more consistent with other debug properties, make threadsafe
1433         https://bugs.webkit.org/show_bug.cgi?id=79723
1434
1435         Reviewed by Adrienne Walker.
1436
1437         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1438         (WebCore::GraphicsLayerChromium::updateNames):
1439         * platform/graphics/chromium/LayerChromium.cpp:
1440         (WebCore::LayerChromium::pushPropertiesTo):
1441         (WebCore::LayerChromium::setDebugName):
1442         (WebCore):
1443         * platform/graphics/chromium/LayerChromium.h:
1444         (LayerChromium):
1445         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1446         (WebCore::CCLayerImpl::dumpLayer):
1447         * platform/graphics/chromium/cc/CCLayerImpl.h:
1448         (CCLayerImpl):
1449         (WebCore::CCLayerImpl::setDebugName):
1450         (WebCore::CCLayerImpl::debugName):
1451         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1452         (WebCore::CCRenderSurface::name):
1453
1454 2012-03-01  Adam Barth  <abarth@webkit.org>
1455
1456         Remove last ENABLED(INDEXED_DATABASE) ifdef from WebCore proper
1457         https://bugs.webkit.org/show_bug.cgi?id=80061
1458
1459         Reviewed by Dimitri Glazkov.
1460
1461         This patch removes the last ENABLED(INDEXED_DATABASE) ifdef from
1462         WebCore proper by moving the backend factory out of PageGroup and into
1463         a supplement for PageGroup.  After this patch, we're ready to move the
1464         IDB code into Modules.
1465
1466         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
1467         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
1468         * WebCore.gypi:
1469         * inspector/InspectorIndexedDBAgent.cpp:
1470         (WebCore::assertIDBFactory):
1471         * page/PageGroup.cpp:
1472         (WebCore):
1473         * page/PageGroup.h:
1474         (PageGroup):
1475
1476 2012-03-01  Dale Curtis  <dalecurtis@chromium.org>
1477
1478         Remove deprecated FFmpeg build directories.
1479         https://bugs.webkit.org/show_bug.cgi?id=79282
1480
1481         We've switched the layout of the FFmpeg repo in Chrome and these paths
1482         are no longer needed or valid.
1483
1484         Reviewed by Dirk Pranke.
1485
1486         No new tests. It either compiles or not.
1487
1488         * WebCore.gyp/WebCore.gyp:
1489
1490 2012-03-01  Xingnan Wang  <xingnan.wang@intel.com>
1491
1492         Enable IPP for Biquad filter
1493         https://bugs.webkit.org/show_bug.cgi?id=77509
1494
1495         Reviewed by Chris Rogers.
1496
1497         Use IIR filter in IPP and improve ~27% performance in linux.
1498         Changes are covered by current tests.
1499
1500         * platform/audio/Biquad.cpp:
1501         (WebCore::Biquad::Biquad):
1502         (WebCore::Biquad::~Biquad):
1503         (WebCore):
1504         (WebCore::Biquad::process):
1505         (WebCore::Biquad::reset):
1506         (WebCore::Biquad::setLowpassParams):
1507         (WebCore::Biquad::setHighpassParams):
1508         (WebCore::Biquad::setNormalizedCoefficients):
1509         (WebCore::Biquad::setZeroPolePairs):
1510         * platform/audio/Biquad.h:
1511         (Biquad):
1512
1513 2012-03-01  Peter Kotwicz  <pkotwicz@google.com>
1514
1515         Decouple scrollbar painting from Scrollbar object
1516         https://bugs.webkit.org/show_bug.cgi?id=78028
1517
1518         Reviewed by James Robinson.
1519
1520         Added interface ScrollbarThemeClient which Scrollbar inherits from.
1521         This allows painting via ScrollbarTheme with a proxy to a Scrollbar
1522         object.
1523
1524         * GNUmakefile.list.am:
1525         * Target.pri:
1526         * WebCore.gypi:
1527         * WebCore.vcproj/WebCore.vcproj:
1528         * WebCore.xcodeproj/project.pbxproj:
1529         * platform/Scrollbar.cpp:
1530         (WebCore::Scrollbar::scrollbarOverlayStyle):
1531         (WebCore):
1532         (WebCore::Scrollbar::getTickmarks):
1533         (WebCore::Scrollbar::isScrollableAreaActive):
1534         (WebCore::Scrollbar::isScrollViewScrollbar):
1535         (WebCore::Scrollbar::setFrameRect):
1536         * platform/Scrollbar.h:
1537         (Scrollbar):
1538         (WebCore::Scrollbar::x):
1539         (WebCore::Scrollbar::y):
1540         (WebCore::Scrollbar::width):
1541         (WebCore::Scrollbar::height):
1542         (WebCore::Scrollbar::size):
1543         (WebCore::Scrollbar::location):
1544         (WebCore::Scrollbar::parent):
1545         (WebCore::Scrollbar::root):
1546         (WebCore::Scrollbar::frameRect):
1547         (WebCore::Scrollbar::invalidate):
1548         (WebCore::Scrollbar::convertFromContainingWindow):
1549         (WebCore::Scrollbar::isCustomScrollbar):
1550         (WebCore::Scrollbar::orientation):
1551         (WebCore::Scrollbar::value):
1552         (WebCore::Scrollbar::currentPos):
1553         (WebCore::Scrollbar::visibleSize):
1554         (WebCore::Scrollbar::totalSize):
1555         (WebCore::Scrollbar::maximum):
1556         (WebCore::Scrollbar::controlSize):
1557         (WebCore::Scrollbar::lineStep):
1558         (WebCore::Scrollbar::pageStep):
1559         (WebCore::Scrollbar::pressedPart):
1560         (WebCore::Scrollbar::hoveredPart):
1561         (WebCore::Scrollbar::styleChanged):
1562         (WebCore::Scrollbar::enabled):
1563         * platform/ScrollbarTheme.h:
1564         (WebCore):
1565         (WebCore::ScrollbarTheme::updateEnabledState):
1566         (WebCore::ScrollbarTheme::paint):
1567         (WebCore::ScrollbarTheme::hitTest):
1568         (WebCore::ScrollbarTheme::updateScrollbarOverlayStyle):
1569         (WebCore::ScrollbarTheme::invalidateParts):
1570         (WebCore::ScrollbarTheme::invalidatePart):
1571         (WebCore::ScrollbarTheme::shouldCenterOnThumb):
1572         (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
1573         (WebCore::ScrollbarTheme::shouldDragDocumentInsteadOfThumb):
1574         (WebCore::ScrollbarTheme::thumbPosition):
1575         (WebCore::ScrollbarTheme::thumbLength):
1576         (WebCore::ScrollbarTheme::trackPosition):
1577         (WebCore::ScrollbarTheme::trackLength):
1578         (WebCore::ScrollbarTheme::registerScrollbar):
1579         (WebCore::ScrollbarTheme::unregisterScrollbar):
1580         * platform/ScrollbarThemeClient.h: Added.
1581         (WebCore):
1582         (ScrollbarThemeClient):
1583         (WebCore::ScrollbarThemeClient::~ScrollbarThemeClient):
1584         * platform/ScrollbarThemeComposite.cpp:
1585         (WebCore::ScrollbarThemeComposite::paint):
1586         (WebCore::ScrollbarThemeComposite::hitTest):
1587         (WebCore::ScrollbarThemeComposite::invalidatePart):
1588         (WebCore::ScrollbarThemeComposite::splitTrack):
1589         (WebCore::usedTotalSize):
1590         (WebCore::ScrollbarThemeComposite::thumbPosition):
1591         (WebCore::ScrollbarThemeComposite::thumbLength):
1592         (WebCore::ScrollbarThemeComposite::minimumThumbLength):
1593         (WebCore::ScrollbarThemeComposite::trackPosition):
1594         (WebCore::ScrollbarThemeComposite::trackLength):
1595         * platform/ScrollbarThemeComposite.h:
1596         (ScrollbarThemeComposite):
1597         (WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
1598         (WebCore::ScrollbarThemeComposite::paintTrackBackground):
1599         (WebCore::ScrollbarThemeComposite::paintTrackPiece):
1600         (WebCore::ScrollbarThemeComposite::paintButton):
1601         (WebCore::ScrollbarThemeComposite::paintThumb):
1602         (WebCore::ScrollbarThemeComposite::paintTickmarks):
1603         (WebCore::ScrollbarThemeComposite::constrainTrackRectToTrackPieces):
1604         * platform/chromium/ScrollbarThemeChromium.cpp:
1605         (WebCore::ScrollbarThemeChromium::hasThumb):
1606         (WebCore::ScrollbarThemeChromium::backButtonRect):
1607         (WebCore::ScrollbarThemeChromium::forwardButtonRect):
1608         (WebCore::ScrollbarThemeChromium::trackRect):
1609         (WebCore::ScrollbarThemeChromium::paintTrackBackground):
1610         (WebCore::ScrollbarThemeChromium::paintTickmarks):
1611         * platform/chromium/ScrollbarThemeChromium.h:
1612         (WebCore::ScrollbarThemeChromium::hasButtons):
1613         (ScrollbarThemeChromium):
1614         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
1615         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
1616         (WebCore::ScrollbarThemeChromiumAndroid::shouldCenterOnThumb):
1617         (WebCore::ScrollbarThemeChromiumAndroid::buttonSize):
1618         (WebCore::ScrollbarThemeChromiumAndroid::minimumThumbLength):
1619         * platform/chromium/ScrollbarThemeChromiumAndroid.h:
1620         (ScrollbarThemeChromiumAndroid):
1621         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
1622         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
1623         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
1624         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
1625         (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
1626         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
1627         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
1628         * platform/chromium/ScrollbarThemeChromiumLinux.h:
1629         (ScrollbarThemeChromiumLinux):
1630         * platform/chromium/ScrollbarThemeChromiumMac.h:
1631         (ScrollbarThemeChromiumMac):
1632         * platform/chromium/ScrollbarThemeChromiumMac.mm:
1633         (WebCore::scrollbarStateToThemeState):
1634         (WebCore::ScrollbarThemeChromiumMac::paint):
1635         (WebCore::ScrollbarThemeChromiumMac::paintGivenTickmarks):
1636         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
1637         (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
1638         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
1639         (WebCore::ScrollbarThemeChromiumWin::paintButton):
1640         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
1641         (WebCore::ScrollbarThemeChromiumWin::getThemeState):
1642         (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
1643         (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
1644         (WebCore::ScrollbarThemeChromiumWin::shouldCenterOnThumb):
1645         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
1646         * platform/chromium/ScrollbarThemeChromiumWin.h:
1647         (ScrollbarThemeChromiumWin):
1648         * platform/efl/ScrollbarThemeEfl.cpp:
1649         (WebCore::ScrollbarThemeEfl::registerScrollbar):
1650         (WebCore::ScrollbarThemeEfl::unregisterScrollbar):
1651         * platform/efl/ScrollbarThemeEfl.h:
1652         (ScrollbarThemeEfl):
1653         * platform/gtk/ScrollbarThemeGtk.cpp:
1654         (WebCore):
1655         (WebCore::ScrollbarThemeGtk::registerScrollbar):
1656         (WebCore::ScrollbarThemeGtk::unregisterScrollbar):
1657         (WebCore::ScrollbarThemeGtk::updateScrollbarsFrameThickness):
1658         (WebCore::ScrollbarThemeGtk::hasThumb):
1659         (WebCore::ScrollbarThemeGtk::backButtonRect):
1660         (WebCore::ScrollbarThemeGtk::forwardButtonRect):
1661         (WebCore::ScrollbarThemeGtk::trackRect):
1662         (WebCore::ScrollbarThemeGtk::thumbRect):
1663         (WebCore::ScrollbarThemeGtk::paint):
1664         (WebCore::ScrollbarThemeGtk::shouldCenterOnThumb):
1665         (WebCore::ScrollbarThemeGtk::buttonSize):
1666         (WebCore::ScrollbarThemeGtk::minimumThumbLength):
1667         * platform/gtk/ScrollbarThemeGtk.h:
1668         (WebCore::ScrollbarThemeGtk::hasButtons):
1669         (ScrollbarThemeGtk):
1670         * platform/gtk/ScrollbarThemeGtk2.cpp:
1671         (WebCore::getWidgetForScrollbar):
1672         (WebCore::ScrollbarThemeGtk::paintTrackBackground):
1673         (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
1674         (WebCore::ScrollbarThemeGtk::paintThumb):
1675         (WebCore::ScrollbarThemeGtk::paintButton):
1676         * platform/gtk/ScrollbarThemeGtk3.cpp:
1677         (WebCore::ScrollbarThemeGtk::paintTrackBackground):
1678         (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
1679         (WebCore::ScrollbarThemeGtk::paintThumb):
1680         (WebCore::ScrollbarThemeGtk::paintButton):
1681         * platform/mac/ScrollbarThemeMac.h:
1682         (ScrollbarThemeMac):
1683         * platform/mac/ScrollbarThemeMac.mm:
1684         (WebCore):
1685         (WebCore::ScrollbarThemeMac::registerScrollbar):
1686         (WebCore::ScrollbarThemeMac::unregisterScrollbar):
1687         (WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
1688         (WebCore::ScrollbarThemeMac::painterForScrollbar):
1689         (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
1690         (WebCore::ScrollbarThemeMac::hasButtons):
1691         (WebCore::ScrollbarThemeMac::hasThumb):
1692         (WebCore::ScrollbarThemeMac::backButtonRect):
1693         (WebCore::ScrollbarThemeMac::forwardButtonRect):
1694         (WebCore::ScrollbarThemeMac::trackRect):
1695         (WebCore::ScrollbarThemeMac::minimumThumbLength):
1696         (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
1697         (WebCore::ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb):
1698         (WebCore::ScrollbarThemeMac::updateEnabledState):
1699         (WebCore::ScrollbarThemeMac::paint):
1700         * platform/mock/ScrollbarThemeMock.cpp:
1701         (WebCore::ScrollbarThemeMock::trackRect):
1702         (WebCore::ScrollbarThemeMock::paintTrackBackground):
1703         (WebCore::ScrollbarThemeMock::paintThumb):
1704         * platform/mock/ScrollbarThemeMock.h:
1705         (WebCore::ScrollbarThemeMock::hasButtons):
1706         (WebCore::ScrollbarThemeMock::hasThumb):
1707         (WebCore::ScrollbarThemeMock::backButtonRect):
1708         (WebCore::ScrollbarThemeMock::forwardButtonRect):
1709         (ScrollbarThemeMock):
1710         * platform/qt/ScrollbarThemeQt.cpp:
1711         (WebCore::styleOptionSlider):
1712         (WebCore::ScrollbarThemeQt::paint):
1713         (WebCore::ScrollbarThemeQt::hitTest):
1714         (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
1715         (WebCore::ScrollbarThemeQt::invalidatePart):
1716         (WebCore::ScrollbarThemeQt::thumbPosition):
1717         (WebCore::ScrollbarThemeQt::thumbLength):
1718         (WebCore::ScrollbarThemeQt::trackPosition):
1719         (WebCore::ScrollbarThemeQt::trackLength):
1720         * platform/qt/ScrollbarThemeQt.h:
1721         (ScrollbarThemeQt):
1722         * platform/win/ScrollbarThemeSafari.cpp:
1723         (WebCore::ScrollbarThemeSafari::hasButtons):
1724         (WebCore::ScrollbarThemeSafari::hasThumb):
1725         (WebCore::ScrollbarThemeSafari::backButtonRect):
1726         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
1727         (WebCore::ScrollbarThemeSafari::trackRect):
1728         (WebCore::ScrollbarThemeSafari::minimumThumbLength):
1729         (WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
1730         (WebCore::ScrollbarThemeSafari::paintTrackBackground):
1731         (WebCore::ScrollbarThemeSafari::paintButton):
1732         (WebCore::ScrollbarThemeSafari::paintThumb):
1733         * platform/win/ScrollbarThemeSafari.h:
1734         (ScrollbarThemeSafari):
1735         * platform/win/ScrollbarThemeWin.cpp:
1736         (WebCore::ScrollbarThemeWin::hasThumb):
1737         (WebCore::ScrollbarThemeWin::backButtonRect):
1738         (WebCore::ScrollbarThemeWin::forwardButtonRect):
1739         (WebCore::ScrollbarThemeWin::trackRect):
1740         (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
1741         (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
1742         (WebCore::ScrollbarThemeWin::paintTrackBackground):
1743         (WebCore::ScrollbarThemeWin::paintTrackPiece):
1744         (WebCore::ScrollbarThemeWin::paintButton):
1745         (WebCore::paintGripper):
1746         (WebCore::ScrollbarThemeWin::paintThumb):
1747         * platform/win/ScrollbarThemeWin.h:
1748         (WebCore::ScrollbarThemeWin::hasButtons):
1749         (ScrollbarThemeWin):
1750         * platform/wx/ScrollbarThemeWx.cpp:
1751         (WebCore::ScrollbarThemeWx::hasThumb):
1752         (WebCore::ScrollbarThemeWx::minimumThumbLength):
1753         (WebCore::ScrollbarThemeWx::buttonSize):
1754         (WebCore::ScrollbarThemeWx::splitTrack):
1755         (WebCore::ScrollbarThemeWx::backButtonRect):
1756         (WebCore::ScrollbarThemeWx::forwardButtonRect):
1757         (WebCore::ScrollbarThemeWx::trackRect):
1758         (WebCore::ScrollbarThemeWx::paint):
1759         * platform/wx/ScrollbarThemeWx.h:
1760         (ScrollbarThemeWx):
1761         (WebCore::ScrollbarThemeWx::hasButtons):
1762         * rendering/RenderScrollbar.h:
1763         (WebCore::toRenderScrollbar):
1764         * rendering/RenderScrollbarTheme.cpp:
1765         (WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
1766         (WebCore::RenderScrollbarTheme::hasButtons):
1767         (WebCore::RenderScrollbarTheme::hasThumb):
1768         (WebCore::RenderScrollbarTheme::minimumThumbLength):
1769         (WebCore::RenderScrollbarTheme::backButtonRect):
1770         (WebCore::RenderScrollbarTheme::forwardButtonRect):
1771         (WebCore::RenderScrollbarTheme::trackRect):
1772         (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
1773         (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
1774         (WebCore::RenderScrollbarTheme::paintTrackBackground):
1775         (WebCore::RenderScrollbarTheme::paintTrackPiece):
1776         (WebCore::RenderScrollbarTheme::paintButton):
1777         (WebCore::RenderScrollbarTheme::paintThumb):
1778         * rendering/RenderScrollbarTheme.h:
1779         (WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
1780         (WebCore::RenderScrollbarTheme::registerScrollbar):
1781         (WebCore::RenderScrollbarTheme::unregisterScrollbar):
1782         (RenderScrollbarTheme):
1783
1784 2012-03-01  Luke Macpherson   <macpherson@chromium.org>
1785
1786         Implement CSSPropertyImageRendering in CSSStyleApplyProperty.
1787         https://bugs.webkit.org/show_bug.cgi?id=79855
1788
1789         Reviewed by Eric Seidel.
1790
1791         No new tests / refactoring only.
1792
1793         * css/CSSStyleApplyProperty.cpp:
1794         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1795         * css/CSSStyleSelector.cpp:
1796         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1797
1798 2012-03-01  Alok Priyadarshi  <alokp@chromium.org>
1799
1800         [chromium] Partial texture updates not happening with accelerated painting path
1801         https://bugs.webkit.org/show_bug.cgi?id=80040
1802
1803         Reviewed by James Robinson.
1804
1805         The order of y-flip and clip-rect was opposite of what it should be.
1806         The clip rect was not properly transformed to account for y-flip and hence clipping everything.  
1807
1808         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
1809         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
1810
1811 2012-03-01  Alexey Proskuryakov  <ap@apple.com>
1812
1813         FileReader read speed is way too low
1814         https://bugs.webkit.org/show_bug.cgi?id=77272
1815
1816         Reviewed by Oliver Hunt.
1817
1818         This brings performance to reasonable range, but certainly doesn't exhaust improvement opportunities.
1819
1820         * platform/network/BlobResourceHandle.cpp: Use a more appropriate block size. Performing
1821         cross-thread messaging for every 1024 bytes is slow.
1822
1823 2012-03-01  Dan Bernstein  <mitz@apple.com>
1824
1825         ScrollView::setFrameRect() calls contentsResized() even when the frame size is unchanged
1826         https://bugs.webkit.org/show_bug.cgi?id=80047
1827
1828         Reviewed by Anders Carlsson.
1829
1830         * platform/ScrollView.cpp:
1831         (WebCore::ScrollView::setFrameRect): Added a check that the new frame size differs from the
1832         old one before calling contentsResized().
1833
1834 2012-03-01  James Robinson  <jamesr@chromium.org>
1835
1836         [chromium] Move pageScaleDirty logic from LayerChromium to GraphicsLayerChromium
1837         https://bugs.webkit.org/show_bug.cgi?id=79714
1838
1839         Reviewed by Adrienne Walker.
1840
1841         When the page scale changes on a composited layer we need to invalidate all of the contents on the layer in
1842         order to repaint them at the new scale. The sequence of calls we get make this a bit tricky, since we first
1843         receive a page scale changed notification and then receive the new layer bounds. The solution is to defer the
1844         invalidation until we have the new layer bounds, which landed in r99774.
1845
1846         This moves that logic from LayerChromium into GraphicsLayerChromium since IMO this is pretty particular to the
1847         way WebCore is passing us invalidations and not something fundamental to the compositor.
1848
1849         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1850         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
1851         (WebCore::GraphicsLayerChromium::setSize):
1852         (WebCore::GraphicsLayerChromium::deviceOrPageScaleFactorChanged):
1853         * platform/graphics/chromium/GraphicsLayerChromium.h:
1854         * platform/graphics/chromium/LayerChromium.cpp:
1855         (WebCore::LayerChromium::LayerChromium):
1856         (WebCore::LayerChromium::setBounds):
1857         * platform/graphics/chromium/LayerChromium.h:
1858         (LayerChromium):
1859
1860 2012-03-01  Joe Thomas  <joethomas@motorola.com>
1861
1862         :empty still applies to elements made non-empty via page dynamics.
1863         https://bugs.webkit.org/show_bug.cgi?id=79734
1864
1865         Check for :empty style change should be made even if the RenderStyle for the element is NULL
1866         as changes to the element's children can trigger a change in :empty state of the parent element.
1867
1868         Reviewed by Antti Koivisto.
1869
1870         Test: fast/selectors/empty-element-made-non-empty.html
1871
1872         * dom/Element.cpp:
1873         (WebCore::checkForSiblingStyleChanges):
1874
1875 2012-02-29  Nat Duca  <nduca@chromium.org>
1876
1877         [chromium] Move context lost control code from CCSingleThreadProxy to CCLayerTreeHost
1878         https://bugs.webkit.org/show_bug.cgi?id=79964
1879
1880         Reviewed by James Robinson.
1881
1882         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1883         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1884         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
1885         (WebCore::CCLayerTreeHost::recreateContext):
1886         (WebCore::CCLayerTreeHost::createContext):
1887         (WebCore::CCLayerTreeHost::didLoseContext):
1888         (WebCore::CCLayerTreeHost::compositeAndReadback):
1889         (WebCore::CCLayerTreeHost::loseContext):
1890         (WebCore::CCLayerTreeHost::updateLayers):
1891         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1892         (CCLayerTreeHostClient):
1893         (CCLayerTreeHost):
1894         * platform/graphics/chromium/cc/CCProxy.h:
1895         (CCProxy):
1896         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1897         (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
1898         (WebCore::CCSingleThreadProxy::compositeAndReadback):
1899         (WebCore::CCSingleThreadProxy::initializeContext):
1900         (WebCore::CCSingleThreadProxy::recreateContext):
1901         (WebCore):
1902         (WebCore::CCSingleThreadProxy::loseContext):
1903         (WebCore::CCSingleThreadProxy::compositeImmediately):
1904         (WebCore::CCSingleThreadProxy::doComposite):
1905         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1906         (CCSingleThreadProxy):
1907         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1908         (WebCore::CCThreadProxy::initializeContext):
1909         (WebCore::CCThreadProxy::recreateContext):
1910         (WebCore):
1911         (WebCore::CCThreadProxy::loseContext):
1912         * platform/graphics/chromium/cc/CCThreadProxy.h:
1913         (CCThreadProxy):
1914
1915 2012-03-01  Abhishek Arya  <inferno@chromium.org>
1916
1917         Prevent layout root to remain set on renderers getting destroyed.
1918         https://bugs.webkit.org/show_bug.cgi?id=79953
1919
1920         Reviewed by Eric Seidel.
1921
1922         Implement Julien Chaffraix's idea.
1923
1924         * page/FrameView.h:
1925         (WebCore::FrameView::clearLayoutRoot): helper to clear layout root.
1926         * rendering/RenderObject.cpp:
1927         (WebCore::clearLayoutRootIfNeeded): if we know we are going
1928         away and we are the view's layout root, then we need to reset the layout
1929         root to prevent being used.
1930         (WebCore):
1931         (WebCore::RenderObject::willBeDestroyed): call clearLayoutRootIfNeeded at end.
1932
1933 2012-03-01  Kangil Han  <kangil.han@samsung.com>
1934
1935         [DRT] Remove all PlainTextController usages in existing tests by adding internal API
1936         https://bugs.webkit.org/show_bug.cgi?id=78570
1937
1938         Reviewed by Hajime Morita.
1939
1940         This patch will remove all PlainTextController usages
1941         in existing DRT tests by adding internal API to WebCore/testing/Internals
1942
1943         Changed editing/text-iterator/script-tests/basic-iteration.js to use internals.rangeAsText
1944
1945         * testing/Internals.cpp:
1946         (WebCore::Internals::rangeAsText):
1947         (WebCore):
1948         * testing/Internals.h:
1949         (Internals):
1950         * testing/Internals.idl:
1951
1952 2012-03-01  Adam Barth  <abarth@webkit.org>
1953
1954         DOMWindow shouldn't have any INDEXED_DATABASE ifdefs
1955         https://bugs.webkit.org/show_bug.cgi?id=80013
1956
1957         Reviewed by Kentaro Hara.
1958
1959         Before this patch, DOMWindow still knew about IDB because of the
1960         database factory.  This patch moves the factory to
1961         DOMWindowIndexedDatabase.
1962
1963         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
1964         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
1965         (WebCore::DOMWindowIndexedDatabase::from):
1966         (WebCore):
1967         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
1968         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
1969         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
1970         (DOMWindowIndexedDatabase):
1971         * page/DOMWindow.cpp:
1972         (WebCore::DOMWindow::~DOMWindow):
1973         (WebCore::DOMWindow::clear):
1974         (WebCore):
1975         * page/DOMWindow.h:
1976         (DOMWindow):
1977
1978 2012-03-01  Anders Carlsson  <andersca@apple.com>
1979
1980         Glitchy scrolling on pages where the scroll layer needs to be updated on the main thread
1981         https://bugs.webkit.org/show_bug.cgi?id=80038
1982         <rdar://problem/10933831>
1983
1984         Reviewed by Simon Fraser.
1985
1986         When we need to update the scroll layer position on the main thread, we need to cache the
1987         scroll position we sent to the main thread and assume that that's the correct scroll position.
1988
1989         * page/scrolling/mac/ScrollingTreeNodeMac.h:
1990         (ScrollingTreeNodeMac):
1991         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
1992         (WebCore::ScrollingTreeNodeMac::update):
1993         (WebCore::ScrollingTreeNodeMac::setScrollPosition):
1994         (WebCore::ScrollingTreeNodeMac::scrollPosition):
1995
1996 2012-03-01  Julien Chaffraix  <jchaffraix@webkit.org>
1997
1998         Unreviewed, rolling out r109367.
1999         http://trac.webkit.org/changeset/109367
2000         https://bugs.webkit.org/show_bug.cgi?id=75568
2001
2002         Some tests started to fail in a non obvious way.
2003
2004         * rendering/RenderBlock.cpp:
2005         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
2006         (WebCore::RenderBlock::layoutBlock):
2007         (WebCore::RenderBlock::paint):
2008         (WebCore::RenderBlock::isPointInOverflowControl):
2009         * rendering/RenderBlock.h:
2010         (RenderBlock):
2011         * rendering/RenderBox.cpp:
2012         (WebCore::RenderBox::willBeDestroyed):
2013         (WebCore::RenderBox::styleDidChange):
2014         (WebCore::RenderBox::scrollWidth):
2015         (WebCore::RenderBox::scrollHeight):
2016         (WebCore::RenderBox::scrollLeft):
2017         (WebCore::RenderBox::scrollTop):
2018         (WebCore::RenderBox::setScrollLeft):
2019         (WebCore::RenderBox::setScrollTop):
2020         (WebCore::RenderBox::includeVerticalScrollbarSize):
2021         (WebCore::RenderBox::includeHorizontalScrollbarSize):
2022         (WebCore::RenderBox::scrolledContentOffset):
2023         (WebCore::RenderBox::cachedSizeForOverflowClip):
2024         (WebCore::RenderBox::pushContentsClip):
2025         (WebCore::RenderBox::popContentsClip):
2026         (WebCore::RenderBox::addLayoutOverflow):
2027         * rendering/RenderBox.h:
2028         (RenderBox):
2029         (WebCore):
2030         * rendering/RenderBoxModelObject.cpp:
2031         (WebCore):
2032         (WebCore::RenderBoxModelObject::styleDidChange):
2033         * rendering/RenderBoxModelObject.h:
2034         (WebCore::RenderBoxModelObject::requiresLayer):
2035         (RenderBoxModelObject):
2036         * rendering/RenderDeprecatedFlexibleBox.cpp:
2037         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2038         * rendering/RenderTableRow.h:
2039         (WebCore::RenderTableRow::requiresLayer):
2040
2041 2012-03-01  Kenichi Ishibashi  <bashi@chromium.org>
2042
2043         REGRESSION: Outlook 2007 doesn't display fonts correctly on emails composed by WebKit
2044         https://bugs.webkit.org/show_bug.cgi?id=79448
2045
2046         Reviewed by Ryosuke Niwa.
2047
2048         Don't produce single quotes around face attribute of font elements.
2049
2050         Test: editing/style/font-face-unquote.html
2051
2052         * editing/EditingStyle.cpp:
2053         (WebCore::StyleChange::extractTextStyles): Remove single quotes from m_applyFontFace.
2054
2055 2012-03-01  Beth Dakin  <bdakin@apple.com>
2056
2057         Reviewed by Kevin Decker.
2058
2059         Part of https://bugs.webkit.org/show_bug.cgi?id=79705
2060
2061         Here's some of that tweaking promised in the comment. Adjusting 
2062         gMaximumUnpaintedAreaRatio down a bit.
2063         * page/Page.cpp:
2064         (WebCore):
2065
2066 2012-03-01  Levi Weintraub  <leviw@chromium.org>
2067
2068         Add roundToInt method for LayoutUnits
2069         https://bugs.webkit.org/show_bug.cgi?id=79283
2070
2071         Reviewed by Eric Seidel.
2072
2073         Adding a roundToInt method that rounds a LayoutUnit to the nearest integer. This
2074         only has an effect once we switch to sub-pixel positioning. Points and offsets
2075         are rounded for painting and hit testing.
2076
2077         No new tests. No change in behavior.
2078
2079         * dom/MouseRelatedEvent.cpp:
2080         (WebCore::MouseRelatedEvent::offsetX):
2081         (WebCore::MouseRelatedEvent::offsetY):
2082         * html/shadow/MediaControlElements.cpp:
2083         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
2084         * rendering/LayoutState.cpp:
2085         (WebCore::LayoutState::computeLineGridPaginationOrigin):
2086         * rendering/LayoutTypes.h:
2087         (WebCore::roundToInt): Stub until we switch to sub-pixel LayoutUnits.
2088         (WebCore):
2089         * rendering/RenderBlock.cpp:
2090         (WebCore::RenderBlock::pageLogicalTopForOffset):
2091         * rendering/RenderBlock.h:
2092         (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Correcting to use the
2093         pixel snapped methods on FloatingObjects and removing the fixme.
2094         (WebCore::RenderBlock::pixelSnappedLogicalTopForFloat): Ditto.
2095         (WebCore::RenderBlock::pixelSnappedLogicalBottomForFloat): Ditto.
2096         (WebCore::RenderBlock::pixelSnappedLogicalLeftForFloat): Ditto.
2097         (WebCore::RenderBlock::pixelSnappedLogicalRightForFloat): Ditto.
2098         (WebCore::RenderBlock::pixelSnappedLogicalWidthForFloat): Ditto.
2099         * rendering/RenderBlockLineLayout.cpp:
2100         (WebCore::LineWidth::updateAvailableWidth):
2101         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Using
2102         pixelSnappedLogicalLeft/RightOffsetForLine convenience methods for line layout. When
2103         we switch to sub-pixel positioning, we still pixel snap blocks before painting them,
2104         but text is rendered using floats. We need to ensure the text is laid out using the
2105         actual pixel width of the containing block to avoid bleeding out of the block.
2106         * rendering/RenderBoxModelObject.h: Moving the fixme to pixelSnappedWidth/Height and
2107         adding the necessary rounding for Left/Top.
2108         (WebCore::RenderBoxModelObject::pixelSnappedOffsetLeft):
2109         (WebCore::RenderBoxModelObject::pixelSnappedOffsetTop):
2110         * rendering/RenderLayer.cpp:
2111         (WebCore::RenderLayer::scrollRectToVisible):
2112         * rendering/RenderListBox.cpp:
2113         (WebCore::RenderListBox::scrollHeight): Rounding the height for scrollHeight. Scrolling
2114         always uses rounded values.
2115         * rendering/svg/RenderSVGRoot.cpp:
2116         (WebCore::RenderSVGRoot::localToParentTransform): Similar to the line box tree, since
2117         SVG renders using floats, we need to start with pixel snapped values from the render
2118         tree or we'll end up with the contents not properly aligned to the rest of the page.
2119         * rendering/svg/SVGRenderSupport.cpp:
2120         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
2121
2122 2012-03-01  Pavel Feldman  <pfeldman@chromium.org>
2123
2124         Web Inspector: arrays in object properties sections do not scale.
2125         https://bugs.webkit.org/show_bug.cgi?id=64596
2126
2127         Reviewed by Vsevolod Vlasov.
2128
2129         Test: inspector/console/console-big-array.html
2130
2131         * inspector/front-end/ConsoleMessage.js:
2132         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2133         (WebInspector.ConsoleMessageImpl.prototype._printArray):
2134         * inspector/front-end/ObjectPropertiesSection.js:
2135         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
2136         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
2137         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2138         (WebInspector.ObjectPropertyTreeElement.prototype.startEditing):
2139         (WebInspector.ArrayGroupingTreeElement):
2140         (WebInspector.ArrayGroupingTreeElement.populateAsArray):
2141         (WebInspector.ArrayGroupingTreeElement._populate.appendElement):
2142         (WebInspector.ArrayGroupingTreeElement._populate):
2143         (WebInspector.ArrayGroupingTreeElement.prototype.onpopulate):
2144         * inspector/front-end/RemoteObject.js:
2145         (WebInspector.RemoteObject.prototype.release):
2146         (WebInspector.RemoteObject.prototype.arrayLength):
2147         (WebInspector.LocalJSONObject.prototype.isError):
2148         (WebInspector.LocalJSONObject.prototype.arrayLength):
2149         * inspector/front-end/ScopeChainSidebarPane.js:
2150         (WebInspector.ScopeVariableTreeElement.prototype.get propertyPath):
2151         * inspector/front-end/StylesSidebarPane.js:
2152         (WebInspector.StylePropertyTreeElement.prototype._mouseDown):
2153         * inspector/front-end/inspector.css:
2154         (.console-formatted-object, .console-formatted-node, .console-formatted-array):
2155         (.console-formatted-object .section, .console-formatted-node .section, .console-formatted-array .section):
2156
2157 2012-03-01  Adam Barth  <abarth@webkit.org>
2158
2159         Unreviewed, rolling out r109336.
2160         http://trac.webkit.org/changeset/109336
2161         https://bugs.webkit.org/show_bug.cgi?id=80013
2162
2163         It's causing some crashes
2164
2165         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
2166         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
2167         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
2168         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
2169         (DOMWindowIndexedDatabase):
2170         * page/DOMWindow.cpp:
2171         (WebCore::DOMWindow::~DOMWindow):
2172         (WebCore::DOMWindow::clear):
2173         (WebCore):
2174         (WebCore::DOMWindow::setIDBFactory):
2175         * page/DOMWindow.h:
2176         (DOMWindow):
2177         (WebCore::DOMWindow::idbFactory):
2178
2179 2012-03-01  Tom Sepez  <tsepez@chromium.org>
2180
2181         Move m_frame protector from FrameLoader::changeLocation to FrameLoader::urlSelected
2182         https://bugs.webkit.org/show_bug.cgi?id=79882
2183
2184         Reviewed by Adam Barth.
2185
2186         Test: fast/frames/url-selected-crash.html
2187
2188         * loader/FrameLoader.cpp:
2189         (WebCore::FrameLoader::changeLocation):
2190         (WebCore::FrameLoader::urlSelected):
2191
2192 2012-03-01  Julien Chaffraix  <jchaffraix@webkit.org>
2193
2194         Lazily allocate overflow: hidden layers if we have overflowing content
2195         https://bugs.webkit.org/show_bug.cgi?id=75568
2196
2197         Reviewed by David Hyatt.
2198
2199         Change covered by the existing tests and the tons of rebaselines.
2200
2201         This change makes us lazily allocate our RenderLayer for overflow: hidden layers only.
2202
2203         Apart from saving some memory, it will also speed up the rendering as we don't need to
2204         go through the layer's machinery when painting and hit testing.
2205
2206         On http://dglazkov.github.com/performance-tests/biggrid.html benchmark, this puts the
2207         overflow: hidden case in par with the overflow: visible case when scrolling that is a
2208         very-smooth scrolling vs a jerky one currently (mostly due to the painting speedup).
2209
2210         * rendering/RenderBlock.cpp:
2211         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
2212         Changed this method to update our size cache if needed.
2213
2214         * rendering/RenderBlock.cpp:
2215         (WebCore::RenderBlock::layoutBlock):
2216         (WebCore::RenderBlock::paint):
2217         (WebCore::RenderBlock::isPointInOverflowControl):
2218         * rendering/RenderBlock.h:
2219         (RenderBlock):
2220         * rendering/RenderBox.cpp:
2221         (WebCore::RenderBox::styleDidChange):
2222         (WebCore::RenderBox::scrollWidth):
2223         (WebCore::RenderBox::scrollHeight):
2224         (WebCore::RenderBox::scrollLeft):
2225         (WebCore::RenderBox::scrollTop):
2226         (WebCore::RenderBox::setScrollLeft):
2227         (WebCore::RenderBox::setScrollTop):
2228         (WebCore::RenderBox::includeVerticalScrollbarSize):
2229         (WebCore::RenderBox::includeHorizontalScrollbarSize):
2230         (WebCore::RenderBox::pushContentsClip):
2231         (WebCore::RenderBox::popContentsClip):
2232         (WebCore::RenderBox::addLayoutOverflow):
2233         Added layer() check to the previous call sites.
2234
2235         * rendering/RenderBoxModelObject.cpp:
2236         (WebCore::RenderBoxModelObject::ensureLayer):
2237         Added this function to create and add a new layer.
2238
2239         (WebCore::RenderBoxModelObject::willBeDestroyed):
2240         (WebCore):
2241         (WebCore::RenderBoxModelObject::styleDidChange):
2242         Patched those method to handle updating / removing
2243         cached size entries.
2244
2245         (WebCore::cachedSizeForOverflowClipMap):
2246         (WebCore::RenderBoxModelObject::cachedSizeForOverflowClip):
2247         (WebCore::RenderBoxModelObject::updateCachedSizeForOverflowClip):
2248         (WebCore::RenderBoxModelObject::clearCachedSizeForOverflowClip):
2249         This logic stores the size information for later repainting.
2250         It is in practice replicating what RenderLayer is doing.
2251
2252         * rendering/RenderBoxModelObject.h:
2253         (WebCore::RenderBoxModelObject::requiresLayer):
2254         Updated to call requiresLayerForOverflowClip.
2255
2256         (WebCore::RenderBoxModelObject::requiresLayerForOverflowClip):
2257         Added this method to check if we can lazily allocate the layer.
2258
2259         * rendering/RenderDeprecatedFlexibleBox.cpp:
2260         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2261         Removed some checks as they are part of updateScrollInfoAfterLayout.
2262
2263         * rendering/RenderObject.cpp:
2264         (WebCore::RenderObject::scrolledContentOffset):
2265         Added a layer() check.
2266
2267         * rendering/RenderTableRow.h:
2268         (RenderTableRow):
2269         Added a comment about why we need a layout for table rows.
2270
2271 2012-03-01  Abhishek Arya  <inferno@chromium.org>
2272
2273         Protect functions using two container node function, each of which can fire mutation events.
2274         https://bugs.webkit.org/show_bug.cgi?id=78397
2275
2276         Reviewed by Ryosuke Niwa.
2277
2278         Tests: fast/dom/document-set-title-mutation-crash.html
2279                fast/dom/option-text-mutation-crash.html
2280
2281         * dom/Node.cpp:
2282         (WebCore::Node::setTextContent):
2283         * dom/Text.cpp:
2284         (WebCore::Text::replaceWholeText):
2285         * editing/markup.cpp:
2286         (WebCore::trimFragment):
2287         (WebCore::replaceChildrenWithFragment):
2288         (WebCore::replaceChildrenWithText):
2289         * html/HTMLOptionElement.cpp:
2290         (WebCore::HTMLOptionElement::setText):
2291         * html/HTMLScriptElement.cpp:
2292         (WebCore::HTMLScriptElement::setText):
2293         * html/HTMLTableElement.cpp:
2294         (WebCore::HTMLTableElement::insertRow):
2295         * html/HTMLTextAreaElement.cpp:
2296         (WebCore::HTMLTextAreaElement::setDefaultValue):
2297         * html/HTMLTitleElement.cpp:
2298         (WebCore::HTMLTitleElement::setText):
2299
2300 2012-03-01  Alexey Proskuryakov  <ap@apple.com>
2301
2302         Some trivial file stream cleanup
2303         https://bugs.webkit.org/show_bug.cgi?id=79955
2304
2305         Reviewed by Sam Weinig.
2306
2307         No change in functionality.
2308
2309         * fileapi/FileStreamProxy.cpp: Tweaked comment, and added copyright for earlier changes.
2310
2311         * fileapi/FileStreamProxy.h: Added a FIXME telling that this should be in platform.
2312
2313         * platform/AsyncFileStream.h: Tweaked includes and added a FIXME about this to stop being
2314         a subclass.
2315
2316         * platform/FileStreamClient.h: Removed obvious comments, and added ones explaing in-band
2317         error signals.
2318
2319         * platform/network/BlobResourceHandle.cpp: Removed an include outside of platform, and an
2320         unused constant.
2321
2322 2012-03-01  Shinya Kawanaka  <shinyak@chromium.org>
2323
2324         Appending ShadowRoot into an element should not cause crash.
2325         https://bugs.webkit.org/show_bug.cgi?id=79620
2326
2327         Reviewed by Dimitri Glazkov.
2328
2329         We should treat ShadowRoot as a document fragment.
2330
2331         Test: fast/dom/shadow/shadow-root-append.html
2332
2333         * dom/ContainerNode.cpp:
2334         (WebCore::collectTargetNodes):
2335
2336 2012-03-01  Pavel Podivilov  <podivilov@chromium.org>
2337
2338         Web Inspector: use live location to update console message bubbles.
2339         https://bugs.webkit.org/show_bug.cgi?id=80023
2340
2341         Reviewed by Vsevolod Vlasov.
2342
2343         * inspector/front-end/DebuggerPresentationModel.js:
2344         (WebInspector.DebuggerPresentationModel):
2345         (WebInspector.DebuggerPresentationModel.prototype._uiSourceCodeListChanged):
2346         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
2347         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript.updateLocation):
2348         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
2349         (WebInspector.DebuggerPresentationModel.prototype._addPendingConsoleMessage):
2350         (WebInspector.DebuggerPresentationModel.prototype._addPendingConsoleMessagesToScript):
2351         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
2352         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
2353         (WebInspector.DebuggerPresentationModel.prototype._scriptForURLAndLocation):
2354         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2355         * inspector/front-end/RawSourceCode.js:
2356         (WebInspector.RawSourceCode):
2357
2358 2012-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
2359
2360         Web Inspector: [InspectorIndexedDB] Show tooltips with IndexedDB objects meta information
2361         https://bugs.webkit.org/show_bug.cgi?id=80022
2362
2363         Reviewed by Pavel Feldman.
2364
2365         Added tooltips with meta information for IndexedDB databases, object stores and indexes.
2366         Added keyPath: prefix to key columns in IndexedDB data grid.
2367
2368         * English.lproj/localizedStrings.js:
2369         * inspector/front-end/IndexedDBViews.js:
2370         (WebInspector.IDBDataView.prototype._createDataGrid):
2371         (WebInspector.IDBDataView.prototype._keyPathHeader):
2372         * inspector/front-end/ResourcesPanel.js:
2373         (WebInspector.IDBDatabaseTreeElement.prototype.update):
2374         (WebInspector.IDBDatabaseTreeElement.prototype._updateTooltip):
2375         (WebInspector.IDBObjectStoreTreeElement.prototype.update):
2376         (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
2377         (WebInspector.IDBIndexTreeElement.prototype.update):
2378         (WebInspector.IDBIndexTreeElement.prototype._updateTooltip):
2379
2380 2012-03-01  Pavel Feldman  <pfeldman@google.com>
2381
2382         Web Inspector: hide color picker on Esc and Enter.
2383         https://bugs.webkit.org/show_bug.cgi?id=79915
2384
2385         Reviewed by Vsevolod Vlasov.
2386
2387         * inspector/front-end/Spectrum.js:
2388         (WebInspector.Spectrum.prototype.reposition):
2389         (WebInspector.Spectrum.prototype.hide):
2390         (WebInspector.Spectrum.prototype._onKeyDown):
2391
2392 2012-03-01  Huang Dongsung  <luxtella@company100.net>
2393
2394         [Qt] Fixed incorrect size pixmap creation for a new transparency layer.
2395         https://bugs.webkit.org/show_bug.cgi?id=79658
2396
2397         If QPainter does not have clipping, beginPlatformTransparencyLayer can create
2398         wrong size pixmap, so it causes incorrect rendering.
2399
2400         Reviewed by Simon Hausmann.
2401
2402         * platform/graphics/qt/GraphicsContextQt.cpp:
2403         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2404
2405 2012-03-01  Simon Hausmann  <simon.hausmann@nokia.com>
2406
2407         [Qt] Remove dead style option code.
2408         https://bugs.webkit.org/show_bug.cgi?id=80017
2409
2410         Reviewed by Kenneth Rohde Christiansen.
2411
2412         QtStyleOptionWebComboBox provides functionality (bool multiple()) that
2413         is not called from anywhere (and the base class does not have it as a
2414         virtual function).
2415
2416         * Target.pri:
2417         * platform/qt/QtStyleOptionWebComboBox.h: Removed.
2418         * platform/qt/RenderThemeQStyle.cpp:
2419         (WebCore::RenderThemeQStyle::paintMenuList):
2420         (WebCore::RenderThemeQStyle::paintMenuListButton):
2421
2422 2012-03-01  Stephen Chenney  <schenney@chromium.org>
2423
2424         Crash in WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget
2425         https://bugs.webkit.org/show_bug.cgi?id=79831
2426
2427         Reviewed by Eric Seidel.
2428
2429         Out-of-order operations in the SVGSMILElement::removedFromDocument
2430         method caused its target to be removed and then re-added due to a
2431         later call. This led to the target being set on the animation while
2432         the target element itself was unaware. At deletion time, this caused a
2433         crash (or assert in debug builds). Thanks to Abhishek Arya for help
2434         with the layout test.
2435
2436         Test: svg/animations/smil-element-target-crash-main.html
2437
2438         * svg/animation/SVGSMILElement.cpp:
2439         (WebCore::SVGSMILElement::removedFromDocument):
2440
2441 2012-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
2442
2443         Web Inspector: move heap snapshot nodes data to external array.
2444         https://bugs.webkit.org/show_bug.cgi?id=79911
2445
2446         Reviewed by Vsevolod Vlasov.
2447
2448         Tests:
2449         heap-shapshot.html
2450         heap-shapshot-loader.html
2451
2452         * inspector/front-end/HeapSnapshot.js:
2453         (WebInspector.Int32Array):
2454         (WebInspector.Int32Array.prototype.get array):
2455         (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
2456         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
2457         (WebInspector.HeapSnapshot):
2458         (WebInspector.HeapSnapshot.prototype._init):
2459
2460 2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2461
2462         Introduce SMIL overrideStyle, to make SVG stop mutating CSS styles directly
2463         https://bugs.webkit.org/show_bug.cgi?id=79790
2464
2465         Reviewed by Zoltan Herczeg.
2466
2467         Next step towards enabling animVal support for XML attribute animations.
2468         When SVG CSS properties are animated using SMIL, we currently mutate
2469         the target elements style, and have to keep a baseValue around as String
2470         to be able to recover from the DOM mutations at the end, if fill!="freeze".
2471
2472         The approach required by SMIL is to keep around an override style declaration
2473         set and apply it right after the inline style declarations. Implement that
2474         finally, to avoid mutating styles directly.
2475
2476         Test: svg/animations/attributeTypes.html
2477
2478         * css/CSSStyleSelector.cpp: Model "SMIL animation style" applying just like "inline style" declarations.
2479         (WebCore::CSSStyleSelector::addElementStyleProperties): Refactored common code from matchAllRules().
2480         (WebCore::CSSStyleSelector::matchAllRules): Apply "SMIL animation style" after "inline style" declarations, as specified in SMIL2.
2481         * css/CSSStyleSelector.h: Add new addElementStyleProperties() helper.
2482         * svg/SVGAnimateElement.cpp: Keep track of animation state, if it's about to end, clear "SMIL animation style" upon next applyResultToTarget() call.
2483         (WebCore::SVGAnimateElement::SVGAnimateElement):
2484         (WebCore::SVGAnimateElement::applyResultsToTarget): Reset the CSS property we're animating int the "SMIL animation style", after animation ends.
2485                                                             (Instead of resetting target->style() properties to the old baseValue, as we used to do).
2486         (WebCore::SVGAnimateElement::endedActiveInterval): Set m_aboutToStopAnimation to true, so next call to applyResultsToTarget() knows the animation ends.
2487         * svg/SVGAnimateElement.h: Store bool m_aboutToSTopAnimation;
2488         * svg/SVGAnimationElement.cpp:
2489         (WebCore::setTargetAttributeAnimatedCSSValue):
2490         (WebCore::setTargetAttributeAnimatedXMLValue):
2491             Refactored both of these methods from setTargetAttributeAnimatedValue().
2492             Changed the CSS part, to apply property changes to the "SMIL animation style" instead of the regular StylePropertySet.
2493         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue): Refactored code, use shouldApplyAnimation() to determine whether this animation should run.
2494         (WebCore::SVGAnimationElement::resetAnimationState): New helper calling setTargetAttributeAnimatedValue with a null-string for CSS attributes, when the animation ends.
2495                                                              This is used to detect that the CSS property should be removed from the "SMIL animation style".
2496         (WebCore::SVGAnimationElement::shouldApplyAnimation): Refactored from existing code, and make it more obvious how attributeType influences the animation, all according to SVG 1.1/SMIL2.
2497         * svg/SVGAnimationElement.h:
2498         * svg/SVGElement.cpp: Manage the "SMIL animation style", in SVGElementRareData, if needed. Only gets created if SMIL animations on CSS properties run.
2499         (WebCore::SVGElement::~SVGElement): Destroy SMIL animation style, upon destruction.
2500         (WebCore::SVGElement::animatedSMILStyleProperties): Returns the StylePropertySet for the "SMIL animation style", if it's available.
2501         (WebCore::SVGElement::ensureAnimatedSMILStyleProperties): Enforces creating the StylePropertySet for the "SMIL animation style".
2502         * svg/SVGElement.h: Expose new methods.
2503         * svg/SVGElementRareData.h: Stores the "SMIL animation style", actual managment is done by SVGElement, if needed.
2504         (WebCore::SVGElementRareData::animatedSMILStyleProperties): Retrieve it.
2505         (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties): Create it.
2506         (WebCore::SVGElementRareData::destroyAnimatedSMILStyleProperties): Destroy it.
2507         * svg/animation/SVGSMILElement.h: Make endedActiveInterval() virtual again, its needed by SVGAnimateElement now.
2508
2509 2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2510
2511         Unreviewed, rolling out r109255.
2512         http://trac.webkit.org/changeset/109255
2513         https://bugs.webkit.org/show_bug.cgi?id=79932
2514
2515         Breaks rounded rects with dashed strokes in SVG
2516
2517         * WebCore.exp.in:
2518         * platform/graphics/Path.cpp:
2519         (WebCore::Path::addRoundedRect):
2520         * platform/graphics/Path.h:
2521         (Path):
2522         * platform/graphics/cg/PathCG.cpp:
2523         * platform/mac/WebCoreSystemInterface.h:
2524         * platform/mac/WebCoreSystemInterface.mm:
2525
2526 2012-03-01  Adam Barth  <abarth@webkit.org>
2527
2528         DOMWindow shouldn't have any INDEXED_DATABASE ifdefs
2529         https://bugs.webkit.org/show_bug.cgi?id=80013
2530
2531         Reviewed by Kentaro Hara.
2532
2533         Before this patch, DOMWindow still knew about IDB because of the
2534         database factory.  This patch moves the factory to
2535         DOMWindowIndexedDatabase.
2536
2537         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
2538         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
2539         (WebCore::DOMWindowIndexedDatabase::from):
2540         (WebCore):
2541         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
2542         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
2543         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
2544         (DOMWindowIndexedDatabase):
2545         * page/DOMWindow.cpp:
2546         (WebCore::DOMWindow::~DOMWindow):
2547         (WebCore::DOMWindow::clear):
2548         (WebCore):
2549         * page/DOMWindow.h:
2550         (DOMWindow):
2551
2552 2012-03-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2553
2554         SVG <use> element allows invalid contents
2555         https://bugs.webkit.org/show_bug.cgi?id=77764
2556
2557         Reviewed by Zoltan Herczeg.
2558
2559         Unbreak the world after r109299 - dozens of SVGUseElement tests fail in trunk because:
2560         - text nodes weren't allowed in SVG shadow subtrees
2561         - tagName matching ignores any prefixes, thus svg:circle fails to identify as SVGCircleElement
2562
2563         * svg/SVGUseElement.cpp:
2564         (WebCore::isDisallowedElement):
2565
2566 2012-03-01  Luke Macpherson   <macpherson@chromium.org>
2567
2568         Handle CSSPropertyWebkitHyphens in CSSStyleApplyProperty.
2569         https://bugs.webkit.org/show_bug.cgi?id=80004
2570
2571         Reviewed by Eric Seidel.
2572
2573         No new tests / refactoring only.
2574
2575         * css/CSSStyleApplyProperty.cpp:
2576         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2577         * css/CSSStyleSelector.cpp:
2578         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2579
2580 2012-02-29  Pavel Podivilov  <podivilov@chromium.org>
2581
2582         Web Inspector: abstract out the common pattern of creating auto-updated locations.
2583         https://bugs.webkit.org/show_bug.cgi?id=79906
2584
2585         Reviewed by Vsevolod Vlasov.
2586
2587         * inspector/front-end/DebuggerPresentationModel.js:
2588         (WebInspector.PresentationCallFrame.prototype.uiLocation):
2589         (WebInspector.DebuggerPresentationModel.CallFramePlacard):
2590         (WebInspector.DebuggerPresentationModel.CallFramePlacard.prototype.discard):
2591         (WebInspector.DebuggerPresentationModel.CallFramePlacard.prototype._update):
2592         (WebInspector.DebuggerPresentationModel.LinkifierFormatter.prototype.formatRawSourceCodeAnchor):
2593         (WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype.formatRawSourceCodeAnchor):
2594         (WebInspector.DebuggerPresentationModel.Linkifier):
2595         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawSourceCode):
2596         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.reset):
2597         (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):
2598         * inspector/front-end/RawSourceCode.js:
2599         (WebInspector.RawSourceCode.prototype.createLiveLocation):
2600         (WebInspector.RawSourceCode.LiveLocation):
2601         (WebInspector.RawSourceCode.LiveLocation.prototype.init):
2602         (WebInspector.RawSourceCode.LiveLocation.prototype.dispose):
2603         (WebInspector.RawSourceCode.LiveLocation.prototype._update):
2604
2605 2012-03-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2606
2607         Make the tiling code slightly smarter
2608         https://bugs.webkit.org/show_bug.cgi?id=80015
2609
2610         Reviewed by Simon Hausmann.
2611
2612         Avoid doing the same tranformations all over in each call to
2613         tileRectForCoordinate.
2614
2615         Do not resize tiles and then drop them because they are not out of
2616         the keep rect; instead drop before resizing.
2617
2618         Rename dropTilesOutsideRect to setKeepRect as it now stored the keep
2619         rect. This is used to avoid unneeded iteration of all tiles for
2620         invalidates outside the keep rect.
2621
2622         * platform/graphics/TiledBackingStore.cpp:
2623         (WebCore::TiledBackingStore::invalidate):
2624         (WebCore):
2625         (WebCore::TiledBackingStore::commitScaleChange):
2626         (WebCore::TiledBackingStore::coverageRatio):
2627         (WebCore::TiledBackingStore::createTiles):
2628         (WebCore::TiledBackingStore::adjustForContentsRect):
2629         (WebCore::TiledBackingStore::resizeEdgeTiles):
2630         (WebCore::TiledBackingStore::setKeepRect):
2631         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
2632         (WebCore::TiledBackingStore::tileRectForCoordinate):
2633         (WebCore::TiledBackingStore::setSupportsAlpha):
2634         * platform/graphics/TiledBackingStore.h:
2635         (TiledBackingStore):
2636
2637 2012-02-29  Kinuko Yasuda  <kinuko@chromium.org>
2638
2639         Use the new createSnapshotFileAndReadMetadata API for FileEntry.file()
2640         https://bugs.webkit.org/show_bug.cgi?id=79928
2641
2642         Reviewed by David Levin.
2643
2644         No new tests: no functionality changes.
2645         fast/filesystem/ tests should use the new code (they should pass once
2646         the corresponding chromium change is rolled in).
2647
2648         * fileapi/DOMFileSystem.cpp:
2649         (WebCore::DOMFileSystem::createFile): Updated to use the new API.
2650         * fileapi/DOMFileSystemSync.cpp:
2651         (WebCore::DOMFileSystemSync::createFile): Updated to use the new API.
2652         * fileapi/FileSystemCallbacks.cpp:
2653         * fileapi/FileSystemCallbacks.h:
2654         (FileSystemCallbacksBase):
2655         * platform/AsyncFileSystem.h:
2656         (AsyncFileSystem):
2657         * 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.
2658
2659 2012-02-29  Pavel Podivilov  <podivilov@chromium.org>
2660
2661         Web Inspector: add UISourceCode.isEditable property.
2662         https://bugs.webkit.org/show_bug.cgi?id=79909
2663
2664         Reviewed by Vsevolod Vlasov.
2665
2666         * inspector/front-end/DebuggerPresentationModel.js:
2667         (WebInspector.DebuggerPresentationModel.prototype.canEditScriptSource):
2668         * inspector/front-end/RawSourceCode.js:
2669         (WebInspector.RawSourceCode.prototype._createUISourceCode):
2670         * inspector/front-end/UISourceCode.js:
2671         (WebInspector.UISourceCode):
2672
2673 2012-02-29  Shinya Kawanaka  <shinyak@chromium.org> 
2674
2675         Fallback elements in non-youngest shadow tree should not be rendered.
2676         https://bugs.webkit.org/show_bug.cgi?id=80002
2677
2678         Reviewed by Hajime Morita.
2679
2680         Fallback elements in non-youngest shadow tree should not be rendered, so its phase should be
2681         AttachingNotDistributed instead of AttachingFallbacked.
2682
2683         Tests: multiple-shadowroot-rendering.html covers this patch.
2684
2685         * dom/NodeRenderingContext.cpp:
2686         (WebCore::NodeRenderingContext::NodeRenderingContext):
2687
2688 2012-02-29  Adam Barth  <abarth@webkit.org>
2689
2690         ScriptExecutionContext has too many ifdef ENABLE(SQL_DATABASE)
2691         https://bugs.webkit.org/show_bug.cgi?id=79633
2692
2693         Reviewed by Eric Seidel.
2694
2695         This class creates a DatabaseContext object to supplement the
2696         ScriptExecutionContext with database-specific information.  This new
2697         object lets us remove a bunch of database-specific (and ifdefed) logic
2698         from ScriptExecutionContext.(cpp|h).
2699
2700         * CMakeLists.txt:
2701         * GNUmakefile.list.am:
2702         * Target.pri:
2703         * WebCore.exp.in:
2704         * WebCore.gypi:
2705         * WebCore.vcproj/WebCore.vcproj:
2706         * WebCore.xcodeproj/project.pbxproj:
2707         * dom/ScriptExecutionContext.cpp:
2708         (WebCore::ScriptExecutionContext::ScriptExecutionContext):
2709         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
2710         (WebCore):
2711         * dom/ScriptExecutionContext.h:
2712         (WebCore):
2713         (ScriptExecutionContext):
2714         * history/PageCache.cpp:
2715         (WebCore::logCanCacheFrameDecision):
2716         (WebCore::PageCache::canCachePageContainingThisFrame):
2717         * loader/FrameLoader.cpp:
2718         (WebCore::FrameLoader::stopLoading):
2719         * platform/Supplementable.h:
2720         (WebCore::Supplementable::provideSupplement):
2721         (WebCore::Supplementable::requireSupplement):
2722         (Supplementable):
2723         * storage/AbstractDatabase.cpp:
2724         (WebCore::AbstractDatabase::AbstractDatabase):
2725         * storage/AbstractDatabase.h:
2726         (WebCore):
2727         (WebCore::AbstractDatabase::databaseContext):
2728         (AbstractDatabase):
2729         * storage/Database.cpp:
2730         (WebCore::Database::openDatabase):
2731         (WebCore::Database::Database):
2732         (WebCore::Database::openAndVerifyVersion):
2733         (WebCore::Database::markAsDeletedAndClose):
2734         (WebCore::Database::close):
2735         (WebCore::Database::closeImmediately):
2736         (WebCore::Database::performOpenAndVerify):
2737         (WebCore::Database::scheduleTransaction):
2738         (WebCore::Database::scheduleTransactionStep):
2739         (WebCore::Database::transactionClient):
2740         (WebCore::Database::transactionCoordinator):
2741         (WebCore::Database::tableNames):
2742         (WebCore::Database::securityOrigin):
2743         * storage/DatabaseContext.cpp: Added.
2744         (WebCore):
2745         (WebCore::existingDatabaseContextFrom):
2746         (WebCore::DatabaseContext::DatabaseContext):
2747         (WebCore::DatabaseContext::~DatabaseContext):
2748         (WebCore::DatabaseContext::from):
2749         (WebCore::DatabaseContext::databaseThread):
2750         (WebCore::DatabaseContext::hasOpenDatabases):
2751         (WebCore::DatabaseContext::stopDatabases):
2752         * storage/DatabaseContext.h: Added.
2753         (WebCore):
2754         (DatabaseContext):
2755         (WebCore::DatabaseContext::setHasOpenDatabases):
2756         * storage/SQLTransaction.cpp:
2757         (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
2758         (WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
2759         * workers/WorkerThread.cpp:
2760         (WebCore::WorkerThreadShutdownStartTask::performTask):
2761
2762 2012-02-29  Shinya Kawanaka  <shinyak@chromium.org>
2763
2764         Refactoring: HTMLContentSelector should be InsertionPoint-aware.
2765         https://bugs.webkit.org/show_bug.cgi?id=79901
2766
2767         Reviewed by Hajime Morita.
2768
2769         ContentSelectorQuery took HTMLContentElement as argument, but patch changes it to take InsertionPoint instead.
2770         If InsertionPoint is not HTMLContentElement, ContentSelectorQuery will selects the rest of light children.
2771
2772         Now InsertionPoint has pure virtual method 'select'. <shadow> will implement this as a method returning empty string.
2773
2774         * dom/ShadowRoot.cpp:
2775         (WebCore::ShadowRoot::hasInsertionPoint):
2776         * dom/ShadowRoot.h:
2777         (ShadowRoot):
2778         * dom/ShadowTree.cpp:
2779         (WebCore::ShadowTree::needsReattachHostChildrenAndShadow):
2780         (WebCore::ShadowTree::hostChildrenChanged):
2781         * html/shadow/ContentSelectorQuery.cpp:
2782         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
2783         (WebCore::ContentSelectorQuery::matches):
2784         * html/shadow/ContentSelectorQuery.h:
2785         (WebCore):
2786         (ContentSelectorQuery):
2787         * html/shadow/HTMLContentElement.cpp:
2788         (WebCore::HTMLContentElement::detach):
2789         * html/shadow/HTMLContentElement.h:
2790         (WebCore::toHTMLContentElement):
2791         (WebCore):
2792         * html/shadow/HTMLContentSelector.cpp:
2793         (WebCore::HTMLContentSelector::select):
2794         * html/shadow/HTMLContentSelector.h:
2795         (HTMLContentSelector):
2796         * html/shadow/InsertionPoint.h:
2797         (InsertionPoint):
2798
2799 2012-02-29  Luke Macpherson   <macpherson@chromium.org>
2800
2801         Handle CSSPropertySpeak in CSSStyleApplyProperty.
2802         https://bugs.webkit.org/show_bug.cgi?id=79879
2803
2804         Reviewed by Eric Seidel.
2805
2806         No new tests / refactoring only.
2807
2808         * css/CSSStyleApplyProperty.cpp:
2809         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2810         * css/CSSStyleSelector.cpp:
2811         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2812         * rendering/style/RenderStyle.h:
2813
2814 2012-02-29  Luke Macpherson   <macpherson@chromium.org>
2815
2816         Handle CSSPropertyWebkitColumnAxis in CSSStyleApplyProperty.
2817         https://bugs.webkit.org/show_bug.cgi?id=79869
2818
2819         Reviewed by Eric Seidel.
2820
2821         No new tests / refactoring only.
2822
2823         * css/CSSStyleApplyProperty.cpp:
2824         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2825         * css/CSSStyleSelector.cpp:
2826         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2827
2828 2012-02-29  Erik Arvidsson  <arv@chromium.org>
2829
2830         Rename DOMSelection to Selection
2831         https://bugs.webkit.org/show_bug.cgi?id=79688
2832
2833         Reviewed by Adam Barth.
2834
2835         No new tests. Existing tests have been updated to cover this.
2836
2837         * page/DOMSelection.idl:
2838         * page/DOMWindow.idl:
2839
2840 2012-02-29  Joshua Bell  <jsbell@chromium.org>
2841
2842         IndexedDB: IDBDatabase.objectStoreNames and IDObjectStore.indexNames results should be sorted
2843         https://bugs.webkit.org/show_bug.cgi?id=79950
2844
2845         Reviewed by Tony Chang.
2846
2847         Test: storage/indexeddb/list-ordering.html
2848
2849         * dom/DOMStringList.cpp: Added sort method, not exposed via IDL.
2850         (WebCore::DOMStringList::sort):
2851         (WebCore):
2852         * dom/DOMStringList.h:
2853         (DOMStringList):
2854         * storage/IDBDatabaseBackendImpl.cpp:
2855         (WebCore::IDBDatabaseBackendImpl::objectStoreNames):
2856         * storage/IDBObjectStoreBackendImpl.cpp:
2857         (WebCore::IDBObjectStoreBackendImpl::indexNames):
2858
2859 2012-02-29  W. James MacLean  <wjmaclean@chromium.org>
2860
2861         [chromium] Estimate pixel count for frame rate control
2862         https://bugs.webkit.org/show_bug.cgi?id=74982
2863
2864         Reviewed by James Robinson.
2865
2866         Value checks added to unit tests.
2867
2868         Adds mechanism to compute and collect statistics on pixel overdraw for selected frames.
2869
2870         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2871         (WebCore::CCLayerTreeHostImpl::optimizeRenderPasses):
2872         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2873         (WebCore::wedgeProduct):
2874         (WebCore):
2875         (WebCore::quadArea):
2876         (WebCore::CCQuadCuller::cullOccludedQuads):
2877         * platform/graphics/chromium/cc/CCQuadCuller.h:
2878         (CCQuadCuller):
2879         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2880         (WebCore::CCRenderPass::optimizeQuads):
2881         * platform/graphics/chromium/cc/CCRenderPass.h:
2882         (CCOverdrawCounts):
2883         (WebCore):
2884         (CCRenderPass):
2885
2886 2012-02-29  Jason Liu  <jason.liu@torchmobile.com.cn>
2887
2888         [BlackBerry]Make about:cache feature available in release version.
2889         https://bugs.webkit.org/show_bug.cgi?id=79866
2890
2891         Reviewed by Antonio Gomes.
2892
2893         No tests.
2894         * platform/network/blackberry/NetworkJob.cpp:
2895         (WebCore::NetworkJob::handleAbout):
2896
2897 2012-02-29  James Simonsen  <simonjam@chromium.org>
2898
2899         [chromium] Fix navigation start time on cross-renderer navigation
2900         https://bugs.webkit.org/show_bug.cgi?id=75922
2901
2902         Reviewed by Darin Fisher.
2903
2904         * loader/DocumentLoadTiming.cpp:
2905         (WebCore::DocumentLoadTiming::setNavigationStart): Added.
2906         * loader/DocumentLoadTiming.h:
2907
2908 2012-02-29  Stephen Chenney  <schenney@chromium.org>
2909
2910         SVG <use> element allows invalid contents
2911         https://bugs.webkit.org/show_bug.cgi?id=77764
2912
2913         Reviewed by Nikolas Zimmermann.
2914
2915         Modify the isDisallowedElement method to disallow all of the
2916         disallowed elements, instead of just a few. It is now a whitelist
2917         implementation.
2918
2919         This also fixes bugs 78807, 78838 and 79798 related to memory
2920         corruption issues.
2921
2922         Tests: svg/custom/bug78807.svg
2923                svg/custom/bug78838.html
2924                svg/custom/bug79798.html
2925
2926         * svg/SVGUseElement.cpp:
2927         (WebCore::isDisallowedElement):
2928
2929 2012-02-29  Ami Fischman  <fischman@chromium.org>
2930
2931         Continue the search for playable mime types among <source> children of <video> even when using data: URLs
2932         https://bugs.webkit.org/show_bug.cgi?id=79934
2933
2934         Reviewed by Eric Carlson.
2935
2936         Test: media/sources-fallback-codecs.html
2937
2938         * html/HTMLMediaElement.cpp:
2939         (WebCore::HTMLMediaElement::selectNextSourceChild):
2940
2941 2012-02-29  Ian Vollick  <vollick@chromium.org>
2942
2943         [chromium] Add impl-thread support for animation-timing-function
2944         https://bugs.webkit.org/show_bug.cgi?id=79819
2945
2946         Reviewed by James Robinson.
2947
2948         * WebCore.gypi:
2949         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
2950         (WebCore::CCKeyframe::CCKeyframe):
2951         (WebCore):
2952         (WebCore::CCKeyframe::~CCKeyframe):
2953         (WebCore::CCKeyframe::time):
2954         (WebCore::CCKeyframe::timingFunction):
2955         (WebCore::CCFloatKeyframe::create):
2956         (WebCore::CCFloatKeyframe::CCFloatKeyframe):
2957         (WebCore::CCFloatKeyframe::~CCFloatKeyframe):
2958         (WebCore::CCFloatKeyframe::value):
2959         (WebCore::CCFloatKeyframe::clone):
2960         (WebCore::CCTransformKeyframe::create):
2961         (WebCore::CCTransformKeyframe::CCTransformKeyframe):
2962         (WebCore::CCTransformKeyframe::~CCTransformKeyframe):
2963         (WebCore::CCTransformKeyframe::value):
2964         (WebCore::CCTransformKeyframe::clone):
2965         (WebCore::CCKeyframedFloatAnimationCurve::create):
2966         (WebCore::CCKeyframedFloatAnimationCurve::CCKeyframedFloatAnimationCurve):
2967         (WebCore::CCKeyframedFloatAnimationCurve::addKeyframe):
2968         (WebCore::CCKeyframedFloatAnimationCurve::duration):
2969         (WebCore::CCKeyframedFloatAnimationCurve::clone):
2970         (WebCore::CCKeyframedFloatAnimationCurve::getValue):
2971         (WebCore::CCKeyframedTransformAnimationCurve::create):
2972         (WebCore::CCKeyframedTransformAnimationCurve::CCKeyframedTransformAnimationCurve):
2973         (WebCore::CCKeyframedTransformAnimationCurve::~CCKeyframedTransformAnimationCurve):
2974         (WebCore::CCKeyframedTransformAnimationCurve::addKeyframe):
2975         (WebCore::CCKeyframedTransformAnimationCurve::duration):
2976         (WebCore::CCKeyframedTransformAnimationCurve::clone):
2977         (WebCore::CCKeyframedTransformAnimationCurve::getValue):
2978         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
2979         (CCKeyframe):
2980         (CCFloatKeyframe):
2981         (WebCore):
2982         (CCTransformKeyframe):
2983         (CCKeyframedFloatAnimationCurve):
2984         (CCKeyframedTransformAnimationCurve):
2985         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2986         * platform/graphics/chromium/cc/CCTimingFunction.cpp: Added.
2987         (WebCore):
2988         (WebCore::CCTimingFunction::CCTimingFunction):
2989         (WebCore::CCTimingFunction::~CCTimingFunction):
2990         (WebCore::CCTimingFunction::duration):
2991         (WebCore::CCCubicBezierTimingFunction::create):
2992         (WebCore::CCCubicBezierTimingFunction::CCCubicBezierTimingFunction):
2993         (WebCore::CCCubicBezierTimingFunction::~CCCubicBezierTimingFunction):
2994         (WebCore::CCCubicBezierTimingFunction::getValue):
2995         (WebCore::CCCubicBezierTimingFunction::clone):
2996         (WebCore::CCEaseTimingFunction::create):
2997         (WebCore::CCEaseInTimingFunction::create):
2998         (WebCore::CCEaseOutTimingFunction::create):
2999         (WebCore::CCEaseInOutTimingFunction::create):
3000         * platform/graphics/chromium/cc/CCTimingFunction.h: Added.
3001         (WebCore):
3002         (CCTimingFunction):
3003         (CCCubicBezierTimingFunction):
3004         (CCEaseTimingFunction):
3005         (CCEaseInTimingFunction):
3006         (CCEaseOutTimingFunction):
3007         (CCEaseInOutTimingFunction):
3008
3009 2012-02-29  Shinya Kawanaka  <shinyak@chromium.org>
3010
3011         Methods in ShadowTree and TreeScopeAdopter should be multiple shadow roots aware.
3012         https://bugs.webkit.org/show_bug.cgi?id=79768
3013
3014         Reviewed by Hajime Morita.
3015
3016         Some methods in ShadowTree and TreeScopeAdopter were not multiple shadow roots aware.
3017         They should consider multiple shadow roots.
3018
3019         Test: fast/dom/shadow/multiple-shadowroot-adopt.html
3020
3021         * dom/ShadowTree.cpp:
3022         (WebCore::ShadowTree::setParentTreeScope):
3023         (WebCore):
3024         (WebCore::ShadowTree::childNeedsStyleRecalc):
3025         (WebCore::ShadowTree::needsStyleRecalc):
3026         * dom/ShadowTree.h:
3027         (WebCore):
3028         (ShadowTree):
3029         * dom/TreeScopeAdopter.cpp:
3030         (WebCore::shadowTreeFor):
3031         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
3032         (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
3033         (WebCore::TreeScopeAdopter::moveShadowTreeToNewDocument):
3034         (WebCore):
3035         * dom/TreeScopeAdopter.h:
3036         (TreeScopeAdopter):
3037
3038 2012-02-29  David Levin  <levin@chromium.org>
3039
3040         [chromium] Add the ability to turn off autoresize.
3041         https://bugs.webkit.org/show_bug.cgi?id=77452
3042
3043         Reviewed by Darin Fisher.
3044
3045         Test: fast/autoresize/turn-off-autoresize.html
3046
3047         * page/FrameView.cpp:
3048         (WebCore::FrameView::enableAutoSizeMode): Fix the code
3049         path for turning off autoresize to set the scrollbars to auto.
3050
3051 2012-02-29  David Barton  <dbarton@mathscribe.com>
3052
3053         <msubsup> setNeedsLayout() correction
3054         https://bugs.webkit.org/show_bug.cgi?id=79856
3055
3056         Reviewed by Julien Chaffraix.
3057
3058         m_scripts->setNeedsLayout(true, false); needs to be added to the fix for bug 79274.
3059
3060         No new tests. It's actually difficult to test the need for this with the current code,
3061         because there are a lot of extra setNeedsLayout() calls right now. I caught this after
3062         removing some of those calls that should be redundant, for a future patch. Actually
3063         removing those calls now changes other behavior, due to other bugs, so I'll save all
3064         that for future patches. We should land this fix now though I think, as it could
3065         possibly matter in some cases.
3066
3067         * rendering/mathml/RenderMathMLSubSup.cpp:
3068         (WebCore::RenderMathMLSubSup::layout):
3069
3070 2012-02-29  Andreas Kling  <awesomekling@apple.com>
3071
3072         IsSynchronizingStyleAttributeFlag could be purged.
3073         <http://webkit.org/b/79313>
3074
3075         Reviewed by Anders Carlsson.
3076
3077         We were using IsSynchronizingStyleAttributeFlag to prevent various things from
3078         happening below setAttribute() when serializing the "style" attribute based on
3079         an element's inline style.
3080
3081         Simplify the whole thing by adding a way to set an attribute without triggering
3082         any callbacks (a 'notifyChanged' argument to Element::setAttribute().)
3083         This removes the need for IsSynchronizingStyleAttributeFlag in the first place
3084         and makes StyledElement::updateStyleAttribute() a bit cheaper to boot.
3085
3086         * dom/Element.cpp:
3087         (WebCore::Element::setAttribute):
3088         (WebCore::Element::setAttributeInternal):
3089         (WebCore::Element::willModifyAttribute):
3090         (WebCore::Element::didModifyAttribute):
3091         (WebCore::Element::didRemoveAttribute):
3092         * dom/Element.h:
3093         * dom/Node.h:
3094         * dom/StyledElement.cpp:
3095         (WebCore::StyledElement::updateStyleAttribute):
3096         (WebCore::StyledElement::attributeChanged):
3097         * html/HTMLElement.cpp:
3098         (WebCore::StyledElement::copyNonAttributeProperties):
3099
3100 2012-02-29  Daniel Cheng  <dcheng@chromium.org>
3101
3102         [chromium] REGRESSION: Cannot drag a file out
3103         https://bugs.webkit.org/show_bug.cgi?id=79817
3104
3105         Reviewed by Ryosuke Niwa.
3106
3107         Temporary fix for file drag out. This change won't be needed once DataTransferItemList
3108         support is better implemented.
3109
3110         Test: platform/chromium/fast/events/drag-downloadURL.html
3111
3112         * platform/chromium/ChromiumDataObject.cpp:
3113         (WebCore::ChromiumDataObject::types):
3114
3115 2012-02-29  Luke Macpherson   <macpherson@chromium.org>
3116
3117         Clean up CSSPrimitiveValue::computeLengthDouble().
3118         https://bugs.webkit.org/show_bug.cgi?id=77065
3119
3120         Reviewed by Eric Seidel.
3121
3122         Refactoring only / no behavioral change.
3123
3124         * css/CSSPrimitiveValue.cpp:
3125         (WebCore::CSSPrimitiveValue::computeLengthDouble):
3126
3127 2012-02-29  Beth Dakin  <bdakin@apple.com>
3128
3129         Speculative build-fix.
3130
3131         * rendering/RenderImage.cpp:
3132         (WebCore::RenderImage::paintReplaced):
3133
3134 2012-02-29  Beth Dakin  <bdakin@apple.com>
3135
3136         https://bugs.webkit.org/show_bug.cgi?id=79705
3137         didNewFirstVisuallyNonEmptyLayout should be enhanced to look at size instead 
3138         of a raw tally
3139         -and corresponding-
3140         <rdar://problem/10821314>
3141
3142         Reviewed by Dave Hyatt.
3143
3144         Instead of firing didNewFirstVisuallyNonEmptyLayout() when a raw tally of 
3145         relevant painted objects has reached a port-defined threshold, this patch 
3146         looks at the size of those objects with respect to the view area. The patch 
3147         also looks at relevant objects that cannot yet be fully painted, such as 
3148         incrementally loading images. 
3149
3150         We no longer need a HashSet for the relevant painted objects since Region can 
3151         do all of the heavy lifting. We now have a Region for the painted and 
3152         unpainted regions. We do need a HashSet for the unpainted objects though, 
3153         because we need to know if a painted object needs to be subtracted from the 
3154         unpainted region before being added to the painted region.
3155         * page/Page.cpp:
3156         (WebCore):
3157         (WebCore::Page::isCountingRelevantRepaintedObjects):
3158         (WebCore::Page::startCountingRelevantRepaintedObjects):
3159         (WebCore::Page::resetRelevantPaintedObjectCounter):
3160         (WebCore::Page::addRelevantRepaintedObject):
3161         (WebCore::Page::addRelevantUnpaintedObject):
3162         * page/Page.h:
3163         (Page):
3164
3165         New function on Region iterates through the rects and calculates the total 
3166         area.
3167         * platform/graphics/Region.cpp:
3168         (WebCore::Region::totalArea):
3169         (WebCore):
3170         * platform/graphics/Region.h:
3171         (Region):
3172
3173         Remove code from these classes since they are not actually relevant objects.
3174         * rendering/InlineBox.cpp:
3175         (WebCore::InlineBox::paint):
3176         * rendering/RenderRegion.cpp:
3177         (WebCore::RenderRegion::paintReplaced):
3178         * rendering/RenderReplaced.cpp:
3179         (WebCore::RenderReplaced::paint):
3180
3181         All of these other callers send a rect that actually represents their size 
3182         (usually the visualOverflowRect) instead of the paintInfo's paintRect, and 
3183         they call addRelevantUnpaintedObject when appropriate.
3184         * rendering/InlineTextBox.cpp:
3185         (WebCore::InlineTextBox::paint):
3186         * rendering/RenderEmbeddedObject.cpp:
3187         (WebCore::RenderEmbeddedObject::paint):
3188         (WebCore::RenderEmbeddedObject::paintReplaced):
3189         * rendering/RenderHTMLCanvas.cpp:
3190         (WebCore::RenderHTMLCanvas::paintReplaced):
3191         * rendering/RenderImage.cpp:
3192         (WebCore::RenderImage::paintReplaced):
3193         * rendering/RenderVideo.cpp:
3194         (WebCore::RenderVideo::paintReplaced):
3195         * rendering/svg/RenderSVGRoot.cpp:
3196         (WebCore::RenderSVGRoot::paintReplaced):
3197
3198 2012-02-29  Joshua Bell  <jsbell@chromium.org>
3199
3200         IndexedDB: Resource leak with IDBObjectStore.openCursor
3201         https://bugs.webkit.org/show_bug.cgi?id=79835
3202
3203         IDBCursor object that were never continue()'d to the end would leak due to a 
3204         reference cycle with IDBRequest. In addition, the IDBRequest would never be
3205         marked "finished" which would prevent GC from reclaiming it. IDBTransactions
3206         now track and notify IDBCursors to break these references when the transaction
3207         can no longer not process requests.
3208
3209         Reviewed by Tony Chang.
3210
3211         Tests: storage/indexeddb/cursor-continue.html
3212
3213         * storage/IDBCursor.cpp:
3214         (WebCore::IDBCursor::IDBCursor): Register with IDBTransaction bookkeeping.
3215         (WebCore::IDBCursor::continueFunction): Early error if transaction has finished.
3216         (WebCore::IDBCursor::close): Break the reference cycle with IDBRequest, and notify it
3217         that the cursor is finished.
3218         (WebCore):
3219         * storage/IDBCursor.h:
3220         (WebCore):
3221         (IDBCursor):
3222         * storage/IDBRequest.cpp:
3223         (WebCore::IDBRequest::IDBRequest):
3224         (WebCore::IDBRequest::finishCursor): If there is no request in flight, mark itself as
3225         finished to allow GC.
3226         (WebCore):
3227         (WebCore::IDBRequest::dispatchEvent): Once an in-flight request has been processed,
3228         mark the request as finished if the cursor is finished, to allow GC.
3229         * storage/IDBRequest.h:
3230         (IDBRequest):
3231         * storage/IDBTransaction.cpp: Track open cursors, close them when finished.
3232         (WebCore::IDBTransaction::OpenCursorNotifier::OpenCursorNotifier):
3233         (WebCore):
3234         (WebCore::IDBTransaction::OpenCursorNotifier::~OpenCursorNotifier):
3235         (WebCore::IDBTransaction::registerOpenCursor):
3236         (WebCore::IDBTransaction::unregisterOpenCursor):
3237         (WebCore::IDBTransaction::closeOpenCursors):
3238         (WebCore::IDBTransaction::onAbort):
3239         (WebCore::IDBTransaction::onComplete):
3240         * storage/IDBTransaction.h:
3241         (WebCore):
3242         (OpenCursorNotifier):
3243         (IDBTransaction):
3244
3245 2012-02-29  David Hyatt  <hyatt@apple.com>
3246
3247         https://bugs.webkit.org/show_bug.cgi?id=79940
3248         <rdar://problem/10080189>
3249         
3250         Add support in WebKit for an intra-line character grid for Japanese text layout.
3251         
3252         Patch logicalLeftOffsetForLine and logicalRightOffsetForLine in order to get the
3253         basic edge snapping grid functionality up and running. See all the FIXMEs in the function for
3254         some of the issues that still have to be dealt with for it to really work well.
3255
3256         Reviewed by Dan Bernstein.
3257
3258         Added new tests in fast/line-grid.
3259
3260         * rendering/RenderBlock.cpp:
3261         (WebCore::RenderBlock::logicalLeftOffsetForLine):
3262         (WebCore::RenderBlock::logicalRightOffsetForLine):
3263
3264 2012-02-29  Anders Carlsson  <andersca@apple.com>
3265
3266         [Chromium] Some Layout Tests in platform/chromium/rubberbanding and platform/chromium/compositing/rubberbanding are failing
3267         https://bugs.webkit.org/show_bug.cgi?id=79878
3268
3269         Reviewed by James Robinson.
3270
3271         Make sure that ScrollableArea::setScrollOffsetFromAnimation doesn't end up
3272         setting the ScrollAnimator's current scroll position by making a new function, scrollPositionChanged,
3273         that both notifyScrollPositionChanged and setScrollOffsetFromAnimation call and move the call to update
3274         the position to notifyScrollPositionChanged.
3275
3276         * platform/ScrollableArea.cpp:
3277         (WebCore::ScrollableArea::notifyScrollPositionChanged):
3278         (WebCore):
3279         (WebCore::ScrollableArea::scrollPositionChanged):
3280         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
3281         * platform/ScrollableArea.h:
3282         (ScrollableArea):
3283
3284 2012-02-29  Dana Jansens  <danakj@chromium.org>
3285
3286         [chromium] Don't let invalidation for next frame prevent tile upload
3287         https://bugs.webkit.org/show_bug.cgi?id=79841
3288
3289         Reviewed by James Robinson.
3290
3291         We currently don't push dirty tiles to the impl thread so there are no
3292         tiles with garbage data on the impl thread. However, this judgement is
3293         overzealous and blocks tiles that get invalidated by WebKit for the
3294         next frame during the paint of the current frame.
3295
3296         Instead, check if a tile is dirty and was not painted for the current
3297         frame when deciding to push the tile to the impl thread. This requires
3298         that we know if a tile was painted during the current frame, which we
3299         can do if we always reset m_updateRect to be empty each frame.
3300
3301         New unit tests: TiledLayerChromiumTest.pushTilesMarkedDirtyDuringPaint
3302                         TiledLayerChromiumTest.pushTilesLayerMarkedDirtyDuringPaintOnNextLayer
3303                         TiledLayerChromiumTest.pushTilesLayerMarkedDirtyDuringPaintOnPreviousLayer
3304
3305         * platform/graphics/chromium/TiledLayerChromium.cpp:
3306         (WebCore::UpdatableTile::isDirtyForCurrentFrame):
3307         (WebCore::TiledLayerChromium::pushPropertiesTo):
3308         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3309         (WebCore::TiledLayerChromium::resetUpdateState):
3310         (WebCore):
3311         (WebCore::TiledLayerChromium::prepareToUpdate):
3312         * platform/graphics/chromium/TiledLayerChromium.h:
3313         (TiledLayerChromium):
3314
3315 2012-02-29  Tommy Widenflycht  <tommyw@google.com>
3316
3317         MediaStream API: MediaStreamTrackList out-of-bounds access fix
3318         https://bugs.webkit.org/show_bug.cgi?id=79889
3319
3320         Reviewed by Adam Barth.
3321
3322         Out-of-bounds access to MediaStreamTrackList ASSERTS instead of returning 0,
3323         this is not according to ecmascript standard. Also fixed a similar issue in MediaStreamList.
3324
3325         Test: fast/mediastream/peerconnection-mediastreamlist.html
3326
3327         * Modules/mediastream/MediaStreamList.cpp:
3328         (WebCore::MediaStreamList::item):
3329         * Modules/mediastream/MediaStreamTrackList.cpp:
3330         (WebCore::MediaStreamTrackList::item):
3331
3332 2012-02-29  Leo Yang  <leo.yang@torchmobile.com.cn>
3333
3334         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FloatSize.h
3335         https://bugs.webkit.org/show_bug.cgi?id=79893
3336
3337         Reviewed by Antonio Gomes.
3338
3339         Add conversion convenience between WebCore::FloatSize and BlackBerry::Platform::FloatSize.
3340
3341         The porting can't be built yet, no new tests.
3342
3343         * platform/graphics/FloatSize.h:
3344         (Platform):
3345         (FloatSize):
3346
3347 2012-02-29  Leo Yang  <leo.yang@torchmobile.com.cn>
3348
3349         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FloatRect.h
3350         https://bugs.webkit.org/show_bug.cgi?id=79891
3351
3352         Reviewed by Antonio Gomes.
3353
3354         Add conversion convenience between WebCore::FloatRect and BlackBerry::Platform::FloatRect.
3355
3356         The porting can't be built yet, no new tests.
3357
3358         * platform/graphics/FloatRect.h:
3359         (Platform):
3360         (FloatRect):
3361
3362 2012-02-29  Tim Horton  <timothy_horton@apple.com>
3363
3364         Make use of CG rounded-rect primitives
3365         https://bugs.webkit.org/show_bug.cgi?id=79932
3366         <rdar://problem/9274953>
3367
3368         Reviewed by Simon Fraser.
3369
3370         Dispatch to potentially platform-specific rounded rectangle path
3371         construction from addPathForRoundedRect. Make use of this to call
3372         wkCGPathAddRoundedRect on Lion and above, as long as the rounded
3373         corners are all equivalent.
3374
3375         No new tests, as this is covered by many that use rounded corners,
3376         and is only a performance improvement.
3377
3378         * WebCore.exp.in:
3379         * platform/graphics/Path.cpp:
3380         (WebCore::Path::addRoundedRect):
3381         (WebCore):
3382         (WebCore::Path::addPathForRoundedRect):
3383         * platform/graphics/Path.h:
3384         (Path):
3385         * platform/graphics/cg/PathCG.cpp:
3386         (WebCore::Path::addPathForRoundedRect):
3387         (WebCore):
3388         * platform/mac/WebCoreSystemInterface.h:
3389         * platform/mac/WebCoreSystemInterface.mm:
3390
3391 2012-02-29  Leo Yang  <leo.yang@torchmobile.com.cn>
3392
3393         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FloatPoint.h
3394         https://bugs.webkit.org/show_bug.cgi?id=79887
3395
3396         Reviewed by Antonio Gomes.
3397
3398         Add conversion convenience between WebCore::FloatPoint and BlackBerry::Platform::FloatPoint.
3399
3400         The porting can't be built yet, no new tests.
3401
3402         * platform/graphics/FloatPoint.h:
3403         (Platform):
3404         (FloatPoint):
3405
3406 2012-02-29  Kaustubh Atrawalkar  <kaustubh@motorola.com>
3407
3408         ShadowRoot need innerHTML
3409         https://bugs.webkit.org/show_bug.cgi?id=78473
3410
3411         Reviewed by Hajime Morita.
3412
3413         Refactor code for sharing common code between HTMLElement & ShadowRoot.
3414         Implement innerHTML attribute for ShadowRoot.
3415
3416         Test: fast/dom/shadow/shadow-root-innerHTML.html
3417
3418         * dom/ShadowRoot.cpp:
3419         (WebCore::ShadowRoot::cloneNode):
3420         (WebCore):
3421         (WebCore::ShadowRoot::innerHTML):
3422         (WebCore::ShadowRoot::setInnerHTML):
3423         * dom/ShadowRoot.h:
3424         (ShadowRoot):
3425         * dom/ShadowRoot.idl:
3426         * editing/markup.cpp:
3427         (WebCore::urlToMarkup):
3428         (WebCore):
3429         (WebCore::createFragmentFromSource):
3430         (WebCore::hasOneChild):
3431         (WebCore::hasOneTextChild):
3432         (WebCore::replaceChildrenWithFragment):
3433         (WebCore::replaceChildrenWithText):
3434         * editing/markup.h:
3435         * html/HTMLElement.cpp:
3436         (WebCore):
3437
3438 2012-02-29  Julien Chaffraix  <jchaffraix@webkit.org>
3439
3440         Stop doubling maximalOutlineSize during painting
3441         https://bugs.webkit.org/show_bug.cgi?id=79724
3442
3443         Reviewed by Tony Chang.
3444
3445         Refactoring only, covered by existing tests (mostly repaint ones).
3446
3447         * rendering/RenderReplaced.cpp:
3448         (WebCore::RenderReplaced::shouldPaint):
3449         * rendering/RenderTableCell.cpp:
3450         (WebCore::RenderTableCell::paintCollapsedBorders):
3451         Introduce a local repaint rectangle that we inflate by the maximalOutlineSize
3452         to simplify the comparison logic. Also tried to make it clearer what's going on
3453         by tweaking the existing code.
3454
3455         * rendering/RenderTableSection.cpp:
3456         (WebCore::RenderTableSection::paintObject):
3457         Remove the doubling.
3458
3459 2012-02-29  Ken Buchanan  <kenrb@chromium.org>
3460
3461         Crash when changing list marker locations
3462         https://bugs.webkit.org/show_bug.cgi?id=79681
3463
3464         Reviewed by David Hyatt.
3465
3466         This fixes a regression crash from r108548.
3467
3468         There are some conditions where removing the anonymous block
3469         parent at that point can cause problems. One is when there is
3470         a continuation from it, and another when it is a sibling of
3471         lineBoxParent and it causes lineBoxParent to be deleted
3472         incidentally. This patch delays the destruction until after
3473         lineBoxParent has been used and makes an exception for
3474         continuations.
3475
3476         * rendering/RenderListItem.cpp:
3477         (WebCore::RenderListItem::updateMarkerLocation)
3478
3479 2012-02-29  Max Feil  <mfeil@rim.com>
3480
3481         [BlackBerry] Add support for FLAC audio and OGG/Vorbis audio
3482         https://bugs.webkit.org/show_bug.cgi?id=79519
3483
3484         Reviewed by Antonio Gomes.
3485
3486         A layout test already exists for OGG. We do not support OGG
3487         video at this time, only audio.
3488
3489         Test: media/media-can-play-flac-audio.html
3490
3491         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
3492         (WebCore):
3493
3494 2012-02-28  Beth Dakin  <bdakin@apple.com>
3495
3496         https://bugs.webkit.org/show_bug.cgi?id=79868
3497         Overlay scrollbars should respond to AppKit's NSEventPhaseMayBegin
3498         -and corresponding-
3499         <rdar://problem/10688637>
3500
3501         Reviewed by Anders Carlsson.
3502
3503         Scrollbars are currently drawn on the main thread even when scrolling happens 
3504         on the scrolling thread, so we have to call back to the main thread for the 
3505         time being to make the right drawing calls for NSEventPhaseMayBegin.
3506         * page/scrolling/ScrollingCoordinator.cpp:
3507         (WebCore::ScrollingCoordinator::handleWheelEventPhase):
3508         (WebCore):
3509         * page/scrolling/ScrollingCoordinator.h:
3510         (ScrollingCoordinator):
3511         * page/scrolling/ScrollingTree.cpp:
3512         (WebCore::ScrollingTree::handleWheelEventPhase):
3513         (WebCore):
3514         * page/scrolling/ScrollingTree.h:
3515         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
3516         (WebCore::ScrollingTreeNodeMac::handleWheelEvent):
3517         * platform/ScrollAnimator.h:
3518         (WebCore::ScrollAnimator::handleWheelEventPhase):
3519         (ScrollAnimator):
3520
3521         Call into AppKit on NSEventPhaseMayBegin.
3522         * platform/mac/ScrollAnimatorMac.h:
3523         (ScrollAnimatorMac):
3524         * platform/mac/ScrollAnimatorMac.mm:
3525         (WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
3526         (WebCore):
3527         (WebCore::ScrollAnimatorMac::handleWheelEventPhase):
3528         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3529
3530 2012-02-28  Jer Noble  <jer.noble@apple.com>
3531
3532         Full screen video volume slider has "progress bar"
3533         https://bugs.webkit.org/show_bug.cgi?id=79812
3534
3535         Reviewed by Eric Carlson.
3536
3537         No new tests; strictly a platform-specific look-and-feel change.
3538
3539         The full-screen volume slider has a "media-slider"" appearance, which is rendering as if
3540         the volume slider has a "progress".  Make a concrete "media-fullscreen-volume-slider" appearance
3541         which has the correct look-and-feel.
3542
3543         Add two new appearance keywords, media-fullscreen-volume-slider and thumb, and their associated
3544         types and CSS keywords:
3545         * css/CSSValueKeywords.in:
3546         * css/CSSPrimitiveValueMappings.h:
3547         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3548         * html/shadow/MediaControlElements.h: