[chromium] No modifier flags (shift/ctrl/alt) in drag&drop events on chromium linux
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-16  Varun Jain  <varunjain@google.com>
2
3         [chromium] No modifier flags (shift/ctrl/alt) in drag&drop events on chromium linux
4         https://bugs.webkit.org/show_bug.cgi?id=86236
5
6         Reviewed by Tony Chang.
7
8         ManualTests: ManualTests/chromium/modifiers-during-drag-and-drop.html
9
10         * page/DragController.cpp:
11         (WebCore::createMouseEvent):
12         * platform/DragData.cpp:
13         (WebCore):
14         (WebCore::DragData::modifierKeyState):
15         * platform/DragData.h:
16         (DragData):
17         * platform/chromium/ChromiumDataObject.cpp:
18         (WebCore::ChromiumDataObject::ChromiumDataObject):
19         * platform/chromium/ChromiumDataObject.h:
20         (WebCore::ChromiumDataObject::modifierKeyState):
21         (WebCore::ChromiumDataObject::setModifierKeyState):
22         (ChromiumDataObject):
23         * platform/chromium/DragDataChromium.cpp:
24         (WebCore::DragData::modifierKeyState):
25         (WebCore):
26
27 2012-05-16  Jer Noble  <jer.noble@apple.com>
28
29         <video> elements with no video tracks report false for webkitSupportsFullscreen.
30         https://bugs.webkit.org/show_bug.cgi?id=86650
31
32         Reviewed by Eric Carlson.
33
34         No new tests; updated media/media-fullscreen-inline.html.
35
36         With the new Full Screen API, the restriction that only video elements with
37         video tracks can enter full screen seems arbitrary. Some media types will
38         occasionally determine they have video tracks long after loadedmetadata, which
39         breaks websites who check for webkitSupportsFullscreen(). Relax the restriction
40         on webkitSupportsFullscreen() for ports where the Full Screen API is enabled and
41         supported so as to no longer require hasVideo().
42
43         * html/HTMLVideoElement.cpp:
44         (WebCore::HTMLVideoElement::supportsFullscreen):
45
46 2012-05-16  Andreas Kling  <kling@webkit.org>
47
48         Avoid reparsing the style attribute when cloning elements.
49         <http://webkit.org/b/86574>
50
51         Reviewed by Antti Koivisto.
52
53         Refactor cloning of attributes a bit to dodge the styleAttr reparse previously
54         caused by ElementAttributeData::setAttributes().
55
56         Introduced Element::cloneDataFromElement() which takes care of cloning the
57         ElementAttributeData as well as "non-attribute properties" (which is currently
58         specific to HTMLInputElement.)
59
60         Also includes some additional dodging of attribute vector traversal to find
61         old/new 'id' and 'name' attributes.
62
63         I'm seeing a ~10% improvement on PerformanceTests/DOM/CloneNodes locally.
64
65         * dom/Document.cpp:
66         (WebCore::Document::importNode):
67         * dom/Element.cpp:
68         (WebCore::Element::cloneElementWithoutChildren):
69         (WebCore::Element::cloneAttributesFromElement):
70         (WebCore::Element::cloneDataFromElement):
71         * dom/Element.h:
72         (WebCore::Element::copyNonAttributePropertiesFromElement):
73         * dom/ElementAttributeData.cpp:
74         (WebCore::ElementAttributeData::cloneDataFrom):
75         * dom/ElementAttributeData.h:
76         (ElementAttributeData):
77         * dom/Node.h:
78         * dom/StyledElement.cpp:
79         (WebCore::StyledElement::styleAttributeChanged):
80         (WebCore::StyledElement::parseAttribute):
81         * dom/StyledElement.h:
82         * editing/ReplaceNodeWithSpanCommand.cpp:
83         (WebCore::swapInNodePreservingAttributesAndChildren):
84         * html/HTMLElement.cpp:
85         * html/HTMLInputElement.cpp:
86         (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement):
87         * html/HTMLInputElement.h:
88         * inspector/DOMPatchSupport.cpp:
89         (WebCore::DOMPatchSupport::innerPatchNode):
90         * inspector/InspectorDOMAgent.cpp:
91         (WebCore::InspectorDOMAgent::setNodeName):
92         * svg/SVGUseElement.cpp:
93         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
94         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
95
96 2012-05-16  Brent Fulgham  <bfulgham@webkit.org>
97
98         [WinCairo] Unreviewed build change after r115385.  Several Cairo
99         image routines were modified to use new wrapper classes, but the
100         relevant WinCairo sources were not updated to match.
101
102         * WebCore.vcproj/WebCore.vcproj:
103         * platform/graphics/win/ImageCairoWin.cpp:
104         (WebCore::BitmapImage::create):
105         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
106         * platform/win/DragImageCairoWin.cpp:
107         (WebCore::createDragImageFromImage):
108
109 2012-05-16  Tim Horton  <timothy_horton@apple.com>
110
111         Scrollbar layers should respect accelerated drawing setting
112         https://bugs.webkit.org/show_bug.cgi?id=86644
113         <rdar://problem/11462038>
114
115         Reviewed by Simon Fraser.
116
117         When creating scrollbar layers, pass through the accelerated drawing setting.
118
119         No new tests.
120
121         * rendering/RenderLayerCompositor.cpp:
122         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
123
124 2012-05-16  Tim Horton  <timothy_horton@apple.com>
125
126         FrameView::scrollContentsFastPath should use painted area to determine whether to drop out of the fast path
127         https://bugs.webkit.org/show_bug.cgi?id=86651
128         <rdar://problem/11459243>
129
130         Reviewed by Simon Fraser.
131
132         Previously, we decided to fall out of the fast scrolling path by the number of fixed-position elements
133         on the page. This was less than ideal if a single fixed position element took up a significant portion
134         of the page, or if there were many small, cheap-to-paint fixed elements.
135
136         Instead, we should use the fast path if less than 50% of the page will be repainted by fixed-position
137         elements, and otherwise fall back to the slow path.
138
139         I've tested a few different thresholds with an internal test; 50% seems to work relatively well,
140         but the ideal value is hard to determine and likely depends on hardware.
141
142         No new tests, performance improvement with few large fixed-position objects or many small ones.
143
144         * page/FrameView.cpp:
145         (WebCore::FrameView::scrollContentsFastPath):
146
147 2012-05-16  David Reveman  <reveman@chromium.org>
148
149         [Chromium] Use ThrottledTextureUploader with threaded compositing.
150         https://bugs.webkit.org/show_bug.cgi?id=85848
151
152         Reviewed by Adrienne Walker.
153
154         Switch to ThrottledUploader in CCThreadProxy.
155
156         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
157
158 2012-05-15  Emil A Eklund  <eae@chromium.org>
159
160         Change ascents and descent back to ints for now
161         https://bugs.webkit.org/show_bug.cgi?id=86518
162
163         Reviewed by Eric Seidel.
164
165         Change ascents and descent calculation back to integers for now as it
166         looks like we'll need to support both the 1/60 and 1/1 implementations of
167         FractionalLayoutUnit for the immediate future to ensure that text is
168         rendered at the same offset and with the height regardless of the
169         ENABLE_SUBPIXEL_LAYOUT flag.
170
171         This ensures that most websites will look the same at 100% zoom
172         regardless of the flag and also allows us to the same test expectations
173         for the vast majority of layout tests.
174
175         Eventually we want to move those back to FractionalLayoutUnits as that
176         will result in more correct rendering.
177
178         No new tests, no change in functionality.
179
180         * rendering/InlineFlowBox.cpp:
181         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
182         * rendering/RootInlineBox.cpp:
183         (WebCore::setAscentAndDescent):
184         (WebCore::RootInlineBox::ascentAndDescentForBox):
185         * rendering/RootInlineBox.h:
186         (RootInlineBox):
187
188 2012-05-16  Ken Buchanan  <kenrb@chromium.org>
189
190         Crash due to first-letter not getting computed on RenderTableCell
191         https://bugs.webkit.org/show_bug.cgi?id=86133
192
193         Reviewed by Abhishek Arya.
194
195         RenderTableCell overrides RenderBlock::layout() but doesn't call
196         updateFirstLetter() in it. This is normally not a problem because
197         updateFirstLetter() gets called during preferred logical width
198         computation, but there exist rare occasions when layout of the table
199         cell happens without preferred logical widths being dirty, in which
200         case the first-letter update can be skipped.
201
202         This patch adds a call to updateFirstLetter() to
203         RenderTableCell::layout(). This ensures that the first-letter is up
204         to date before commencing block layout.
205
206         * rendering/RenderTableCell.cpp:
207         (WebCore::RenderTableCell::layout)
208
209 2012-05-16  Mikhail Naganov  <mnaganov@chromium.org>
210
211         Avoid jumpscroll when entering new text in a multi-line editor.
212         https://bugs.webkit.org/show_bug.cgi?id=82875
213
214         Reviewed by Ryosuke Niwa.
215
216         Scroll caret to the edge of the viewport in case if a line break or a paragraph
217         separator is inserted at the end of a multi-line editor.  This avoids
218         undesirable jumpscroll in cases when there is content under the editor.
219
220         Tests: editing/input/scroll-to-edge-if-line-break-at-end-of-document-contenteditable.html
221                editing/input/scroll-to-edge-if-line-break-at-end-of-document-textarea.html
222                editing/input/scroll-to-edge-if-paragraph-separator-at-end-of-document-contenteditable.html
223
224         * editing/Editor.cpp:
225         (WebCore::Editor::insertLineBreak):
226         (WebCore::Editor::insertParagraphSeparator):
227         (WebCore::Editor::revealSelectionAfterEditingOperation):
228         * editing/Editor.h:
229         (Editor):
230
231 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
232
233         Web Inspector: Pressing esc after requesting snippet creation should remove snippet.
234         https://bugs.webkit.org/show_bug.cgi?id=86639
235
236         Reviewed by Pavel Feldman.
237
238         Added committed parameter to NavigatorView.rename() callback.
239
240         * inspector/front-end/NavigatorView.js:
241         (WebInspector.NavigatorView.prototype.rename.commitHandler):
242         (WebInspector.NavigatorView.prototype.rename.cancelHandler):
243         (WebInspector.NavigatorView.prototype.rename.afterEditing):
244         * inspector/front-end/ScriptsNavigator.js:
245         * inspector/front-end/ScriptsPanel.js:
246         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
247         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
248
249 2012-05-16  Abhishek Arya  <inferno@chromium.org>
250
251         Missing RenderApplet cast check in HTMLAppletElement::renderWidgetForJSBindings.
252         https://bugs.webkit.org/show_bug.cgi?id=86627
253
254         Reviewed by Andreas Kling.
255
256         Test: java/inline-applet-crash.html
257
258         * html/HTMLAppletElement.cpp:
259         (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
260
261 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
262
263         Web Inspector: extract CompositeUISourceCodeProvider from DebuggerScriptMapping.
264         https://bugs.webkit.org/show_bug.cgi?id=86634
265
266         Reviewed by Vsevolod Vlasov.
267
268         Extract refactoring.
269
270         * inspector/front-end/DebuggerScriptMapping.js:
271         (WebInspector.DebuggerScriptMapping):
272         (WebInspector.DebuggerScriptMapping.prototype.uiSourceCodeProviders):
273         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
274         * inspector/front-end/ScriptsPanel.js:
275         (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
276         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
277         (WebInspector.CompositeUISourceCodeProvider):
278         (WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider):
279         (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded):
280         (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced):
281         (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved):
282         (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes):
283         * inspector/front-end/UISourceCode.js:
284         (WebInspector.UISourceCodeProvider.prototype.uiSourceCodes):
285         (WebInspector.UISourceCodeProvider.prototype.addEventListener):
286         (WebInspector.UISourceCodeProvider.prototype.removeEventListener):
287
288 2012-05-16  Alexander Pavlov  <apavlov@chromium.org>
289
290         Web Inspector: Double Clicking on "No watch expressions" should add an expression
291         https://bugs.webkit.org/show_bug.cgi?id=86631
292
293         Reviewed by Vsevolod Vlasov.
294
295         A double-click listener for the section element adds a new watch expression if the correct element
296         has been clicked.
297         Drive-by: do not persist deleted (null) watch expressions.
298
299         * inspector/front-end/WatchExpressionsSidebarPane.js:
300         (WebInspector.WatchExpressionsSection.prototype._sectionDoubleClick):
301         (WebInspector.WatchExpressionsSection.prototype.updateExpression):
302
303 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
304
305         Web Inspector: Support script snippets saving.
306         https://bugs.webkit.org/show_bug.cgi?id=86632
307
308         Reviewed by Pavel Feldman.
309
310         Added SnippetJavaScriptSource extending JavaScriptSource and overriding isEditable() and commitWorkingCopy() methods.
311         ScriptSnippetModel now creates instances of this new class for snippets.
312         Also maps in ScriptSnippetModel simplified.
313
314         * inspector/front-end/JavaScriptSource.js:
315         (WebInspector.JavaScriptSource.prototype.commitWorkingCopy):
316         (WebInspector):
317         * inspector/front-end/JavaScriptSourceFrame.js:
318         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
319         * inspector/front-end/ScriptSnippetModel.js:
320         (WebInspector.ScriptSnippetModel):
321         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
322         (WebInspector.ScriptSnippetModel.prototype.deleteScriptSnippet):
323         (WebInspector.ScriptSnippetModel.prototype.renameScriptSnippet):
324         (WebInspector.ScriptSnippetModel.prototype.setScriptSnippetContent):
325         (WebInspector.ScriptSnippetModel.prototype._uiSourceCodeList):
326         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
327         (WebInspector.SnippetJavaScriptSource):
328         (WebInspector.SnippetJavaScriptSource.prototype.isEditable):
329         (WebInspector.SnippetJavaScriptSource.prototype.commitWorkingCopy):
330         (WebInspector.SnippetJavaScriptSource.prototype.get snippetId):
331         * inspector/front-end/ScriptsPanel.js:
332         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
333         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
334         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
335
336 2012-05-16  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
337
338         [EFL] Memory leak in RenderThemeEfl
339         https://bugs.webkit.org/show_bug.cgi?id=86609
340
341         Reviewed by Martin Robinson.
342
343         Fix a memory leak by freeing the cairo surface with
344         cairo_surface_destroy.
345
346         * platform/efl/RenderThemeEfl.cpp:
347         (WebCore::RenderThemeEfl::cacheThemePartFlush):
348
349 2012-05-16  Alexei Filippov  <alexeif@chromium.org>
350
351         Web Inspector: Speedup heap snapshot postprocessing
352         https://bugs.webkit.org/show_bug.cgi?id=86635
353
354         Reviewed by Yury Semikhatsky.
355
356         * inspector/front-end/HeapSnapshot.js:
357         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
358
359 2012-05-16  Alexander Pavlov  <apavlov@chromium.org>
360
361         Unreviewed, followup for r117273 that fixes the Web Inspector's Computed Style pane layout.
362
363         * inspector/front-end/elementsPanel.css:
364         (.styles-section.computed-style.expanded .properties > li):
365         (.styles-section.computed-style.expanded .properties > li .webkit-css-property):
366
367 2012-05-16  Andrey Kosyakov  <caseq@chromium.org>
368
369         Web Inspector: [Extensions API] expose evaluateOptions in audit formatters
370         https://bugs.webkit.org/show_bug.cgi?id=86617
371
372         Reviewed by Pavel Feldman.
373
374         Test: inspector/extensions/extensions-audits-content-script.html
375
376         - apply extension-specific audit formatters earlier (in ExtensionAduitCategory, not along with the rest in AuditFormatters);
377         - use ExtensionServer.evaluate() to handle evaluateOptions instead of PageAgent.evaluate();
378
379         * inspector/front-end/AuditFormatters.js: Move node and object formatters to ExtensionAuditCategory.
380         (WebInspector.partiallyApplyFormatters): Added a method to traverse formatters tree and apply formatters that are passed as input.
381         * inspector/front-end/ExtensionAuditCategory.js:
382         (WebInspector.ExtensionAuditCategory): Pass extensionOrigin.
383         (WebInspector.ExtensionAuditCategoryResults.prototype._addNode): Apply extensions formatters before adding the result.
384         (WebInspector.ExtensionAuditCategoryResults.prototype._addResult):
385         (WebInspector.ExtensionAuditCategoryResults.prototype.evaluate): moved from AuditFormatters.
386         (WebInspector.ExtensionAuditFormatters.object.onEvaluate):
387         (WebInspector.ExtensionAuditFormatters.object):
388         (WebInspector.ExtensionAuditFormatters.node.onNodeAvailable):
389         (WebInspector.ExtensionAuditFormatters.node.onEvaluate):
390         (WebInspector.ExtensionAuditFormatters.node):
391         * inspector/front-end/ExtensionServer.js:
392         (WebInspector.ExtensionServer.prototype._onAddAuditCategory): Plumb extensionOrigin through to audit category.
393
394 2012-05-16  Donald Carr  <donald.carr@nokia.com>
395
396         Fixes the build with Qt 5 HEAD
397
398         Reviewed by Csaba Osztrogonác.
399
400         * WebCore.pri:
401         * platform/graphics/texmap/TextureMapperGL.cpp:
402         * plugins/qt/PluginViewQt.cpp:
403
404 2012-05-16  Rob Buis  <rbuis@rim.com>
405
406         SVGSVGElement checkIntersection and checkEnclosure Mem corruption
407         https://bugs.webkit.org/show_bug.cgi?id=67923
408
409         Reviewed by Nikolas Zimmermann.
410
411         Only call checkIntersection/checkEnclosure when we have a valid renderer.
412
413         Test: svg/custom/intersection-list-null.svg
414
415         * svg/SVGSVGElement.cpp:
416         (WebCore::SVGSVGElement::checkIntersection):
417         (WebCore::SVGSVGElement::checkEnclosure):
418
419 2012-05-16  Simon Hausmann  <simon.hausmann@nokia.com>
420
421         Unreviewed, rolling out r110699.
422         http://trac.webkit.org/changeset/110699
423         https://bugs.webkit.org/show_bug.cgi?id=80982
424
425         Not needed anymore and broke modal event loops
426
427         * platform/qt/RunLoopQt.cpp:
428         (WebCore::RunLoop::TimerObject::TimerObject):
429         (WebCore::RunLoop::TimerObject::performWork):
430         (RunLoop::TimerObject):
431
432 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
433
434         Web Inspector: split ScriptMapping into UISourceCodeProvider and SourceMapping.
435         https://bugs.webkit.org/show_bug.cgi?id=86616
436
437         Reviewed by Vsevolod Vlasov.
438
439         This change simply splits the interface.
440
441         * WebCore.gypi:
442         * WebCore.vcproj/WebCore.vcproj:
443         * inspector/compile-front-end.py:
444         * inspector/front-end/CompilerScriptMapping.js:
445         (WebInspector.CompilerScriptMapping.prototype.get uiSourceCodes):
446         (WebInspector.CompilerScriptMapping.prototype.reset):
447         * inspector/front-end/DebuggerModel.js:
448         * inspector/front-end/DebuggerResourceBinding.js:
449         (WebInspector.DebuggerResourceBinding):
450         (WebInspector.DebuggerResourceBinding.prototype._uiSourceCodeForResource):
451         * inspector/front-end/DebuggerScriptMapping.js:
452         (WebInspector.DebuggerScriptMapping):
453         (WebInspector.DebuggerScriptMapping.prototype.uiSourceCodes):
454         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeAdded):
455         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeReplaced):
456         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeRemoved):
457         * inspector/front-end/FilteredItemSelectionDialog.js:
458         (WebInspector.OpenScriptDialog):
459         (WebInspector.OpenScriptDialog.install):
460         (WebInspector.OpenScriptDialog._show):
461         * inspector/front-end/PresentationConsoleMessageHelper.js:
462         (WebInspector.PresentationConsoleMessageHelper):
463         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleCleared):
464         * inspector/front-end/ResourceScriptMapping.js:
465         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodes):
466         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
467         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
468         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
469         * inspector/front-end/Script.js:
470         * inspector/front-end/ScriptSnippetModel.js:
471         (WebInspector.ScriptSnippetModel.prototype._uiSourceCodes):
472         (WebInspector.SnippetScriptMapping.prototype.uiSourceCodes):
473         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeAdded):
474         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeRemoved):
475         * inspector/front-end/ScriptsPanel.js:
476         * inspector/front-end/ScriptsSearchScope.js:
477         (WebInspector.ScriptsSearchScope):
478         (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
479         * inspector/front-end/SourceMapping.js: Renamed from Source/WebCore/inspector/front-end/ScriptMapping.js.
480         * inspector/front-end/UISourceCode.js:
481         (WebInspector.UISourceCodeProvider):
482         (WebInspector.UISourceCodeProvider.prototype.uiSourceCodes):
483         (WebInspector.UILocation):
484         (WebInspector.UILocation.prototype.uiLocationToRawLocation):
485         * inspector/front-end/WebKit.qrc:
486         * inspector/front-end/inspector.html:
487
488 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
489
490         Web Inspector: Implement snippet creation/renaming in ScriptsNavigator.
491         https://bugs.webkit.org/show_bug.cgi?id=82622
492
493         Reviewed by Pavel Feldman.
494
495         Implemented snippet creation and renaming.
496         Added TitleChanged event to UISourceCode.
497
498         * inspector/front-end/NavigatorOverlayController.js:
499         (WebInspector.NavigatorOverlayController.prototype._containingElementFocused):
500         (WebInspector.NavigatorOverlayController.prototype.isNavigatorPinned):
501         (WebInspector.NavigatorOverlayController.prototype.isNavigatorHidden):
502         * inspector/front-end/NavigatorView.js:
503         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
504         (WebInspector.NavigatorView.prototype._updateScriptTitle):
505         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
506         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
507         (WebInspector.NavigatorView.prototype._fileRenamed):
508         (WebInspector.NavigatorScriptTreeElement.prototype.onattach):
509         * inspector/front-end/ScriptSnippetModel.js:
510         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
511         * inspector/front-end/ScriptsNavigator.js:
512         (WebInspector.ScriptsNavigator):
513         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
514         (WebInspector.ScriptsNavigator.prototype.addUISourceCode):
515         (WebInspector.ScriptsNavigator.prototype.isScriptSourceAdded):
516         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
517         (WebInspector.ScriptsNavigator.prototype.replaceUISourceCode):
518         (WebInspector.ScriptsNavigator.prototype.rename):
519         (WebInspector.ScriptsNavigator.prototype._fileRenamed):
520         (WebInspector.ScriptsNavigator.prototype._snippetCreationRequested):
521         (WebInspector.SnippetsNavigatorView.prototype._handleCreateSnippet):
522         (WebInspector.SnippetsNavigatorView.prototype._snippetCreationRequested):
523         * inspector/front-end/ScriptsPanel.js:
524         (WebInspector.ScriptsPanel.prototype.set _hideDebuggerSidebar):
525         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
526         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
527         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
528         * inspector/front-end/TabbedEditorContainer.js:
529         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
530         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
531         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
532         * inspector/front-end/UISourceCode.js:
533         (WebInspector.UISourceCode.prototype.urlChanged):
534
535 2012-05-16  Alexander Pavlov  <apavlov@chromium.org>
536
537         Web Inspector: gradient properties are painful to inspect / author.
538         https://bugs.webkit.org/show_bug.cgi?id=86379
539
540         Reviewed by Pavel Feldman.
541
542         The CSS styles layout has been changed to allow property values to wrap onto subsequent lines
543         to let the users see the entire value text.
544
545         * inspector/front-end/StylesSidebarPane.js:
546         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.): Avoid line breaks between the color swatch and value.
547         * inspector/front-end/elementsPanel.css:
548         (.styles-section .properties li.not-parsed-ok img.exclamation-mark):
549         (.styles-section .properties li):
550         (.styles-section .properties li .webkit-css-property):
551         (.styles-section.expanded .properties > li):
552         (.styles-section .properties > li .webkit-css-property):
553         (.styles-section .properties > li.child-editing):
554         (.styles-section .properties > li.child-editing .webkit-css-property):
555         (.styles-section .properties .enabled-button):
556
557 2012-05-16  Yury Semikhatsky  <yurys@chromium.org>
558
559         Web Inspector: rename ProfileView.js to CPUProfileView.js
560         https://bugs.webkit.org/show_bug.cgi?id=86612
561
562         Reviewed by Pavel Feldman.
563
564         Renamed ProfileView.js to CPUProfileView.js to match the file content.
565
566         * WebCore.gypi:
567         * WebCore.vcproj/WebCore.vcproj:
568         * inspector/compile-front-end.py:
569         * inspector/front-end/CPUProfileView.js: Renamed from Source/WebCore/inspector/front-end/ProfileView.js.
570         (WebInspector.CPUProfileView.profileCallback):
571         (WebInspector.CPUProfileView.prototype.get statusBarItems):
572         (WebInspector.CPUProfileView.prototype.get profile):
573         (WebInspector.CPUProfileView.prototype.set profile):
574         (WebInspector.CPUProfileView.prototype.get bottomUpProfileDataGridTree):
575         (WebInspector.CPUProfileView.prototype.get topDownProfileDataGridTree):
576         (WebInspector.CPUProfileView.prototype.get currentTree):
577         (WebInspector.CPUProfileView.prototype.set currentTree):
578         (WebInspector.CPUProfileView.prototype.willHide):
579         (WebInspector.CPUProfileView.prototype.refresh):
580         (WebInspector.CPUProfileView.prototype.refreshVisibleData):
581         (WebInspector.CPUProfileView.prototype.refreshShowAsPercents):
582         (WebInspector.CPUProfileView.prototype.searchCanceled):
583         (WebInspector.CPUProfileView.prototype.performSearch.matchesQuery):
584         (WebInspector.CPUProfileView.prototype.performSearch):
585         (WebInspector.CPUProfileView.prototype.jumpToFirstSearchResult):
586         (WebInspector.CPUProfileView.prototype.jumpToLastSearchResult):
587         (WebInspector.CPUProfileView.prototype.jumpToNextSearchResult):
588         (WebInspector.CPUProfileView.prototype.jumpToPreviousSearchResult):
589         (WebInspector.CPUProfileView.prototype.showingFirstSearchResult):
590         (WebInspector.CPUProfileView.prototype.showingLastSearchResult):
591         (WebInspector.CPUProfileView.prototype._jumpToSearchResult):
592         (WebInspector.CPUProfileView.prototype._changeView.set else):
593         (WebInspector.CPUProfileView.prototype._focusClicked):
594         (WebInspector.CPUProfileView.prototype._excludeClicked):
595         (WebInspector.CPUProfileView.prototype._resetClicked):
596         (WebInspector.CPUProfileView.prototype._dataGridNodeSelected):
597         (WebInspector.CPUProfileView.prototype._dataGridNodeDeselected):
598         (WebInspector.CPUProfileView.prototype._sortProfile):
599         (WebInspector.CPUProfileView.prototype._assignParentsInProfile):
600         (WebInspector.CPUProfileType):
601         (WebInspector.CPUProfileType.prototype.get buttonTooltip):
602         (WebInspector.CPUProfileType.prototype.buttonClicked):
603         (WebInspector.CPUProfileType.prototype.get treeItemTitle):
604         (WebInspector.CPUProfileType.prototype.get description):
605         (WebInspector.CPUProfileType.prototype.isRecordingProfile):
606         (WebInspector.CPUProfileType.prototype.startRecordingProfile):
607         (WebInspector.CPUProfileType.prototype.stopRecordingProfile):
608         (WebInspector.CPUProfileType.prototype.setRecordingProfile):
609         (WebInspector.CPUProfileType.prototype.createSidebarTreeElementForProfile):
610         (WebInspector.CPUProfileType.prototype.createView):
611         (WebInspector.CPUProfileType.prototype.createTemporaryProfile):
612         (WebInspector.CPUProfileType.prototype.createProfile):
613         * inspector/front-end/HeapSnapshotView.js:
614         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesByName):
615         * inspector/front-end/WebKit.qrc:
616         * inspector/front-end/inspector.html:
617
618 2012-05-16  Arpita Bahuguna  <arpitabahuguna@gmail.com>
619
620         "border: collapse" + "display: none" rows in the tbody while having thead or tfoot doesn't render the opposite border
621         https://bugs.webkit.org/show_bug.cgi?id=67877
622
623         Reviewed by Antti Koivisto.
624
625         Test: fast/css/table-collapsed-borders.html
626
627         * rendering/RenderTableCell.cpp:
628         (WebCore::RenderTableCell::computeCollapsedBeforeBorder):
629         When getting the previous row group's after border, pass SkipEmptySections as the second param
630         to the RenderTable::sectionAbove() call. Thus if the currSection is the top most section of the
631         table passing SkipEmptySections to sectionAbove() would return null which should be the expected
632         behavior.
633
634         (WebCore::RenderTableCell::computeCollapsedAfterBorder):
635         When getting the following row group's before border, pass SkipEmptySections as the second param
636         to the RenderTable::sectionBelow() call. Thus if the currSection is the bottom most section of the
637         table passing SkipEmptySections to sectionBelow() would return null which should be the expected
638         behavior.
639
640 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
641
642         Web Inspector: follow up to r117267 - fixing typo and removing unnecessary dispatch.
643         https://bugs.webkit.org/show_bug.cgi?id=86613
644
645         Reviewed by Vsevolod Vlasov.
646
647         * inspector/front-end/ResourceScriptMapping.js:
648         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
649         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
650
651 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
652
653         Web Inspector: Move edit/save script source logic to JavaScriptSource.
654         https://bugs.webkit.org/show_bug.cgi?id=86604
655
656         Reviewed by Pavel Feldman.
657
658         Added working copy notion to UISourceCode.
659         Moved DebuggerResourceBinding content edit calls to JavaScriptSource.
660         Added WorkingCopyChanged event to UISourceCode.
661
662         * inspector/front-end/CompilerScriptMapping.js:
663         * inspector/front-end/DebuggerResourceBinding.js:
664         (WebInspector.DebuggerResourceBinding.prototype.canSetContent):
665         * inspector/front-end/JavaScriptSource.js:
666         (WebInspector.JavaScriptSource):
667         (WebInspector.JavaScriptSource.prototype.breakpointStorageId):
668         (WebInspector.JavaScriptSource.prototype.isEditable):
669         (WebInspector.JavaScriptSource.prototype.commitWorkingCopy):
670         (WebInspector):
671         * inspector/front-end/JavaScriptSourceFrame.js:
672         (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
673         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
674         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
675         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
676         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
677         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
678         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
679         * inspector/front-end/NavigatorView.js:
680         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
681         (WebInspector.NavigatorView.prototype._uiSourceCodeContentChanged):
682         (WebInspector.NavigatorView.prototype._updateScriptTitle):
683         (WebInspector.NavigatorView.prototype._removeUISourceCode):
684         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
685         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
686         (WebInspector.NavigatorView.prototype.reset):
687         * inspector/front-end/RawSourceCode.js:
688         (WebInspector.RawSourceCode.prototype._createUISourceCode):
689         * inspector/front-end/ScriptSnippetModel.js:
690         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
691         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
692         * inspector/front-end/ScriptsPanel.js:
693         * inspector/front-end/TabbedEditorContainer.js:
694         (WebInspector.TabbedEditorContainer):
695         (WebInspector.TabbedEditorContainer.prototype._titleForFile):
696         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
697         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
698         (WebInspector.TabbedEditorContainer.prototype._updateFileTitle.get if):
699         (WebInspector.TabbedEditorContainer.prototype._updateFileTitle):
700         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
701         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeContentChanged):
702         * inspector/front-end/UISourceCode.js:
703         (WebInspector.UISourceCode):
704         (WebInspector.UISourceCode.prototype.contentChanged):
705         (WebInspector.UISourceCode.prototype.isEditable):
706         (WebInspector.UISourceCode.prototype.workingCopy):
707         (WebInspector.UISourceCode.prototype.setWorkingCopy):
708         (WebInspector.UISourceCode.prototype.isDirty):
709         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
710
711 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
712
713         Web Inspector: get rid of UISourceCodeListChanged event.
714         https://bugs.webkit.org/show_bug.cgi?id=86601
715
716         Reviewed by Vsevolod Vlasov.
717
718         There was unnecessary conversion between this event and UISourceCodeAdded/Removed/Replaced.
719
720         * inspector/front-end/CompilerScriptMapping.js:
721         (WebInspector.CompilerScriptMapping.prototype.reset):
722         * inspector/front-end/DebuggerScriptMapping.js:
723         (WebInspector.DebuggerScriptMapping):
724         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeAdded):
725         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeReplaced):
726         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeRemoved):
727         * inspector/front-end/NavigatorView.js:
728         * inspector/front-end/ResourceScriptMapping.js:
729         (WebInspector.ResourceScriptMapping.prototype.addScript):
730         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
731         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
732         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
733         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
734         (WebInspector.ResourceScriptMapping.prototype.reset):
735         * inspector/front-end/ScriptMapping.js:
736         * inspector/front-end/ScriptSnippetModel.js:
737         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
738         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
739         (WebInspector.ScriptSnippetModel.prototype._reset):
740         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeAdded):
741         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeRemoved):
742         * inspector/front-end/ScriptsNavigator.js:
743         (WebInspector.ScriptsNavigator.prototype.replaceUISourceCode):
744         * inspector/front-end/ScriptsPanel.js:
745         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
746         * inspector/front-end/TabbedEditorContainer.js:
747
748 2012-05-16  Keishi Hattori  <keishi@webkit.org>
749
750         [chromium] Add WebKit API to access inner text value of input element
751         https://bugs.webkit.org/show_bug.cgi?id=85353
752
753         Reviewed by Kent Tamura.
754
755         Test: fast/forms/editing-value.html
756
757         We need this to implement the datalist UI for  <input type=email multiple>.
758         HTMLInputElement.value gives you the sanitized value so the whitespace between values are trimmed.
759         We need to append the selected suggestion to the end without modifying the rest of the text.
760
761         * WebCore.exp.in: Added HTMLInputElement::setEditingValue
762         * html/HTMLInputElement.cpp:
763         (WebCore::HTMLInputElement::setEditingValue):
764         (WebCore):
765         * html/HTMLInputElement.h:
766         (HTMLInputElement):
767         * testing/Internals.cpp:
768         (WebCore::Internals::setEditingValue):
769         (WebCore):
770         * testing/Internals.h:
771         (Internals):
772         * testing/Internals.idl:
773
774 2012-05-16  Jason Liu  <jason.liu@torchmobile.com.cn>
775
776         [BlackBerry] Cookies should be checked during parsing to improve performance.
777         https://bugs.webkit.org/show_bug.cgi?id=85028
778
779         Reviewed by George Staikos.
780
781         We shouldn't waste time and memery on invalid cookies. It is better to drop them during parsing.
782         We shouldn't check the default domain since it is set with host. So we only check domains which are parsed
783         from response headers.
784
785         No new tests. No functionality change.
786
787         * platform/blackberry/CookieManager.cpp:
788         (WebCore::CookieManager::setCookies):
789         * platform/blackberry/CookieManager.h:
790         * platform/blackberry/CookieParser.cpp:
791         (WebCore::CookieParser::parseOneCookie):
792
793 2012-05-15  Pierre Rossi  <pierre.rossi@gmail.com>
794
795         [Qt] Enable SVG Fonts by default
796         https://bugs.webkit.org/show_bug.cgi?id=86463
797
798         Reviewed by Nikolas Zimmermann.
799
800         Another feature we can get for free after switching to using
801         the font fast path with QRawFont.
802         It will get disabled in features.prf if either SVG support is
803         disabled or if we are not using QRawFont (e.g. for Qt 4).
804
805         Covered by a series of tests that were skipped for the
806         Qt port up until now.
807
808         * platform/graphics/qt/FontPlatformData.h:
809         (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate):
810         Initialize the platform data used as fallback in conjunction with SVG
811         fonts so it will honor size, weight and oblique-ness.
812         * rendering/svg/SVGTextMetricsBuilder.cpp: Avoid forcing the complex path.
813         (WebCore::SVGTextMetricsBuilder::advance):
814         (WebCore::SVGTextMetricsBuilder::advanceSimpleText):
815         (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
816         * svg/SVGFontElement.cpp:
817         (WebCore::SVGFontElement::ensureGlyphCache): avoid ambiguity with String(const QString&)
818
819 2012-05-16  Kenichi Ishibashi  <bashi@chromium.org>
820
821         [Chromium] WebTransformationMatrixTest.verifyDefaultConstructorCreatesIdentityMatrix is failing
822         https://bugs.webkit.org/show_bug.cgi?id=86589
823
824         Reviewed by Kent Tamura.
825
826         Need to call m_private.reset(0) before destructing WebTransformationMatrix objects.
827
828         No new tests. WebTransformationMatrixTest should pass on debug build.
829
830         * platform/chromium/support/WebTransformationMatrix.cpp:
831         (WebKit::WebTransformationMatrix::~WebTransformationMatrix):
832         (WebKit):
833
834 2012-05-16  Shinya Kawanaka  <shinyak@chromium.org>
835
836         ShadowRoot.selection should return the seleciton whose range is in a shadow tree.
837         https://bugs.webkit.org/show_bug.cgi?id=82698
838
839         Reviewed by Ryosuke Niwa.
840
841         The selection object returned from shadowRoot.selection should be able to see
842         the inner object of the shadowRoot.
843
844         In the previous code, the node out of the shadow subtree was returned for
845         anchorNode, focusNode, baseNode, and extentNode. This patch enables us to get
846         the corresponding shadow ancestor in the specified TreeScope (m_treeScope).
847
848         Tests: editing/shadow/selection-of-orphan-shadowroot.html
849                editing/shadow/selection-of-shadowroot.html
850
851         * dom/ShadowRoot.cpp:
852         (WebCore::ShadowRoot::selection):
853         * dom/ShadowRoot.h:
854         (ShadowRoot):
855         * dom/TreeScope.cpp:
856         (WebCore::TreeScope::getSelection): When shadow DOM feature is not enabled, we want to use the same
857         instance of DOMSelection among Document and ShadowRoot.
858         * dom/TreeScopeAdjuster.cpp:
859         (WebCore::TreeScopeAdjuster::TreeScopeAdjuster):
860         (WebCore::TreeScopeAdjuster::ancestorInThisScope): Since node could be null, I've added a node check code.
861         * dom/TreeScopeAdjuster.h:
862         (TreeScopeAdjuster):
863         (WebCore::TreeScopeAdjuster::treeScope):
864         * page/DOMSelection.cpp:
865         (WebCore::DOMSelection::anchorNode):
866         (WebCore::DOMSelection::anchorOffset):
867         (WebCore::DOMSelection::focusNode):
868         (WebCore::DOMSelection::focusOffset):
869         (WebCore::DOMSelection::baseNode):
870         (WebCore::DOMSelection::baseOffset):
871         (WebCore::DOMSelection::extentNode):
872         (WebCore::DOMSelection::extentOffset):
873         (WebCore::DOMSelection::shadowAdjustedNode): Gets the corresponding node in the m_treeScope from the Position.
874         (WebCore):
875         (WebCore::DOMSelection::shadowAdjustedOffset): Gets the corresponding node offset in the m_treeScope from the Position.
876         * page/DOMSelection.h:
877         (WebCore):
878         (DOMSelection):
879
880 2012-05-16  Jason Liu  <jason.liu@torchmobile.com.cn>
881
882         [BlackBerry] xhr request to non existent file response is 0 and not 404.
883         https://bugs.webkit.org/show_bug.cgi?id=86344
884
885         Reviewed by George Staikos.
886
887         NetworkJob receives 404 for a XMLHttpRequest which calls open("HEAD", "notExist.html", true).
888         There are no data received because its method is HEAD.
889         This case should not be treated as a failure.
890
891         Add shouldNotifyClientFailed() to treat XMLHttpRequest as a special case.
892         XMLHttpRequest will fail when status code is smaller than zero.
893
894         If we use "GET" and receive 404 without body, NetworkJob won't go through failing code path, too.
895         So add http/tests/xmlhttprequest/xmlhttprequest-check-get-readystate-for-404-without-body.html
896         to check this case.
897
898         Test: http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html
899               http/tests/xmlhttprequest/xmlhttprequest-check-get-readystate-for-404-without-body.html
900         * platform/network/blackberry/NetworkJob.cpp:
901         (WebCore::NetworkJob::sendResponseIfNeeded):
902
903 2012-05-16  MORITA Hajime  <morrita@google.com>
904
905         HasCustomWillOrDidRecalcStyleFlag and family should live in a bit.
906         https://bugs.webkit.org/show_bug.cgi?id=86175
907
908         Reviewed by Ryosuke Niwa.
909
910         This change unifies following flags into one HasCustomCallbacksFlag.
911         - HasCustomWillOrDidRecalcStyleFlag
912         - HasCustomStyleForRendererFlag
913         - IsFrameOwnerElementFlag
914
915         By this change, some callbacks can be called even if there are no override.
916         So all custom callbacks should just pass these invocations.
917
918         No new tests. No behavior change.
919
920         * dom/ContainerNodeAlgorithms.h:
921         (WebCore::ChildFrameDisconnector::collectDescendant):
922         * dom/Element.cpp:
923         (WebCore::Element::styleForRenderer):
924         (WebCore::Element::recalcStyle):
925         (WebCore::Element::willRecalcStyle):
926         (WebCore):
927         (WebCore::Element::didRecalcStyle):
928         (WebCore::Element::customStyleForRenderer):
929         * dom/Element.h:
930         (Element):
931         * dom/Node.h:
932         (WebCore::Node::isFrameOwnerElement):
933         (WebCore::Node::hasCustomCallbacks):
934         (WebCore::Node::setHasCustomCallbacks):
935         * dom/Text.cpp:
936         (WebCore::Text::recalcTextStyle):
937         (WebCore::Text::willRecalcTextStyle):
938         (WebCore):
939         * dom/Text.h:
940         (Text):
941         * html/HTMLFormControlElement.cpp:
942         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
943         * html/HTMLFrameOwnerElement.cpp:
944         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
945         * html/HTMLFrameOwnerElement.h:
946         * html/HTMLFrameSetElement.cpp:
947         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
948         * html/HTMLIFrameElement.cpp:
949         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
950         * html/HTMLMediaElement.cpp:
951         (WebCore::HTMLMediaElement::HTMLMediaElement):
952         * html/HTMLPlugInImageElement.cpp:
953         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
954         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
955         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
956         (WebCore::HTMLPlugInImageElement::customStyleForRenderer):
957         * html/HTMLPlugInImageElement.h:
958         (HTMLPlugInImageElement):
959         * html/shadow/TextControlInnerElements.cpp:
960         (WebCore::TextControlInnerElement::TextControlInnerElement):
961         (WebCore::TextControlInnerElement::customStyleForRenderer):
962         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
963         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
964         * html/shadow/TextControlInnerElements.h:
965         (TextControlInnerElement):
966         (TextControlInnerTextElement):
967         * html/shadow/TextFieldDecorationElement.cpp:
968         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
969         (WebCore::TextFieldDecorationElement::customStyleForRenderer):
970         * html/shadow/TextFieldDecorationElement.h:
971         (TextFieldDecorationElement):
972         * svg/SVGElement.cpp:
973         (WebCore::SVGElement::SVGElement):
974         (WebCore::SVGElement::customStyleForRenderer):
975         * svg/SVGElement.h:
976         (SVGElement):
977         * svg/SVGTRefElement.cpp:
978         (WebCore::SVGShadowText::SVGShadowText):
979         * svg/SVGUseElement.cpp:
980         (WebCore::SVGUseElement::SVGUseElement):
981
982 2012-05-16  Yury Semikhatsky  <yurys@chromium.org>
983
984         Web Inspector: exception when switching to heap profiler comparison view
985         https://bugs.webkit.org/show_bug.cgi?id=86224
986
987         Reviewed by Pavel Feldman.
988
989         Make sure the messages are dispatched in the same order as they are sent in
990         case a fake worker is used for heap snapshot processing.
991
992         * inspector/front-end/HeapSnapshotProxy.js:
993         (WebInspector.AsyncTaskQueue):
994         (WebInspector.AsyncTaskQueue.prototype.addTask):
995         (WebInspector.AsyncTaskQueue.prototype._onTimeout):
996         (WebInspector.AsyncTaskQueue.prototype._scheduleTimer):
997         (WebInspector.HeapSnapshotFakeWorker):
998         (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):
999         (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
1000
1001 2012-05-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1002
1003         [EFL] PlatformKeyboardEvent: figures, letters and printscreen key handling
1004         https://bugs.webkit.org/show_bug.cgi?id=85503
1005
1006         Reviewed by Gustavo Noronha Silva.
1007
1008         * platform/efl/EflKeyboardUtilities.cpp:
1009         (WebCore::addCharactersToKeyMap): aux function
1010         (WebCore):
1011         (WebCore::createKeyMap): Figures and letters keys are added to the keyMap
1012         (WebCore::addCharactersToWinKeyMap): aux function
1013         (WebCore::createWindowsKeyMap): Capital letters keys are added to the windowsKeyMap. Corrected value for printscreen key.
1014         (WebCore::singleCharacterString): Return empty text for printscreen key.
1015
1016 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
1017
1018         Web Inspector: rename DebuggerPresentationModel to DebuggerScriptMapping, make it private to ScriptsPanel.
1019         https://bugs.webkit.org/show_bug.cgi?id=86594
1020
1021         Reviewed by Vsevolod Vlasov.
1022
1023         This change completes the elimination of the presentation model.
1024
1025         * WebCore.gypi:
1026         * WebCore.vcproj/WebCore.vcproj:
1027         * inspector/compile-front-end.py:
1028         * inspector/front-end/AuditFormatters.js:
1029         (WebInspector.AuditFormatters.resourceLink):
1030         * inspector/front-end/DebuggerResourceBinding.js:
1031         (WebInspector.DebuggerResourceBinding):
1032         (WebInspector.DebuggerResourceBinding.prototype._uiSourceCodeForResource):
1033         * inspector/front-end/DebuggerScriptMapping.js: Renamed from Source/WebCore/inspector/front-end/DebuggerPresentationModel.js.
1034         (WebInspector.DebuggerScriptMapping):
1035         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeListChanged):
1036         * inspector/front-end/FilteredItemSelectionDialog.js:
1037         (WebInspector.OpenScriptDialog):
1038         (WebInspector.OpenScriptDialog.install):
1039         (WebInspector.OpenScriptDialog._show):
1040         * inspector/front-end/JavaScriptSourceFrame.js:
1041         (WebInspector.JavaScriptSourceFrame):
1042         * inspector/front-end/PresentationConsoleMessageHelper.js:
1043         (WebInspector.PresentationConsoleMessageHelper):
1044         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleCleared):
1045         * inspector/front-end/ScriptsPanel.js:
1046         (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
1047         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1048         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
1049         * inspector/front-end/ScriptsSearchScope.js:
1050         (WebInspector.ScriptsSearchScope):
1051         (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
1052         * inspector/front-end/UISourceCode.js:
1053         (WebInspector.UISourceCodeProject):
1054         (WebInspector.UISourceCodeProject.prototype.uiSourceCodes):
1055         * inspector/front-end/WebKit.qrc:
1056         * inspector/front-end/inspector.html:
1057         * inspector/front-end/inspector.js:
1058         (WebInspector._createPanels):
1059
1060 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
1061
1062         Web Inspector: use separate fields for storing HeapSnapshotLoaderProxy and HeapSnapshotProxy
1063         https://bugs.webkit.org/show_bug.cgi?id=86488
1064
1065         Reviewed by Pavel Feldman.
1066
1067         Simplified heap profiler snapshot loading code. Introduced dedicated fields for
1068         snapshot loader proxy and for snapshot proxy.
1069
1070         * inspector/front-end/HeapSnapshotProxy.js:
1071         (WebInspector.HeapSnapshotWorker):
1072         (WebInspector.HeapSnapshotLoaderProxy):
1073         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading.updateStaticData):
1074         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading.callLoadCallbacks):
1075         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading):
1076         (WebInspector.HeapSnapshotLoaderProxy.prototype.get loaded):
1077         (WebInspector.HeapSnapshotLoaderProxy.prototype.startLoading):
1078         (WebInspector.HeapSnapshotLoaderProxy.prototype.pushJSONChunk):
1079         * inspector/front-end/HeapSnapshotView.js:
1080         (WebInspector.HeapSnapshotView.profileCallback):
1081         (WebInspector.HeapSnapshotView):
1082         (WebInspector.HeapSnapshotView.prototype.dispose):
1083         (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper):
1084         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback1):
1085         (WebInspector.HeapSnapshotView.prototype._changeView):
1086         (WebInspector.HeapProfileHeader): split _proxy field into _loaderProxy and _snapshotProxy
1087         (WebInspector.HeapProfileHeader.prototype.snapshotProxy):
1088         (WebInspector.HeapProfileHeader.prototype.load):
1089         (WebInspector.HeapProfileHeader.prototype._setupWorker):
1090         (WebInspector.HeapProfileHeader.prototype.dispose):
1091         (WebInspector.HeapProfileHeader.prototype._saveStatusUpdate):
1092         (WebInspector.HeapProfileHeader.prototype.pushJSONChunk):
1093         (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
1094         (WebInspector.HeapProfileHeader.prototype.canSaveToFile):
1095         (WebInspector.HeapProfileHeader.prototype.loadFromFile.onLoad):
1096         (WebInspector.HeapProfileHeader.prototype.loadFromFile):
1097
1098 2012-05-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1099
1100         Web Inspector: Use CSS columns feature for HelpScreen contents.
1101         https://bugs.webkit.org/show_bug.cgi?id=86367
1102
1103         Reviewed by Yury Semikhatsky.
1104
1105         Right-docked inspector should show shortcuts/settings in one column.
1106         Bottom-docked inspector should use horizontal space more effectively
1107         (more than 2 columns in shortcuts/settings).
1108
1109         Please see attached screenshots.
1110
1111         UI adjustments, no new tests.
1112
1113         * inspector/front-end/SettingsScreen.js:
1114         (WebInspector.SettingsScreen): Turned table to div.
1115         (WebInspector.SettingsScreen.prototype._appendSection): Removed.
1116         * inspector/front-end/ShortcutsScreen.js:
1117         (WebInspector.ShortcutsScreen.prototype._buildTable): Removed "balancing" algorithm.
1118         (WebInspector.ShortcutsSection.prototype.renderSection): Turned table to div.
1119         (WebInspector.ShortcutsSection.prototype._renderHeader): Ditto.
1120         * inspector/front-end/helpScreen.css: Use CSS columns feature.
1121         (.help-container): Added columns container.
1122         (.help-block): Added "section".
1123         (.help-line): Added key shortcut line.
1124         (.help-key-cell): Added key shortcut cell.
1125         (.help-cell): Ditto
1126         (.help-section-title): Combined title classes
1127         (.help-content p): Adjusted spacing.
1128
1129 2012-05-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1130
1131         Unreviewed, rolling out r117050.
1132         http://trac.webkit.org/changeset/117050
1133         https://bugs.webkit.org/show_bug.cgi?id=86587
1134
1135         "Some heap profiler tests started timing out" (Requested by
1136         yurys on #webkit).
1137
1138         * inspector/front-end/HeapSnapshotProxy.js:
1139         (WebInspector.HeapSnapshotFakeWorker):
1140         (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):
1141         (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
1142
1143 2012-05-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1144
1145         Unreviewed, rolling out r117206.
1146         http://trac.webkit.org/changeset/117206
1147         https://bugs.webkit.org/show_bug.cgi?id=86583
1148
1149         breaks chromium browser_tests (Requested by bashi1 on
1150         #webkit).
1151
1152         * loader/MainResourceLoader.cpp:
1153         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1154         * loader/archive/mhtml/MHTMLArchive.cpp:
1155         (WebCore::MHTMLArchive::create):
1156
1157 2012-05-16  Nikolas Zimmermann  <nzimmermann@rim.com>
1158
1159         REGRESSION(r105057): Infinite loop inside SVGTextLayoutEngine::currentLogicalCharacterMetrics
1160         https://bugs.webkit.org/show_bug.cgi?id=83405
1161
1162         Reviewed by Darin Adler.
1163
1164         Dynamically adding tspans carrying position information in the x/y/dx/dy/rotate lists is broken.
1165         To avoid mistakes like this in future, simplify the calling code in RenderSVGInlineText and centralize
1166         the management of all caches (text positioning element cache / metrics map / layout attributes) in
1167         RenderSVGText. This avoids the hack in SVGRootInlineBox::computePerCharacterLayoutInformation() which
1168         called textRoot->rebuildLayoutAttributes(), which was used to fix previous security issues with this code.
1169         Instead correctly handle destruction of RenderSVGInlineText in RenderSVGText, keeping the m_layoutAttributes
1170         synchronized with the current state of the render tree. Fixes highcharts problems.
1171
1172         Tests: svg/text/add-tspan-position-bug.html
1173                svg/text/highcharts-assertion.html
1174                svg/text/modify-tspan-position-bug.html
1175
1176         * rendering/svg/RenderSVGBlock.h:
1177         (RenderSVGBlock):
1178         * rendering/svg/RenderSVGInline.cpp:
1179         (WebCore::RenderSVGInline::addChild):
1180         (WebCore::RenderSVGInline::removeChild):
1181         * rendering/svg/RenderSVGInline.h:
1182         (RenderSVGInline):
1183         * rendering/svg/RenderSVGInlineText.cpp:
1184         (WebCore::RenderSVGInlineText::setTextInternal):
1185         (WebCore::RenderSVGInlineText::styleDidChange):
1186         * rendering/svg/RenderSVGInlineText.h:
1187         * rendering/svg/RenderSVGText.cpp:
1188         (WebCore::RenderSVGText::RenderSVGText):
1189         (WebCore::RenderSVGText::~RenderSVGText):
1190         (WebCore::collectLayoutAttributes):
1191         (WebCore::RenderSVGText::subtreeChildWasAdded):
1192         (WebCore::findPreviousAndNextAttributes):
1193         (WebCore::checkLayoutAttributesConsistency):
1194         (WebCore::RenderSVGText::willBeDestroyed):
1195         (WebCore::RenderSVGText::subtreeChildWillBeRemoved):
1196         (WebCore::RenderSVGText::subtreeChildWasRemoved):
1197         (WebCore::RenderSVGText::subtreeStyleDidChange):
1198         (WebCore::RenderSVGText::subtreeTextDidChange):
1199         (WebCore::updateFontInAllDescendants):
1200         (WebCore::RenderSVGText::layout):
1201         (WebCore::RenderSVGText::addChild):
1202         (WebCore::RenderSVGText::removeChild):
1203         * rendering/svg/RenderSVGText.h:
1204         (RenderSVGText):
1205         * rendering/svg/SVGRenderSupport.cpp:
1206         (WebCore::SVGRenderSupport::layoutChildren):
1207         * rendering/svg/SVGRootInlineBox.cpp:
1208         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
1209         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
1210         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForTextRenderer):
1211         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForWholeTree):
1212         (WebCore::SVGTextLayoutAttributesBuilder::rebuildMetricsForTextRenderer):
1213         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
1214         * rendering/svg/SVGTextLayoutAttributesBuilder.h:
1215         (SVGTextLayoutAttributesBuilder):
1216         (WebCore::SVGTextLayoutAttributesBuilder::numberOfTextPositioningElements):
1217         * svg/SVGAElement.cpp:
1218         * svg/SVGAElement.h:
1219         (SVGAElement):
1220         * svg/SVGTextContentElement.cpp:
1221         * svg/SVGTextContentElement.h:
1222         (SVGTextContentElement):
1223
1224 2012-05-15  Abhishek Arya  <inferno@chromium.org>
1225
1226         Crash in Document::nodeChildrenWillBeRemoved.
1227         https://bugs.webkit.org/show_bug.cgi?id=85247
1228
1229         Reviewed by Hajime Morita.
1230
1231         Reverse ordering of commands to ref ptr the children set
1232         first before calling nodeChildrenWillBeRemoved, since it
1233         can fire mutation events.
1234
1235         Test: fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml
1236
1237         * dom/ContainerNode.cpp:
1238         (WebCore::willRemoveChildren):
1239
1240 2012-05-15  Igor Oliveira  <igor.o@sisa.samsung.com>
1241
1242         regression(111639): Issue with simultaneous CSS animations
1243         https://bugs.webkit.org/show_bug.cgi?id=85929
1244
1245         Currently, previousTimeToNextService is just saving the previous CompositeAnimation::timeToNextService
1246         for AnimationControllerPrivate::updateAnimationTimerForRenderer, however CompositeAnimation::timeToNextService
1247         is also called and used by updateAnimationTimer. Make sure we save the existing timeToNextService from
1248         both places, updateAnimationTimerForRenderer and updateAnimationTimer.
1249
1250         Reviewed by Dean Jackson.
1251
1252         Test: animations/fill-mode-forwards.html
1253
1254         * page/animation/AnimationController.cpp:
1255         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
1256         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
1257         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
1258         * page/animation/AnimationControllerPrivate.h:
1259         (AnimationControllerPrivate):
1260
1261 2012-05-15  Tien-Ren Chen  <trchen@chromium.org>
1262
1263         [Chromium] CCTimer::isActive() is incorrect inside tick callback
1264         https://bugs.webkit.org/show_bug.cgi?id=86513
1265
1266         This patch implements CCTimer::isActive() by clearing the task pointer
1267         when the timer fires.
1268
1269         Reviewed by James Robinson.
1270
1271         No new tests. Existing tests updated accordingly.
1272
1273         * platform/graphics/chromium/cc/CCTimer.cpp:
1274         (WebCore::CCTimerTask::performTask):
1275         * rendering/RenderLayerBacking.cpp:
1276
1277 2012-05-15  Kentaro Hara  <haraken@chromium.org>
1278
1279         Unreviewed. Rebaselined run-bindings-tests results.
1280
1281         * bindings/scripts/test/JS/JSFloat64Array.cpp:
1282         (WebCore::JSFloat64Array::getOwnPropertySlot):
1283         (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
1284         (WebCore::JSFloat64Array::put):
1285         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1286         (WebCore::JSTestEventTarget::getOwnPropertySlot):
1287         (WebCore::JSTestEventTarget::getOwnPropertyDescriptor):
1288
1289 2012-05-15  Shinya Kawanaka  <shinyak@chromium.org>
1290
1291         Rename Node::shadowTreeRootNode() to Node::shadowRoot()
1292         https://bugs.webkit.org/show_bug.cgi?id=86449
1293
1294         Reviewed by Darin Adler.
1295
1296         Since Node::shadowTreeRootNode() returns always a ShadowRoot now, shadowRoot() is
1297         mure suitable than shadowTreeRootNode().
1298
1299         This patch changes the method name.
1300
1301         No new tests, no change in behavior.
1302
1303         * WebCore.order:
1304         * dom/Node.cpp:
1305         (WebCore::Node::rendererIsEditable):
1306         (WebCore::Node::shadowAncestorNode):
1307         (WebCore::Node::shadowRoot):
1308         * dom/Node.h:
1309         (Node):
1310         * dom/NodeRenderingContext.cpp:
1311         (WebCore::NodeRenderingContext::NodeRenderingContext):
1312         * dom/Range.cpp:
1313         (WebCore::Range::shadowRoot):
1314         * dom/Range.h:
1315         (Range):
1316         * editing/Editor.cpp:
1317         (WebCore::Editor::nextVisibleRange):
1318         (WebCore::Editor::countMatchesForText):
1319         * editing/TextIterator.cpp:
1320         (WebCore::TextIterator::handleReplacedElement):
1321         * editing/htmlediting.cpp:
1322         (WebCore::indexForVisiblePosition):
1323         * html/shadow/ContentSelectorQuery.cpp:
1324         (WebCore::ContentSelectorQuery::matches):
1325         * html/shadow/HTMLContentElement.cpp:
1326         (WebCore::HTMLContentElement::parseAttribute):
1327         * html/shadow/InsertionPoint.cpp:
1328         (WebCore::InsertionPoint::detach):
1329         * page/EventHandler.cpp:
1330         (WebCore::instanceAssociatedWithShadowTreeElement):
1331         * svg/SVGElement.cpp:
1332         (WebCore::SVGElement::correspondingElement):
1333         (WebCore::collectInstancesForSVGElement):
1334
1335 2012-05-15  Nico Weber  <thakis@chromium.org>
1336
1337         [chromium] Remove some unused gyp lines
1338         https://bugs.webkit.org/show_bug.cgi?id=86545
1339
1340         Reviewed by Dirk Pranke.
1341
1342         mac_framework_dirs adds directories to search for frameworks
1343         (similar to -I for includes), it doesn't add any frameworks.
1344         Having something that ends in .framewok in mac_framework_dirs
1345         doesn't make sense.
1346
1347         No intended functionality change.
1348
1349         * WebCore.gyp/WebCore.gyp:
1350
1351 2012-05-13  Philippe Normand  <pnormand@igalia.com>
1352
1353         [GStreamer] build a static list of mime-types
1354         https://bugs.webkit.org/show_bug.cgi?id=86331
1355
1356         Reviewed by Martin Robinson.
1357
1358         Don't bother parsing the gstreamer typefind factories and doing
1359         ugly hacks around this. Instead build a static list and let our
1360         ::supportsType() method return MediaPlayer::MayBeSupported or
1361         MediaPlayer::IsSupported for them. Playback will still fail if a
1362         demuxer or decoder is missing for one of these mime-types but we
1363         will handle that case more properly soon by fixing bug 34085 and
1364         bug 34318.
1365
1366         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1367
1368 2012-05-15  Greg Spencer  <gspencer@chromium.org>
1369
1370         MHTML files should be loadable from all schemes considered local,
1371         not just file:
1372
1373         https://bugs.webkit.org/show_bug.cgi?id=86540
1374
1375         Reviewed by Adam Barth.
1376
1377         Current tests should assure that loading is still allowed locally.
1378
1379         * loader/MainResourceLoader.cpp:
1380         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1381         * loader/archive/mhtml/MHTMLArchive.cpp:
1382         (WebCore::MHTMLArchive::create):
1383
1384 2012-05-15  Fady Samuel  <fsamuel@chromium.org>
1385
1386         [Chromium] Reset ScriptInstance in HTMLPlugInElement on WebPluginContainerImpl::setPlugin
1387         https://bugs.webkit.org/show_bug.cgi?id=86535
1388
1389         Reviewed by Darin Fisher.
1390         
1391         When we swap out WebPluginImpls for the Browser Plugin, the HTMLPlugInElement continues
1392         to use a now invalid ScriptInstance, so we reset the ScriptInstance on WebPluginContainerImpl::setPlugin
1393
1394         * html/HTMLPlugInElement.cpp:
1395         (WebCore::HTMLPlugInElement::resetInstance):
1396         (WebCore):
1397         * html/HTMLPlugInElement.h:
1398         (HTMLPlugInElement):
1399
1400 2012-05-15  Robert Hogan  <robert@webkit.org>
1401
1402         Heap-use-after-free in WebCore::RenderBlock::layoutRunsAndFloats
1403         https://bugs.webkit.org/show_bug.cgi?id=86206
1404
1405         Reviewed by Abhishek Arya.
1406
1407         Revert https://trac.webkit.org/changeset/116438/. It caused three different regressions on 
1408         ClusterFuzz.
1409
1410         * rendering/RenderBlock.cpp:
1411         (WebCore::RenderBlock::updateFirstLetter):
1412         * rendering/RenderBlock.h:
1413         (RenderBlock):
1414
1415 2012-05-15  Beth Dakin  <bdakin@apple.com>
1416
1417         https://bugs.webkit.org/show_bug.cgi?id=86549
1418         Page Scale + Tiled Drawing: Twitter sign in page content disappears 
1419         after typing into name and enabling password field
1420         -and corresponding-
1421         <rdar://problem/11415352>
1422
1423         Reviewed by Oliver Hunt.
1424
1425         The enormous rect we used to use would overflow in CA and do nothing 
1426         when there was any scale > 1 on the context. Instead, just call 
1427         setNeedsDisplay on each tile.
1428         * platform/graphics/ca/mac/TileCache.mm:
1429         (WebCore::TileCache::setNeedsDisplay):
1430
1431 2012-05-15  Andreas Kling  <kling@webkit.org>
1432
1433         Pass Attribute by const reference as much as possible.
1434         <http://webkit.org/b/86487>
1435
1436         Reviewed by Darin Adler.
1437
1438         Switch to passing around "const Attribute&" instead of "Attribute*" wherever possible.
1439         This helps enforce the constness and non-nullity of these arguments at compile time.
1440
1441         Also renamed 'attr' to 'attribute' in the touched code. Attr and Attribute are two
1442         different classes, so having "Attribute attr" just looks wrong.
1443
1444         * bindings/js/ScriptEventListener.cpp:
1445         (WebCore::createAttributeEventListener):
1446         * bindings/js/ScriptEventListener.h:
1447         * bindings/v8/ScriptEventListener.cpp:
1448         (WebCore::createAttributeEventListener):
1449         * bindings/v8/ScriptEventListener.h:
1450         * dom/Attr.cpp:
1451         (WebCore::Attr::setPrefix):
1452         (WebCore::Attr::setValue):
1453         (WebCore::Attr::childrenChanged):
1454         (WebCore::Attr::style):
1455         (WebCore::Attr::elementAttribute):
1456         * dom/Attr.h:
1457         * dom/Element.cpp:
1458         (WebCore::Element::setAttributeInternal):
1459         (WebCore::Element::attributeChanged):
1460         (WebCore::Element::parserSetAttributes):
1461         (WebCore::Element::didAddAttribute):
1462         (WebCore::Element::didModifyAttribute):
1463         (WebCore::Element::didRemoveAttribute):
1464         * dom/Element.h:
1465         * dom/ElementAttributeData.cpp:
1466         (WebCore::ElementAttributeData::addAttribute):
1467         (WebCore::ElementAttributeData::setAttributes):
1468         (WebCore::ElementAttributeData::replaceAttribute):
1469         * dom/StyledElement.cpp:
1470         (WebCore::StyledElement::attributeChanged):
1471         (WebCore::StyledElement::parseAttribute):
1472         (WebCore::StyledElement::updateAttributeStyle):
1473         * dom/StyledElement.h:
1474         (WebCore::StyledElement::collectStyleForAttribute):
1475         * html/HTMLAnchorElement.cpp:
1476         (WebCore::HTMLAnchorElement::parseAttribute):
1477         * html/HTMLAnchorElement.h:
1478         * html/HTMLAppletElement.cpp:
1479         (WebCore::HTMLAppletElement::parseAttribute):
1480         * html/HTMLAppletElement.h:
1481         * html/HTMLAreaElement.cpp:
1482         (WebCore::HTMLAreaElement::parseAttribute):
1483         * html/HTMLAreaElement.h:
1484         * html/HTMLBRElement.cpp:
1485         (WebCore::HTMLBRElement::collectStyleForAttribute):
1486         * html/HTMLBRElement.h:
1487         * html/HTMLBaseElement.cpp:
1488         (WebCore::HTMLBaseElement::parseAttribute):
1489         * html/HTMLBaseElement.h:
1490         * html/HTMLBodyElement.cpp:
1491         (WebCore::HTMLBodyElement::collectStyleForAttribute):
1492         (WebCore::HTMLBodyElement::parseAttribute):
1493         * html/HTMLBodyElement.h:
1494         * html/HTMLButtonElement.cpp:
1495         (WebCore::HTMLButtonElement::parseAttribute):
1496         * html/HTMLButtonElement.h:
1497         * html/HTMLCanvasElement.cpp:
1498         (WebCore::HTMLCanvasElement::parseAttribute):
1499         * html/HTMLCanvasElement.h:
1500         * html/HTMLDetailsElement.cpp:
1501         (WebCore::HTMLDetailsElement::parseAttribute):
1502         * html/HTMLDetailsElement.h:
1503         * html/HTMLDivElement.cpp:
1504         (WebCore::HTMLDivElement::collectStyleForAttribute):
1505         * html/HTMLDivElement.h:
1506         * html/HTMLElement.cpp:
1507         (WebCore::parseBorderWidthAttribute):
1508         (WebCore::HTMLElement::applyBorderAttributeToStyle):
1509         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
1510         (WebCore::HTMLElement::collectStyleForAttribute):
1511         (WebCore::HTMLElement::parseAttribute):
1512         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
1513         (WebCore::HTMLElement::dirAttributeChanged):
1514         * html/HTMLElement.h:
1515         * html/HTMLEmbedElement.cpp:
1516         (WebCore::HTMLEmbedElement::collectStyleForAttribute):
1517         (WebCore::HTMLEmbedElement::parseAttribute):
1518         * html/HTMLEmbedElement.h:
1519         * html/HTMLFontElement.cpp:
1520         (WebCore::HTMLFontElement::collectStyleForAttribute):
1521         * html/HTMLFontElement.h:
1522         * html/HTMLFormControlElement.cpp:
1523         (WebCore::HTMLFormControlElement::parseAttribute):
1524         * html/HTMLFormControlElement.h:
1525         * html/HTMLFormElement.cpp:
1526         (WebCore::HTMLFormElement::parseAttribute):
1527         * html/HTMLFormElement.h:
1528         * html/HTMLFrameElement.cpp:
1529         (WebCore::HTMLFrameElement::parseAttribute):
1530         * html/HTMLFrameElement.h:
1531         * html/HTMLFrameElementBase.cpp:
1532         (WebCore::HTMLFrameElementBase::parseAttribute):
1533         * html/HTMLFrameElementBase.h:
1534         (HTMLFrameElementBase):
1535         * html/HTMLFrameSetElement.cpp:
1536         (WebCore::HTMLFrameSetElement::collectStyleForAttribute):
1537         (WebCore::HTMLFrameSetElement::parseAttribute):
1538         * html/HTMLFrameSetElement.h:
1539         * html/HTMLHRElement.cpp:
1540         (WebCore::HTMLHRElement::collectStyleForAttribute):
1541         * html/HTMLHRElement.h:
1542         * html/HTMLIFrameElement.cpp:
1543         (WebCore::HTMLIFrameElement::collectStyleForAttribute):
1544         (WebCore::HTMLIFrameElement::parseAttribute):
1545         * html/HTMLIFrameElement.h:
1546         * html/HTMLImageElement.cpp:
1547         (WebCore::HTMLImageElement::collectStyleForAttribute):
1548         (WebCore::HTMLImageElement::parseAttribute):
1549         * html/HTMLImageElement.h:
1550         * html/HTMLInputElement.cpp:
1551         (WebCore::HTMLInputElement::updateType):
1552         (WebCore::HTMLInputElement::collectStyleForAttribute):
1553         (WebCore::HTMLInputElement::parseAttribute):
1554         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
1555         * html/HTMLInputElement.h:
1556         * html/HTMLKeygenElement.cpp:
1557         (WebCore::HTMLKeygenElement::parseAttribute):
1558         * html/HTMLKeygenElement.h:
1559         * html/HTMLLIElement.cpp:
1560         (WebCore::HTMLLIElement::collectStyleForAttribute):
1561         (WebCore::HTMLLIElement::parseAttribute):
1562         * html/HTMLLIElement.h:
1563         * html/HTMLLinkElement.cpp:
1564         (WebCore::HTMLLinkElement::parseAttribute):
1565         * html/HTMLLinkElement.h:
1566         * html/HTMLMapElement.cpp:
1567         (WebCore::HTMLMapElement::parseAttribute):
1568         * html/HTMLMapElement.h:
1569         * html/HTMLMarqueeElement.cpp:
1570         (WebCore::HTMLMarqueeElement::collectStyleForAttribute):
1571         * html/HTMLMarqueeElement.h:
1572         * html/HTMLMediaElement.cpp:
1573         (WebCore::HTMLMediaElement::parseAttribute):
1574         * html/HTMLMediaElement.h:
1575         * html/HTMLMetaElement.cpp:
1576         (WebCore::HTMLMetaElement::parseAttribute):
1577         * html/HTMLMetaElement.h:
1578         * html/HTMLMeterElement.cpp:
1579         (WebCore::HTMLMeterElement::parseAttribute):
1580         * html/HTMLMeterElement.h:
1581         * html/HTMLOListElement.cpp:
1582         (WebCore::HTMLOListElement::collectStyleForAttribute):
1583         (WebCore::HTMLOListElement::parseAttribute):
1584         * html/HTMLOListElement.h:
1585         * html/HTMLObjectElement.cpp:
1586         (WebCore::HTMLObjectElement::collectStyleForAttribute):
1587         (WebCore::HTMLObjectElement::parseAttribute):
1588         * html/HTMLObjectElement.h:
1589         * html/HTMLOptGroupElement.cpp:
1590         (WebCore::HTMLOptGroupElement::parseAttribute):
1591         * html/HTMLOptGroupElement.h:
1592         * html/HTMLOptionElement.cpp:
1593         (WebCore::HTMLOptionElement::parseAttribute):
1594         * html/HTMLOptionElement.h:
1595         * html/HTMLOutputElement.cpp:
1596         (WebCore::HTMLOutputElement::parseAttribute):
1597         * html/HTMLOutputElement.h:
1598         * html/HTMLParagraphElement.cpp:
1599         (WebCore::HTMLParagraphElement::collectStyleForAttribute):
1600         * html/HTMLParagraphElement.h:
1601         * html/HTMLPlugInElement.cpp:
1602         (WebCore::HTMLPlugInElement::collectStyleForAttribute):
1603         * html/HTMLPlugInElement.h:
1604         * html/HTMLPreElement.cpp:
1605         (WebCore::HTMLPreElement::collectStyleForAttribute):
1606         * html/HTMLPreElement.h:
1607         * html/HTMLProgressElement.cpp:
1608         (WebCore::HTMLProgressElement::parseAttribute):
1609         * html/HTMLProgressElement.h:
1610         * html/HTMLScriptElement.cpp:
1611         (WebCore::HTMLScriptElement::parseAttribute):
1612         * html/HTMLScriptElement.h:
1613         * html/HTMLSelectElement.cpp:
1614         (WebCore::HTMLSelectElement::parseAttribute):
1615         (WebCore::HTMLSelectElement::parseMultipleAttribute):
1616         * html/HTMLSelectElement.h:
1617         * html/HTMLStyleElement.cpp:
1618         (WebCore::HTMLStyleElement::parseAttribute):
1619         * html/HTMLStyleElement.h:
1620         * html/HTMLTableCaptionElement.cpp:
1621         (WebCore::HTMLTableCaptionElement::collectStyleForAttribute):
1622         * html/HTMLTableCaptionElement.h:
1623         * html/HTMLTableCellElement.cpp:
1624         (WebCore::HTMLTableCellElement::collectStyleForAttribute):
1625         (WebCore::HTMLTableCellElement::parseAttribute):
1626         * html/HTMLTableCellElement.h:
1627         * html/HTMLTableColElement.cpp:
1628         (WebCore::HTMLTableColElement::collectStyleForAttribute):
1629         (WebCore::HTMLTableColElement::parseAttribute):
1630         * html/HTMLTableColElement.h:
1631         * html/HTMLTableElement.cpp:
1632         (WebCore::HTMLTableElement::collectStyleForAttribute):
1633         (WebCore::HTMLTableElement::parseAttribute):
1634         * html/HTMLTableElement.h:
1635         * html/HTMLTablePartElement.cpp:
1636         (WebCore::HTMLTablePartElement::collectStyleForAttribute):
1637         * html/HTMLTablePartElement.h:
1638         * html/HTMLTextAreaElement.cpp:
1639         (WebCore::HTMLTextAreaElement::collectStyleForAttribute):
1640         (WebCore::HTMLTextAreaElement::parseAttribute):
1641         * html/HTMLTextAreaElement.h:
1642         * html/HTMLTextFormControlElement.cpp:
1643         (WebCore::HTMLTextFormControlElement::parseAttribute):
1644         * html/HTMLTextFormControlElement.h:
1645         * html/HTMLTrackElement.cpp:
1646         (WebCore::HTMLTrackElement::parseAttribute):
1647         * html/HTMLTrackElement.h:
1648         * html/HTMLUListElement.cpp:
1649         (WebCore::HTMLUListElement::collectStyleForAttribute):
1650         * html/HTMLUListElement.h:
1651         * html/HTMLVideoElement.cpp:
1652         (WebCore::HTMLVideoElement::collectStyleForAttribute):
1653         (WebCore::HTMLVideoElement::parseAttribute):
1654         * html/HTMLVideoElement.h:
1655         * html/shadow/HTMLContentElement.cpp:
1656         (WebCore::HTMLContentElement::parseAttribute):
1657         * html/shadow/HTMLContentElement.h:
1658         * mathml/MathMLElement.cpp:
1659         (WebCore::MathMLElement::collectStyleForAttribute):
1660         * mathml/MathMLElement.h:
1661         * svg/SVGAElement.cpp:
1662         (WebCore::SVGAElement::parseAttribute):
1663         * svg/SVGAElement.h:
1664         * svg/SVGAnimateMotionElement.cpp:
1665         (WebCore::SVGAnimateMotionElement::parseAttribute):
1666         * svg/SVGAnimateMotionElement.h:
1667         * svg/SVGAnimateTransformElement.cpp:
1668         (WebCore::SVGAnimateTransformElement::parseAttribute):
1669         * svg/SVGAnimateTransformElement.h:
1670         * svg/SVGAnimationElement.cpp:
1671         (WebCore::SVGAnimationElement::parseAttribute):
1672         * svg/SVGAnimationElement.h:
1673         * svg/SVGCircleElement.cpp:
1674         (WebCore::SVGCircleElement::parseAttribute):
1675         * svg/SVGCircleElement.h:
1676         * svg/SVGClipPathElement.cpp:
1677         (WebCore::SVGClipPathElement::parseAttribute):
1678         * svg/SVGClipPathElement.h:
1679         * svg/SVGComponentTransferFunctionElement.cpp:
1680         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
1681         * svg/SVGComponentTransferFunctionElement.h:
1682         * svg/SVGCursorElement.cpp:
1683         (WebCore::SVGCursorElement::parseAttribute):
1684         * svg/SVGCursorElement.h:
1685         * svg/SVGElement.cpp:
1686         (WebCore::SVGElement::reportAttributeParsingError):
1687         (WebCore::SVGElement::parseAttribute):
1688         (WebCore::SVGElement::attributeChanged):
1689         * svg/SVGElement.h:
1690         * svg/SVGEllipseElement.cpp:
1691         (WebCore::SVGEllipseElement::parseAttribute):
1692         * svg/SVGEllipseElement.h:
1693         * svg/SVGExternalResourcesRequired.cpp:
1694         (WebCore::SVGExternalResourcesRequired::parseAttribute):
1695         * svg/SVGExternalResourcesRequired.h:
1696         (SVGExternalResourcesRequired):
1697         * svg/SVGFEBlendElement.cpp:
1698         (WebCore::SVGFEBlendElement::parseAttribute):
1699         * svg/SVGFEBlendElement.h:
1700         * svg/SVGFEColorMatrixElement.cpp:
1701         (WebCore::SVGFEColorMatrixElement::parseAttribute):
1702         * svg/SVGFEColorMatrixElement.h:
1703         * svg/SVGFEComponentTransferElement.cpp:
1704         (WebCore::SVGFEComponentTransferElement::parseAttribute):
1705         * svg/SVGFEComponentTransferElement.h:
1706         * svg/SVGFECompositeElement.cpp:
1707         (WebCore::SVGFECompositeElement::parseAttribute):
1708         * svg/SVGFECompositeElement.h:
1709         * svg/SVGFEConvolveMatrixElement.cpp:
1710         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
1711         * svg/SVGFEConvolveMatrixElement.h:
1712         * svg/SVGFEDiffuseLightingElement.cpp:
1713         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
1714         * svg/SVGFEDiffuseLightingElement.h:
1715         * svg/SVGFEDisplacementMapElement.cpp:
1716         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
1717         * svg/SVGFEDisplacementMapElement.h:
1718         * svg/SVGFEDropShadowElement.cpp:
1719         (WebCore::SVGFEDropShadowElement::parseAttribute):
1720         * svg/SVGFEDropShadowElement.h:
1721         * svg/SVGFEGaussianBlurElement.cpp:
1722         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
1723         * svg/SVGFEGaussianBlurElement.h:
1724         * svg/SVGFEImageElement.cpp:
1725         (WebCore::SVGFEImageElement::parseAttribute):
1726         * svg/SVGFEImageElement.h:
1727         * svg/SVGFELightElement.cpp:
1728         (WebCore::SVGFELightElement::parseAttribute):
1729         * svg/SVGFELightElement.h:
1730         * svg/SVGFEMergeNodeElement.cpp:
1731         (WebCore::SVGFEMergeNodeElement::parseAttribute):
1732         * svg/SVGFEMergeNodeElement.h:
1733         * svg/SVGFEMorphologyElement.cpp:
1734         (WebCore::SVGFEMorphologyElement::parseAttribute):
1735         * svg/SVGFEMorphologyElement.h:
1736         * svg/SVGFEOffsetElement.cpp:
1737         (WebCore::SVGFEOffsetElement::parseAttribute):
1738         * svg/SVGFEOffsetElement.h:
1739         * svg/SVGFESpecularLightingElement.cpp:
1740         (WebCore::SVGFESpecularLightingElement::parseAttribute):
1741         * svg/SVGFESpecularLightingElement.h:
1742         * svg/SVGFETileElement.cpp:
1743         (WebCore::SVGFETileElement::parseAttribute):
1744         * svg/SVGFETileElement.h:
1745         * svg/SVGFETurbulenceElement.cpp:
1746         (WebCore::SVGFETurbulenceElement::parseAttribute):
1747         * svg/SVGFETurbulenceElement.h:
1748         * svg/SVGFilterElement.cpp:
1749         (WebCore::SVGFilterElement::parseAttribute):
1750         * svg/SVGFilterElement.h:
1751         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1752         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
1753         * svg/SVGFilterPrimitiveStandardAttributes.h:
1754         (SVGFilterPrimitiveStandardAttributes):
1755         * svg/SVGFitToViewBox.cpp:
1756         (WebCore::SVGFitToViewBox::parseAttribute):
1757         * svg/SVGFitToViewBox.h:
1758         (SVGFitToViewBox):
1759         * svg/SVGFontFaceElement.cpp:
1760         (WebCore::SVGFontFaceElement::parseAttribute):
1761         * svg/SVGFontFaceElement.h:
1762         * svg/SVGFontFaceUriElement.cpp:
1763         (WebCore::SVGFontFaceUriElement::parseAttribute):
1764         * svg/SVGFontFaceUriElement.h:
1765         * svg/SVGForeignObjectElement.cpp:
1766         (WebCore::SVGForeignObjectElement::parseAttribute):
1767         * svg/SVGForeignObjectElement.h:
1768         * svg/SVGGElement.cpp:
1769         (WebCore::SVGGElement::parseAttribute):
1770         * svg/SVGGElement.h:
1771         * svg/SVGGlyphElement.cpp:
1772         (WebCore::SVGGlyphElement::parseAttribute):
1773         * svg/SVGGlyphElement.h:
1774         * svg/SVGGlyphRefElement.cpp:
1775         (WebCore::SVGGlyphRefElement::parseAttribute):
1776         * svg/SVGGlyphRefElement.h:
1777         * svg/SVGGradientElement.cpp:
1778         (WebCore::SVGGradientElement::parseAttribute):
1779         * svg/SVGGradientElement.h:
1780         * svg/SVGImageElement.cpp:
1781         (WebCore::SVGImageElement::collectStyleForAttribute):
1782         (WebCore::SVGImageElement::parseAttribute):
1783         * svg/SVGImageElement.h:
1784         * svg/SVGImageLoader.cpp:
1785         (WebCore::SVGImageLoader::sourceURI):
1786         * svg/SVGLangSpace.cpp:
1787         (WebCore::SVGLangSpace::parseAttribute):
1788         * svg/SVGLangSpace.h:
1789         (SVGLangSpace):
1790         * svg/SVGLineElement.cpp:
1791         (WebCore::SVGLineElement::parseAttribute):
1792         * svg/SVGLineElement.h:
1793         * svg/SVGLinearGradientElement.cpp:
1794         (WebCore::SVGLinearGradientElement::parseAttribute):
1795         * svg/SVGLinearGradientElement.h:
1796         * svg/SVGMPathElement.cpp:
1797         (WebCore::SVGMPathElement::parseAttribute):
1798         * svg/SVGMPathElement.h:
1799         * svg/SVGMarkerElement.cpp:
1800         (WebCore::SVGMarkerElement::parseAttribute):
1801         * svg/SVGMarkerElement.h:
1802         * svg/SVGMaskElement.cpp:
1803         (WebCore::SVGMaskElement::parseAttribute):
1804         * svg/SVGMaskElement.h:
1805         * svg/SVGPathElement.cpp:
1806         (WebCore::SVGPathElement::parseAttribute):
1807         * svg/SVGPathElement.h:
1808         * svg/SVGPatternElement.cpp:
1809         (WebCore::SVGPatternElement::parseAttribute):
1810         * svg/SVGPatternElement.h:
1811         * svg/SVGPolyElement.cpp:
1812         (WebCore::SVGPolyElement::parseAttribute):
1813         * svg/SVGPolyElement.h:
1814         * svg/SVGRadialGradientElement.cpp:
1815         (WebCore::SVGRadialGradientElement::parseAttribute):
1816         * svg/SVGRadialGradientElement.h:
1817         * svg/SVGRectElement.cpp:
1818         (WebCore::SVGRectElement::parseAttribute):
1819         * svg/SVGRectElement.h:
1820         * svg/SVGSVGElement.cpp:
1821         (WebCore::SVGSVGElement::parseAttribute):
1822         * svg/SVGSVGElement.h:
1823         * svg/SVGScriptElement.cpp:
1824         (WebCore::SVGScriptElement::parseAttribute):
1825         * svg/SVGScriptElement.h:
1826         * svg/SVGStopElement.cpp:
1827         (WebCore::SVGStopElement::parseAttribute):
1828         * svg/SVGStopElement.h:
1829         * svg/SVGStyleElement.cpp:
1830         (WebCore::SVGStyleElement::parseAttribute):
1831         * svg/SVGStyleElement.h:
1832         * svg/SVGStyledElement.cpp:
1833         (WebCore::SVGStyledElement::collectStyleForAttribute):
1834         (WebCore::SVGStyledElement::parseAttribute):
1835         * svg/SVGStyledElement.h:
1836         * svg/SVGStyledTransformableElement.cpp:
1837         (WebCore::SVGStyledTransformableElement::parseAttribute):
1838         * svg/SVGStyledTransformableElement.h:
1839         * svg/SVGSymbolElement.cpp:
1840         (WebCore::SVGSymbolElement::parseAttribute):
1841         * svg/SVGSymbolElement.h:
1842         * svg/SVGTRefElement.cpp:
1843         (WebCore::SVGTRefElement::parseAttribute):
1844         * svg/SVGTRefElement.h:
1845         * svg/SVGTests.cpp:
1846         (WebCore::SVGTests::parseAttribute):
1847         * svg/SVGTests.h:
1848         (SVGTests):
1849         * svg/SVGTextContentElement.cpp:
1850         (WebCore::SVGTextContentElement::collectStyleForAttribute):
1851         (WebCore::SVGTextContentElement::parseAttribute):
1852         * svg/SVGTextContentElement.h:
1853         * svg/SVGTextElement.cpp:
1854         (WebCore::SVGTextElement::parseAttribute):
1855         * svg/SVGTextElement.h:
1856         * svg/SVGTextPathElement.cpp:
1857         (WebCore::SVGTextPathElement::parseAttribute):
1858         * svg/SVGTextPathElement.h:
1859         * svg/SVGTextPositioningElement.cpp:
1860         (WebCore::SVGTextPositioningElement::parseAttribute):
1861         * svg/SVGTextPositioningElement.h:
1862         * svg/SVGURIReference.cpp:
1863         (WebCore::SVGURIReference::parseAttribute):
1864         * svg/SVGURIReference.h:
1865         (SVGURIReference):
1866         * svg/SVGUseElement.cpp:
1867         (WebCore::SVGUseElement::parseAttribute):
1868         * svg/SVGUseElement.h:
1869         * svg/SVGViewElement.cpp:
1870         (WebCore::SVGViewElement::parseAttribute):
1871         * svg/SVGViewElement.h:
1872         * svg/SVGZoomAndPan.cpp:
1873         (WebCore::SVGZoomAndPan::parseAttribute):
1874         * svg/SVGZoomAndPan.h:
1875         (SVGZoomAndPan):
1876         * svg/animation/SVGSMILElement.cpp:
1877         (WebCore::SVGSMILElement::parseAttribute):
1878         * svg/animation/SVGSMILElement.h:
1879
1880 2012-05-15  Kenneth Russell  <kbr@google.com>
1881
1882         Assertion failure running Mozilla's WebGL performance regression tests
1883         https://bugs.webkit.org/show_bug.cgi?id=85942
1884
1885         Reviewed by Stephen White.
1886
1887         Fixed incorrect assumptions about source formats and buffer sizes
1888         when uploading to floating-point textures. Added code paths
1889         supporting the necessary conversions.
1890
1891         Tests have been added to the WebGL conformance suite which cover
1892         these new code paths; they verify uploads of HTMLCanvasElement,
1893         HTMLImageElement, HTMLVideoElement, and ImageData to
1894         floating-point textures. However, because floating-point texture
1895         support is optional, and generally only supported on bots which
1896         run with real GPUs and not in virtual machines, it isn't feasible
1897         to incorporate these tests as layout tests.
1898
1899         Ran the new WebGL conformance tests in Chromium on Linux; all
1900         pass.
1901
1902         * platform/graphics/GraphicsContext3D.cpp:
1903         (WebCore::GraphicsContext3D::extractImageData):
1904         Properly compute size of destination buffer.
1905
1906         (WebCore):
1907         Add pack/unpack routines for converting RGBA8/BGRA8 to floating point.
1908
1909         (WebCore::doFloatingPointPacking):
1910         Support RGBA8 and BGRA8 source formats.
1911
1912         (WebCore::isFloatingPointSource):
1913         Factored out logic for assertions.
1914
1915         (WebCore::GraphicsContext3D::packPixels):
1916         Generalized assertions and logic.
1917
1918         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
1919         (WebCore::GraphicsContext3D::getImageData):
1920         Properly compute size of destination buffer.
1921
1922         * platform/graphics/cg/GraphicsContext3DCG.cpp:
1923         (WebCore::GraphicsContext3D::getImageData):
1924         Properly compute size of destination buffer.
1925
1926         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1927         (WebCore::GraphicsContext3D::getImageData):
1928         Properly compute size of destination buffer.
1929
1930         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
1931         (WebCore::GraphicsContext3D::getImageData):
1932         Properly compute size of destination buffer.
1933
1934 2012-05-15  James Robinson  <jamesr@chromium.org>
1935
1936         [chromium] Chromium port never sets USE(CG) so code behind it is dead
1937         https://bugs.webkit.org/show_bug.cgi?id=86537
1938
1939         Reviewed by Adrienne Walker.
1940
1941         Deletes code behind USE(CG) in chromium-specific code and removes unneeded USE(SKIA) guards.
1942
1943         * platform/chromium/DragImageRef.h:
1944         (WebCore):
1945         * platform/chromium/MIMETypeRegistryChromium.cpp:
1946         (WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
1947         * platform/chromium/ScrollbarThemeChromiumMac.mm:
1948         (WebCore::ScrollbarThemeChromiumMac::paint):
1949         * platform/chromium/ThemeChromiumMac.mm:
1950         (WebCore::paintStepper):
1951         * platform/graphics/chromium/PlatformImage.cpp:
1952         (WebCore::PlatformImage::updateFromImage):
1953
1954 2012-05-15  Keyar Hood  <keyar@chromium.org>
1955
1956         Skia does not respect a specified InterpolationQuality
1957         https://bugs.webkit.org/show_bug.cgi?id=86249
1958
1959         Reviewed by Stephen White.
1960
1961         The added functionality is not exposed to higher layers of webkit.
1962         Tests will be added that will exercise these changes when bug 82804 is 
1963         fixed.
1964
1965         * platform/graphics/GraphicsContext.cpp:
1966         (WebCore::GraphicsContext::drawImage):
1967         (WebCore::GraphicsContext::drawImageBuffer):
1968         Code to have the useLowQualityScale cause the InterpolationQuality be
1969         be set to low for Chromium but remain as none for other platforms.
1970         * platform/graphics/skia/ImageSkia.cpp:
1971         (WebCore::limitResamplingMode): Added
1972         (WebCore):
1973         (WebCore::paintSkBitmap):
1974         (WebCore::Image::drawPattern):
1975         We now limit the resampling choice based on what InterpolationQuality
1976         is set as. InterpolationNone restricts resampling to RESAMPLE_NONE,
1977         InterpolationLow and InterpolationMedium restricts resampling to
1978         RESAMPLE_LINEAR. InterpolationHigh and InterpolationDefault do not
1979         change the resampling.
1980         
1981         Furthermore, the choice on how to set the filter bitmap flag in
1982         paintSkBitmap was made to be consistent with that in
1983         Image::drawPattern.
1984
1985
1986 2012-05-15  Jeffrey Pfau  <jpfau@apple.com>
1987
1988         ImageDocuments erroneously trigger beforeload events for the main resource
1989         https://bugs.webkit.org/show_bug.cgi?id=86543
1990         <rdar://problem/11309013>
1991
1992         Reviewed by Brady Eidson.
1993
1994         No new tests; testing framework doesn't allow for testing ImageDocuments with injected JavaScript.
1995
1996         * loader/ImageLoader.cpp:
1997         (WebCore::ImageLoader::updateFromElement):
1998
1999 2012-05-15  Dirk Pranke  <dpranke@chromium.org>
2000
2001         [chromium] ScrollElasticityController.mm doesn't compile with the 10.6 SDK on mac
2002         https://bugs.webkit.org/show_bug.cgi?id=86544
2003
2004         Reviewed by Anders Carlsson.
2005
2006         This is a build fix for now until we can figure out what a
2007         better way to approach this is.
2008
2009         * platform/mac/ScrollElasticityController.mm:
2010         (WebCore):
2011
2012 2012-05-15  Nate Chapin  <japhet@chromium.org>
2013
2014         MainResourceLoader::load() always returns true, so make it return
2015         void and delete the related dead code.
2016         https://bugs.webkit.org/show_bug.cgi?id=86413
2017
2018         Reviewed by Alexey Proskuryakov.
2019
2020         No new tests, cleanup only.
2021
2022         * loader/DocumentLoader.cpp:
2023         (WebCore::DocumentLoader::startLoadingMainResource):
2024         * loader/MainResourceLoader.cpp:
2025         (WebCore::MainResourceLoader::load):
2026         * loader/MainResourceLoader.h:
2027         (MainResourceLoader):
2028
2029 2012-05-15  Ian Vollick  <vollick@chromium.org>
2030
2031         [chromium] Ensure animations get ticked at least once when added.
2032         https://bugs.webkit.org/show_bug.cgi?id=86013
2033
2034         Reviewed by James Robinson.
2035
2036         Tested in
2037           CCLayerTreeHostTestTickAnimationWhileBackgrounded.runSingleThreaded
2038           CCLayerTreeHostTestAddAnimationWithTimingFunction.runSingleThreaded
2039           CCLayerTreeHostTestSynchronizeAnimationStartTimes.runSingleThreaded
2040           CCLayerTreeHostTestAnimationFinishedEvents.runSingleThreaded
2041
2042         * platform/graphics/chromium/LayerChromium.cpp:
2043         (WebCore::LayerChromium::addAnimation):
2044         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2045         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
2046         (WebCore::CCLayerTreeHost::didAddAnimation):
2047         (WebCore):
2048         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
2049         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2050         (CCLayerTreeHost):
2051         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2052         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2053         * platform/graphics/chromium/cc/CCProxy.h:
2054         (CCProxy):
2055         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2056         (CCSingleThreadProxyAnimationTimer):
2057         (WebCore::CCSingleThreadProxyAnimationTimer::create):
2058         (WebCore::CCSingleThreadProxyAnimationTimer::CCSingleThreadProxyAnimationTimer):
2059         (WebCore):
2060         (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
2061         (WebCore::CCSingleThreadProxy::didAddAnimation):
2062         (WebCore::CCSingleThreadProxy::doComposite):
2063         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2064         (WebCore):
2065         * platform/graphics/chromium/cc/CCThreadProxy.h:
2066
2067 2012-05-15  Alexandre Elias  <aelias@google.com>
2068
2069         [chromium] Fix unsafe viewport tag dispatch
2070         https://bugs.webkit.org/show_bug.cgi?id=80554
2071
2072         Reviewed by Adam Barth.
2073
2074         In some uncommon situations (such as window.open() new tab on
2075         Android), dispatchViewportPropertiesDidChange may early-return without
2076         setting the page scale because the window size is not yet
2077         available from the embedder.  At that point, the previous behavior was
2078         to call it again in layoutUpdated(), but this is unsafe since it
2079         leaves a pending needsLayout.
2080
2081         I moved the dispatch call into WebViewImpl::didChangeContentsSize and
2082         WebViewImpl::resize() instead -- these represent more explicitly the
2083         situations where the inputs to the viewport tag calculation change.  I
2084         removed the other dispatch call from setFrameRect as it's now
2085         redundant.
2086
2087         Covered by FixedLayoutInitializeAtMinimumPageScale test introduced
2088         in http://webk.it/82949 (an assertion will fire there without
2089         this fix).
2090
2091         * page/FrameView.cpp:
2092         (WebCore::FrameView::setFrameRect):
2093
2094 2012-05-15  Jer Noble  <jer.noble@apple.com>
2095
2096         r117147 causes a null-deref crash in DOMImplementation::createDocument()
2097         https://bugs.webkit.org/show_bug.cgi?id=86532
2098
2099         Reviewed by James Robinson.
2100
2101         No new tests, but fixes many crashing tests.
2102
2103         Protect against the possibility of being passed a NULL frame in
2104         DOMImplementation::createDocument().
2105
2106         * dom/DOMImplementation.cpp:
2107         (WebCore::DOMImplementation::createDocument):
2108
2109 2012-05-15  Julien Chaffraix  <jchaffraix@webkit.org>
2110
2111         Use posZOrderList() / negZOrderList() everywhere to avoid querying dirtied lists
2112         https://bugs.webkit.org/show_bug.cgi?id=86416
2113
2114         Reviewed by Simon Fraser.
2115
2116         Covered by existing tests that are not ASSERTing after this change.
2117
2118         * rendering/RenderLayerBacking.cpp:
2119         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
2120         * rendering/RenderLayer.cpp:
2121         (WebCore::RenderLayer::update3DTransformedDescendantStatus):
2122         Added a call to updateZOrderLists() to the previous sites as nothing guarantees
2123         that we have recomputed our z-order lists.
2124
2125         (WebCore::RenderLayer::paintLayerContents):
2126         (WebCore::RenderLayer::hitTestLayer):
2127         * rendering/RenderLayerCompositor.cpp:
2128         (WebCore::RenderLayerCompositor::needsContentsCompositingLayer):
2129         Converted those functions to use the safe getters.
2130
2131         * rendering/RenderLayer.h:
2132         (WebCore::RenderLayer::hasNegativeZOrderList):
2133         Newly added funtion to return if we have a negative z-order list.
2134
2135 2012-05-15  Abhishek Arya  <inferno@chromium.org>
2136
2137         Crash due shadow tree parent confusion in SVG.
2138         https://bugs.webkit.org/show_bug.cgi?id=84248
2139
2140         Reviewed by Nikolas Zimmermann.
2141
2142         Test: svg/foreignObject/viewport-foreignobject-crash.html
2143
2144         When we try to make a decision on whether we need an outer
2145         SVGRoot container, we detect if we are in shadow tree or not.
2146         We also need to make sure that our parentOrHostElement is also
2147         an svg element. 
2148
2149         * svg/SVGElement.cpp:
2150         (WebCore::SVGElement::isOutermostSVGSVGElement):
2151
2152 2012-05-15  Lauro Neto  <lauro.neto@openbossa.org>
2153
2154         [File API] URL methods handling null arguments
2155         https://bugs.webkit.org/show_bug.cgi?id=69693
2156
2157         Reviewed by Adam Barth.
2158
2159         Per the latest editor's draft of the File API:
2160         http://dev.w3.org/2006/webapi/FileAPI/#dfn-createObjectURL
2161
2162         Use null instead of undefined as return value when a
2163         null blob is given to URL.createObjectURL.
2164
2165         Test: fast/files/url-null.html
2166
2167         * html/DOMURL.idl:
2168
2169 2012-05-15  Jer Noble  <jer.noble@apple.com>
2170
2171         Unreviewed build fix [Qt].
2172
2173         Protect the definition of DOMImplementationSupportsTypeClient class with
2174         #if ENABLE(VIDEO) so as not to cause compilation errors on ports with
2175         VIDEO disabled.
2176
2177         * dom/DOMImplementation.cpp:
2178
2179 2012-05-14  Jer Noble  <jer.noble@apple.com>
2180
2181         Site-specific hack: Disclaim WebM as a supported type on Mac for YouTube.
2182         https://bugs.webkit.org/show_bug.cgi?id=86409
2183
2184         Reviewed by Darin Adler.
2185
2186         No new tests; site specific hack.
2187
2188         Add a Mac-only site-specific hack which disclaims both video/webm and video/x-flv
2189         as supported types when the media element's document has a host of youtube.com.
2190
2191         Add a new, pure-virtual prototype class for use by MediaPlayer::supportsType:
2192         * platform/graphics/MediaPlayer.h:
2193         (MediaPlayerSupportsTypeClient):
2194         (WebCore::MediaPlayerSupportsTypeClient::~MediaPlayerSupportsTypeClient):
2195         (WebCore::MediaPlayerSupportsTypeClient::mediaPlayerNeedsSiteSpecificHacks):
2196         (WebCore::MediaPlayerSupportsTypeClient::mediaPlayerDocumentHost):
2197
2198         Use these new client calls to determine whether to apply the site-specific
2199         hack:
2200         * platform/graphics/MediaPlayer.cpp:
2201         (WebCore::MediaPlayer::supportsType):
2202
2203         Add this prototype class as a superclass of HTMLMediaElement.  Pass in the
2204         HTMLMediaElement's this pointer when calling MediaPlayer::supportsType():
2205         * html/HTMLMediaElement.cpp:
2206         (WebCore::HTMLMediaElement::canPlayType):
2207         (WebCore::HTMLMediaElement::selectNextSourceChild):
2208         (WebCore::HTMLMediaElement::mediaPlayerNeedsSiteSpecificHacks):
2209         (WebCore::HTMLMediaElement::mediaPlayerDocumentHost):
2210         * html/HTMLMediaElement.h:
2211
2212         As is HTMLMediaElement, a MediaPlayerSupportsTypeClient class is needed. Add a
2213         new class DOMImplementationSupportsTypeClient, an instance of which will be 
2214         passed to MediaPlayer::supportsType():
2215         * dom/DOMImplementation.cpp:
2216         (DOMImplementationSupportsTypeClient):
2217         (WebCore::DOMImplementationSupportsTypeClient::DOMImplementationSupportsTypeClient):
2218         (WebCore::DOMImplementation::createDocument):
2219         (WebCore::DOMImplementation::mediaPlayerNeedsSiteSpecificHacks):
2220         (WebCore::DOMImplementation::mediaPlayerDocumentHost):
2221         * dom/DOMImplementation.h:
2222
2223 2012-05-15  Anders Carlsson  <andersca@apple.com>
2224
2225         Use unaccelerated scrolling deltas when rubber-banding
2226         https://bugs.webkit.org/show_bug.cgi?id=86503
2227         <rdar://problem/11378742>
2228
2229         Reviewed by Sam Weinig.
2230
2231         * WebCore.exp.in:
2232         * platform/PlatformWheelEvent.h:
2233         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2234         (PlatformWheelEvent):
2235         (WebCore::PlatformWheelEvent::scrollCount):
2236         (WebCore::PlatformWheelEvent::unacceleratedScrollingDeltaX):
2237         (WebCore::PlatformWheelEvent::unacceleratedScrollingDeltaY):
2238         Add scroll count and unaccelerated scrolling deltas.
2239
2240         * platform/mac/ScrollElasticityController.mm:
2241         (WebCore::elasticDeltaForTimeDelta):
2242         (WebCore::elasticDeltaForReboundDelta):
2243         (WebCore::reboundDeltaForElasticDelta):
2244         Call the new WKSI functions.
2245
2246         (WebCore::ScrollElasticityController::handleWheelEvent):
2247         Use the unaccelerated scrolling deltas when needed.
2248
2249         * platform/mac/WebCoreSystemInterface.h:
2250         * platform/mac/WebCoreSystemInterface.mm:
2251         Add new WKSI functions.
2252
2253 2012-05-15  Terry Anderson  <tdanderson@chromium.org>
2254
2255         [chromium] Compute the best target node on a GestureTap event
2256         https://bugs.webkit.org/show_bug.cgi?id=85101
2257
2258         Reviewed by Adam Barth.
2259
2260         Using the tests in the touchadjustment/ directory.
2261
2262         * WebCore.gypi:
2263         Include TouchAdjustment.* files.
2264         * page/TouchAdjustment.cpp:
2265         (WebCore::TouchAdjustment::zoomableIntersectionQuotient):
2266         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
2267         No longer using the INFINITY constant due to problems with compiling
2268         on chromium win.
2269
2270 2012-05-15  Chris Rogers  <crogers@google.com>
2271
2272         Add AudioSummingJunction class to handle fan-in (abstracted from AudioNodeInput)
2273         https://bugs.webkit.org/show_bug.cgi?id=86396
2274
2275         Reviewed by Kenneth Russell.
2276
2277         No new tests.  Existing layout tests already extensively test summing.
2278
2279         * CMakeLists.txt:
2280         * GNUmakefile.list.am:
2281         Add AudioSummingJunction files to makefiles.
2282
2283         * Modules/webaudio/AudioContext.cpp:
2284         * Modules/webaudio/AudioContext.h:
2285         (WebCore::AudioContext::handlePreRenderTasks):
2286         (WebCore::AudioContext::handlePostRenderTasks):
2287         (WebCore::AudioContext::deleteMarkedNodes):
2288         (WebCore::AudioContext::markSummingJunctionDirty):
2289         (WebCore::AudioContext::removeMarkedSummingJunction):
2290         (WebCore::AudioContext::handleDirtyAudioSummingJunctions):
2291         Simple munge from AudioNodeInput -> AudioSummingJunction
2292
2293         * Modules/webaudio/AudioNodeInput.cpp:
2294         * Modules/webaudio/AudioNodeInput.h:
2295         (WebCore::AudioNodeInput::AudioNodeInput):
2296         (WebCore::AudioNodeInput::didUpdate):
2297         Remove logic from AudioNodeInput which now is being moved to AudioSummingJunction.
2298
2299         * Modules/webaudio/AudioSummingJunction.cpp: Added.
2300         * Modules/webaudio/AudioSummingJunction.h: Added.
2301         (WebCore::AudioSummingJunction::AudioSummingJunction):
2302         (WebCore::AudioSummingJunction::~AudioSummingJunction):
2303         (WebCore::AudioSummingJunction::changedOutputs):
2304         (WebCore::AudioSummingJunction::updateRenderingState):
2305         (WebCore::AudioSummingJunction::context):
2306         (WebCore::AudioSummingJunction::numberOfRenderingConnections):
2307         (WebCore::AudioSummingJunction::renderingOutput):
2308         (WebCore::AudioSummingJunction::isConnected):
2309         (WebCore::AudioSummingJunction::numberOfConnections):
2310         Add AudioSummingJunction which is an abstraction to manage/track the connections from AudioNodeOutputs
2311         representing the fan-in points for unity gain summing junctions.
2312
2313         * WebCore.gypi:
2314         * WebCore.xcodeproj/project.pbxproj:
2315         Add AudioSummingJunction files to makefiles.
2316
2317 2012-05-15  Dan Bernstein  <mitz@apple.com>
2318
2319         Ruby annotation is incorrectly identified as a paragraph boundary
2320         https://bugs.webkit.org/show_bug.cgi?id=86507
2321
2322         Reviewed by Darin Adler.
2323
2324         Test: editing/selection/paragraph-with-ruby.html
2325
2326         * editing/htmlediting.cpp:
2327         (WebCore::isBlock): Changed to return false for ruby text.
2328
2329 2012-05-15  Philippe Normand  <pnormand@igalia.com>
2330
2331         [GTK] Un-used GStreamer linker options
2332         https://bugs.webkit.org/show_bug.cgi?id=86407
2333
2334         Reviewed by Martin Robinson.
2335
2336         * GNUmakefile.am: Remove no-longer used webcore_libadd variable.
2337
2338 2012-05-15  Beth Dakin  <bdakin@apple.com>
2339
2340         https://bugs.webkit.org/show_bug.cgi?id=86506
2341         REGRESSION (tiled drawing): No scrollbar while page is loading
2342         -and corresponding
2343         <rdar://problem/11444589>
2344
2345         Reviewed by Anders Carlsson.
2346
2347         We have always had a mechanism in place to suppress painting overlay 
2348         scrollbars while the page is loading. However, that mechaism is 
2349         overriden if the page has been scrolled. It should be, anyway. It was 
2350         not being overriden when the scrolling was handled as a wheel event by 
2351         the scrolling tree. This patch takes advantage of the fact that 
2352         ScrollingTree::handleWheelEvent() already calls back to the main 
2353         thread for handleWheelEventPhase() and just patches 
2354         handleWheelEventPhase to mark m_haveScrolledSincePageLoad as true.
2355         * platform/mac/ScrollAnimatorMac.mm:
2356         (WebCore::ScrollAnimatorMac::handleWheelEventPhase):
2357
2358 2012-05-15  Jessie Berlin  <jberlin@apple.com>
2359
2360         WKContextSetCacheModel(contextref, kWKCacheModelDocumentViewer) doesn't prevent pages from
2361         going into the PageCache.
2362         https://bugs.webkit.org/show_bug.cgi?id=85891
2363
2364         Reviewed by Brady Eidson.
2365
2366         Do not claim that it is possible to cache a page when the page cache has a capacity of 0.
2367
2368         Covered by the modified DOMWindowExtensionNoCache WK2 API test.
2369
2370         * history/PageCache.cpp:
2371         (WebCore::PageCache::canCache):
2372         Check m_capacity.
2373         * history/PageCache.h:
2374
2375         * loader/FrameLoader.cpp:
2376         (WebCore::FrameLoader::commitProvisionalLoad):
2377         canCache is no longer static on PageCache.
2378
2379 2012-05-15  James Robinson  <jamesr@chromium.org>
2380
2381         Unreviewed, rolling out r116811.
2382         http://trac.webkit.org/changeset/116811
2383         https://bugs.webkit.org/show_bug.cgi?id=86257
2384
2385         Introduced layering violation
2386
2387         * WebCore.gypi:
2388
2389 2012-05-15  Darin Adler  <darin@apple.com>
2390
2391         Font copy constructor unnecessarily recalculates transcoding
2392         https://bugs.webkit.org/show_bug.cgi?id=86490
2393
2394         Reviewed by Dan Bernstein.
2395
2396         * platform/graphics/Font.cpp:
2397         (WebCore::Font::Font): Copy m_needsTranscoding instead of recomputing it.
2398
2399 2012-05-15  Andreas Kling  <kling@webkit.org>
2400
2401         Deep copy PluginModuleInfo before passing across thread boundary.
2402         <http://webkit.org/b/86491>
2403         <rdar://problem/11451178>
2404
2405         Reviewed by Anders Carlsson.
2406
2407         * plugins/PluginData.h:
2408         (MimeClassInfo):
2409         (WebCore::MimeClassInfo::isolatedCopy):
2410         (PluginInfo):
2411         (WebCore::PluginInfo::isolatedCopy):
2412
2413 2012-05-15  Sheriff Bot  <webkit.review.bot@gmail.com>
2414
2415         Unreviewed, rolling out r116712.
2416         http://trac.webkit.org/changeset/116712
2417         https://bugs.webkit.org/show_bug.cgi?id=86484
2418
2419         This patch is causing crashes in Chromium Canary builds
2420         (Requested by pilgrim_google__ on #webkit).
2421
2422         * storage/StorageArea.h:
2423         (StorageArea):
2424         * storage/StorageAreaImpl.cpp:
2425         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
2426         (WebCore::StorageAreaImpl::setItem):
2427         (WebCore::StorageAreaImpl::removeItem):
2428         (WebCore::StorageAreaImpl::clear):
2429         * storage/StorageAreaImpl.h:
2430         (StorageAreaImpl):
2431
2432 2012-05-15  Darin Adler  <darin@apple.com>
2433
2434         Optimize save/restore with no drawing operations between them (shows up on some canvas benchmarks)
2435         https://bugs.webkit.org/show_bug.cgi?id=86448
2436
2437         Reviewed by Simon Fraser.
2438
2439         Since canvas programmers sometimes end up doing extra save/restore pairs with no actual drawing
2440         in between, optimize that case by not realizing saves until we have to. This is doubly important
2441         because saves are costly.
2442
2443         * html/canvas/CanvasRenderingContext2D.cpp:
2444         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Initialize m_unrealizedSaveCount.
2445         (WebCore::CanvasRenderingContext2D::isAccelerated): Improve performance by calling the
2446         drawingContext function only once.
2447         (WebCore::CanvasRenderingContext2D::reset): Set m_unrealizedSaveCount to 0.
2448         (WebCore::CanvasRenderingContext2D::realizeSavesLoop): Added. Replaces the save function as the
2449         function that actually pushes context onto the state stack.
2450         (WebCore::CanvasRenderingContext2D::restore): Added code to do an early return if we can do the
2451         restore just by decrementing the unrealized save count.
2452         (WebCore::CanvasRenderingContext2D::setStrokeStyle): Added calls to realizeSaves and replaced
2453         calls to state with calls to modifiableState.
2454         (WebCore::CanvasRenderingContext2D::setFillStyle): Ditto.
2455         (WebCore::CanvasRenderingContext2D::setLineWidth): Ditto. Also added an early out for cases where
2456         the line width is not changing.
2457         (WebCore::CanvasRenderingContext2D::setLineCap): Ditto.
2458         (WebCore::CanvasRenderingContext2D::setLineJoin): Ditto.
2459         (WebCore::CanvasRenderingContext2D::setMiterLimit): Ditto.
2460         (WebCore::CanvasRenderingContext2D::setShadowOffsetX): Ditto.
2461         (WebCore::CanvasRenderingContext2D::setShadowOffsetY): Ditto.
2462         (WebCore::CanvasRenderingContext2D::setShadowBlur): Ditto.
2463         (WebCore::CanvasRenderingContext2D::setShadowColor): Ditto.
2464         (WebCore::CanvasRenderingContext2D::setWebkitLineDash): Ditto.
2465         (WebCore::CanvasRenderingContext2D::setWebkitLineDashOffset): Ditto.
2466         (WebCore::CanvasRenderingContext2D::setGlobalAlpha): Ditto.
2467         (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Ditto.
2468         (WebCore::CanvasRenderingContext2D::scale): Ditto.
2469         (WebCore::CanvasRenderingContext2D::rotate): Ditto.
2470         (WebCore::CanvasRenderingContext2D::translate): Ditto.
2471         (WebCore::CanvasRenderingContext2D::transform): Ditto.
2472         (WebCore::CanvasRenderingContext2D::setTransform): Ditto.
2473         (WebCore::CanvasRenderingContext2D::setStrokeColor): Ditto.
2474         (WebCore::CanvasRenderingContext2D::setFillColor): Ditto.
2475         (WebCore::CanvasRenderingContext2D::clip): Ditto.
2476         (WebCore::CanvasRenderingContext2D::clearRect): Changed implementation so it does not save
2477         the graphics context in the common case where shadows, global alpha, and global compositing
2478         operators do not interfer with the function's operation. This allowed us to get rid of the
2479         setAllAttributesToDefault function, which was used nowhere else.
2480         (WebCore::CanvasRenderingContext2D::setShadow): Added a new common bottleneck and made all
2481         the setShadow functions call it.
2482         (WebCore::CanvasRenderingContext2D::clearShadow): Changed to call the new setShadow.
2483         (WebCore::CanvasRenderingContext2D::setFont): Renamed tempDecl to the more friendly
2484         parsedStyle. Changed code structure so the CSS parser is deleted right after parsing is
2485         done. Used string concatenation instead of more expensive string append. Added calls to
2486         realizeSaves and modifiableState.
2487         (WebCore::CanvasRenderingContext2D::setTextAlign): Added calls to realizeSaves and replaced
2488         calls to state with calls to modifiableState. Also added an early out for cases where the
2489         alignment is not changing.
2490         (WebCore::CanvasRenderingContext2D::setTextBaseline): Ditto.
2491
2492         * html/canvas/CanvasRenderingContext2D.h: Made save an inline function that bumps
2493         m_unrealizedSaveCount. Removed setAllAttributesToDefault. Added OVERRIDE for all the
2494         virtual function overrides, and made them all private. Moved m_path down with the other data
2495         members. Renamed the non-const state function to modifiableState. Added a realizeSaves
2496         function and the realizeSavesLoop for the unusual case where there is work to do.
2497         Added m_unrealizedSaveCount.
2498
2499 2012-05-15  Tommy Widenflycht  <tommyw@google.com>
2500
2501         MediaStream API: Setting onended on a LocalMediaStream triggers an assertion in V8
2502         https://bugs.webkit.org/show_bug.cgi?id=86459
2503
2504         Reviewed by Adam Barth.
2505
2506         LocalMediaStream inherits from MediaStream, but only MediaStream have the
2507         EventTarget idl attribute. Adding the attribute to LocalMediaStream as well fixes the issue.
2508
2509         Test: fast/mediastream/LocalMediaStream-onended.html
2510
2511         * Modules/mediastream/LocalMediaStream.idl:
2512
2513 2012-05-15  Terry Anderson  <tdanderson@chromium.org>
2514
2515         [chromium] Remove unused code for tap target fuzzing
2516         https://bugs.webkit.org/show_bug.cgi?id=86252
2517
2518         Reviewed by Adam Barth.
2519
2520         No tests required since this is a cleanup of unused code.
2521
2522         * page/EventHandler.cpp:
2523         (WebCore::EventHandler::handleGestureTap):
2524         * page/EventHandler.h:
2525         (EventHandler):
2526         The touch adjustment code will be used to determine the best target
2527         for a GestureTap event instead of passing in a pre-targeted node.
2528         * platform/PlatformGestureEvent.h:
2529         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
2530         (PlatformGestureEvent):
2531         A rectangular touch region is defined by the touch center and the
2532         delta values only, so gammaX and gammaY are not needed.
2533
2534 2012-05-15  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2535
2536         [Qt] WebKit with Qt5 hangs on Mac
2537         https://bugs.webkit.org/show_bug.cgi?id=79785
2538
2539         Reviewed by Tor Arne Vestbø.
2540
2541         Delay the initialization of our QNetworkConfigurationManager used in
2542         NetworkStateNotifierPrivate. On Mac it was causing a race condition because it
2543         spawns a thread that triggers a static initializer in Qt, while in the main
2544         thread NetworkStateNotifier is being static initialized. On Mac the lock for
2545         static initializers is shared between all of them, causing a deadlock.
2546
2547         The issue was also reported in http://openradar.appspot.com/11217150.
2548
2549         * platform/network/qt/NetworkStateNotifierPrivate.h:
2550         (NetworkStateNotifierPrivate):
2551         (WebCore::NetworkStateNotifierPrivate::effectivelyOnline):
2552         * platform/network/qt/NetworkStateNotifierQt.cpp:
2553         (WebCore::NetworkStateNotifierPrivate::NetworkStateNotifierPrivate):
2554         (WebCore::NetworkStateNotifierPrivate::setNetworkAccessAllowed):
2555         (WebCore::NetworkStateNotifierPrivate::setOnlineState):
2556         (WebCore::NetworkStateNotifierPrivate::initialize):
2557         (WebCore):
2558         (WebCore::NetworkStateNotifierPrivate::~NetworkStateNotifierPrivate):
2559         (WebCore::NetworkStateNotifier::updateState):
2560         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2561         (WebCore::NetworkStateNotifier::setNetworkAccessAllowed):
2562
2563 2012-05-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2564
2565         Factor HitTestPoint out of HitTestResult.
2566         https://bugs.webkit.org/show_bug.cgi?id=85965
2567
2568         Reviewed by Simon Fraser.
2569
2570         In preparation for handling transformations on area-based hit-testing, 
2571         we need to factor test-point and test-area out of HitTestResult so that
2572         it can be transformed independently.
2573
2574         To maintain the current API as closely as possible HitTestResult now
2575         inherit from HitTestPoint, representing the original untransformed
2576         hitTestPoint.
2577
2578         No change in functionality. No new tests. 
2579
2580         * rendering/HitTestResult.cpp:
2581         (WebCore::HitTestPoint::HitTestPoint):
2582         (WebCore::HitTestPoint::~HitTestPoint):
2583         (WebCore::HitTestPoint::operator=):
2584         (WebCore::HitTestPoint::rectForPoint):
2585         (WebCore::HitTestResult::HitTestResult):
2586         (WebCore::HitTestResult::operator=):
2587         (WebCore::HitTestResult::isSelected):
2588         (WebCore::HitTestResult::spellingToolTip):
2589         (WebCore::HitTestResult::replacedString):
2590         * rendering/HitTestResult.h:
2591         (HitTestPoint):
2592         (WebCore::HitTestPoint::point):
2593         (WebCore::HitTestPoint::roundedPoint):
2594         (WebCore::HitTestPoint::setPoint):
2595         (WebCore::HitTestPoint::isRectBasedTest):
2596         (WebCore::HitTestPoint::topPadding):
2597         (WebCore::HitTestPoint::rightPadding):
2598         (WebCore::HitTestPoint::bottomPadding):
2599         (WebCore::HitTestPoint::leftPadding):
2600         (HitTestResult):
2601         (WebCore::HitTestResult::hitTestPoint):
2602         (WebCore::HitTestPoint::rectForPoint):
2603         * rendering/RenderLayer.cpp:
2604         (WebCore::RenderLayer::hitTestLayer):
2605         (WebCore::RenderLayer::hitTestList):
2606
2607 2012-05-15  Rob Buis  <rbuis@rim.com>
2608
2609         Refactor SVG parts of Node::addEventListener/removeEventListener
2610         https://bugs.webkit.org/show_bug.cgi?id=86426
2611
2612         Reviewed by Nikolas Zimmermann.
2613
2614         Move SVG parts of Node::addEventListener/removeEventListener into svg/. Now we do not
2615         have to check in Node::addEventListener/removeEventListener if we are dealing with an SVG
2616         element. Make tryAddEventListener/tryRemoveEventListener protected methods on Node to be able to use
2617         it in SVGElement.
2618
2619         No new tests, since no change in behavior, just refactoring.
2620
2621         * dom/Node.cpp:
2622         (WebCore::tryAddEventListener):
2623         (WebCore::Node::addEventListener):
2624         (WebCore::tryRemoveEventListener):
2625         (WebCore::Node::removeEventListener):
2626         * svg/SVGElement.cpp:
2627         (WebCore::collectInstancesForSVGElement):
2628         (WebCore):
2629         (WebCore::SVGElement::addEventListener):
2630         (WebCore::SVGElement::removeEventListener):
2631         * svg/SVGElement.h:
2632         (SVGElement):
2633
2634 2012-05-15  Andreas Kling  <kling@webkit.org>
2635
2636         RuleSet::addToRuleSet wastes a bit of Vector capacity.
2637         <http://webkit.org/b/86434>
2638
2639         Reviewed by Antti Koivisto.
2640
2641         Have makeRuleSet call shrinkToFit() on the vectors before returning them.
2642         This avoids wasting space for the rulesets constructed in collectFeatures().
2643
2644         * css/StyleResolver.cpp:
2645         (WebCore::makeRuleSet):
2646
2647 2012-05-15  Darin Adler  <darin@apple.com>
2648
2649         [CG] CGImageCreateWithImageInRect is too slow, but for now we still need to use it
2650         https://bugs.webkit.org/show_bug.cgi?id=86340
2651
2652         Reviewed by Geoffrey Garen.
2653
2654         This patch adds a subimage cache to defray the cost of CGImageCreateWithImageInRect.
2655         Later, we will restructure the code so it doesn't use that function, but at the
2656         moment there are CG issues blocking that change.
2657
2658         * platform/graphics/cg/GraphicsContextCG.cpp:
2659         (SubimageCacheEntry): Added. An entry in the cache.
2660         (SubimageCacheEntryTraits): Added. Traits for the cache.
2661         (SubimageCacheHash): Added. Hash function for the cache.
2662         (SubimageCacheTimer): Added. Timer that clears the cache after a second
2663         of inactivity.
2664         (SubimageCacheWithTimer): Added. Cache and its timer.
2665         (WebCore::subimageCache): Added. Function returning the single global timer.
2666         (WebCore::SubimageCacheTimer::restart): Added. Start the timer.
2667         (WebCore::SubimageCacheTimer::fired): Added. Clear the cache when the timer fires.
2668         (SubimageRequest): Added. A key to look up in the cache.
2669         (SubimageCacheAdder): Added. Translator to add to the cache.
2670         (WebCore::subimage): Added. Puts an entry in the cache.
2671         (WebCore::GraphicsContext::drawNativeImage): Changed to call the subimage function.
2672
2673 2012-05-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2674
2675         Web Inspector: AdvancedSearchController is not stopped then view is hidden.
2676         https://bugs.webkit.org/show_bug.cgi?id=86466
2677
2678         Reviewed by Vsevolod Vlasov.
2679
2680         AdvancedSearchController overrides "wasHidden" method instead of "willHide".
2681
2682         UI event-flow, not tested.
2683
2684         * inspector/front-end/AdvancedSearchController.js:
2685         (WebInspector.SearchView.prototype.willHide): Renamed function.
2686
2687 2012-05-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2688
2689         [Qt] http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html times out
2690         https://bugs.webkit.org/show_bug.cgi?id=84016
2691
2692         Reviewed by Simon Hausmann.
2693
2694         Calling didFail abort the connection and doesn't activate the HEADERS_RECEIVED state.
2695         Since the goal of HEAD is to test then the request should be marked as finished
2696         also in cases of HTTP errors.
2697         This matches other ports behavior.
2698
2699         * platform/network/qt/QNetworkReplyHandler.cpp:
2700         (WebCore::shouldIgnoreHttpError):
2701
2702 2012-05-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2703
2704         [Qt][WK2] Fix scrolling in touch mode
2705         https://bugs.webkit.org/show_bug.cgi?id=75006
2706
2707         Reviewed by Kenneth Rohde Christiansen.
2708
2709         * page/FrameView.cpp:
2710         (WebCore::FrameView::setFixedVisibleContentRect):
2711             On changes to fixedVisibleContentRect update scroll-animators position, and
2712             recalculate page-step sizes in scrollbars.
2713         * platform/ScrollView.cpp:
2714         (WebCore::ScrollView::scrollTo):
2715             Forward scrolling-request to the host window.
2716         (WebCore::ScrollView::updateScrollbars):
2717             Allow ScrollViews to have invisible scrollbars when scrolling is delegated.
2718         * platform/ScrollView.h:
2719         (ScrollView):
2720
2721 2012-05-15  Vsevolod Vlasov  <vsevik@chromium.org>
2722
2723         Web Inspector: Refactor SnippetsModel: extract SnippetStorage, make SnippetScriptMapping delegate calls to ScriptSnippetModel and provide public interface on ScriptSnippetModel in terms of uiSourceCodes
2724         https://bugs.webkit.org/show_bug.cgi?id=86477
2725
2726         Reviewed by Pavel Feldman.
2727
2728         Extracted SnippetStorage to be reused for other snippet types.
2729         Made SnippetScriptMapping delegate all calls to ScriptSnippetModel and injected it in DebuggerPresentationModel.
2730         ScriptSnippetModel now provides public interface for ScriptsPanel in terms of uiSourceCodes.
2731
2732         Tests: inspector/debugger/script-snippet-model.html
2733                inspector/snippet-storage.html
2734
2735         * WebCore.gypi:
2736         * WebCore.vcproj/WebCore.vcproj:
2737         * inspector/compile-front-end.py:
2738         * inspector/front-end/DebuggerPresentationModel.js:
2739         (WebInspector.DebuggerPresentationModel):
2740         * inspector/front-end/ScriptSnippetModel.js: Added.
2741         (WebInspector.ScriptSnippetModel):
2742         (WebInspector.ScriptSnippetModel.prototype.get scriptMapping):
2743         (WebInspector.ScriptSnippetModel.prototype.createScriptSnippet):
2744         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
2745         (WebInspector.ScriptSnippetModel.prototype._rawLocationToUILocation):
2746         (WebInspector.ScriptSnippetModel.prototype._uiLocationToRawLocation.get if):
2747         (WebInspector.ScriptSnippetModel.prototype._uiLocationToRawLocation):
2748         (WebInspector.ScriptSnippetModel.prototype._uiSourceCodeList):
2749         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
2750         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
2751         (WebInspector.ScriptSnippetModel.prototype._sourceURLForSnippet):
2752         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
2753         (WebInspector.ScriptSnippetModel.prototype._snippetForSourceURL):
2754         (WebInspector.ScriptSnippetModel.prototype._reset):
2755         (WebInspector.SnippetScriptMapping):
2756         (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
2757         (WebInspector.SnippetScriptMapping.prototype.uiLocationToRawLocation):
2758         (WebInspector.SnippetScriptMapping.prototype.uiSourceCodeList):
2759         (WebInspector.SnippetScriptMapping.prototype.snippetIdForSourceURL):
2760         (WebInspector.SnippetScriptMapping.prototype.addScript):
2761         (WebInspector.SnippetScriptMapping.prototype._uiSourceCodesAdded):
2762         (WebInspector.SnippetScriptMapping.prototype._uiSourceCodesRemoved):
2763         (WebInspector.SnippetScriptMapping.prototype.reset):
2764         (WebInspector.SnippetContentProvider):
2765         * inspector/front-end/SnippetStorage.js: Added.
2766         (WebInspector.SnippetStorage):
2767         (WebInspector.SnippetStorage.prototype.get namePrefix):
2768         (WebInspector.SnippetStorage.prototype._saveSettings):
2769         (WebInspector.SnippetStorage.prototype.set snippets):
2770         (WebInspector.SnippetStorage.prototype.snippetForId):
2771         (WebInspector.SnippetStorage.prototype.deleteSnippet):
2772         (WebInspector.SnippetStorage.prototype._snippetAdded):
2773         (WebInspector.SnippetStorage.prototype.reset.set this):
2774         (WebInspector.Snippet):
2775         (WebInspector.Snippet.fromObject):
2776         (WebInspector.Snippet.prototype.get id):
2777         (WebInspector.Snippet.prototype.get name):
2778         (WebInspector.Snippet.prototype.set name):
2779         (WebInspector.Snippet.prototype.get content):
2780         (WebInspector.Snippet.prototype.set content):
2781         (WebInspector.Snippet.prototype.serializeToObject):
2782         * inspector/front-end/SnippetsModel.js: Removed.
2783         * inspector/front-end/WebKit.qrc:
2784         * inspector/front-end/inspector.html:
2785         * inspector/front-end/inspector.js:
2786
2787 2012-05-15  Pavel Feldman  <pfeldman@chromium.org>
2788
2789         Web Inspector: add show/hide debugger sidebar button.
2790         https://bugs.webkit.org/show_bug.cgi?id=86478
2791
2792         Reviewed by Vsevolod Vlasov.
2793
2794         As with the navigator, but with no overlay. See the screenshot.
2795
2796         * English.lproj/localizedStrings.js:
2797         * inspector/front-end/NavigatorOverlayController.js:
2798         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
2799         * inspector/front-end/ScriptsPanel.js:
2800         (WebInspector.ScriptsPanel.prototype._debuggerPaused):
2801         (WebInspector.ScriptsPanel.prototype._debuggerResumed):
2802         (WebInspector.ScriptsPanel.prototype._showJavaScriptOutlineDialog):
2803         (WebInspector.ScriptsPanel.prototype._installDebuggerSidebarController.clickHandler):
2804         (WebInspector.ScriptsPanel.prototype._showDebuggerSidebar):
2805         (WebInspector.ScriptsPanel.prototype.set _hideDebuggerSidebar):
2806         * inspector/front-end/scriptsPanel.css:
2807         (#scripts-editor-container-tabbed-pane .tabbed-pane-header-contents):
2808         (button.status-bar-item.scripts-debugger-show-hide-button):
2809         (.status-bar-item.scripts-debugger-show-hide-button > .glyph):
2810         (.status-bar-item.scripts-debugger-show-hide-button.toggled-shown > .glyph):
2811         (.status-bar-item.scripts-debugger-show-hide-button.toggled-hidden > .glyph):
2812
2813 2012-05-15  Zoltan Herczeg  <zherczeg@webkit.org>
2814
2815         NEONizing forceValidPreMultipliedPixels
2816         https://bugs.webkit.org/show_bug.cgi?id=86468
2817
2818         Reviewed by Nikolas Zimmermann.
2819
2820         Optimize forceValidPreMultipliedPixels with ARM-NEON intrinsics.
2821
2822         Existing tests cover this feature.
2823
2824         * platform/graphics/filters/FilterEffect.cpp:
2825         (WebCore::FilterEffect::forceValidPreMultipliedPixels):
2826
2827 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
2828
2829         Web Inspector: remove unnecessary setTimeout in HeapSnapshotGridNodes.js
2830         https://bugs.webkit.org/show_bug.cgi?id=86464
2831
2832         Reviewed by Pavel Feldman.
2833
2834         * inspector/front-end/HeapSnapshotGridNodes.js:
2835         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.childrenRetrieved): Posting
2836         a message to worker is already asynchronous, no need to postpone the call via setTimeout.
2837         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
2838
2839 2012-05-15  Florin Malita  <fmalita@chromium.org>
2840
2841         Mask deformations when masked content is rotated
2842         https://bugs.webkit.org/show_bug.cgi?id=76527
2843
2844         Reviewed by Nikolas Zimmermann.
2845
2846         Test: svg/repaint/mask-clip-target-transform.svg
2847
2848         RenderSVGResource::markForLayoutAndParentResourceInvalidation() needs to also
2849         invalidate parent mask and clip resources, not just filters.
2850
2851         * rendering/svg/RenderSVGResource.cpp:
2852         (WebCore::removeFromCacheAndInvalidateDependencies):
2853         (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
2854
2855 2012-05-15  Pavel Feldman  <pfeldman@chromium.org>
2856
2857         Web Inspector: merge show navigator with pin navigator buttons.
2858         https://bugs.webkit.org/show_bug.cgi?id=86469
2859
2860         Reviewed by Vsevolod Vlasov.
2861
2862         See screenshots attached to the bug.
2863
2864         * English.lproj/localizedStrings.js:
2865         * inspector/front-end/Images/navigatorPinButton.png: Removed.
2866         * inspector/front-end/Images/navigatorShowHideButton.png:
2867         * inspector/front-end/NavigatorOverlayController.js:
2868         (WebInspector.NavigatorOverlayController.prototype._toggleNavigator):
2869         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
2870         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
2871         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
2872         (WebInspector.NavigatorOverlayController.prototype._containingElementFocused):
2873         * inspector/front-end/SidebarOverlay.js:
2874         (WebInspector.SidebarOverlay):
2875         (WebInspector.SidebarOverlay.prototype.show):
2876         (WebInspector.SidebarOverlay.prototype.hide):
2877         * inspector/front-end/navigatorView.css:
2878         (.navigator-tabbed-pane .tabbed-pane-header-contents):
2879         * inspector/front-end/scriptsPanel.css:
2880         (.status-bar-item.scripts-navigator-show-hide-button > .glyph):
2881         (.status-bar-item.scripts-navigator-show-hide-button.toggled-shown > .glyph):
2882         (.status-bar-item.scripts-navigator-show-hide-button.toggled-overlay > .glyph):
2883         (button.status-bar-item.scripts-navigator-show-hide-button):
2884         (button.status-bar-item.scripts-navigator-show-hide-button.toggled-overlay):
2885
2886 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
2887
2888         Web Inspector: implement "Reveal in Dominators view" context menu action
2889         https://bugs.webkit.org/show_bug.cgi?id=86455
2890
2891         Reviewed by Pavel Feldman.
2892
2893         Implemented "Reveal in Dominators view" context menu action for objects
2894         in the console.
2895
2896         Test: inspector/profiler/heap-snapshot-reveal-in-dominators-view.html
2897
2898         * English.lproj/localizedStrings.js:
2899         * inspector/front-end/HeapSnapshot.js:
2900         (WebInspector.HeapSnapshot.prototype._nodeForSnapshotObjectId):
2901         (WebInspector.HeapSnapshot.prototype.nodeClassName):
2902         (WebInspector.HeapSnapshot.prototype.dominatorIdsForNode):
2903         * inspector/front-end/HeapSnapshotDataGrids.js:
2904         (WebInspector.HeapSnapshotDominatorsDataGrid):
2905         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.setDataSource):
2906         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
2907         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId.didGetDominators):
2908         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId.expandNextDominator):
2909         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId):
2910         * inspector/front-end/HeapSnapshotGridNodes.js:
2911         (WebInspector.HeapSnapshotGridNode.prototype.childForPosition):
2912         (WebInspector.HeapSnapshotGridNode.prototype.expandWithoutPopulate):
2913         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.childrenRetrieved):
2914         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
2915         (WebInspector.HeapSnapshotGridNode.prototype.sort):
2916         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId):
2917         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId.didGetNodePosition):
2918         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId.didPopulateChildren):
2919         * inspector/front-end/HeapSnapshotProxy.js:
2920         (WebInspector.HeapSnapshotProxy.prototype.dominatorIdsForNode):
2921         * inspector/front-end/ProfilesPanel.js:
2922         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.revealInSummaryView):
2923         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
2924         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
2925
2926 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
2927
2928         Web Inspector: exception when switching to heap profiler comparison view
2929         https://bugs.webkit.org/show_bug.cgi?id=86224
2930
2931         Reviewed by Pavel Feldman.
2932
2933         Make sure the messages are dispatched in the same order as they are sent in
2934         case a fake worker is used for heap snapshot processing.
2935
2936         * inspector/front-end/HeapSnapshotProxy.js:
2937         (WebInspector.TimerQueue):
2938         (WebInspector.TimerQueue.prototype.addTask):
2939         (WebInspector.TimerQueue.prototype._onTimeout):
2940         (WebInspector.TimerQueue.prototype._scheduleTimer):
2941         (WebInspector.HeapSnapshotFakeWorker):
2942         (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):
2943         (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
2944
2945 2012-05-15  Zoltan Herczeg  <zherczeg@webkit.org>
2946
2947         The ARM NEON optimized filters does not compile on THUMB2
2948         https://bugs.webkit.org/show_bug.cgi?id=86457
2949
2950         Reviewed by Csaba Osztrogonác.
2951
2952         We should disable the compilation on Thumb2 until we fix the code.
2953
2954         * platform/graphics/filters/FEComposite.cpp:
2955         (WebCore::FEComposite::platformArithmeticSoftware):
2956         * platform/graphics/filters/FEGaussianBlur.cpp:
2957         (WebCore::FEGaussianBlur::platformApplyWorker):
2958         (WebCore::FEGaussianBlur::platformApply):
2959         * platform/graphics/filters/FELighting.cpp:
2960         (WebCore::FELighting::platformApply):
2961         * platform/graphics/filters/arm/FECompositeArithmeticNEON.cpp:
2962         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
2963         * platform/graphics/filters/arm/FEGaussianBlurNEON.cpp:
2964         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
2965         * platform/graphics/filters/arm/FELightingNEON.cpp:
2966         * platform/graphics/filters/arm/FELightingNEON.h:
2967
2968 2012-05-15  MORITA Hajime  <morrita@google.com>
2969
2970         Kill unnecessary RuntimeEnabledFeatures.h inclusion
2971         https://bugs.webkit.org/show_bug.cgi?id=86451
2972
2973         Reviewed by Kentaro Hara.
2974
2975         No new tests. No behavior change.
2976
2977         * dom/Element.cpp:
2978         * dom/ElementShadow.cpp:
2979         * dom/TreeScope.cpp:
2980
2981 2012-05-14  Shinya Kawanaka  <shinyak@chromium.org> 
2982
2983         document.execCommand('Indent') in the direct child of ShadowRoot causes a crash.
2984         https://bugs.webkit.org/show_bug.cgi?id=86341
2985
2986         Reviewed by Ryosuke Niwa.
2987
2988         When document.execCommand('Indent') is executed in the direct child of ShadowRoot,
2989         the scope variable of TextIterator becomes ShadowRoot. However, an element is assumed for it,
2990         so a crash happended.
2991
2992         This patch enables TextIterator to have ShadowRoot as a scope variable.
2993
2994         Test: editing/shadow/execcommand-indent-in-shadow.html
2995
2996         * WebCore.exp.in:
2997         * editing/ApplyBlockElementCommand.cpp:
2998         (WebCore::ApplyBlockElementCommand::doApply):
2999         * editing/InsertListCommand.cpp:
3000         (WebCore::InsertListCommand::doApply):
3001         * editing/TextIterator.cpp:
3002         (WebCore::TextIterator::rangeFromLocationAndLength):
3003         * editing/TextIterator.h:
3004         (TextIterator):
3005         * editing/htmlediting.cpp:
3006         (WebCore::indexForVisiblePosition):
3007         (WebCore::visiblePositionForIndex):
3008         * editing/htmlediting.h:
3009         (WebCore):
3010
3011 2012-05-14  Shinya Kawanaka  <shinyak@chromium.org>
3012
3013         Node::shadowTreeRootNode() should return ShadowRoot instead of Node.
3014         https://bugs.webkit.org/show_bug.cgi?id=86428
3015
3016         Reviewed by Hajime Morita.
3017
3018         Since Node::shadowTreeRootNode() returns only ShadowRoot or 0 now, its return type should be ShadowRoot.
3019         This patch changes the return type and adds include directive to build.
3020
3021         No new tests, no change in behavior.
3022
3023         * dom/Node.cpp:
3024         (WebCore::Node::shadowAncestorNode):
3025         (WebCore::Node::shadowTreeRootNode):
3026         * dom/Node.h:
3027         (WebCore):
3028         (Node):
3029         * dom/NodeRenderingContext.cpp:
3030         (WebCore::NodeRenderingContext::NodeRenderingContext):
3031         * dom/Range.cpp:
3032         (WebCore::Range::shadowTreeRootNode):
3033         * dom/Range.h:
3034         (Range):
3035         * editing/Editor.cpp:
3036         * editing/TextIterator.cpp:
3037         * editing/htmlediting.cpp:
3038         * html/shadow/ContentSelectorQuery.cpp:
3039         * html/shadow/HTMLContentElement.cpp:
3040         (WebCore::HTMLContentElement::parseAttribute):
3041         * html/shadow/InsertionPoint.cpp:
3042         (WebCore::InsertionPoint::detach):
3043         * page/EventHandler.cpp:
3044
3045 2012-05-14  Luke Macpherson  <macpherson@chromium.org>
3046
3047         Make StyleResolver::applyMatchedProperties and ::applyProperties use enum template parameter instead of bool.
3048         https://bugs.webkit.org/show_bug.cgi?id=86424
3049
3050         Reviewed by Dimitri Glazkov.
3051
3052         This patch changes from using a boolean template parameter for StyleResolver::applyMatchedProperties and
3053         StyleResolver::applyProperties functions. The motivation for this change is that it paves the way for
3054         CSS Variables to make the value tri-state, which is a requirement because variable definitions must occur
3055         before high priority CSS properties such that they can be referenced by the latter. This change affects
3056         only the type signatures of those functions, and not their behavior.
3057
3058         * css/StyleResolver.cpp:
3059         (WebCore::StyleResolver::collectMatchingRulesForList):
3060         * css/StyleResolver.h:
3061
3062 2012-05-14  MORITA Hajime  <morrita@google.com>
3063
3064         [Refactoring] Get rid of ContentDistribution::Item
3065         https://bugs.webkit.org/show_bug.cgi?id=86350
3066
3067         This change replaces the linked list on ContentDistribution with a Vector.
3068         We no longer link item class ContentDistribution::Item.
3069         This simplification also allows ContentDistribution to go.
3070         ContentDistribution is now just a typedef of Vector<RefPtr<Node> >.
3071
3072         Reviewed by Dimitri Glazkov.
3073
3074         No new tests. Covered by existing tests.
3075
3076         * dom/ComposedShadowTreeWalker.cpp:
3077         (WebCore::ComposedShadowTreeWalker::traverseNode):
3078         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
3079         * dom/ElementShadow.cpp:
3080         * dom/ElementShadow.h:
3081         (ElementShadow):
3082         * dom/NodeRenderingContext.cpp:
3083         (WebCore::nextRendererOfInsertionPoint):
3084         (WebCore::previousRendererOfInsertionPoint):
3085         (WebCore::firstRendererOfInsertionPoint):
3086         (WebCore::lastRendererOfInsertionPoint):
3087         * html/shadow/ContentDistributor.cpp:
3088         (WebCore::ContentDistributor::distribute):
3089         (WebCore::ContentDistributor::clearDistribution):
3090         (WebCore::ContentDistributor::findInsertionPointFor):
3091         * html/shadow/ContentDistributor.h:
3092         (WebCore):
3093         (ContentDistributor):
3094         * html/shadow/InsertionPoint.cpp:
3095         (WebCore::InsertionPoint::InsertionPoint):
3096         (WebCore::InsertionPoint::attachDistributedNode):
3097         (WebCore::InsertionPoint::assignShadowRoot):
3098         (WebCore::InsertionPoint::nextTo):
3099         (WebCore):
3100         (WebCore::InsertionPoint::previousTo):
3101         * html/shadow/InsertionPoint.h: Added a set of delegate method to m_distribution.
3102         (WebCore::InsertionPoint::hasDistribution):
3103         (WebCore::InsertionPoint::indexOf):
3104         (WebCore::InsertionPoint::size):
3105         (WebCore::InsertionPoint::at):
3106         (WebCore::InsertionPoint::first):
3107         (WebCore::InsertionPoint::last):
3108         (InsertionPoint):
3109
3110 2012-05-14  Tim Horton  <timothy_horton@apple.com>
3111
3112         RenderLayer::repaintRectIncludingDescendants shouldn't include repaint rects of composited descendants
3113         https://bugs.webkit.org/show_bug.cgi?id=86429
3114         <rdar://problem/11445132>
3115
3116         Reviewed by Simon Fraser.
3117
3118         Change repaintRectIncludingDescendants to not include repaint rects for composited child layers,
3119         and rename the function to make it more clear that that's what it does now.
3120
3121         No new tests, scrolling performance optimization.
3122
3123         * page/FrameView.cpp:
3124         (WebCore::FrameView::scrollContentsFastPath):
3125         * rendering/RenderLayer.cpp:
3126         (WebCore::RenderLayer::repaintRectIncludingNonCompositingDescendants):
3127         * rendering/RenderLayer.h:
3128         (RenderLayer):
3129
3130 2012-05-14  Gavin Peters  <gavinp@chromium.org>
3131
3132         Add Prerenderer, PrerenderHandle and a chromium interface for Prerendering.
3133         https://bugs.webkit.org/show_bug.cgi?id=85005
3134
3135         Reviewed by Adam Barth.
3136
3137         The prerender case isn't quite a resource load, and using resource loading to
3138         retrieve them has constrained the API, and unnecessarily complicated the loader.
3139
3140         The new Prerenderer and PrerenderHandle let <link rel=prerender...> elements signal
3141         removal and unload to their platform.
3142
3143         No new tests, as this interface requires a full platform to work, and doesn't affect layout.  Test
3144         it with your platform when implemented for it.
3145
3146         * GNUmakefile.list.am:
3147         * Target.pri:
3148         * WebCore.gypi:
3149         * WebCore.vcproj/WebCore.vcproj:
3150         * WebCore.xcodeproj/project.pbxproj:
3151         * dom/Document.cpp:
3152         (WebCore::Document::Document):
3153         * dom/Document.h:
3154         (WebCore):
3155         (Document):
3156         (WebCore::Document::prerenderer):
3157         * html/HTMLLinkElement.cpp:
3158         (WebCore::HTMLLinkElement::removedFrom):
3159         * html/LinkRelAttribute.cpp:
3160         (WebCore::LinkRelAttribute::LinkRelAttribute):
3161         * html/LinkRelAttribute.h:
3162         (LinkRelAttribute):
3163         * loader/LinkLoader.cpp:
3164         (WebCore::LinkLoader::loadLink):
3165         (WebCore::LinkLoader::released):
3166         * loader/LinkLoader.h:
3167         (WebCore):
3168         (LinkLoader):
3169         * loader/Prerenderer.cpp: Added.
3170         (WebCore):
3171         (WebCore::Prerenderer::create):
3172         (WebCore::Prerenderer::Prerenderer):
3173         (WebCore::Prerenderer::~Prerenderer):
3174         (WebCore::Prerenderer::render):
3175         (WebCore::Prerenderer::stop):
3176         (WebCore::Prerenderer::suspend):
3177         (WebCore::Prerenderer::resume):
3178         (WebCore::Prerenderer::document):
3179         (WebCore::Prerenderer::client):
3180         * loader/Prerenderer.h: Copied from Source/Platform/chromium/public/WebPrerender.h.
3181         (WebCore):
3182         (Prerenderer):
3183         * loader/PrerendererClient.cpp: Copied from Source/WebCore/html/LinkRelAttribute.h.
3184         (WebCore):
3185         (WebCore::PrerendererClient::supplementName):
3186         (WebCore::PrerendererClient::from):
3187         (WebCore::providePrerendererClientTo):
3188         * loader/PrerendererClient.h: Copied from Source/WebCore/html/LinkRelAttribute.h.
3189         (WebCore):
3190         (PrerendererClient):
3191         (WebCore::PrerendererClient::~PrerendererClient):
3192         (WebCore::PrerendererClient::PrerendererClient):
3193         * loader/cache/CachedResource.cpp:
3194         (WebCore::defaultPriorityForResourceType):
3195         (WebCore::cachedResourceTypeToTargetType):
3196         (WebCore::CachedResource::load):
3197         * loader/cache/CachedResource.h:
3198         (WebCore::CachedResource::ignoreForRequestCount):
3199         * loader/cache/CachedResourceLoader.cpp:
3200         (WebCore::createResource):
3201         (WebCore::CachedResourceLoader::requestLinkResource):
3202         (WebCore::CachedResourceLoader::checkInsecureContent):
3203         (WebCore::CachedResourceLoader::canRequest):
3204         * platform/PrerenderHandle.h: Copied from Source/Platform/chromium/public/WebPrerender.h.
3205         (WebCore):
3206         (PrerenderHandle):
3207         * platform/chromium/Prerender.cpp: Added.
3208         (WebCore):
3209         (WebCore::Prerender::Prerender):
3210         (WebCore::Prerender::~Prerender):
3211         (WebCore::Prerender::setState):
3212         (WebCore::Prerender::add):
3213         (WebCore::Prerender::cancel):
3214         (WebCore::Prerender::abandon):
3215         (WebCore::Prerender::suspend):
3216         (WebCore::Prerender::resume):
3217         * platform/chromium/Prerender.h: Copied from Source/Platform/chromium/public/WebPrerender.h.
3218         (WebCore):
3219         (Prerender):
3220         (ExtraData):
3221         (WebCore::Prerender::ExtraData::~ExtraData):
3222         (WebCore::Prerender::url):
3223         (WebCore::Prerender::referrer):
3224         (WebCore::Prerender::referrerPolicy):
3225         (WebCore::Prerender::setExtraData):
3226         (WebCore::Prerender::extraData):
3227         * platform/chromium/PrerenderHandle.cpp: Copied from Source/Platform/chromium/public/WebPrerender.h.
3228         (WebCore):
3229         (WebCore::PrerenderHandle::create):
3230         (WebCore::PrerenderHandle::PrerenderHandle):
3231         (WebCore::PrerenderHandle::~PrerenderHandle):
3232         (WebCore::PrerenderHandle::prerender):
3233         (WebCore::PrerenderHandle::add):
3234         (WebCore::PrerenderHandle::cancel):
3235         (WebCore::PrerenderHandle::abandon):
3236         (WebCore::PrerenderHandle::suspend):
3237         (WebCore::PrerenderHandle::resume):
3238         (WebCore::PrerenderHandle::url):
3239         (WebCore::PrerenderHandle::referrer):
3240         (WebCore::PrerenderHandle::referrerPolicy):
3241         * platform/chromium/support/WebPrerender.cpp: Copied from Source/Platform/chromium/public/WebPrerender.h.
3242         (WebKit::WebPrerender::WebPrerender):
3243         (WebKit):
3244         (WebKit::WebPrerender::~WebPrerender):
3245         (WebKit::WebPrerender::url):
3246         (WebKit::WebPrerender::referrer):
3247         (WebKit::WebPrerender::referrerPolicy):
3248         (WebKit::WebPrerender::setExtraData):
3249         (WebKit::WebPrerender::extraData):
3250         * platform/network/blackberry/ResourceRequest.h:
3251         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3252         (WebCore::platformTargetTypeForRequest):
3253         * platform/network/chromium/ResourceRequest.h:
3254
3255 2012-05-14  Luke Macpherson  <macpherson@chromium.org>
3256
3257         Introduce ENABLE_CSS_VARIABLES compile flag.
3258         https://bugs.webkit.org/show_bug.cgi?id=86338
3259
3260         Reviewed by Dimitri Glazkov.
3261
3262         Add a configuration option for CSS Variables support, disabling it by default.
3263
3264         No new tests. This patch only introduces an unused build flag.
3265
3266         * Configurations/FeatureDefines.xcconfig:
3267
3268 2012-05-14  Eric Seidel  <eric@webkit.org>
3269
3270         Styles are not recalculated when the seamless attribute is dynamically added/removed
3271         https://bugs.webkit.org/show_bug.cgi?id=86315
3272
3273         Reviewed by Andreas Kling.
3274
3275         Covered by fast/frames/seamless/seamless-css-cascade.html.
3276
3277         * html/HTMLIFrameElement.cpp:
3278         (WebCore::HTMLIFrameElement::isPresentationAttribute):
3279          - Make seamless a presentational attribute, which means style on the <iframe> will
3280            be forced to recalculate when it changes.  This is correct, but not observable
3281            until the layout changes are landed (as then the iframe should correctly revert to not
3282            being sized to fit its content if seamless is removed).
3283         (WebCore::HTMLIFrameElement::parseAttribute):
3284          - When the seamless attribute is added or remove, force the content document to recalc
3285            its style resolver, which will refresh the list of inherited stylesheets from the
3286            parent.  This doesn't need to happen synchronously.  When the layout changes land
3287            the content document will actually cause that recalc to redirect to the parent document
3288            in the seamless case anyway, but it's more correct to ask the content document directly.
3289
3290 2012-05-14  Alexandre Elias  <aelias@google.com>
3291
3292         [chromium] Prevent KeyCodeConversionAndroid from breaking on next NDK roll
3293         https://bugs.webkit.org/show_bug.cgi?id=86415
3294
3295         Reviewed by Adam Barth.
3296
3297         The new enum values added in this file have been added in recent
3298         versions of the NDK, so this file will fail to compile with duplicate
3299         enum error when we roll NDK to r7c or higher.  A workaround is
3300         to move our enum values to the WebCore namespace.  When the NDK
3301         upgrade is complete, we can delete them.
3302
3303         No new tests. (No-op change.)
3304
3305         * platform/chromium/KeyCodeConversionAndroid.cpp:
3306         (WebCore):
3307
3308 2012-05-14  Beth Dakin  <bdakin@apple.com>
3309
3310         https://bugs.webkit.org/show_bug.cgi?id=86420
3311         ScrollbarPainter should support expansionTransitionProgress
3312
3313         Reviewed by Sam Weinig.
3314
3315         expansionTransitionProgress works the same as 
3316         uiStateTransitionProgress. This code just echoes that code, but for 
3317         expansion instead of uiState.
3318         * platform/mac/NSScrollerImpDetails.h:
3319         * platform/mac/ScrollAnimatorMac.mm:
3320         (supportsExpansionTransitionProgress):
3321         (-[WebScrollbarPartAnimation setCurrentProgress:]):
3322         (-[WebScrollbarPainterDelegate cancelAnimations]):
3323         (-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
3324         (-[WebScrollbarPainterDelegate invalidate]):
3325
3326 2012-05-14  Andy Estes  <aestes@apple.com>
3327
3328         Fix RunLoopCF.cpp's copyright string.
3329
3330         * platform/cf/RunLoopCF.cpp:
3331
3332 2012-05-14  Andy Estes  <aestes@apple.com>
3333
3334         Move the parts of RunLoopMac.mm that aren't Mac-specific into RunLoopCF.cpp
3335         https://bugs.webkit.org/show_bug.cgi?id=86411
3336
3337         Reviewed by Anders Carlsson.
3338
3339         Most of RunLoopMac.mm was written in terms of CF API. Move these bits
3340         to a new file called RunLoopCF.cpp, leaving only the bits dealing with
3341         NSApplication.
3342
3343         * WebCore.xcodeproj/project.pbxproj: Xcode decided to give
3344         VisitedLinks.* new UUIDs. I'll allow it.
3345         * platform/cf/RunLoopCF.cpp: Copied from Source/WebCore/platform/mac/RunLoopMac.mm.
3346         * platform/mac/RunLoopMac.mm:
3347
3348 2012-05-14  Erik Arvidsson  <arv@chromium.org>
3349
3350         [V8] Add "stack" property to DOMException
3351         https://bugs.webkit.org/show_bug.cgi?id=85057
3352
3353         Reviewed by Kentaro Hara.
3354
3355         When we create a DOM exception we define a V8 accessor for the stack property. This
3356         accessor uses a new Error object to get the underlying stack string.
3357
3358         Test: fast/dom/DOMException/stack-trace.html
3359
3360         * bindings/v8/V8Proxy.cpp:
3361         (WebCore::DOMExceptionStackGetter):
3362         (WebCore):
3363         (WebCore::DOMExceptionStackSetter):
3364         (WebCore::V8Proxy::setDOMException):
3365
3366 2012-05-14  Michael Saboff  <msaboff@apple.com>
3367
3368         Enh: Add the Ability to Disable / Enable JavaScript GC Timer
3369         https://bugs.webkit.org/show_bug.cgi?id=86382
3370
3371         Reviewed by Darin Adler.
3372
3373         Plumbing to set / clear JS GC activity timer enable flag.
3374
3375         * WebCore.exp.in:
3376         * bindings/js/GCController.cpp:
3377         (WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
3378         * bindings/js/GCController.h:
3379
3380 2012-05-14  Nate Chapin  <japhet@chromium.org>
3381
3382         [V8] Crash in npObjectGetProperty() in V8NPObject.cpp
3383         https://bugs.webkit.org/show_bug.cgi?id=86131
3384
3385         Reviewed by Adam Barth.
3386
3387         Tests: plugins/npruntime/delete-plugin-within-getProperty.html
3388                plugins/npruntime/delete-plugin-within-hasProperty-return-false.html
3389                plugins/npruntime/delete-plugin-within-hasProperty-return-true.html
3390                plugins/npruntime/delete-plugin-within-invoke.html
3391                plugins/npruntime/delete-plugin-within-setProperty.html
3392
3393         * bindings/v8/NPV8Object.cpp:
3394         (_NPN_EvaluateHelper):
3395         * bindings/v8/V8NPObject.cpp: Check NPN_IsAlive in a bunch of places we're not currently.
3396         (WebCore::npObjectInvokeImpl):
3397         (WebCore::npObjectGetProperty):
3398         (WebCore::npObjectSetProperty):
3399
3400 2012-05-14  Brent Fulgham  <bfulgham@webkit.org>
3401
3402         [WinCairo] Unreviewed build correction.
3403
3404         * platform/win/DragImageCairoWin.cpp: Add missing include for
3405         new NativeImageCairo.h type.
3406
3407 2012-05-14  Takashi Sakamoto  <tasak@google.com>
3408
3409         Crash in WebCore::RenderObject::repaint
3410         https://bugs.webkit.org/show_bug.cgi?id=86162
3411
3412         Reviewed by Abhishek Arya.
3413
3414         As RenderScrollbarPart has no parent renderer, we crash in
3415         WebCore::RenderBoxModelObject::paddingLeft when paddingLeft has
3416         percent value, e.g. 5%. However if we set the scrollbar's parent
3417         renderer to a renderer owning the scrollbar by using setParent method,
3418         RenderScrollbarPart::styleWillChange will invoke parent renderer's
3419         repaint. This causes crash in WebCore::RenderObject::repaint if the
3420         owning renderer is already destroyed.
3421         To fix the first crash without the second crash, modify
3422         RenderObject::containingBlock() to check isRenderScrollbarPart or not,
3423         if parent() is 0.
3424         If so, use scrollbar's owningRenderer from RenderScrollbarPart.
3425
3426         Test: scrollbars/scrollbar-percent-padding-crash.html
3427               scrollbars/scrollbar-scrollbarparts-repaint-crash.html
3428
3429         * rendering/RenderObject.cpp:
3430         (WebCore::RenderObject::containingBlock):
3431         Modifying containingBlock. If parent() is 0 and isRenderScrollbarPart()
3432         is true, use RenderScrollbarPart's m_scrollbar->owningRenderer()
3433         instead of parent().
3434         * rendering/RenderObject.h:
3435         (WebCore::RenderObject::isRenderScrollbarPart):
3436         (RenderObject):
3437         Adding a new method, isRenderScrollbarPart.
3438         * rendering/RenderScrollbarPart.cpp:
3439         (WebCore::RenderScrollbarPart::rendererOwningScrollbar):
3440         (WebCore):
3441         Adding a new method, scrollbarOwningRenderer to obtain m_scrollar's
3442         owningRenderer.
3443         * rendering/RenderScrollbarPart.h:
3444         (RenderScrollbarPart):
3445         Removing "friend class RenderScrollbar".
3446         (WebCore::RenderScrollbarPart::isRenderScrollbarPart):
3447         (WebCore::toRenderScrollbarPart):
3448         (WebCore):
3449         Implementing isRenderScrollbarPart and toRenderScrollbarPart.
3450
3451 2012-05-14  Mike West  <mike@mikewest.org>
3452
3453         Content Security Policy console errors include violated directive.
3454         https://bugs.webkit.org/show_bug.cgi?id=86323
3455
3456         Reviewed by Adam Barth.
3457
3458         Console errors generated when resources, inline script/style, or eval
3459         are blocked by Content Security Policy directives should include the
3460         text of the directive that's been violated. This gives developers more
3461         of the information they need to resolve the issue.
3462
3463         Test: http/tests/security/contentSecurityPolicy/*
3464
3465         * page/ContentSecurityPolicy.cpp:
3466         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
3467         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):