Web Inspector: Move sidebar-specific styles to a separate file.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2
3         Web Inspector: Move sidebar-specific styles to a separate file.
4         https://bugs.webkit.org/show_bug.cgi?id=111173
5
6         Reviewed by Pavel Feldman.
7
8         * WebCore.gypi:
9         * inspector/front-end/BreakpointsSidebarPane.js:
10         (WebInspector.JavaScriptBreakpointsSidebarPane):
11         (WebInspector.EventListenerBreakpointsSidebarPane):
12         * inspector/front-end/NativeBreakpointsSidebarPane.js:
13         (WebInspector.NativeBreakpointsSidebarPane):
14         * inspector/front-end/SidebarPane.js:
15         (WebInspector.SidebarPaneTitle):
16         (WebInspector.SidebarPaneStack):
17         (WebInspector.SidebarTabbedPane):
18         * inspector/front-end/WebKit.qrc:
19         * inspector/front-end/breakpointsList.css: Added.
20         (.sidebar-pane > .body .breakpoint-condition):
21         (#breakpoint-condition-input):
22         (ol.breakpoint-list):
23         (.breakpoints-list-deactivated):
24         (.breakpoint-list li):
25         (.breakpoint-list li:hover):
26         (.breakpoint-list .checkbox-elem):
27         (.breakpoint-list .source-text):
28         (.sidebar-pane .breakpoint-hit):
29         (li.breakpoint-hit .breakpoint-hit-marker):
30         (.event-listener-breakpoints .event-category):
31         (.event-listener-breakpoints.properties-tree .children li):
32         (.event-listener-breakpoints .checkbox-elem):
33         * inspector/front-end/elementsPanel.css:
34         (.panel.elements .sidebar-pane-toolbar > select):
35         (.panel.elements .sidebar-pane-toolbar > select:hover):
36         (.panel.elements .sidebar-pane-toolbar > select:active):
37         (.panel.elements .sidebar-pane-toolbar > select.select-settings):
38         (.panel.elements .sidebar-pane-toolbar > select.select-filter):
39         (.panel.elements .sidebar-pane-toolbar > select > option, .panel.elements .sidebar-pane-toolbar > select > hr):
40         * inspector/front-end/inspector.css:
41         (.event-bar .event-properties):
42         * inspector/front-end/scriptsPanel.css:
43         (.workers-list > li):
44         (a.worker-item):
45         (a.worker-item:hover):
46         * inspector/front-end/sidebarPane.css: Added.
47         (.sidebar-pane):
48         (.sidebar-pane > .body):
49         (.sidebar-pane > .body .info):
50         (.sidebar-pane > .body .placard + .info):
51         (.sidebar-pane.visible > .body):
52         (.sidebar-pane .section .properties):
53         (.sidebar-tabbed-pane .tabbed-pane-header):
54         (.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1)):
55         (.sidebar-pane-title):
56         (.sidebar-pane-title + .sidebar-pane-title, .pane:not(.visible) + .sidebar-pane-title, .sidebar-pane-title:first-of-type):
57         (.sidebar-pane-title:active):
58         (.sidebar-pane-title::before):
59         (.sidebar-pane-title.expanded::before):
60         (.sidebar-pane-toolbar):
61         (.sidebar-pane-toolbar > *):
62         (.sidebar-pane-toolbar > .pane-title-button):
63         (.sidebar-pane-toolbar > .pane-title-button:hover):
64         (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
65         (.sidebar-pane-toolbar > .pane-title-button.add):
66         (.sidebar-pane-toolbar > .pane-title-button.element-state):
67         (.sidebar-pane-toolbar > .pane-title-button.refresh):
68         (.sidebar-pane-subtitle):
69         (body.platform-windows .sidebar-pane-subtitle):
70         (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
71
72 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
73
74         Web Inspector: Combine style-related panes into a single tab when Elements panel is split horizontally.
75         https://bugs.webkit.org/show_bug.cgi?id=111550
76         Reviewed by Pavel Feldman.
77
78         Grouping the Elements sidebar panes into two tabbed panes proved to be
79         confusing and inconvenient. Put all the Elements sidebar panes into a single tabbed pane.
80         Combined Styles, Computed Style and Metrics into a single pane.
81
82         * inspector/front-end/ElementsPanel.js:
83         (WebInspector.ElementsPanel.prototype._splitVertically):
84         (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
85         * inspector/front-end/elementsPanel.css:
86         (.sidebar-pane.composite):
87         (.sidebar-pane.composite > .body):
88         (.sidebar-pane.composite .metrics):
89         (.sidebar-pane.composite .sidebar-pane-toolbar):
90         (.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle):
91         (.sidebar-pane.composite .styles-section.read-only):
92
93 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
94
95         Web Inspector: support stable remote object ids
96         https://bugs.webkit.org/show_bug.cgi?id=109908
97
98         Reviewed by Pavel Feldman.
99
100         Introduced a map from javascript object to its id. It guarantees
101         that object is assined id only once (unless it is explicitely
102         released). The map is per execution context and is stored in
103         InjectedScriptManager.
104
105         Test: inspector-protocol/persistent-id.html
106
107         * bindings/js/JSInjectedScriptHostCustom.cpp:
108         (WebCore::JSInjectedScriptHost::objectId):
109         (WebCore):
110         (WebCore::JSInjectedScriptHost::releaseObjectId):
111         * bindings/js/ScriptObject.h:
112         (WTF):
113         (WTF::ScriptObjectHash::hash):
114         (WTF::ScriptObjectHash::equal):
115         (ScriptObjectHash):
116         * bindings/v8/ScriptObject.h:
117         (WTF):
118         (WTF::ScriptObjectHash::hash):
119         (WTF::ScriptObjectHash::equal):
120         (ScriptObjectHash):
121         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
122         (WebCore::V8InjectedScriptHost::objectIdMethodCustom):
123         (WebCore):
124         (WebCore::V8InjectedScriptHost::releaseObjectIdMethodCustom):
125         * inspector/InjectedScriptHost.cpp:
126         (WebCore::InjectedScriptHost::create):
127         (WebCore::InjectedScriptHost::InjectedScriptHost):
128         (WebCore::InjectedScriptHost::disconnect):
129         (WebCore::InjectedScriptHost::objectId):
130         (WebCore):
131         (WebCore::InjectedScriptHost::releaseObjectId):
132         * inspector/InjectedScriptHost.h:
133         (WebCore):
134         (InjectedScriptHost):
135         * inspector/InjectedScriptHost.idl:
136         * inspector/InjectedScriptManager.cpp:
137         (InjectedScriptManager::ObjectIdMap):
138         (WebCore::InjectedScriptManager::ObjectIdMap::ObjectIdMap):
139         (WebCore::InjectedScriptManager::ObjectIdMap::objectId):
140         (WebCore::InjectedScriptManager::ObjectIdMap::releaseObjectId):
141         (WebCore):
142         (WebCore::InjectedScriptManager::InjectedScriptManager):
143         (WebCore::InjectedScriptManager::discardInjectedScripts):
144         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
145         (WebCore::InjectedScriptManager::objectId):
146         (WebCore::InjectedScriptManager::releaseObjectId):
147         * inspector/InjectedScriptManager.h:
148         (InjectedScriptManager):
149         * inspector/InjectedScriptSource.js:
150         (.):
151
152 2013-03-06  Marja Hölttä  <marja@chromium.org>
153
154         REGRESSION(r144617): Wrong usage of overwritten variable in toDOMWindow (V8Binding.cpp)
155         https://bugs.webkit.org/show_bug.cgi?id=111565
156
157         Reviewed by Jochen Eisinger.
158
159         In toDOMWindow, the variable "global" was first nuked, and then used again. This
160         change was introduced in r144617.
161
162         No new tests (no functional changes).
163
164         * bindings/v8/V8Binding.cpp:
165         (WebCore::toDOMWindow):
166
167 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
168
169         Web Inspector: use regular eval instead of injectScript for front-end extension API
170         https://bugs.webkit.org/show_bug.cgi?id=111529
171
172         Reviewed by Pavel Feldman.
173
174         Removed InjectedScriptManager::injectScript and replaced all of it calls
175         except the actual script injection with ScriptController::executeScript.
176
177         * inspector/InjectedScriptManager.cpp:
178         (WebCore::InjectedScriptManager::injectedScriptFor):
179         * inspector/InjectedScriptManager.h:
180         (InjectedScriptManager):
181         * inspector/InspectorAgent.cpp:
182         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
183         * inspector/InspectorPageAgent.cpp:
184         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
185         * inspector/front-end/DOMAgent.js:
186         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
187         * inspector/front-end/ExtensionAPI.js:
188         (buildExtensionAPIInjectedScript):
189         * inspector/front-end/ExtensionServer.js:
190         (WebInspector.ExtensionServer.prototype._onReload):
191
192 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
193
194         [Qt] Do not disable C++0x
195         https://bugs.webkit.org/show_bug.cgi?id=111559
196
197         Reviewed by Kenneth Rohde Christiansen.
198
199         * WebCore.pri:
200
201 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
202
203         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
204         https://bugs.webkit.org/show_bug.cgi?id=111505
205
206         Reviewed by Alexis Menard.
207
208         The CSS parsing code expands shorthands (with the exception of 'font') to their longhands.
209         This means that all the code in StyleResolver / StyleBuilder to handle shorthands is basically
210         dead and shouldn't be there. The reason for it to be is that people didn't know about shorthands
211         expansion and thus copied existing code.
212
213         This change addresses both issues by removing the code and adding ASSERTs that should prevent people
214         from adding more dead code.
215
216         Refactoring, covered by existing tests.
217
218         * css/StylePropertyShorthand.h: Added isExpandedShorthand.
219         * css/StylePropertyShorthand.cpp:
220         (WebCore::isExpandedShorthand):
221         Added this function that ignores 'font' as it is the only shorthand that is no consistently expanded
222         to account for system fonts.
223
224         * css/StyleBuilder.cpp:
225         (WebCore::StyleBuilder::StyleBuilder):
226         Removed the shorthands.
227
228         * css/StyleBuilder.h:
229         (WebCore::StyleBuilder::setPropertyHandler):
230         Added ASSERTs that people don't add shorthand handling.
231
232         * css/StyleResolver.cpp:
233         (WebCore::isValidVisitedLinkProperty):
234         Removed all the shorthands (shouldn't be reachable unless the ASSERT in applyProperty
235         triggers).
236
237         (WebCore::StyleResolver::applyProperty):
238         Removed all shorthand handling code, moved the shorthands together and added some ASSERT
239         to ensure people don't abuse the code and re-add some of it back by mistake.
240
241 2013-03-05  Kent Tamura  <tkent@chromium.org>
242
243         Rename WebCore/editing/visible_units.* to VisibleUnits.*
244         https://bugs.webkit.org/show_bug.cgi?id=111426
245
246         Reviewed by Alexey Proskuryakov.
247
248         No new tests. Just a refactoring.
249
250         * CMakeLists.txt:
251         * GNUmakefile.list.am:
252         * Target.pri:
253         * WebCore.gypi:
254         * WebCore.vcproj/WebCore.vcproj:
255         * WebCore.vcxproj/WebCore.vcxproj:
256         * WebCore.vcxproj/WebCore.vcxproj.filters:
257         * WebCore.xcodeproj/project.pbxproj:
258         * accessibility/AccessibilityNodeObject.cpp:
259         * accessibility/AccessibilityObject.cpp:
260         * accessibility/AccessibilityRenderObject.cpp:
261         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
262         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
263         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
264         * dom/Position.cpp:
265         * dom/Range.cpp:
266         * editing/AlternativeTextController.cpp:
267         * editing/ApplyBlockElementCommand.cpp:
268         * editing/ApplyStyleCommand.cpp:
269         * editing/CompositeEditCommand.cpp:
270         * editing/DeleteSelectionCommand.cpp:
271         * editing/EditingAllInOne.cpp:
272         * editing/EditingStyle.cpp:
273         * editing/Editor.cpp:
274         * editing/FormatBlockCommand.cpp:
275         * editing/FrameSelection.cpp:
276         * editing/IndentOutdentCommand.cpp:
277         * editing/InsertLineBreakCommand.cpp:
278         * editing/InsertListCommand.cpp:
279         * editing/InsertParagraphSeparatorCommand.cpp:
280         * editing/InsertTextCommand.cpp:
281         * editing/ReplaceSelectionCommand.cpp:
282         * editing/SurroundingText.cpp:
283         * editing/TextCheckingHelper.cpp:
284         * editing/TextIterator.cpp:
285         * editing/TypingCommand.cpp:
286         * editing/VisiblePosition.cpp:
287         * editing/VisibleSelection.cpp:
288         * editing/VisibleUnits.cpp: Copied from Source/WebCore/editing/visible_units.cpp.
289         * editing/VisibleUnits.h: Copied from Source/WebCore/editing/visible_units.h.
290         * editing/htmlediting.cpp:
291         * editing/markup.cpp:
292         * editing/visible_units.cpp: Removed.
293         * editing/visible_units.h: Removed.
294         * page/Frame.cpp:
295         * page/mac/FrameMac.mm:
296         * platform/win/EditorWin.cpp:
297
298 2013-03-06  Alexis Menard  <alexis@webkit.org>
299
300         Do not add CSSPropertyBorderImage shorthand part of the property list when parsing CSS border property
301         https://bugs.webkit.org/show_bug.cgi?id=111481
302
303         Reviewed by Julien Chaffraix.
304
305         After http://trac.webkit.org/changeset/135848 and more generally we do not 
306         add shorthand directly into the property list used afterwards to build
307         StylePropertySet but we rather expand the shorthand to add the
308         longhands. CSSPropertyBorderImage is a shorthand and it should follow
309         that rule, so when we successfully parsed CSS border property and we
310         should reset border-image then we should reset the longhands too.
311
312         Test: LayoutTests/inspector/styles/styles-new-API-expected.txt which
313         reflects the fact that we add longhands instead of the shorthand. All
314         the other tests should not regress.
315
316         * css/CSSParser.cpp:
317         (WebCore::CSSParser::parseValue):
318
319 2013-03-06  Luiz Agostini  <luiz.agostini@nokia.com>
320
321         Accelerated overflow scrolling for Coordinated Graphics.
322         https://bugs.webkit.org/show_bug.cgi?id=110323
323
324         Reviewed by Noam Rosenthal.
325
326         A scroll offset is applied to individual layers on UI process and the
327         web process is notified assynchronously.
328         The new API WKCoordinatedScene may be used to scroll layers in the UI process.
329
330         Tests will be added on bug #111140.
331
332         Scrolling coordinator is used to provide a ScrollableArea to CoordinatedGraphicsLayer.
333
334         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
335         (WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
336         (WebCore):
337         (WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
338         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
339         (ScrollingCoordinatorCoordinatedGraphics):
340
341         GraphicsLayerTextureMapper is responsible for receiving the 'did commit' messages and to pass
342         them to its TextureMapperLayer on the appropriated time.
343
344         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
345         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
346         (WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset):
347         (WebCore):
348         (WebCore::GraphicsLayerTextureMapper::setIsScrollable):
349         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
350         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
351         (WebCore::GraphicsLayerTextureMapper::setScrollClient):
352         (WebCore::GraphicsLayerTextureMapper::setID):
353         (GraphicsLayerTextureMapper):
354         (WebCore::GraphicsLayerTextureMapper::isScrollable):
355
356         TextureMapperLayer is responsible for applying the requested scroll offset and for
357         sending the commit messages to web process. It is also able to hittest layers and identify
358         the ones that are scrollable.
359
360         * platform/graphics/texmap/TextureMapperLayer.cpp:
361         (WebCore::TextureMapperLayer::hitTest):
362         (WebCore):
363         (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
364         (WebCore::TextureMapperLayer::findScrollableContentsLayerAt):
365         (WebCore::TextureMapperLayer::mapScrollOffset):
366         (WebCore::TextureMapperLayer::commitScrollOffset):
367         (WebCore::TextureMapperLayer::scrollBy):
368         (WebCore::TextureMapperLayer::didCommitScrollOffset):
369         * platform/graphics/texmap/TextureMapperLayer.h:
370         (TextureMapperLayer):
371         (ScrollingClient):
372         (WebCore::TextureMapperLayer::TextureMapperLayer):
373         (WebCore::TextureMapperLayer::setID):
374         (WebCore::TextureMapperLayer::id):
375         (WebCore::TextureMapperLayer::setScrollClient):
376         (WebCore::TextureMapperLayer::setIsScrollable):
377         (WebCore::TextureMapperLayer::isScrollable):
378         (WebCore::TextureMapperLayer::adjustedPosition):
379
380         CoordinatedGraphicsLayer receives the commit messages and updates its ScrollableArea.
381
382         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
383         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
384         (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
385         (WebCore):
386         (WebCore::CoordinatedGraphicsLayer::commitScrollOffset):
387         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
388         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
389         (WebCore):
390         (CoordinatedGraphicsLayer):
391         (WebCore::CoordinatedGraphicsLayer::isScrollable):
392
393         CoordinatedGraphicsScene receives the commit messages from TextureMapperLayer and
394         dispatches them on the main thread. It also has a new method that is used to find
395         the topmost scrollable layer at a given point.
396
397         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
398         (WebCore::CoordinatedGraphicsScene::setLayerState):
399         (WebCore::CoordinatedGraphicsScene::createLayer):
400         (WebCore::CoordinatedGraphicsScene::dispatchCommitScrollOffset):
401         (WebCore):
402         (WebCore::CoordinatedGraphicsScene::commitScrollOffset):
403         (WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
404         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
405         (WebCore):
406         (CoordinatedGraphicsSceneClient):
407         (CoordinatedGraphicsScene):
408
409         New fields have been added to CoordinatedGraphicsLayerState.
410
411         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
412         (CoordinatedGraphicsLayerState):
413
414 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
415
416         REGGRESSION (r142112): It made compositing tests fail on EFL, Qt.
417         https://bugs.webkit.org/show_bug.cgi?id=109291
418
419         Reviewed by Kenneth Rohde Christiansen.
420
421         Report we support fixed layers.
422
423         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
424         (WebCore::ScrollingCoordinatorCoordinatedGraphics::supportsFixedPositionLayers):
425         (ScrollingCoordinatorCoordinatedGraphics):
426
427 2013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
428
429         Unreviewed, rolling out r144859.
430         http://trac.webkit.org/changeset/144859
431         https://bugs.webkit.org/show_bug.cgi?id=111519
432
433         Introduced a test that calls non-exist function on non-
434         Chromium ports and crash on Chromium (Requested by rniwa on
435         #webkit).
436
437         * html/HTMLAudioElement.h:
438         (WebCore::HTMLAudioElement::hasPendingActivity):
439         (HTMLAudioElement):
440         * html/HTMLAudioElement.idl:
441         * html/HTMLMediaElement.cpp:
442         (WebCore::HTMLMediaElement::hasPendingActivity):
443         * html/HTMLMediaElement.idl:
444
445 2013-03-06  Ilya Tikhonovsky  <loislo@chromium.org>
446
447         Web Inspector: Could not open Profiles panel.
448         https://bugs.webkit.org/show_bug.cgi?id=111535
449
450         Reviewed by Alexander Pavlov.
451
452         * inspector/front-end/CPUProfileView.js:
453         * inspector/front-end/ProfilesPanel.js:
454
455 2013-03-06  Tony Chang  <tony@chromium.org>
456
457         Crash during middle mouse click when page is removed
458         https://bugs.webkit.org/show_bug.cgi?id=111489
459
460         Reviewed by Hajime Morrita.
461
462         Check for a null page that can happen if we remove the document from the DOM.
463         The other methods in EventHandler also check for a null page.
464
465         Test: editing/pasteboard/selection-paste-crash.html
466
467         * page/EventHandler.cpp:
468         (WebCore::EventHandler::handlePasteGlobalSelection):
469
470 2013-03-05  Eric Seidel  <eric@webkit.org>
471
472         Replace shouldLazyAttach bool with an enum for readability
473         https://bugs.webkit.org/show_bug.cgi?id=111503
474
475         Reviewed by Dimitri Glazkov.
476
477         No behavioral change.
478
479         * bindings/cpp/WebDOMNodeCustom.cpp:
480         (WebDOMNode::insertBefore):
481         (WebDOMNode::replaceChild):
482         (WebDOMNode::appendChild):
483         * bindings/js/JSNodeCustom.cpp:
484         (WebCore::JSNode::insertBefore):
485         (WebCore::JSNode::replaceChild):
486         (WebCore::JSNode::appendChild):
487         * bindings/v8/custom/V8NodeCustom.cpp:
488         (WebCore):
489         (WebCore::V8Node::insertBeforeMethodCustom):
490         (WebCore::V8Node::replaceChildMethodCustom):
491         (WebCore::V8Node::appendChildMethodCustom):
492         * dom/ContainerNode.cpp:
493         (WebCore):
494         (WebCore::ContainerNode::insertBefore):
495         (WebCore::ContainerNode::replaceChild):
496         (WebCore::ContainerNode::appendChild):
497         (WebCore::updateTreeAfterInsertion):
498         * dom/ContainerNode.h:
499         (ContainerNode):
500         * dom/Node.cpp:
501         (WebCore::Node::insertBefore):
502         (WebCore::Node::replaceChild):
503         (WebCore::Node::appendChild):
504         * dom/Node.h:
505         (Node):
506         * editing/AppendNodeCommand.cpp:
507         (WebCore::AppendNodeCommand::doApply):
508         * editing/InsertNodeBeforeCommand.cpp:
509         (WebCore::InsertNodeBeforeCommand::doApply):
510         * html/shadow/MediaControlsApple.cpp:
511         (WebCore::MediaControlsApple::createControls):
512         * html/shadow/MediaControlsBlackBerry.cpp:
513         (WebCore::MediaControlsBlackBerry::createControls):
514         * html/shadow/MediaControlsChromium.cpp:
515         (WebCore::MediaControlsChromium::initializeControls):
516         * html/shadow/MediaControlsChromiumAndroid.cpp:
517         (WebCore::MediaControlsChromiumAndroid::createControls):
518
519 2013-03-05  Hajime Morrita  <morrita@google.com>
520
521         Custom Elements: CustomElementConstructor::m_name doesn't have any good use.
522         https://bugs.webkit.org/show_bug.cgi?id=111523
523
524         Reviewed by Kentaro Hara.
525
526         This change removes CustomElementConstructor::m_name and renames
527         m_tagName to m_name. Now generated function name is same as interface name.
528
529         Originally, m_name was added to specify the generated constructor
530         name. An early version of custom element allows to give the name,
531         but it no longer says anything about that.
532
533         The rename is to align the semantics of type extension mechanism
534         of Custom Elements, where the name of a custom element isn't
535         necessarily a tag name.
536
537         No new tests. Just removing old code.
538
539         * bindings/scripts/CodeGeneratorV8.pm:
540         (GenerateHeader):
541         * dom/CustomElementConstructor.cpp:
542         (WebCore::CustomElementConstructor::create):
543         (WebCore::CustomElementConstructor::CustomElementConstructor):
544         (WebCore::CustomElementConstructor::createElement):
545         * dom/CustomElementConstructor.h:
546         (CustomElementConstructor):
547         (WebCore::CustomElementConstructor::name):
548         * dom/CustomElementRegistry.cpp:
549         (WebCore::CustomElementRegistry::registerElement):
550
551 2013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
552
553         Web Inspector: Flame Chart. Provide node context info in a popover when mouse hovers over a flame chart item.
554         https://bugs.webkit.org/show_bug.cgi?id=111442
555
556         Reviewed by Yury Semikhatsky.
557
558         FlameChart is a canvas so it is not possible to attach the popover to the items on it.
559         It would be a bit tricky to support an offset due to complex behaviour of the popover.
560         The simplest solution is to create a fake anchor element and move it to the right position.
561
562         * inspector/front-end/FlameChart.js:
563         (WebInspector.FlameChart):
564         (WebInspector.FlameChart.prototype._getPopoverAnchor):
565         (WebInspector.FlameChart.prototype._showPopover):
566         (WebInspector.FlameChart.prototype._onMouseMove):
567         (WebInspector.FlameChart.prototype.findNodeCallback):
568         (WebInspector.FlameChart.prototype._coordinatesToNode):
569         (WebInspector.FlameChart.prototype.onResize):
570         * inspector/front-end/flameChart.css:
571         (.flame-chart .item-anchor):
572
573 2013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
574
575         Unreviewed buildfix after r144787. Add missing USE(GRAPHICS_SURFACE) guards.
576
577         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
578         (WebCore::CoordinatedGraphicsScene::setLayerState):
579         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
580         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
581
582 2013-03-05  Geoffrey Garen  <ggaren@apple.com>
583
584         Autoreleased cached pages slow down the PLT by 2%
585         https://bugs.webkit.org/show_bug.cgi?id=111522
586
587         Reviewed by Filip Pizlo.
588
589         Let's stop doing that.
590
591         2% PLT speedup.
592
593         * history/PageCache.cpp:
594         (WebCore::PageCache::remove):
595
596 2013-03-05  Hayato Ito  <hayato@chromium.org>
597
598         [Shadow] Implements event re-targeting for Touch Events.
599         https://bugs.webkit.org/show_bug.cgi?id=107800
600
601         Reviewed by Dimitri Glazkov.
602
603         So far, Touch Events have been intentionally disabled in shadow
604         tree since it allows users to access internal nodes in shadow tree
605         by accessing Touch Event's information.
606
607         This patch re-targets all individual touch point's target in
608         TouchList (touches, targetTouches and changedTouches) owned by a Touch Event
609         before the Touch Event is dispatched so that we won't break an
610         upper boundary of shadow DOM.
611
612         Touch Events re-targeting is similar to that of Mouse Events
613         re-targeting. The difference is that a Touch Event can have more
614         than one related target because of multiple touches. We must
615         re-target all individual touch points which can be referred from
616         the Touch Event.
617
618         Now, Touch Events can be fired in shadow tree. I've removed the
619         existing limitation.
620
621         Test: fast/dom/shadow/touch-event-retargeting.html
622
623         * dom/EventContext.cpp:
624         (WebCore::EventContext::isTouchEventContext):
625         (WebCore):
626         (WebCore::TouchEventContext::TouchEventContext):
627         (WebCore::TouchEventContext::~TouchEventContext):
628         (WebCore::TouchEventContext::handleLocalEvents):
629         (WebCore::TouchEventContext::isTouchEventContext):
630         (WebCore::TouchEventContext::checkReachability):  Used for assertion of reachability for each Touch point.
631         * dom/EventContext.h:
632         (WebCore):
633         (EventContext):
634         (TouchEventContext): Introduced to hold necessary information for re-targeting Touch event.
635         (WebCore::TouchEventContext::touches):
636         (WebCore::TouchEventContext::targetTouches):
637         (WebCore::TouchEventContext::changedTouches):
638         (WebCore::EventContext::isReachable):
639         * dom/EventRetargeter.cpp:
640         (WebCore::EventRetargeter::calculateEventPath):
641         (WebCore::EventRetargeter::adjustForTouchEvent):
642         (WebCore):
643         (WebCore::EventRetargeter::adjustTouchList):
644         (WebCore::EventRetargeter::adjustForRelatedTarget):
645         (WebCore::EventRetargeter::calculateAdjustedNodes): Updated so that this can be used for Touch point re-targeting.
646         (WebCore::EventRetargeter::buildRelatedNodeMap):
647         * dom/EventRetargeter.h:
648         (WebCore):
649         (EventRetargeter):
650         * dom/Node.cpp:
651         (WebCore::Node::dispatchEvent):
652         (WebCore):
653         (WebCore::Node::dispatchTouchEvent):
654         * dom/Node.h:
655         (WebCore):
656         (Node):
657         * dom/Touch.cpp:
658         (WebCore::Touch::Touch):
659         (WebCore):
660         (WebCore::Touch::cloneWithNewTarget):
661         * dom/Touch.h:
662         (Touch):
663         * dom/TouchEvent.cpp:
664         (WebCore::TouchEventDispatchMediator::create):
665         (WebCore):
666         (WebCore::TouchEventDispatchMediator::TouchEventDispatchMediator):
667         (WebCore::TouchEventDispatchMediator::event):
668         (WebCore::TouchEventDispatchMediator::dispatchEvent):
669         * dom/TouchEvent.h:
670         (TouchEvent):
671         (WebCore::TouchEvent::setTouches):
672         (WebCore::TouchEvent::setTargetTouches):
673         (WebCore::TouchEvent::setChangedTouches):
674         (TouchEventDispatchMediator):
675         (WebCore):
676         (WebCore::toTouchEvent):
677         * dom/TouchList.cpp:
678         (WebCore::TouchList::item):
679         (WebCore):
680         * dom/TouchList.h:
681         (TouchList):
682         * page/EventHandler.cpp:
683         (WebCore::EventHandler::hitTestResultInFrame): Removed the limitation. Adjusting is no longer done here.
684         (WebCore::EventHandler::handleTouchEvent):
685
686 2013-03-05  Hajime Morrita  <morrita@google.com>
687
688         [Custom Elements][V8] Custom Element doesn't need its own WrapperTypeInfo
689         https://bugs.webkit.org/show_bug.cgi?id=111411
690
691         Reviewed by Kentaro Hara.
692
693         No new tests. No observable change yet.
694
695         This is a preparation for Bug 110436, where WebKit is going to
696         allow any HTML element to be a superclass of custom elements.
697
698         This change eliminates WrapperTypeInfo for custom element. Instead
699         of that, the wrapper of a custom element picks WrapperTypeInfo
700         from most descendant built-in HTML element. For example, think about
701         following hierarchy:
702
703         - ... <- HTMLElement <- HTMLDivElememnt <- ExistingCustomElement <- NewCustomElement
704
705         In this case, both ExistingCustomElement and NewCustomElement has
706         HTMLDivElememnt's type info. This is because HTMLDivElememnt is
707         the most descendant (or "the nearest") built-in HTML
708         element. (HTMLElement isn't the most descendant.
709         ExistingCustomElement isn't a built-in.)
710
711         Using such WrapperTypeInfos, created custom element wrappers can
712         get appropriate set of method and properties regardless of its
713         super-elements.
714
715         This change tells the prototype object of each built-in object
716         which WrapperTypeInfo the native backing wants:
717         HTMLDivElememnt.prototype knows V8HTMLDivElement::info for
718         example. The pointer to the type info is stored into an internal
719         field. On wrapper construction, createWrapper() walks up the
720         prototype chain and pick the first one.
721
722         * bindings/v8/V8DOMConfiguration.cpp:
723         (WebCore::V8DOMConfiguration::configureTemplate):
724         * bindings/v8/V8HTMLCustomElement.cpp:
725         (WebCore::findWrapperTypeOf):
726         (WebCore::V8HTMLCustomElement::createWrapper):
727         * bindings/v8/V8HTMLCustomElement.h:
728         * bindings/v8/V8PerContextData.cpp:
729         (WebCore::V8PerContextData::constructorForTypeSlowCase):
730         * bindings/v8/WrapperTypeInfo.h:
731         (WebCore):
732
733 2013-03-05  Aaron Colwell  <acolwell@chromium.org>
734
735         Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
736         https://bugs.webkit.org/show_bug.cgi?id=110623
737
738         Reviewed by Eric Seidel.
739
740         Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
741
742         * html/HTMLAudioElement.h:
743         (HTMLAudioElement):
744         * html/HTMLAudioElement.idl:
745         * html/HTMLMediaElement.cpp:
746         (WebCore::HTMLMediaElement::hasPendingActivity):
747         * html/HTMLMediaElement.idl:
748
749 2013-03-05  Chris Fleizach  <cfleizach@apple.com>
750  
751         AX: Support aria-posinset/setsize
752         https://bugs.webkit.org/show_bug.cgi?id=109725
753
754         Reviewed by Tim Horton.
755
756         Expose aria-setsize and aria-posinset through accessibility.
757         Right now only the Mac platform exposes them.
758
759         Test: platform/mac/accessibility/aria-setsize-posinset.html
760
761         * accessibility/AccessibilityObject.cpp:
762         (WebCore::AccessibilityObject::supportsARIASetSize):
763         (WebCore):
764         (WebCore::AccessibilityObject::supportsARIAPosInset):
765         (WebCore::AccessibilityObject::ariaSetSize):
766         (WebCore::AccessibilityObject::ariaPosInset):
767         * accessibility/AccessibilityObject.h:
768         (AccessibilityObject):
769         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
770         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
771         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
772         * html/HTMLAttributeNames.in:
773
774
775 2013-03-05  Peter Nelson  <peter@peterdn.com>
776
777         [WinCairo] Support for cookies is incomplete
778         https://bugs.webkit.org/show_bug.cgi?id=110147
779         
780         Expired and HttpOnly cookies no longer accessible from JavaScript.
781         Cookies set in JavaScript now have correct domain/path.
782
783         Reviewed by Brent Fulgham.
784
785         Test: http/tests/cookies/http-get-cookie-set-in-js.html
786
787         * platform/network/curl/CookieJarCurl.cpp:
788         (WebCore):
789         (WebCore::addMatchingCurlCookie):
790         (WebCore::getNetscapeCookieFormat):
791         (WebCore::setCookiesFromDOM):
792         (WebCore::cookieRequestHeaderFieldValue):
793
794 2013-03-05  Alec Flett  <alecflett@chromium.org>
795
796         Fix mac clang build with long long
797         https://bugs.webkit.org/show_bug.cgi?id=111495
798
799         Unreviewed fix for mac build.
800
801         * Modules/indexeddb/IDBBackingStore.cpp:
802         (WebCore::IDBBackingStore::IDBBackingStore):
803
804 2013-03-05  Alec Flett  <alecflett@chromium.org>
805
806         Fix mac clang build with long long
807         https://bugs.webkit.org/show_bug.cgi?id=111495
808
809         Unreviewed fix for mac build.
810
811         * Modules/indexeddb/IDBBackingStore.cpp:
812         (WebCore::IDBBackingStore::IDBBackingStore):
813
814 2013-03-05  Aaron Colwell  <acolwell@chromium.org>
815
816         Add V8Document.h include when the V8 code generator creates a toV8(Document*) call.
817         https://bugs.webkit.org/show_bug.cgi?id=111486
818
819         Reviewed by Adam Barth.
820
821         No new tests. This doesn't change user visible behavior.
822
823         * bindings/scripts/CodeGeneratorV8.pm:
824         (GenerateNamedConstructor):
825         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
826
827 2013-03-05  Shawn Singh  <shawnsingh@chromium.org>
828
829         Fix default background of a dragged image.
830         https://bugs.webkit.org/show_bug.cgi?id=110512
831
832         Reviewed by Tony Chang.
833
834         Transparent background color (particularly visible in the padding
835         of an element) was not being respected. The solution is to
836         initially fill the drag image with transparent instead of white,
837         so that any color background works correctly. This patch does not
838         affect Apple Mac or Win platforms, given that this part of the
839         code is #if guarded from those platforms.
840
841         Manual test added:
842           ManualTests/drag-background-with-padding.html
843
844         Infrastructure for retrieving the drag image for pixel testing
845         does not yet exist.
846
847         * page/Frame.cpp:
848         (WebCore::Frame::nodeImage):
849
850 2013-03-05  Emil A Eklund  <eae@chromium.org>
851
852         ASSERTION FAILED: i < size(), UNKNOWN in WebCore::RenderTableSection::layout
853         https://bugs.webkit.org/show_bug.cgi?id=108838
854
855         Reviewed by Levi Weintraub.
856         
857         Ensure that RenderTable::recalcSections is called when moving a
858         TableSection by calling setNeedsSectionRecalc in addChild for
859         TableSections.
860
861         Test: fullscreen/full-screen-table-section.html
862
863         * rendering/RenderTable.cpp:
864         (WebCore::RenderTable::addChild):
865
866 2013-03-05  Kenneth Russell  <kbr@google.com>
867
868         Upgrade ANGLE to r1987
869         https://bugs.webkit.org/show_bug.cgi?id=111381
870
871         Reviewed by Dean Jackson.
872
873         Covered by existing tests. Ran WebGL conformance tests in Safari
874         to ensure correct operation of patch.
875
876         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
877         (WebCore::GraphicsContext3D::GraphicsContext3D):
878         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
879         (WebCore::GraphicsContext3D::GraphicsContext3D):
880         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
881         (WebCore::GraphicsContext3D::GraphicsContext3D):
882         * platform/graphics/mac/GraphicsContext3DMac.mm:
883         (WebCore::GraphicsContext3D::GraphicsContext3D):
884         * platform/graphics/qt/GraphicsContext3DQt.cpp:
885         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
886             Changed all ports to query for highp support in fragment
887             shaders and conditionally enable it in ANGLE shader translator.
888
889 2013-03-05  Alec Flett  <alecflett@chromium.org>
890
891         IndexedDB: Add IDBBackingStoreTest
892         https://bugs.webkit.org/show_bug.cgi?id=111233
893
894         Reviewed by Adam Barth.
895
896         These are tweaks to make IDBBackingStore more easily testable.
897
898         * Modules/indexeddb/IDBBackingStore.cpp:
899         (WebCore::IDBBackingStore::IDBBackingStore): Allow use without a backing store.
900
901 2013-03-04  James Robinson  <jamesr@chromium.org>
902
903         [chromium] Move check for threaded compositing from WebCompositorSupport to Platform
904         https://bugs.webkit.org/show_bug.cgi?id=111386
905
906         Reviewed by Adrienne Walker.
907
908         This moves checks for whether threaded compositing is enabled from WebCompositorSupport
909         to Platform. In the case of Canvas2DLayerBridge, the check is moved completely out of
910         the class to make it easier for tests to specify the threaded configuration to use in the test.
911
912         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
913         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
914         * platform/graphics/chromium/Canvas2DLayerBridge.h:
915         (WebCore::Canvas2DLayerBridge::create):
916         (Canvas2DLayerBridge):
917         * platform/graphics/chromium/DrawingBufferChromium.cpp:
918         (WebCore::DrawingBuffer::DrawingBuffer):
919         * platform/graphics/skia/ImageBufferSkia.cpp:
920         (WebCore::createAcceleratedCanvas):
921
922 2013-03-05  Anders Carlsson  <andersca@apple.com>
923
924         Split up the storage event dispatch functions further
925         https://bugs.webkit.org/show_bug.cgi?id=111482
926
927         Reviewed by Beth Dakin.
928
929         Add new functions for dispatching storage events to a set of frames.
930
931         * storage/StorageAreaImpl.cpp:
932         (WebCore::StorageAreaImpl::dispatchStorageEvent):
933         * storage/StorageEventDispatcher.cpp:
934         (WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
935         (WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
936         (WebCore):
937         (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
938         (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
939         * storage/StorageEventDispatcher.h:
940         (WebCore):
941         (StorageEventDispatcher):
942
943 2013-03-05  Stephen Chenney  <schenney@chromium.org>
944
945         Crash when ImageLoader deletes Element inside SVGImageElement
946         https://bugs.webkit.org/show_bug.cgi?id=111085
947
948         Reviewed by Abhishek Arya.
949
950         Elements with ImageLoader objects associated with them may have their
951         final reference held by the ImageLoader (to allow events to be sent
952         and handled). Any call on Element that causes the ImageLoader to
953         dispatch events might then result in the final deref of the Element
954         itself, thus leaving all the Element's "this" pointers up the stack
955         pointing to invalid memory.
956
957         This change puts the deref of the Element on a timer so that, if the
958         deref is called via a method on Element, the call stack will unwind
959         before the deref occurs.
960
961         Test: svg/custom/image-with-attr-change-after-delete-crash.html
962
963         * loader/ImageLoader.cpp:
964         (WebCore::ImageLoader::ImageLoader): Initialize a timer
965         (WebCore::ImageLoader::updatedHasPendingEvent): Put deref of the
966           element on a oneShotTimer, with appropriate assertions and checks to
967           ensure we only ref/deref once.
968         (WebCore::ImageLoader::timerFired): Deref the element when the timer fires.
969         * loader/ImageLoader.h:
970         (ImageLoader): Define a timer for controlling deref of the element.
971
972 2013-03-05  Antoine Quint  <graouts@apple.com>
973
974         Web Inspector: identify reflection layers in LayerTreeAgent
975         https://bugs.webkit.org/show_bug.cgi?id=111419
976
977         We add a new property "isReflection" to the Layer objects returned
978         to the front-end to indicate whether the layer was created to host
979         the reflection for an element. When this new property is true, the
980         "nodeId" property is set to point to the reflected element's node
981         id, since there is no node per-se directly associated with this layer.
982         We also change the "bounds" property to return absolute page coordinates
983         such that the front-end can use this information to highlight that
984         region in the page since metrics would otherwise be unavailable.
985
986         Reviewed by Dean Jackson.
987
988         Test: inspector-protocol/layers/layers-reflected-content.html
989
990         * inspector/Inspector.json:
991         * inspector/InspectorLayerTreeAgent.cpp:
992         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
993
994 2013-03-05  peavo@outlook.com  <peavo@outlook.com>
995
996         [WinCairo] Compile fix after r144024.
997         https://bugs.webkit.org/show_bug.cgi?id=111306
998
999         Reviewed by James Robinson.
1000
1001         * page/scrolling/ScrollingCoordinator.cpp: Added guard for USE(ACCELERATED_COMPOSITING).
1002         * page/scrolling/ScrollingCoordinator.h: Added guard for USE(ACCELERATED_COMPOSITING).
1003
1004 2013-03-05  James Weatherall  <wez@chromium.org>
1005
1006         keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
1007         https://bugs.webkit.org/show_bug.cgi?id=85642
1008
1009         Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
1010
1011         Reviewed by Ojan Vafai.
1012
1013         * platform/chromium/KeyCodeConversionGtk.cpp:
1014         (WebCore::windowsKeyCodeForKeyEvent):
1015
1016 2013-03-05  Alec Flett  <alecflett@chromium.org>
1017
1018         IndexedDB: Properly refactor frontend/backend code by #includes
1019         https://bugs.webkit.org/show_bug.cgi?id=110653
1020
1021         Reviewed by Dimitri Glazkov.
1022
1023         IndexedDB has a distinct backend and frontend, with well defined
1024         *Interface / *Callbacks classes distinguishing them, respectively.
1025         
1026         This makes sure that the frontend and backend do not include each
1027         other and fixes build problems that occurred as a result.
1028
1029         Specifically this moves enums out of IDBCursor and IDBTransaction
1030         into IndexedDB.h in a new WebCore::IndexedDB namespace.
1031
1032         No new tests, as this is just a refactor.
1033
1034 2013-03-05  Jeffrey Pfau  <jpfau@apple.com>
1035
1036         Clear associated cache partitions when deleting origins' cache
1037         https://bugs.webkit.org/show_bug.cgi?id=111383
1038
1039         Reviewed by Maciej Stachowiak.
1040
1041         Clear the cache partitions associated with the origin being cleared.
1042
1043         Not possible to test with current automated test tools, must be tested manually.
1044
1045         * loader/cache/MemoryCache.cpp:
1046         (WebCore::MemoryCache::removeResourcesWithOrigin):
1047
1048 2013-03-04  Ojan Vafai  <ojan@chromium.org>
1049
1050         Inline min/maxInstrinsicLogicalWidth functions
1051         https://bugs.webkit.org/show_bug.cgi?id=111399
1052
1053         Reviewed by Tony Chang.
1054
1055         Turns out these functions don't need to be public and only
1056         have one caller. This patch is in preparation for supporting
1057         intrinsic widths on tables, which will need to pass in the
1058         border and padding width as an argument.
1059
1060         * rendering/RenderBox.cpp:
1061         (WebCore::RenderBox::fillAvailableMeasure):
1062         (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
1063         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
1064         * rendering/RenderBox.h:
1065
1066 2013-03-05  Victor Carbune  <vcarbune@chromium.org>
1067
1068         Cue line-height property shouldn't be inherited from the video element
1069         https://bugs.webkit.org/show_bug.cgi?id=111262
1070
1071         Reviewed by Eric Carlson.
1072
1073         Test: media/track/track-cue-rendering-on-resize.html
1074
1075         * css/mediaControls.css:
1076         (video::-webkit-media-text-track-container): Set the default font size
1077         and family using the "font" property to also reset the line-height property.
1078
1079 2013-03-05  Joshua Bell  <jsbell@chromium.org>
1080
1081         IndexedDB: Remove some unused binding code
1082         https://bugs.webkit.org/show_bug.cgi?id=111463
1083
1084         Reviewed by Adam Barth.
1085
1086         IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
1087         root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
1088         remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
1089         to a ScriptValue before it gets anywhere near the binding code, so remove that too.
1090         Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.
1091
1092         No new tests - just removing dead code.
1093
1094         * Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
1095         * Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
1096         * WebCore.gypi: Ditto.
1097         * bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
1098         * bindings/v8/IDBBindingUtilities.h: Ditto.
1099         * bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.
1100
1101 2013-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
1102
1103         Unreviewed, rolling out r144798.
1104         http://trac.webkit.org/changeset/144798
1105         https://bugs.webkit.org/show_bug.cgi?id=111478
1106
1107         "broke chromium windows build" (Requested by dpranke on
1108         #webkit).
1109
1110         * GNUmakefile.list.am:
1111         * Modules/indexeddb/IDBBackingStore.cpp:
1112         (WebCore::IDBBackingStore::Cursor::continueFunction):
1113         (WebCore::objectStoreCursorOptions):
1114         (WebCore::indexCursorOptions):
1115         (WebCore::IDBBackingStore::openObjectStoreCursor):
1116         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
1117         (WebCore::IDBBackingStore::openIndexKeyCursor):
1118         (WebCore::IDBBackingStore::openIndexCursor):
1119         * Modules/indexeddb/IDBBackingStore.h:
1120         (IDBBackingStore):
1121         * Modules/indexeddb/IDBCursor.cpp:
1122         (WebCore::IDBCursor::create):
1123         (WebCore::IDBCursor::IDBCursor):
1124         (WebCore::IDBCursor::continueFunction):
1125         (WebCore::IDBCursor::stringToDirection):
1126         (WebCore::IDBCursor::directionToString):
1127         * Modules/indexeddb/IDBCursor.h:
1128         (IDBCursor):
1129         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
1130         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
1131         (WebCore::IDBCursorBackendImpl::deleteFunction):
1132         (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
1133         * Modules/indexeddb/IDBCursorBackendImpl.h:
1134         (WebCore::IDBCursorBackendImpl::create):
1135         (WebCore::IDBCursorBackendImpl::value):
1136         (IDBCursorBackendImpl):
1137         * Modules/indexeddb/IDBCursorBackendInterface.h:
1138         (WebCore):
1139         * Modules/indexeddb/IDBCursorWithValue.cpp:
1140         (WebCore::IDBCursorWithValue::create):
1141         (WebCore::IDBCursorWithValue::IDBCursorWithValue):
1142         * Modules/indexeddb/IDBCursorWithValue.h:
1143         (IDBCursorWithValue):
1144         * Modules/indexeddb/IDBDatabase.cpp:
1145         (WebCore::IDBDatabase::transaction):
1146         * Modules/indexeddb/IDBDatabase.h:
1147         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1148         (WebCore::GetOperation::create):
1149         (WebCore::GetOperation::GetOperation):
1150         (GetOperation):
1151         (WebCore::OpenCursorOperation::create):
1152         (WebCore::OpenCursorOperation::OpenCursorOperation):
1153         (OpenCursorOperation):
1154         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1155         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
1156         (WebCore::IDBDatabaseBackendImpl::createIndex):
1157         (WebCore::IDBDatabaseBackendImpl::deleteIndex):
1158         (WebCore::IDBDatabaseBackendImpl::get):
1159         (WebCore::GetOperation::perform):
1160         (WebCore::IDBDatabaseBackendImpl::put):
1161         (WebCore::PutOperation::perform):
1162         (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
1163         (WebCore::IDBDatabaseBackendImpl::openCursor):
1164         (WebCore::OpenCursorOperation::perform):
1165         (WebCore::CountOperation::perform):
1166         (WebCore::IDBDatabaseBackendImpl::deleteRange):
1167         (WebCore::DeleteRangeOperation::perform):
1168         (WebCore::IDBDatabaseBackendImpl::clear):
1169         (WebCore::IDBDatabaseBackendImpl::transactionStarted):
1170         (WebCore::IDBDatabaseBackendImpl::transactionFinished):
1171         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
1172         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
1173         (WebCore::IDBDatabaseBackendImpl::createTransaction):
1174         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
1175         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1176         (IDBDatabaseBackendImpl):
1177         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
1178         * Modules/indexeddb/IDBFactory.h:
1179         * Modules/indexeddb/IDBIndex.cpp:
1180         (WebCore):
1181         (WebCore::IDBIndex::openCursor):
1182         (WebCore::IDBIndex::openKeyCursor):
1183         * Modules/indexeddb/IDBObjectStore.cpp:
1184         (WebCore):
1185         (WebCore::IDBObjectStore::openCursor):
1186         * Modules/indexeddb/IDBRequest.cpp:
1187         (WebCore::IDBRequest::IDBRequest):
1188         (WebCore::IDBRequest::setCursorDetails):
1189         (WebCore::IDBRequest::setResultCursor):
1190         (WebCore::IDBRequest::onSuccess):
1191         * Modules/indexeddb/IDBRequest.h:
1192         (IDBRequest):
1193         * Modules/indexeddb/IDBTransaction.cpp:
1194         (WebCore::IDBTransaction::create):
1195         (WebCore::IDBTransaction::IDBTransaction):
1196         (WebCore::IDBTransaction::stringToMode):
1197         (WebCore::IDBTransaction::modeToString):
1198         * Modules/indexeddb/IDBTransaction.h:
1199         (WebCore::IDBTransaction::isReadOnly):
1200         (WebCore::IDBTransaction::isVersionChange):
1201         (IDBTransaction):
1202         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
1203         (WebCore::IDBTransactionBackendImpl::create):
1204         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
1205         * Modules/indexeddb/IDBTransactionBackendImpl.h:
1206         (IDBTransactionBackendImpl):
1207         (WebCore::IDBTransactionBackendImpl::mode):
1208         * Modules/indexeddb/IDBTransactionCoordinator.cpp:
1209         (WebCore::IDBTransactionCoordinator::processStartedTransactions):
1210         (WebCore::IDBTransactionCoordinator::canRunTransaction):
1211         * Modules/indexeddb/IndexedDB.h: Removed.
1212         * Target.pri:
1213         * WebCore.gypi:
1214
1215 2013-03-05  Tommy Widenflycht  <tommyw@google.com>
1216
1217         MediaStream API: Allow local and remote descriptions to be accessed after close
1218         https://bugs.webkit.org/show_bug.cgi?id=111437
1219
1220         Reviewed by Adam Barth.
1221
1222         It's quite clear in the standard that the getters should still return the old value.
1223         Also overhauling the state setters a bit to check if the new state is different.
1224
1225         Existing tests expanded to cover patch.
1226
1227         * Modules/mediastream/RTCPeerConnection.cpp:
1228         (WebCore::RTCPeerConnection::localDescription):
1229         (WebCore::RTCPeerConnection::remoteDescription):
1230         (WebCore::RTCPeerConnection::changeSignalingState):
1231         (WebCore::RTCPeerConnection::changeIceGatheringState):
1232         (WebCore::RTCPeerConnection::changeIceConnectionState):
1233
1234 2013-03-05  Charlie Reis  <creis@chromium.org>
1235
1236         Add FrameLoaderClient::didAccessInitialDocument
1237         https://bugs.webkit.org/show_bug.cgi?id=107963
1238
1239         Notifies the FrameLoaderClient if another page accesses the
1240         initial empty document of a main frame.  In this case, it is
1241         no longer safe to display the provisional URL.
1242
1243         Only takes effect for PLATFORM(CHROMIUM), since no other platforms
1244         listen to the notification.
1245
1246         Reviewed by Adam Barth.
1247
1248         * bindings/v8/V8DOMWindowShell.cpp:
1249         (WebCore::V8DOMWindowShell::setSecurityToken):
1250             Use default token for initial document.
1251         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1252             Notify loader if initial document is accessed.
1253         (WebCore::V8DOMWindow::namedSecurityCheck):
1254         (WebCore::V8DOMWindow::indexedSecurityCheck):
1255         * loader/FrameLoader.cpp:
1256         (WebCore::FrameLoader::FrameLoader):
1257         (WebCore::FrameLoader::didAccessInitialDocument):
1258         (WebCore):
1259         * loader/FrameLoader.h:
1260         (FrameLoader):
1261         * loader/FrameLoaderClient.h:
1262         (FrameLoaderClient):
1263         (WebCore::FrameLoaderClient::didAccessInitialDocument):
1264
1265 2013-03-05  Otto Derek Cheung  <otcheung@rim.com>
1266
1267         [BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
1268         https://bugs.webkit.org/show_bug.cgi?id=111468
1269
1270         Reviewed by Rob Buis.
1271         Internally reviewed by Konrad Piascik.
1272
1273         The assert in getBackingStoreCookies could be giving out false positives now
1274         that we have our fixes for cookie loading in PR 286189. The cookie store could
1275         be half loaded if the first cookie get/set call happens before the db is fully loaded.
1276         A full webkit sync call to reload the database will cause the assert to be hit.
1277
1278         Safer to flush everything out and try again.
1279
1280         * platform/blackberry/CookieManager.cpp:
1281         (WebCore::CookieManager::getBackingStoreCookies):
1282
1283 2013-03-05  Tony Gentilcore  <tonyg@chromium.org>
1284
1285         CompactHTMLToken does not need an XSSInfo pointer
1286         https://bugs.webkit.org/show_bug.cgi?id=111423
1287
1288         Reviewed by Eric Seidel.
1289
1290         The CompactHTMLToken should remain as small as possible because it is copied. This shrinks the size by one pointer
1291         by moving a relatively uncommon attribute out to its own Vector.
1292
1293         No new tests because no new functionality.
1294
1295         * html/parser/BackgroundHTMLParser.cpp:
1296         (WebCore::checkThatXSSInfosAreSafeToSendToAnotherThread):
1297         (WebCore):
1298         (WebCore::BackgroundHTMLParser::pumpTokenizer):
1299         (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
1300         * html/parser/BackgroundHTMLParser.h:
1301         (BackgroundHTMLParser):
1302         * html/parser/CompactHTMLToken.cpp:
1303         (SameSizeAsCompactHTMLToken):
1304         (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
1305         * html/parser/CompactHTMLToken.h:
1306         (WebCore):
1307         (CompactHTMLToken):
1308         * html/parser/HTMLDocumentParser.cpp:
1309         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1310         * html/parser/HTMLDocumentParser.h:
1311         (ParsedChunk):
1312         * html/parser/XSSAuditorDelegate.h:
1313         (XSSInfo):
1314         (WebCore):
1315
1316 2013-03-05  Anders Carlsson  <andersca@apple.com>
1317
1318         Split StorageEventDispatcher::dispatch into two functions
1319         https://bugs.webkit.org/show_bug.cgi?id=111464
1320
1321         Reviewed by Beth Dakin.
1322
1323         Split StorageEventDispatcher::dispatch into dispatchSessionStorageEvent and
1324         dispatchLocalStorageEvent and make StorageAreaImpl::dispatchStorageEvent call
1325         the right function based on the storage area type.
1326
1327         * storage/StorageAreaImpl.cpp:
1328         (WebCore::StorageAreaImpl::dispatchStorageEvent):
1329         * storage/StorageEventDispatcher.cpp:
1330         (WebCore::StorageEventDispatcher::dispatchSessionStorageEvent):
1331         (WebCore):
1332         (WebCore::StorageEventDispatcher::dispatchLocalStorageEvent):
1333         * storage/StorageEventDispatcher.h:
1334         (StorageEventDispatcher):
1335
1336 2013-03-05  Brent Fulgham  <bfulgham@webkit.org>
1337
1338         [WinCairo] Unreviewed build fix after r144024.
1339
1340         * page/scrolling/ScrollingCoordinator.cpp:
1341         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea): Handle
1342         case of not using Accelerated Compositing
1343         (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
1344         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea): Ditto.
1345
1346 2013-03-05  Alec Flett  <alecflett@chromium.org>
1347
1348         IndexedDB: Properly refactor frontend/backend code by #includes
1349         https://bugs.webkit.org/show_bug.cgi?id=110653
1350
1351         Reviewed by Dimitri Glazkov.
1352
1353         IndexedDB has a distinct backend and frontend, with well defined
1354         *Interface / *Callbacks classes distinguishing them, respectively.
1355         
1356         This makes sure that the frontend and backend do not include each
1357         other and fixes build problems that occurred as a result.
1358
1359         Specifically this moves enums out of IDBCursor and IDBTransaction
1360         into IndexedDB.h in a new WebCore::IndexedDB namespace.
1361
1362         No new tests, as this is just a refactor.
1363
1364 2013-03-05  James Robinson  <jamesr@chromium.org>
1365
1366         ContainerNode::setActive should not sleep for 100ms on platforms that do not implement synchronous repaint(true) semantics
1367         https://bugs.webkit.org/show_bug.cgi?id=87054
1368
1369         Reviewed by Darin Adler.
1370
1371         Adds a new ChromeClient function to query if the platform supports the immediate parameter
1372         to the invalidation APIs and guards the synchronous repaint logic in ContainerNode::setActive()
1373         with it.
1374
1375         * dom/ContainerNode.cpp:
1376         (WebCore::ContainerNode::setActive):
1377         * page/ChromeClient.h:
1378         (WebCore::ChromeClient::supportsImmediateInvalidation):
1379
1380 2013-03-05  Anders Carlsson  <andersca@apple.com>
1381
1382         Simplify storage event dispatch somewhat
1383         https://bugs.webkit.org/show_bug.cgi?id=111461
1384
1385         Reviewed by Beth Dakin.
1386
1387         Add a StorageAreaImpl::dispatchStorageEvent to avoid replicating the calls to
1388         StorageEventDispatcher::dispatch there times. This is in preparation for changing the
1389         interface of StorageEventDispatcher so it can be used by WebKit2.
1390
1391         * storage/StorageAreaImpl.cpp:
1392         (WebCore::StorageAreaImpl::setItem):
1393         (WebCore::StorageAreaImpl::removeItem):
1394         (WebCore::StorageAreaImpl::clear):
1395         (WebCore::StorageAreaImpl::dispatchStorageEvent):
1396
1397         * storage/StorageAreaImpl.h:
1398         Reindent.
1399
1400 2013-03-05  Tony Chang  <tony@chromium.org>
1401
1402         Fix some crashes in render sliders
1403         https://bugs.webkit.org/show_bug.cgi?id=111458
1404
1405         Reviewed by Ojan Vafai.
1406
1407         Fix some cases where we assumed the renderer is a renderBox.
1408
1409         Test: fast/forms/range/slider-inline-crash.html
1410
1411         * html/shadow/SliderThumbElement.cpp:
1412         (WebCore::RenderSliderContainer::layout): Use renderBox() which will return 0 if the renderer is not a RenderBox.
1413         (WebCore::SliderThumbElement::setPositionFromPoint): Bail out early if renderBox() is 0.
1414
1415 2013-03-04  Andrew Scherkus  <scherkus@chromium.org>
1416
1417         REGRESSION(r142191): Fix closed caption buttons for ports still using the painting path.
1418         https://bugs.webkit.org/show_bug.cgi?id=111109
1419
1420         Reviewed by Eric Carlson.
1421
1422         Covered by following tests:
1423         media/track/track-cue-rendering-horizontal.html
1424         media/track/track-cue-rendering-vertical.html
1425
1426         * rendering/RenderTheme.cpp:
1427         (WebCore::RenderTheme::paint):
1428         * rendering/RenderTheme.h:
1429         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
1430
1431 2013-03-05  Gwang Yoon Hwang  <ryumiel@company100.net>
1432
1433         Coordinated Graphics: CoordinatedGraphicsLayer makes CoordinatedGraphicsScene perform via CoordinatedGraphicsState.
1434         https://bugs.webkit.org/show_bug.cgi?id=108294
1435
1436         Reviewed by Anders Carlsson.
1437
1438         CoordinatedLayerTreeHostProxy has too many IPC messages (e.g. SyncCanvas and
1439         CreateTile), and there is a long function chain from CoordinatedGraphicsLayer to
1440         CoordinatedGraphicsScene (4 classes).
1441         If we want to add a new message, we need to add similar functions into 4 classes.
1442
1443         Now CoordinatedLayerTreeHost has only one IPC message for CoordinatedGraphicsLayer:
1444         CommitCoordinatedGraphicsState.
1445         CoordinatedGraphicsLayer makes CoordinatedGraphicsScene run as follows:
1446         1. CoordinatedGraphicsLayer makes a CoordinatedGraphicsLayerState.
1447         2. CoordinatedLayerTreeHost stores all LayerStates.
1448         3. CoordinatedLayerTreeHost sends GraphicsState includes LayerStates to CoordinatedLayerTreeHostProxy
1449         at the moment of flushing via CommitCoordinatedGraphicsState message.
1450         4. CoordinatedGraphicsScene applies all state changes to layers.
1451
1452         There is one big behavior change. All states changes (e.g.
1453         UpdateTiles, SetLayerChildren, and etc..) are performed at the same time, when
1454         CoordinatedGraphicsScene::commitCoordinatedGraphicsState is called.
1455
1456         This patch is based on Dongsung Huang, and Noam's work in
1457         https://bugs.webkit.org/show_bug.cgi?id=108294
1458
1459         No new tests, covered by existing tests.
1460
1461         * Target.pri:
1462         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1463         (WebCore::CoordinatedGraphicsLayer::setPosition):
1464         (WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
1465         (WebCore::CoordinatedGraphicsLayer::setSize):
1466         (WebCore::CoordinatedGraphicsLayer::setTransform):
1467         (WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
1468         (WebCore::CoordinatedGraphicsLayer::setPreserves3D):
1469         (WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
1470         (WebCore::CoordinatedGraphicsLayer::setDrawsContent):
1471         (WebCore::CoordinatedGraphicsLayer::setContentsVisible):
1472         (WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
1473         (WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
1474         (WebCore::CoordinatedGraphicsLayer::setOpacity):
1475         (WebCore::CoordinatedGraphicsLayer::setContentsRect):
1476         (WebCore::CoordinatedGraphicsLayer::setFilters):
1477         (WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
1478         (WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
1479         (WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
1480         (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
1481         (WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
1482         (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
1483         (WebCore::CoordinatedGraphicsLayer::syncChildren):
1484         (WebCore::CoordinatedGraphicsLayer::syncFilters):
1485         (WebCore::CoordinatedGraphicsLayer::syncImageBacking):
1486         (WebCore::CoordinatedGraphicsLayer::syncLayerState):
1487         (WebCore::CoordinatedGraphicsLayer::setDebugBorder):
1488         (WebCore::CoordinatedGraphicsLayer::syncAnimations):
1489         (WebCore::CoordinatedGraphicsLayer::syncCanvas):
1490         (WebCore::CoordinatedGraphicsLayer::destroyCanvasIfNeeded):
1491         (WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
1492         (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
1493         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
1494         (WebCore):
1495         (WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):
1496         (WebCore::CoordinatedGraphicsLayer::setRootLayer):
1497         (WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
1498         (WebCore::CoordinatedGraphicsLayer::createTile):
1499         (WebCore::CoordinatedGraphicsLayer::updateTile):
1500         (WebCore::CoordinatedGraphicsLayer::removeTile):
1501         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1502         (CoordinatedGraphicsLayerClient):
1503         (CoordinatedGraphicsLayer):
1504         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1505         (WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
1506         (WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
1507         (WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
1508         (WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
1509         (WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
1510         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
1511         (WebCore::CoordinatedGraphicsScene::setLayerState):
1512         (WebCore::CoordinatedGraphicsScene::deleteLayer):
1513         (WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
1514         (WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
1515         (WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
1516         (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
1517         (WebCore::CoordinatedGraphicsScene::commitSceneState):
1518         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
1519         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1520         (WebCore):
1521         (CoordinatedGraphicsScene):
1522         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: Added.
1523         (WebCore):
1524         (TileUpdateInfo):
1525         (TileCreationInfo):
1526         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
1527         (CoordinatedGraphicsLayerState):
1528         (CoordinatedGraphicsState):
1529         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
1530         * platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Removed.
1531         * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
1532
1533 2013-03-05  Roger Fong  <roger_fong@apple.com>
1534
1535         Unreviewed. AppleWin VS2010 build fix.
1536
1537         * WebCore.vcxproj/WebCore.vcxproj:
1538         * WebCore.vcxproj/WebCore.vcxproj.filters:
1539         * rendering/RenderingAllInOne.cpp:
1540
1541 2013-03-05  Bem Jones-Bey  <bjonesbe@adobe.com>
1542
1543         [CSS Exclusions] shape-outside on floats for polygon shapes
1544         https://bugs.webkit.org/show_bug.cgi?id=98676
1545
1546         Reviewed by David Hyatt.
1547
1548         Implement support for polygonal shape-outside on floats. The basic
1549         tack taken here is to keep using the bounding box of the shape to
1550         position the float, but to compute the offset (caused by the shape)
1551         from the bounding box for each line when creating and positioning
1552         other inline content.
1553
1554         Test: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-polygon.html
1555
1556         * rendering/ExclusionShapeInfo.cpp:
1557         (WebCore):
1558         (WebCore::::computedShape): Add new template parameter.
1559         (WebCore::::logicalTopOffset): Add new template parameter.
1560         (WebCore::::computeSegmentsForLine): Move here from
1561             ExclusionShapeInsideInfo, since ExclusionShapeOutsideInfo needs it
1562             as well. Make virtual since there is slightly different behavior
1563             between each class even though the vast majority of the code is
1564             common.
1565         * rendering/ExclusionShapeInfo.h:
1566         (WebCore):
1567         (WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Since
1568             computeSegmentsForLine is virtual, the destructor must be virtual
1569             as well.
1570         (ExclusionShapeInfo): Add new data members to support
1571             computeSegmentsForLine.
1572         (WebCore::ExclusionShapeInfo::shapeLogicalRight): Fix bug, the logical
1573             right is based off of maxX, not y. (it's a logical bounding box!)
1574         (WebCore::ExclusionShapeInfo::logicalLineTop): Moved from
1575             ExclusionShapeInsideInfo for use by computeSegmentsForLine and
1576             lineOverlapsShapeBounds.
1577         (WebCore::ExclusionShapeInfo::logicalLineBottom): Moved from
1578             ExclusionShapeInsideInfo for use by computeSegmentsForLine and
1579             lineOverlapsShapeBounds.
1580         (WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds): Moved from
1581             ExclusionShapeInsideInfo for use by computeSegmentsForLine.
1582         * rendering/ExclusionShapeInsideInfo.cpp: Moved common code from
1583             computeSegmentsForLine into ExclusionShapeInfo.
1584         * rendering/ExclusionShapeInsideInfo.h:
1585         (WebCore): Moved some methods to ExclusionShapeInfo.
1586         (ExclusionShapeInsideInfo): Update for new template parameter.
1587         (WebCore::ExclusionShapeInsideInfo::compyteSegmentsForLine): Override
1588             superclass method to clear the segment ranges. Segement ranges
1589             aren't used by shape outside, and have some complex dependencies
1590             that make it very hard to try and move up into ExclusionShapeInfo.
1591         (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Update
1592             for new template parameter.
1593         * rendering/ExclusionShapeOutsideInfo.cpp:
1594         (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Add polygons as a
1595             supported shape.
1596         (WebCore::ExclusionShapeOutsideInfo::computeSegmentsForLine): Override
1597             superclass method to not recompute if it isn't needed (this isn't
1598             straightfoward for shape inside, which is why it isn't common),
1599             and to save the left and right offsets caused by the shape
1600             outside, since that's all that is needed to properly do layout in
1601             the case of floats.
1602         * rendering/ExclusionShapeOutsideInfo.h:
1603         (WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Reformat to
1604             be on a single line, like most other methods of it's type in
1605             WebKit headers.
1606         (ExclusionShapeOutsideInfo): Update for new template parameter.
1607         (WebCore::ExclusionShapeOutsideInfo::logicalLeftOffsetForLine):
1608             Accessor method to get the left offset between the shape and the
1609             shape's bounding box.
1610         (WebCore::ExclusionShapeOutsideInfo::logicalRightOffsetForLine):
1611             Accessor method to get the left offset between the shape and the
1612             shape's bounding box.
1613         (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
1614             Update for new template parameter.
1615         * rendering/RenderBlock.cpp:
1616         (WebCore::::collectIfNeeded): Save the last float encountered so that
1617             the shape outside offset can be accounted for.
1618         (WebCore::RenderBlock::logicalLeftOffsetForLine): Account for the
1619             shape outside offset on the outermost float.
1620         (WebCore::RenderBlock::logicalRightOffsetForLine): Account for the
1621             shape outside offset on the outermost float.
1622         * rendering/RenderBlock.h:
1623         (WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
1624             Initialize the lastFloat member.
1625         (WebCore::RenderBlock::FloatIntervalSearchAdapter::lastFloat): Get the
1626             last float encountered.
1627         (FloatIntervalSearchAdapter): Add a pointer to the last float
1628             encountered. Note that the variable is mutable because
1629             collectIfNeeded is declared as a const method even though it isn't
1630             (it uses loopholes to update m_offset and m_heightRemaining).
1631             Instead of trying to come up with a hack to stick with the
1632             loopholes, I decided to be explicit about it.
1633         * rendering/RenderBlockLineLayout.cpp:
1634         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Take
1635             into account the offset from any polygonal shape outside.
1636         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Add a FIXME
1637             because the current code will not work properly with stacked
1638             floats that have polygonal shape outside.
1639
1640 2013-03-04  David Hyatt  <hyatt@apple.com>
1641
1642         [New Multicolumn] Autogenerate regions for columns.
1643         https://bugs.webkit.org/show_bug.cgi?id=111363
1644
1645         Reviewed by Dean Jackson.
1646
1647         In CSS Regions, we lay out the regions first, and then
1648         we put the flow thread into the regions. This model doesn't
1649         really work for multicolumn layout, which needs to be able
1650         to auto-generate new regions lazily in response to the flow
1651         thread asking for regions at particular offsets.
1652
1653         With the multi-column model, where the regions can't just occur
1654         anywhere, its ok not to lay them out before the flow thread, as
1655         long as we have at least given them the correct size.
1656         
1657         This patch changes the layout algorithm for columns to:
1658         (1) Size any existing regions (without worrying about placement).
1659         (2) Lay out the flow thread (generating and sizing regions lazily
1660         that need to be created).
1661         (3) Lay out the regions (to give them correct placement and to
1662         compute overflow correctly for the multi-column block that contains
1663         the regions).
1664
1665         There are no new tests, since there are no behavioral changes. This
1666         is just groundwork for being able to add new sets in response to
1667         spans, balancing, and nested pagination contexts.
1668
1669         * rendering/RenderBlock.cpp:
1670         (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
1671         (WebCore::RenderBlock::layoutBlockChild):
1672         * rendering/RenderBlock.h:
1673         (RenderBlock):
1674         Since we want to be able to call determineLogicalLeftPositionForChild
1675         to place the flow thread properly, and we don't want to apply a layout
1676         delta (flow threads repaint themselves), we parameterize the method
1677         here so that it can be called without applying a layout delta.
1678         
1679         * rendering/RenderFlowThread.cpp:
1680         (WebCore::RenderFlowThread::addRegionToThread):
1681         (WebCore::RenderFlowThread::removeRegionFromThread):
1682         These methods are only used by RenderMultiColumnFlowThread, since
1683         RenderNamedFlowThread overrides them. Remove the code that invalidates
1684         the flow threads region set as regions come and go, since that is now
1685         going to be expected with auto-generation.
1686
1687         (WebCore::RenderFlowThread::validateRegions):
1688         Refactor the code in RenderFlowThread::layout that validates the regions
1689         into its own method, so that we can re-validate regions at any time
1690         after generating new ones.
1691         
1692         (WebCore::RenderFlowThread::layout):
1693         Changed to move the region validation code into its own function that is
1694         now called from here.
1695
1696         (WebCore::RenderFlowThread::updateLogicalWidth):
1697         Don't assert if a region set needs layout.
1698
1699         (WebCore::RenderFlowThread::computeLogicalHeight):
1700         Ditto. Don't assert if a region set needs layout. That's expected now.
1701
1702         (WebCore::RenderFlowThread::regionAtBlockOffset):
1703         Add code to regionAtBlockOffset to auto-generate regions up to
1704         the offset. This ensures the region that is being asked for
1705         exists.
1706
1707         (WebCore::RenderFlowThread::pageLogicalTopForOffset):
1708         (WebCore::RenderFlowThread::pageLogicalWidthForOffset):
1709         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
1710         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
1711         These functions are no longer const, since the act of asking for
1712         pagination offsets can cause us to generate new regions.
1713
1714         (WebCore::RenderFlowThread::mapFromFlowToRegion):
1715         Modified to turn auto-generation off, since this is not really
1716         a "layout-time" function.
1717
1718         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
1719         Modified to not assert if a region set needs layout, since that is
1720         expected now.
1721
1722         * rendering/RenderFlowThread.h:
1723         Changes to remove const from the methods that can trigger region
1724         auto-generation.
1725
1726         * rendering/RenderMultiColumnBlock.cpp:
1727         (WebCore::RenderMultiColumnBlock::styleDidChange):
1728         Make sure to propagate style changes down into the regions. I don't know
1729         of any correctness bugs around this, but I figured I'd be thorough.
1730
1731         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
1732         We no longer build a column set aggressively. We wait for the flow thread
1733         to ask us for a region at a particular offset, and only then do we
1734         build the set.
1735         
1736         (WebCore::RenderMultiColumnBlock::addChild):
1737         Now that we lay out the flow thread as a special excluded child, we don't
1738         care about the ordering of it relative to the region children.
1739
1740         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
1741         We now lay out the flow thread as a special excluded child (like the legend
1742         of a fieldset).
1743
1744         * rendering/RenderMultiColumnBlock.h:
1745         (RenderMultiColumnBlock):
1746         Add new overrides like layoutSpecialExcludedChild.
1747         
1748         * rendering/RenderMultiColumnFlowThread.cpp:
1749         (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
1750         Set the flow thread to the initial column width even when no regions exist
1751         yet. This way we ensure the width is right even when we don't have any
1752         regions yet.
1753
1754         (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
1755         This method handles autogenerating the new region for a given offset.
1756         Right now it's simplistic, since we only have one column set. This method
1757         will be enhanced in future patches when we start supporting multiple column
1758         sets.
1759
1760         * rendering/RenderMultiColumnFlowThread.h:
1761         (RenderMultiColumnFlowThread):
1762         Adding new method declarations like autoGenerateRegionsToBlockOffset.
1763
1764         * rendering/RenderMultiColumnSet.cpp:
1765         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
1766         Since regions lay out after flow threads, we don't need to make 
1767         setFlowThreadPortionRect virtual any longer. We can just get our column set's
1768         width correct immediately. This is the same logic, just moved into updateLogicalWidth().
1769
1770         * rendering/RenderMultiColumnSet.h:
1771         Remove setFlowThreadPortionRect override, since the function can just be simple
1772         and non-virtual in RenderRegion now.
1773
1774         * rendering/RenderRegion.cpp:
1775         (WebCore::RenderRegion::layoutBlock):
1776         Don't ever invalidate region sets in response to our size changing during layout. Since
1777         our size is always determined outside of layout now, we don't need to do any of
1778         these checks.
1779
1780         * rendering/RenderRegion.h:
1781         (WebCore::RenderRegion::setFlowThreadPortionRect):
1782         Changed to be non-virtual now that RenderMultiColumnSet doesn't need to override.
1783
1784 2013-03-04  Alexey Proskuryakov  <ap@apple.com>
1785
1786         Make AsyncFileReader work without ScriptExecutionContext
1787         https://bugs.webkit.org/show_bug.cgi?id=111376
1788
1789         Reviewed by Anders Carlsson.
1790
1791         * WebCore.xcodeproj/project.pbxproj: Added MainThreadTask.h.
1792
1793         * dom/ScriptExecutionContext.cpp:
1794         * dom/ScriptExecutionContext.h:
1795         Removed fileThread(). Creating a thread for every context that acesses files appears
1796         wasteful and unnecessary.
1797
1798         * fileapi/AsyncFileStream.h:
1799         * fileapi/AsyncFileStream.cpp:
1800         (WebCore::createFileThread): FileThread is now a singleton.
1801         (WebCore::fileThread): Ditto.
1802         (WebCore::AsyncFileStream::AsyncFileStream):
1803         (WebCore::AsyncFileStream::create):
1804         (WebCore::didStart):
1805         (WebCore::AsyncFileStream::startOnFileThread):
1806         (WebCore::AsyncFileStream::stop):
1807         (WebCore::derefProxyOnMainThread):
1808         (WebCore::AsyncFileStream::stopOnFileThread):
1809         (WebCore::didGetSize):
1810         (WebCore::AsyncFileStream::getSizeOnFileThread):
1811         (WebCore::didOpen):
1812         (WebCore::AsyncFileStream::openForReadOnFileThread):
1813         (WebCore::AsyncFileStream::openForWriteOnFileThread):
1814         (WebCore::didRead):
1815         (WebCore::AsyncFileStream::readOnFileThread):
1816         (WebCore::didWrite):
1817         (WebCore::AsyncFileStream::writeOnFileThread):
1818         (WebCore::didTruncate):
1819         (WebCore::AsyncFileStream::truncateOnFileThread):
1820         Use callOnMainThread() instead of posting messages through a context. We never used
1821         other threads, and don't plan to.
1822
1823         * loader/ResourceLoader.cpp:
1824         * loader/ResourceLoader.h:
1825         We no longer need this pseudo-client call to create an AsyncFileStream, now that
1826         we don't need to get a ScriptExecutionContext somewhere.
1827
1828         * platform/MainThreadTask.h: Added. This implements callOnMainThread with multiple
1829         strongly typed arguments. Closely based on CrossThreadTask.h.
1830
1831         * platform/network/BlobResourceHandle.cpp:
1832         (WebCore::BlobResourceHandle::BlobResourceHandle): Create AsyncFileStream directly.
1833
1834         * platform/network/ResourceHandleClient.h: Removed createAsyncFileStream().
1835
1836 2013-03-05  Jessie Berlin  <jberlin@apple.com>
1837
1838         Update the localizable strings file.
1839
1840         Rubber-stamped by Anders Carlsson.
1841
1842         * English.lproj/Localizable.strings:
1843
1844 2013-03-05  Chris Fleizach  <cfleizach@apple.com>
1845
1846         AX: aria-label does not override text content on iOS
1847         https://bugs.webkit.org/show_bug.cgi?id=111222
1848
1849         Reviewed by David Kilzer.
1850
1851         Make iOS use the same text alternative computation that Mac is using. The main difference
1852         is that description and title need to be concatenated, because iOS doesn't have two attributes
1853         to return those values.
1854
1855         Test: platform/iphone-simulator/accessibility/aria-label-with-internal-text.html
1856
1857         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1858         (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
1859         (-[WebAccessibilityObjectWrapper accessibilityLabel]):
1860         (-[WebAccessibilityObjectWrapper accessibilityHint]):
1861         * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
1862
1863 2013-03-05  David Kilzer  <ddkilzer@apple.com>
1864
1865         BUILD FIX (r144698): Only enable SPEECH_SYNTHESIS for Mac
1866         <http://webkit.org/b/106742>
1867
1868         Fixes the following build failures:
1869
1870             Undefined symbols for architecture i386:
1871               "__ZTVN7WebCore25PlatformSpeechSynthesizerE", referenced from:
1872                   __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
1873               NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
1874               "__ZN7WebCore25PlatformSpeechSynthesizer19initializeVoiceListEv", referenced from:
1875                   __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
1876             ld: symbol(s) not found for architecture i386
1877
1878         * Configurations/FeatureDefines.xcconfig:
1879         - Only set ENABLE_SPEECH_SYNTHESIS for the macosx platform.
1880
1881 2013-03-05  Dmitry Zvorygin  <zvorygin@chromium.org>
1882
1883         Web Inspector: registered new MIME type application/font-woff for WOFF fonts.
1884         https://bugs.webkit.org/show_bug.cgi?id=111418
1885
1886         The WOFF MIME Type was formally registered as application/font-woff (FINALLY):
1887         http://www.iana.org/assignments/media-types/application/font-woff
1888
1889         Reviewed by Pavel Feldman.
1890
1891         * inspector/front-end/NetworkManager.js:
1892         (WebInspector.NetworkManager):
1893         (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
1894
1895 2013-03-05  Julien Chaffraix  <jchaffraix@webkit.org>
1896
1897         [CSS Grid Layout] Add parsing for grid-{end|after}
1898         https://bugs.webkit.org/show_bug.cgi?id=111372
1899
1900         Reviewed by Tony Chang.
1901
1902         Test: fast/css-grid-layout/grid-item-end-after-get-set.html
1903
1904         This change adds the proper support for grid-{end|after}. It doesn't update
1905         grid-{row|column} to be a shorthand for both grid-{before|start} and grid-{after|end}
1906         though.
1907
1908         * css/CSSComputedStyleDeclaration.cpp:
1909         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1910         Added the new properties to our known properties. Also added
1911         support for getComputedStyle.
1912
1913         * css/CSSParser.cpp:
1914         (WebCore::CSSParser::parseValue):
1915         Added parsing for the new properties.
1916
1917         * css/CSSProperty.cpp:
1918         (WebCore::CSSProperty::isInheritedProperty):
1919         The new properties are not inherited.
1920
1921         * css/CSSPropertyNames.in:
1922         Added the new properties.
1923
1924         * css/StyleResolver.cpp:
1925         (WebCore::StyleResolver::applyProperty):
1926         Added code to handle applying them to our style.
1927
1928         * rendering/style/RenderStyle.h:
1929         * rendering/style/StyleGridItemData.cpp:
1930         (WebCore::StyleGridItemData::StyleGridItemData):
1931         * rendering/style/StyleGridItemData.h:
1932         (WebCore::StyleGridItemData::operator==):
1933         (StyleGridItemData):
1934         Updated our representation to store the new properties.
1935
1936 2013-03-05  Andrey Kosyakov  <caseq@chromium.org>
1937
1938         Unreviewed follow-up to r144756, fix broken inspector-less build.
1939
1940         * inspector/InspectorInstrumentation.h:
1941         (WebCore::InspectorInstrumentation::willWriteHTML):
1942
1943 2013-03-05  Mark Lam  <mark.lam@apple.com>
1944
1945         Improve robustness of WebSQL quota management.
1946         https://bugs.webkit.org/show_bug.cgi?id=110600.
1947
1948         Reviewed by Geoffrey Garen.
1949
1950         1. Introduced the OriginLock for synchronizing write access to the
1951            database origin directory. This allows us to more accurately
1952            compute the disk usage.
1953
1954            The OriginLock uses a mutex to provide mutual exclusion between
1955            threads and a file lock for mutual exclusion between processes.
1956            The file lock part is conditional on USE(FILE_LOCK).
1957
1958            The mutex mutual exclusion also serves to ensure that only 1 thread
1959            can write to a sqlite database at one time.
1960
1961         2. Change the SQLTransactionCoordinator to only allow one write
1962            transaction to an origin instead of one write transaction per
1963            database. This is needed in order to accurately compute the
1964            disk usage. It is also necessary so that the OriginLock does not
1965            deadlock itself (as would be the case if concurrent write transactions
1966            to different databases in the same origin are allowed).
1967
1968         3. Fix DatabaseTracker::getMaxSizeForDatabase() to check for when
1969            disk usage may exceed the quota, and ensure that we will return
1970            an appropriate max database size.
1971
1972            Disk usage can exceed the usage if it is already near the quota limit
1973            but have not exceeded it yet. If a new database is opened in that
1974            origin, it may bump the usage above the quota, but should not
1975            continually repeat this. Subsequent attempts to open a database
1976            will find that the quota is already exhausted and fail.
1977
1978            There is still a race condition pertaining to the tracker database
1979            getting out of sync that may still enable runaway growth in the
1980            database sizes. That issue only manifest in a multi-process
1981            environment, and will be fixed in another changeset.
1982
1983         4. Fixed a bug in SQLStatement to check if the errorCallback exists
1984            before invoking it.
1985
1986         No new layout tests. A quota-test.html was attached to bugzilla for manual
1987         testing of multi-tab concurrent consumption of storage resource, and also
1988         to test handling situations when the user deletes the database files while
1989         the script is still using the database.
1990
1991         * CMakeLists.txt:
1992         * GNUmakefile.list.am:
1993         * Modules/webdatabase/DatabaseTracker.cpp:
1994         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
1995         (WebCore::DatabaseTracker::originLockFor):
1996         (WebCore::DatabaseTracker::deleteOriginLockFor):
1997         (WebCore::DatabaseTracker::deleteOrigin):
1998         * Modules/webdatabase/DatabaseTracker.h:
1999         * Modules/webdatabase/OriginLock.cpp: Added.
2000         (WebCore::OriginLock::lockFileNameForPath):
2001         (WebCore::OriginLock::OriginLock):
2002         (WebCore::OriginLock::~OriginLock):
2003         (WebCore::OriginLock::lock):
2004         (WebCore::OriginLock::unlock):
2005         * Modules/webdatabase/OriginLock.h: Added.
2006         * Modules/webdatabase/SQLStatement.cpp:
2007         (WebCore::SQLStatement::performCallback):
2008         * Modules/webdatabase/SQLTransactionBackend.cpp:
2009         (WebCore::SQLTransactionBackend::doCleanup):
2010         (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
2011         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
2012         (WebCore::SQLTransactionBackend::postflightAndCommit):
2013         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
2014         (WebCore::SQLTransactionBackend::acquireOriginLock):
2015         (WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
2016         * Modules/webdatabase/SQLTransactionBackend.h:
2017         (SQLTransactionBackend):
2018         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
2019         (WebCore::getDatabaseIdentifier):
2020         * Target.pri:
2021         * WebCore.gypi:
2022         * WebCore.vcproj/WebCore.vcproj:
2023         * WebCore.vcxproj/WebCore.vcxproj:
2024         * WebCore.vcxproj/WebCore.vcxproj.filters:
2025         * WebCore.xcodeproj/project.pbxproj:
2026         * config.h:
2027         * platform/FileSystem.h:
2028         * platform/posix/FileSystemPOSIX.cpp:
2029         (WebCore::lockFile):
2030         (WebCore::unlockFile):
2031
2032 2013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
2033
2034         Web Inspector: move PopoverContentHelper from TimelinePresentationModel.js to Popover.js.
2035         https://bugs.webkit.org/show_bug.cgi?id=111431
2036
2037         Reviewed by Yury Semikhatsky.
2038
2039         class WebInspector.TimelinePresentationModel.PopoverContentHelper was renamed to WebInspector.PopoverContentHelper.
2040         Style names were changed accordingly.
2041
2042         * inspector/front-end/Popover.js:
2043         (WebInspector.PopoverContentHelper):
2044         (WebInspector.PopoverContentHelper.prototype.contentTable):
2045         (WebInspector.PopoverContentHelper.prototype._createCell):
2046         (WebInspector.PopoverContentHelper.prototype.appendTextRow):
2047         (WebInspector.PopoverContentHelper.prototype.appendElementRow):
2048         (WebInspector.PopoverContentHelper.prototype.appendStackTrace):
2049         * inspector/front-end/TimelinePresentationModel.js:
2050         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
2051         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
2052         (WebInspector.TimelinePresentationModel.generatePopupContentForFrame):
2053         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
2054         * inspector/front-end/popover.css:
2055         (.popover-details):
2056         (.popover-function-name):
2057         (.popover-stacktrace-title):
2058         (.popover-details-row-title):
2059         (.popover-details-row-data):
2060         (.popover-details-title):
2061         * inspector/front-end/timelinePanel.css:
2062
2063 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
2064
2065         Web Inspector: remove "Live native memory chart" experiment
2066         https://bugs.webkit.org/show_bug.cgi?id=111432
2067
2068         Reviewed by Alexander Pavlov.
2069
2070         Removed support for live native memory chart.
2071
2072         * English.lproj/localizedStrings.js:
2073         * inspector/front-end/NativeMemorySnapshotView.js:
2074         * inspector/front-end/ProfileLauncherView.js:
2075         (WebInspector.ProfileLauncherView):
2076         * inspector/front-end/ProfilesPanel.js:
2077         (WebInspector.ProfilesPanel):
2078         * inspector/front-end/Settings.js:
2079         (WebInspector.ExperimentsSettings):
2080         * inspector/front-end/nativeMemoryProfiler.css:
2081
2082 2013-03-05  Andrey Kosyakov  <caseq@chromium.org>
2083
2084         Web Inspector: remove length parameter from Parse HTML timeline event
2085         https://bugs.webkit.org/show_bug.cgi?id=111421
2086
2087         Reviewed by Yury Semikhatsky.
2088
2089         - remove length parameter in all instrumentation methods used to emit ParseHTML timeline event;
2090         - drive-by style fixes.
2091
2092         * html/parser/HTMLDocumentParser.cpp:
2093         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
2094         (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
2095         (WebCore::HTMLDocumentParser::pumpTokenizer):
2096         * inspector/InspectorInstrumentation.cpp:
2097         (WebCore):
2098         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
2099         (WebCore::InspectorInstrumentation::didWriteHTMLImpl):
2100         * inspector/InspectorInstrumentation.h:
2101         (InspectorInstrumentation):
2102         (WebCore::InspectorInstrumentation::willWriteHTML):
2103         (WebCore::InspectorInstrumentation::didWriteHTML):
2104         * inspector/InspectorTimelineAgent.cpp:
2105         (WebCore::InspectorTimelineAgent::willWriteHTML):
2106         (WebCore::InspectorTimelineAgent::didWriteHTML):
2107         * inspector/InspectorTimelineAgent.h:
2108         (InspectorTimelineAgent):
2109         * inspector/TimelineRecordFactory.cpp:
2110         (WebCore::TimelineRecordFactory::createParseHTMLData):
2111         * inspector/TimelineRecordFactory.h:
2112         (TimelineRecordFactory):
2113
2114 2013-03-05  Alexei Filippov  <alph@chromium.org>
2115
2116         Web Inspector: allow each profiler panel to have own landing page
2117         https://bugs.webkit.org/show_bug.cgi?id=111298
2118
2119         Reviewed by Yury Semikhatsky.
2120
2121         Refactor profiler landing page to allow different profiler panels to have own landing pages.
2122           - MultiProfileLauncherView is inherited from ProfileLauncherView
2123           - Native memory distribution profiler has got a custom page.
2124
2125         No new tests: code refactoring.
2126
2127         * inspector/front-end/HeapSnapshotView.js:
2128         (WebInspector.HeapSnapshotView.prototype.get profile):
2129         (WebInspector.HeapSnapshotView.prototype.get baseProfile):
2130         (WebInspector.HeapSnapshotView.prototype._profiles):
2131         * inspector/front-end/NativeMemorySnapshotView.js:
2132         * inspector/front-end/ProfileLauncherView.js:
2133         (WebInspector.ProfileLauncherView):
2134         (WebInspector.ProfileLauncherView.prototype.addProfileType):
2135         (WebInspector.ProfileLauncherView.prototype._controlButtonClicked):
2136         (WebInspector.ProfileLauncherView.prototype._updateControls):
2137         (WebInspector.ProfileLauncherView.prototype.profileStarted):
2138         (WebInspector.ProfileLauncherView.prototype.profileFinished):
2139         (WebInspector.MultiProfileLauncherView):
2140         (WebInspector.MultiProfileLauncherView.prototype.addProfileType):
2141         (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
2142         (WebInspector.NativeProfileLauncherView):
2143         * inspector/front-end/ProfilesPanel.js:
2144         (WebInspector.ProfilesPanel):
2145         (WebInspector.ProfilesPanel.prototype._createLauncherView):
2146         (WebInspector.CPUProfilerPanel):
2147         (WebInspector.CSSSelectorProfilerPanel):
2148         (WebInspector.HeapProfilerPanel):
2149         (WebInspector.CanvasProfilerPanel):
2150         (WebInspector.MemoryChartProfilerPanel):
2151         (WebInspector.MemoryChartProfilerPanel.prototype._createLauncherView):
2152         (WebInspector.NativeMemoryProfilerPanel):
2153         * inspector/front-end/profilesPanel.css:
2154         (.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)):
2155
2156 2013-03-05  Eugene Klyuchnikov  <eustas@chromium.org>
2157
2158         Web Inspector: Clarify some StylesSidebarPanel and CSSMetadata JSDocs.
2159         https://bugs.webkit.org/show_bug.cgi?id=111427
2160
2161         Reviewed by Alexander Pavlov.
2162
2163         Goal: reflect in JSDoc that non-null array is passed to completionsReady callback.
2164
2165         * inspector/front-end/CSSMetadata.js:
2166         Added JSDocs, avoided possible NPEs.
2167         * inspector/front-end/StylesSidebarPane.js:
2168         Fixed JSDocs, removed unused assignment.
2169
2170 2013-03-05  David Kilzer  <ddkilzer@apple.com>
2171
2172         BUILD FIX (r144727): Change type of columnRange and rowRange to pair<unsigned, unsigned>
2173         <http://webkit.org/b/110050>
2174
2175         Fixes the following build failures:
2176
2177             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:741:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2178                 tableCell->rowIndexRange(rowRange);
2179                                          ^~~~~~~~
2180             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2181             Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
2182                 virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
2183                                                                      ^
2184             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:742:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2185                 tableCell->columnIndexRange(columnRange);
2186                                             ^~~~~~~~~~~
2187             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2188             Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
2189                 virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
2190                                                                         ^
2191             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:804:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2192                 tableCell->rowIndexRange(rowRange);
2193                                          ^~~~~~~~
2194             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2195             Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
2196                 virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
2197                                                                      ^
2198             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:818:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2199                 tableCell->columnIndexRange(columnRange);
2200                                             ^~~~~~~~~~~
2201             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2202             Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
2203                 virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
2204                                                             ^
2205             4 errors generated.
2206
2207         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2208         (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
2209         (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
2210         (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
2211
2212 2013-03-04  Andrey Kosyakov  <caseq@chromium.org>
2213
2214         Web Inspector: [refactoring] set frame identifiers in timeline records early, do not keep them in event stack
2215         https://bugs.webkit.org/show_bug.cgi?id=111345
2216
2217         Reviewed by Pavel Feldman.
2218
2219         * inspector/InspectorTimelineAgent.cpp:
2220         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
2221         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
2222         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2223         (WebCore::InspectorTimelineAgent::setFrameIdentifier):
2224         (WebCore):
2225         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
2226         (WebCore::InspectorTimelineAgent::appendRecord):
2227         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
2228         (WebCore::InspectorTimelineAgent::commitFrameRecord):
2229         * inspector/InspectorTimelineAgent.h:
2230         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
2231         (TimelineRecordEntry):
2232         (InspectorTimelineAgent):
2233
2234 2013-03-05  Tommy Widenflycht  <tommyw@google.com>
2235
2236         MediaStream API: Add the getStreamById method on RTCPeerConnection
2237         https://bugs.webkit.org/show_bug.cgi?id=111311
2238
2239         Reviewed by Adam Barth.
2240
2241         Adding the missing method on RTCPeerConnection defined here:
2242         http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCPeerConnection-getStreamById-MediaStream-DOMString-streamId
2243
2244         Existing tests have been extended to cover patch.
2245
2246         * Modules/mediastream/RTCPeerConnection.cpp:
2247         (WebCore::RTCPeerConnection::getStreamById):
2248         (WebCore):
2249         * Modules/mediastream/RTCPeerConnection.h:
2250         (RTCPeerConnection):
2251         * Modules/mediastream/RTCPeerConnection.idl:
2252         * platform/chromium/support/WebMediaStream.cpp:
2253         (WebKit::WebMediaStream::initialize):
2254         (WebKit):
2255         * platform/mediastream/MediaStreamSource.cpp:
2256         (WebCore::MediaStreamSource::setReadyState):
2257
2258 2013-03-05  Antoine Quint  <graouts@apple.com>
2259
2260         Web Inspector: allow retrieval of composited layers in a given DOM subtree
2261         https://bugs.webkit.org/show_bug.cgi?id=111312
2262
2263         Introduce the LayerTreeAgent.layersForNode(node) method allowing the front-end
2264         to gather all composited layers associated with nodes in the subtree of which
2265         the provided node is the root.
2266
2267         In order to gather the layers in the subtree, we first traverse the node's
2268         renderer's RenderObject hierarchy and whenever we encounter a RenderObject
2269         that has a RenderLayer, we then traverse that renderLayer's RenderLayer
2270         hierarchy. This allows for a quick path through the relevant objects we're
2271         gathering.
2272
2273         Layers gathered will push the node to which they're associated, allowing a
2274         nodeId for this layer to be listed in the Layer object sent to the front-end.
2275         It is crucial to be able to provide a nodeId as well as a layerId for a Layer
2276         object in order to be able to correctly assess mutations in the layer tree.
2277         For instance, it is expected that a node's layer be replaced by a new layer
2278         to represent a slightly different rendering of its content, but the front-end
2279         should be able to represent this layer as an object for which only certain
2280         attributes have changed (like the "paintCount" property).
2281
2282         Layer objects also indicate whether they're associated to a node hosted in a
2283         shadow tree (the optional "isInShadowTree" property) in order for the front-end
2284         to be able to only show this layer if the option to show nodes hosted in shadow
2285         tree is enabled.
2286
2287         Finally, since we're only gathering composited layers, we're removing the
2288         "isLayerComposited" property and removing the optional flag on the "paintCount",
2289         "memory" and "compositedBounds" properties.
2290
2291         Reviewed by Simon Fraser.
2292
2293         Test: inspector-protocol/layers/layers-for-node.html
2294
2295         * inspector/Inspector.json:
2296         * inspector/InspectorLayerTreeAgent.cpp:
2297         (WebCore::InspectorLayerTreeAgent::layersForNode):
2298         (WebCore):
2299         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
2300         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
2301         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
2302         (WebCore::InspectorLayerTreeAgent::idForNode):
2303         * inspector/InspectorLayerTreeAgent.h:
2304         (InspectorLayerTreeAgent):
2305
2306 2013-03-04  Andrey Kosyakov  <caseq@chromium.org>
2307
2308         Web Inspector: use timestamps consistent with rest of Timeline in WebSocket events.
2309         https://bugs.webkit.org/show_bug.cgi?id=111344
2310
2311         - create web socket related records in a manner consistent with the rest of timeline.
2312
2313         Reviewed by Pavel Feldman.
2314
2315         * inspector/InspectorTimelineAgent.cpp:
2316         (WebCore::InspectorTimelineAgent::didCreateWebSocket):
2317         (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest):
2318         (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse):
2319         (WebCore::InspectorTimelineAgent::didDestroyWebSocket):
2320         * inspector/InspectorTimelineAgent.h:
2321         (InspectorTimelineAgent):
2322
2323 2013-03-05  Andrei Bucur  <abucur@adobe.com>
2324
2325         [CSS Regions] Crash when MathML used in CSS Regions
2326         https://bugs.webkit.org/show_bug.cgi?id=110686
2327
2328         Reviewed by David Hyatt.
2329
2330         The MathML blocks trigger a children layout when computing the preferred widths. This happens to determine the preferred
2331         logical heights of the children. When the layout reaches the line boxes computation the preferred width of the containing block
2332         is requested. Because it wasn't computed, the layout of the children is started again to determine the preferred logical heights.
2333         This causes an infinite recursion and triggers a stack overflow.
2334
2335         The patch introduces a new RAII utility class that disables fragmentation when the constructor is called and restores it
2336         on the destructor. This class is used when computing the preferred height for the children of a MathML block.
2337
2338         Test: fast/regions/mathml-crash.html
2339
2340         * rendering/RenderObject.cpp:
2341         (WebCore::RenderObject::setFlowThreadStateIncludingDescendants): Do not cross RenderFlowThread boundaries when updating the flow thread
2342         state flag. The innermost flow threads need to manage their descendants flag values.
2343         * rendering/RenderView.cpp:
2344         (WebCore::FragmentationDisabler::FragmentationDisabler):
2345         (WebCore):
2346         (WebCore::FragmentationDisabler::~FragmentationDisabler):
2347         * rendering/RenderView.h:
2348         (FragmentationDisabler):
2349         (WebCore):
2350         * rendering/mathml/RenderMathMLBlock.cpp:
2351         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
2352
2353 2013-03-05  Mike West  <mkwst@chromium.org>
2354
2355         Cleanup: Move HitTestLocation and HitTestResult into separate files.
2356         https://bugs.webkit.org/show_bug.cgi?id=111294
2357
2358         Reviewed by Allan Sandfeld Jensen.
2359
2360         HitTestLocation and HitTestResult currently both live in
2361         HitTestResult.h. That makes things more difficult to understand than
2362         they should be, and violates the one-class-one-file principle that
2363         WebKit generally follows. Happily, it's fairly trivial to fix.
2364
2365         This should have no visible change; it's strictly an internal
2366         refactoring. It doesn't even touch any implementation code: we're
2367         just moving bits from one place to another.
2368
2369         * CMakeLists.txt:
2370         * GNUmakefile.list.am:
2371         * Target.pri:
2372         * WebCore.gypi:
2373         * WebCore.vcproj/WebCore.vcproj:
2374         * WebCore.xcodeproj/project.pbxproj:
2375             Hey, look: a new file! Let's add it to six different build systems! :)
2376         * rendering/HitTestLocation.cpp: Added.
2377         (WebCore):
2378         (WebCore::HitTestLocation::HitTestLocation):
2379         (WebCore::HitTestLocation::~HitTestLocation):
2380         (WebCore::HitTestLocation::operator=):
2381         (WebCore::HitTestLocation::move):
2382         (WebCore::HitTestLocation::intersectsRect):
2383         (WebCore::HitTestLocation::intersects):
2384         (WebCore::HitTestLocation::rectForPoint):
2385         * rendering/HitTestLocation.h: Added.
2386         (WebCore):
2387         (HitTestLocation):
2388         (WebCore::HitTestLocation::point):
2389         (WebCore::HitTestLocation::roundedPoint):
2390         (WebCore::HitTestLocation::region):
2391         (WebCore::HitTestLocation::isRectBasedTest):
2392         (WebCore::HitTestLocation::isRectilinear):
2393         (WebCore::HitTestLocation::boundingBox):
2394         (WebCore::HitTestLocation::topPadding):
2395         (WebCore::HitTestLocation::rightPadding):
2396         (WebCore::HitTestLocation::bottomPadding):
2397         (WebCore::HitTestLocation::leftPadding):
2398         (WebCore::HitTestLocation::transformedPoint):
2399         (WebCore::HitTestLocation::transformedRect):
2400         * rendering/HitTestResult.cpp:
2401         * rendering/HitTestResult.h:
2402             Move all this code from HitTestResult.* to HitTestLocation.*.
2403         * rendering/RenderBlock.cpp:
2404             Include HitTestLocation.h.
2405
2406 2013-03-05  Jochen Eisinger  <jochen@chromium.org>
2407
2408         Refactor UserGestureIndicator::Token to be a top-level class
2409         https://bugs.webkit.org/show_bug.cgi?id=111412
2410
2411         Reviewed by Nico Weber.
2412
2413         This will allow for forward declaring the class in a public WebKit
2414         API header. The goal is to enable the embedder to hold on to a
2415         UserGestureToken.
2416
2417         * dom/UserGestureIndicator.cpp:
2418         (WebCore::UserGestureIndicator::UserGestureIndicator):
2419         (WebCore::UserGestureIndicator::currentToken):
2420         * dom/UserGestureIndicator.h:
2421         (UserGestureToken):
2422         (WebCore::UserGestureToken::~UserGestureToken):
2423         (WebCore):
2424         (UserGestureIndicator):
2425         * page/DOMTimer.h:
2426         (DOMTimer):
2427         * page/EventHandler.h:
2428
2429 2013-03-05  Mike West  <mkwst@chromium.org>
2430
2431         Remove redundant code in Document::updateHoverActiveState.
2432         https://bugs.webkit.org/show_bug.cgi?id=111303
2433
2434         Reviewed by Darin Adler.
2435
2436         Document::updateHoverActiveState currently looks for touchrelease events
2437         and explictly clears out the hover state for all nodes between the
2438         currently hovered node and the top of the hover chain. This is actually
2439         redundant with the logic in the rest of the function; we can simplify by
2440         setting the Element* we're working with to 0, which causes the later
2441         loops to do the necessary work.
2442
2443         There should be no web-visible effect from this change; it should simply
2444         make this function less complex.
2445
2446         Extracted from Allan Sandfeld Jensen's original patch to wkbug.com/98168
2447
2448         * dom/Document.cpp:
2449         (WebCore::Document::updateHoverActiveState):
2450             Set innerElementInDocument to 0 rather than walking the hover chain
2451             and clearing it when we see a touchrelease event. The rest of the
2452             code in this function will have the same effect.
2453
2454 2013-03-05  Koji Hara  <kojih@chromium.org>
2455
2456         [V8] Remove unused custom indexedPropertyGetter
2457         https://bugs.webkit.org/show_bug.cgi?id=111409
2458
2459         Reviewed by Kentaro Hara.
2460
2461         Remove unused custom indexedPropertyGetter.
2462         There are 9 custom indexedPropertyGetter, including an unused one(NamedNodeMap).
2463         This commit assures all existing custom indexedPropertyGetter(for V8) are used.
2464
2465         No new tests. Simple refactoring.
2466
2467         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Remove indexedPropertyGetter
2468
2469 2013-03-05  Hajime Morrita  <morrita@google.com>
2470
2471         ShadowRoot needs guardRef() and guardDeref()
2472         https://bugs.webkit.org/show_bug.cgi?id=109777
2473
2474         Reviewed by Dimitri Glazkov.
2475
2476         This change moves m_guardRefCount from Document to TreeScope,
2477         which allows ShadowRoot to be guarded by guardRef() mechanism as
2478         Document. After r137524, Node referes TreeScope instead of
2479         Document. This is natural consequence of the change: It no longer
2480         makes sense to guardRef() Document pointer from Node.
2481
2482         Detail:
2483
2484         - Document::m_guardRefCount and related funcdtions are moved to TreeScope
2485         - Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
2486           TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
2487         - Moved guardRef() and guardDeref() calls to TreeScope and Node.
2488           Note that there are two "guarded" TreeScope references. One is
2489           Node::m_treeScope and another is TreeScope::m_parentTreeScope.
2490           The guarded-ref management is now encapsulated in these two classes.
2491
2492         No new tests. Covered by existing tests.
2493
2494         * WebCore.exp.in:
2495         * dom/Document.cpp:
2496         (WebCore::Document::Document):
2497         (WebCore::Document::~Document):
2498         (WebCore::Document::dispose): Extracted from removedLastRef()
2499         * dom/Document.h:
2500         (WebCore::Node::isTreeScope):
2501         (WebCore::Node::Node):
2502         * dom/DocumentFragment.cpp:
2503         (WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
2504         (WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
2505         * dom/Node.cpp:
2506         (WebCore::Node::~Node):
2507         (WebCore::Node::removedLastRef):
2508         * dom/Node.h:
2509         (WebCore::Node::setTreeScope):
2510         * dom/Element.cpp:
2511         (WebCore::Element::ensureAttr): This has been wrong and is fixed in this revision since the incorrectness is unveiled by this change.
2512         * dom/ShadowRoot.cpp:
2513         (WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
2514         (WebCore::ShadowRoot::dispose): Added.
2515         * dom/ShadowRoot.h:
2516         (ShadowRoot):
2517         * dom/TreeScope.cpp:
2518         (SameSizeAsTreeScope):
2519         (WebCore::TreeScope::TreeScope):
2520         (WebCore::TreeScope::~TreeScope):
2521         (WebCore::TreeScope::dispose): Added.
2522         (WebCore::TreeScope::setParentTreeScope):
2523         (WebCore::TreeScope::deletionHasBegun):
2524         (WebCore::TreeScope::beginDeletion):
2525         (WebCore::TreeScope::refCount): Added.
2526         * dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
2527         (WebCore::TreeScope::guardRef): Pulled up from Document.
2528         (WebCore::TreeScope::guardDeref): Ditto.
2529         (WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
2530         (WebCore::TreeScope::deletionHasBegun): Added.
2531         (WebCore::TreeScope::beginDeletion): Added.
2532         (WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
2533         * dom/TreeScopeAdopter.cpp:
2534         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
2535         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2536
2537 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
2538
2539         getPropertyValue for -webkit-text-stroke returns null, should compute the shorthand value
2540         https://bugs.webkit.org/show_bug.cgi?id=111018
2541
2542         Reviewed by Alexander Pavlov.
2543
2544         Test: fast/css/getPropertyValue-webkit-text-stroke.html
2545
2546         * css/StylePropertySet.cpp:
2547         (WebCore::StylePropertySet::getPropertyValue):
2548
2549 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
2550
2551         getPropertyValue for -webkit-columns returns null, should compute the shorthand value
2552         https://bugs.webkit.org/show_bug.cgi?id=111011
2553
2554         Reviewed by Alexander Pavlov.
2555
2556         Test: fast/css/getPropertyValue-columns.html
2557
2558         * css/StylePropertySet.cpp:
2559         (WebCore::StylePropertySet::getPropertyValue):
2560
2561 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
2562
2563         Web Inspector: Do not accumulate file system files, add them to workspace immediately
2564         https://bugs.webkit.org/show_bug.cgi?id=111325
2565
2566         Reviewed by Pavel Feldman.
2567
2568         * inspector/front-end/FileSystemProjectDelegate.js:
2569         (WebInspector.FileSystemProjectDelegate.prototype.populate.fileLoaded):
2570         (WebInspector.FileSystemProjectDelegate.prototype.populate):
2571         * inspector/front-end/IsolatedFileSystem.js:
2572         (WebInspector.IsolatedFileSystem.prototype.innerCallback):
2573         (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
2574
2575 2013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
2576
2577         Unreviewed Windows build fix attempt.
2578
2579         floor method is ambigious so explicitly specify the type.
2580
2581         * html/canvas/WebGLRenderingContext.cpp:
2582         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
2583
2584 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2585
2586         AX: cellForColumnAndRow fails for tables with hidden table cells
2587         https://bugs.webkit.org/show_bug.cgi?id=110050
2588
2589         Reviewed by Tim Horton.
2590
2591         If a table had hidden cells, then accessibility code was being confused in a few ways.
2592         1) The cellForColumnAndRow method would return the wrong information since that was
2593            using the RenderTableSection to retrieve a cell, which did not have the same data as the AXTable
2594         2) The way we were adding children made it impossible to determine column and row range because we 
2595            would skip rows that had hidden children
2596         3) AccessibilityARIAGrid and AccessibilityTable were using different methods for cellForColumnAndRow
2597
2598         The fix does a few things to make things right:
2599         1) Always add an accessibility row, even if there are no visible cells in that row.
2600         2) Have one method for AXTable and AXARIAGrid for cellForColumnAndRow.
2601         3) Change cellForColumnAndRow to query the accessibility children rather than the RenderTableSection in determining the row, col info.
2602         4) cellForColumnAndRow should use unsigned values instead of int values.
2603
2604         Test: accessibility/table-with-hidden-head-section.html
2605
2606         * accessibility/AccessibilityARIAGrid.cpp:
2607         (WebCore):
2608         * accessibility/AccessibilityARIAGrid.h:
2609         (AccessibilityARIAGrid):
2610         * accessibility/AccessibilityARIAGridCell.cpp:
2611         (WebCore::AccessibilityARIAGridCell::rowIndexRange):
2612         (WebCore::AccessibilityARIAGridCell::columnIndexRange):
2613         * accessibility/AccessibilityARIAGridCell.h:
2614         (AccessibilityARIAGridCell):
2615         * accessibility/AccessibilityTable.cpp:
2616         (WebCore::AccessibilityTable::addChildren):
2617         (WebCore::AccessibilityTable::cellForColumnAndRow):
2618         * accessibility/AccessibilityTable.h:
2619         (WebCore):
2620         (AccessibilityTable):
2621         * accessibility/AccessibilityTableCell.cpp:
2622         (WebCore::AccessibilityTableCell::rowIndexRange):
2623         (WebCore::AccessibilityTableCell::columnIndexRange):
2624         * accessibility/AccessibilityTableCell.h:
2625         (AccessibilityTableCell):
2626         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
2627         (webkitAccessibleTableGetColumnAtIndex):
2628         (webkitAccessibleTableGetRowAtIndex):
2629         (webkitAccessibleTableGetColumnExtentAt):
2630         (webkitAccessibleTableGetRowExtentAt):
2631         (webkitAccessibleTableGetColumnHeader):
2632         (webkitAccessibleTableGetRowHeader):
2633         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2634         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2635         * rendering/RenderTableSection.h:
2636         (RenderTableSection):
2637         (WebCore::RenderTableSection::rowRendererAt):
2638
2639 2013-03-04  Arpita Bahuguna  <a.bah@samsung.com>
2640
2641         getAttribute does not behave correctly for mixed-case attributes on HTML elements
2642         https://bugs.webkit.org/show_bug.cgi?id=105713
2643
2644         Reviewed by Andreas Kling.
2645
2646         getAttribute() and getAttributeNode() APIs do not convert the
2647         passed attribute name to lowercase before comparing against the
2648         existing attributes.
2649         The specification however states that the passed name should
2650         be converted to ASCII lowercase before checking for the existence
2651         of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
2652
2653         Test: fast/dom/Element/getAttribute-case-insensitivity.html
2654
2655         * dom/Element.h:
2656         (WebCore::ElementData::getAttributeItemIndex):
2657         getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
2658         which specifies whether the attribute's case should be ignored
2659         before comparison. But inspite of this param's value we still carry
2660         out a case sensitive search.
2661         Have modified the same to convert the passed attribute's name to
2662         lowercase if 'shouldIgnoreAttributeCase' is true.
2663
2664 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2665
2666         [Chromium] Add runtime flag for font load events
2667         https://bugs.webkit.org/show_bug.cgi?id=111296
2668
2669         Reviewed by Kent Tamura.
2670
2671         Add a runtime feature flag for FontLoader interface (disabled by default),
2672         and enable ENABLE_FONT_LOAD_EVENTS build flag for chromium.
2673
2674         * bindings/generic/RuntimeEnabledFeatures.cpp:
2675         (WebCore):
2676         * bindings/generic/RuntimeEnabledFeatures.h:
2677         (RuntimeEnabledFeatures):
2678         (WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled):
2679         (WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled):
2680
2681 2013-03-04  Brandon Jones  <bajones@google.com>
2682
2683         WEBGL_compressed_texture_atc implementation
2684         https://bugs.webkit.org/show_bug.cgi?id=110496
2685
2686         Reviewed by Kenneth Russell.
2687
2688         Test: webgl/conformance/extensions/webgl-compressed-texture-atc.html
2689
2690         Exposes the WEBGL_compressed_texture_atc extension, but is unverified since no desktop hardware supports
2691         the format that I am aware of. Should enable mobile ports to expose the format, however.
2692
2693         * CMakeLists.txt:
2694         * DerivedSources.make:
2695         * DerivedSources.pri:
2696         * GNUmakefile.list.am:
2697         * Target.pri:
2698         * WebCore.gypi:
2699         * WebCore.xcodeproj/project.pbxproj:
2700         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2701         (WebCore::toJS):
2702         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2703         (WebCore::toV8Object):
2704         * html/canvas/WebGLCompressedTextureATC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2705         (WebCore):
2706         (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
2707         (WebCore::WebGLCompressedTextureATC::~WebGLCompressedTextureATC):
2708         (WebCore::WebGLCompressedTextureATC::getName):
2709         (WebCore::WebGLCompressedTextureATC::create):
2710         (WebCore::WebGLCompressedTextureATC::supported):
2711         * html/canvas/WebGLCompressedTextureATC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2712         (WebCore):
2713         (WebGLCompressedTextureATC):
2714         * html/canvas/WebGLCompressedTextureATC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2715         * html/canvas/WebGLExtension.h:
2716         * html/canvas/WebGLRenderingContext.cpp:
2717         (WebCore):
2718         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
2719         (WebCore::WebGLRenderingContext::getExtension):
2720         (WebCore::WebGLRenderingContext::getSupportedExtensions):
2721         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
2722         * html/canvas/WebGLRenderingContext.h:
2723         (WebCore):
2724         (WebGLRenderingContext):
2725         * platform/graphics/Extensions3D.h:
2726
2727
2728 2013-03-04  Eugene Klyuchnikov  <eustas@chromium.org>
2729
2730         Web Inspector: Exceptions when WebInspector run in hosted mode.
2731         https://bugs.webkit.org/show_bug.cgi?id=111326
2732
2733         Reviewed by Pavel Feldman.
2734
2735         There is bug in commands code generation in InspectorBackend.js
2736         As a consequence all protocol enums have wrong names and cause
2737         exception when refererenced.
2738
2739         Currently protocol enums are referenced only from NetworkManager.
2740
2741         Test: inspector/inspector-backend-commands-generation.html
2742
2743         * inspector/front-end/InspectorBackend.js:
2744         (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
2745         Use static method to generate code.
2746         (InspectorBackendClass._generateCommands):
2747         Extracted from loadFromJSONIfNeeded. Typo fixed.
2748
2749 2013-03-04  Chris Rogers  <crogers@google.com>
2750
2751         Add audio hardware support for multi-channel output by implementing AudioDestinationNode.maxChannelCount
2752         https://bugs.webkit.org/show_bug.cgi?id=111385
2753
2754         Reviewed by James Robinson.
2755         
2756         See specification details for .maxChannelCount:
2757         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode
2758         
2759         * Modules/webaudio/AudioDestinationNode.h:
2760         (WebCore::AudioDestinationNode::maxChannelCount):
2761         * Modules/webaudio/AudioDestinationNode.idl:
2762         * Modules/webaudio/AudioNode.h:
2763         Implement .maxChannelCount attribute.
2764         
2765         (AudioNode):
2766         * Modules/webaudio/DefaultAudioDestinationNode.h:
2767         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
2768         (WebCore::DefaultAudioDestinationNode::initialize):
2769         (WebCore::DefaultAudioDestinationNode::createDestination):
2770         (WebCore::DefaultAudioDestinationNode::enableInput):
2771         Call to createDestination() now takes no argument.
2772         Instead we maintain a member variable for the input device ID.
2773         (WebCore::DefaultAudioDestinationNode::maxChannelCount):
2774         (WebCore::DefaultAudioDestinationNode::setChannelCount):
2775         Check port-specific hardware support for maxChannelCount(),
2776         and allow setting the channel count based on what the hardware
2777         supports.
2778         
2779         * platform/audio/AudioDestination.h:
2780         (AudioDestination):
2781         * platform/audio/chromium/AudioDestinationChromium.cpp:
2782         (WebCore::AudioDestination::maxChannelCount):
2783         (WebCore::AudioDestinationChromium::render):
2784         Call into chromium WebKit API: audioHardwareOutputChannels().
2785
2786         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2787         (WebCore::AudioDestination::maxChannelCount):
2788         Add basic implementation for maxChannelCount() only supporting stereo output.
2789
2790         * platform/audio/mac/AudioDestinationMac.cpp:
2791         (WebCore::AudioDestination::maxChannelCount):
2792         Add basic implementation for maxChannelCount() only supporting stereo output.
2793         Later, the mac port can support more than this with some small improvements to AudioDestinationMac.
2794
2795 2013-03-04  Adam Barth  <abarth@webkit.org>
2796
2797         Background HTML parser can rewind the tokenizer after end-of-file
2798         https://bugs.webkit.org/show_bug.cgi?id=111365
2799
2800         Reviewed by Eric Seidel.
2801
2802         Prior to this patch, it was possible to call didFailSpeculation after
2803         processing the end-of-file token because checkForSpeculationFailure
2804         didn't zero out m_tokenizer in some control paths.
2805
2806         This patch renames checkForSpeculationFailure to validateSpeculations
2807         and ensures that it always takes ownership of the main thread's
2808         HTMLTokenizer.
2809
2810         This patch also adds a number of ASSERTs to make sure the parser state
2811         machine stays in the correct configuration (e.g., that we don't have a
2812         main thread tokenizer while we're supposed to be tokenizing on the
2813         background thread).
2814
2815         Test: fast/parser/document-write-fighting-eof.html
2816
2817         * html/parser/BackgroundHTMLInputStream.cpp:
2818         (WebCore::BackgroundHTMLInputStream::rewindTo):
2819         * html/parser/BackgroundHTMLParser.cpp:
2820         (WebCore::BackgroundHTMLParser::append):
2821         * html/parser/HTMLDocumentParser.cpp:
2822         (WebCore::HTMLDocumentParser::validateSpeculations):
2823         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
2824         (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
2825         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
2826         * html/parser/HTMLDocumentParser.h:
2827         (HTMLDocumentParser):
2828
2829 2013-03-04  Tim 'mithro' Ansell  <mithro@mithis.com>
2830
2831         Make sure that clearOwnerNode also clears StyleResolver references (via didMutate).
2832         https://bugs.webkit.org/show_bug.cgi?id=109446
2833
2834         Reviewed by Eric Seidel.
2835
2836         Test: fast/css/stylesheet.innerHTML-calls-didmutate.html
2837
2838         * css/CSSStyleSheet.h:
2839
2840 2013-03-04  Kentaro Hara  <haraken@chromium.org>
2841
2842         Unreviewd build fix after r144701.
2843
2844         * platform/EventTracer.cpp:
2845         (WebCore::EventTracer::initialize):
2846
2847 2013-03-04  Min Qin  <qinmin@chromium.org>
2848
2849         Fix some style issues in RenderLayerCompositor
2850         https://bugs.webkit.org/show_bug.cgi?id=111369
2851
2852         Reviewed by Simon Fraser.
2853
2854         Just style fix, no test needed
2855
2856         * rendering/RenderLayerCompositor.cpp:
2857         (WebCore::RenderLayerCompositor::frameViewDidScroll):
2858         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2859
2860 2013-03-04  Terry Anderson  <tdanderson@chromium.org>
2861
2862         Revert changes to RenderLayer::scrollByRecursively() that were added for gesture-scrolling
2863         https://bugs.webkit.org/show_bug.cgi?id=111007
2864
2865         Reviewed by Simon Fraser.
2866
2867         Due to http://trac.webkit.org/changeset/144519 landing, the changes made to RenderLayer in
2868         http://trac.webkit.org/changeset/142057,
2869         http://trac.webkit.org/changeset/140177, and  
2870         http://trac.webkit.org/changeset/142195
2871         are no longer necessary (as RenderLayer::scrollByRecursively() is not used for
2872         gesture-scrolling) and should be reverted.
2873
2874         No change in behavior, so no new tests needed.
2875
2876         * rendering/RenderLayer.cpp:
2877         (WebCore::RenderLayer::scrollByRecursively):
2878         * rendering/RenderLayer.h:
2879
2880 2013-03-04  Kentaro Hara  <haraken@chromium.org>
2881
2882         Unreviewed build fix after r144701.
2883
2884         * platform/EventTracer.cpp:
2885         (WebCore::EventTracer::initialize):
2886
2887 2013-03-04  Christian Biesinger  <cbiesinger@chromium.org>
2888
2889         REGRESSION (r143643): Buttons containing floats render differently
2890         https://bugs.webkit.org/show_bug.cgi?id=110933
2891
2892         Reviewed by Ojan Vafai.
2893
2894         Test: fast/forms/button-with-float.html
2895
2896         * rendering/RenderBlock.cpp:
2897         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
2898         Also include new flexbox as a renderer that needs to enclose
2899         overhanging floats. Flex boxes establish a block formatting context,
2900         so they need to contain floats:
2901         http://dev.w3.org/csswg/css3-flexbox/#flex-items
2902
2903 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2904
2905         Support WebSpeech - Speech Synthesis
2906         https://bugs.webkit.org/show_bug.cgi?id=106742
2907
2908         Build fix.
2909
2910         * Modules/speech/SpeechSynthesis.cpp:
2911
2912 2013-03-04  Rafael Weinstein  <rafaelw@chromium.org>
2913
2914         Unreviewed, rolling out r144595.
2915         http://trac.webkit.org/changeset/144595
2916         https://bugs.webkit.org/show_bug.cgi?id=90341
2917
2918         Causing multiple crashes in fast/dom/Element/* tests (hits
2919         assert in Attr.cp:215)
2920
2921         * dom/Element.cpp:
2922         (WebCore::Element::setAttributeNode):
2923
2924 2013-02-26  Kentaro Hara  <haraken@chromium.org>
2925
2926         [chromium] Implement TRACE_EVENT macros for sampling profiling
2927         https://bugs.webkit.org/show_bug.cgi?id=110932
2928
2929         Reviewed by Adam Barth.
2930
2931         We are implementing TRACE_EVENT macros for sampling profiling.
2932         It works in the following mechanism:
2933
2934         - Chromium defines global state variables for sampling profiling.
2935         (i.e. g_trace_state0, g_trace_state1, g_trace_state2 in trace_event.h)
2936
2937         - WebKit gets the addresses of the global state variables at the
2938         initialization step. (i.e. EventTracer::initialize())
2939
2940         - WebKit updates the global states by using TRACE_EVENT_SAMPLING_STATE()
2941         macros every time WebKit changes its state. (e.g. DOM attribute
2942         getters/setters/methods)
2943
2944         - A sampling thread running in Chrome reads the global states
2945         periodically and visualizes the profiling results into about://tracing.
2946
2947         This patch implements (1) a WebKit API to get the addresses of
2948         the global states and (2) the TRACE_EVENT_SAMPLING_STATE() macro.
2949
2950         No tests. The sampling profiler is not enabled in Chrome by default.
2951         I manually inserted TRACE_EVENT_SAMPLING_STATE() macros and
2952         confirmed that the sampling profiling is working as expected.
2953
2954         * platform/EventTracer.cpp:
2955         (WebCore::EventTracer::initialize):
2956         (WebCore::EventTracer::getTraceCategoryEnabledFlag):
2957         (WebCore):
2958         * platform/EventTracer.h:
2959         (WebCore):
2960         (EventTracer):
2961         * platform/chromium/EventTracerChromium.cpp:
2962         (WebCore):
2963         (WebCore::EventTracer::initialize):
2964         * platform/chromium/TraceEvent.h:
2965
2966 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2967
2968         Support WebSpeech - Speech Synthesis
2969         https://bugs.webkit.org/show_bug.cgi?id=106742
2970
2971         Reviewed by Simon Fraser.
2972
2973         Enable speech synthesis for the Mac.
2974
2975         * Configurations/FeatureDefines.xcconfig:
2976
2977 2013-03-04  Ruslan Abdikeev  <aruslan@chromium.org>
2978
2979         <link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
2980         https://bugs.webkit.org/show_bug.cgi?id=109061
2981
2982         Reviewed by Adam Barth.
2983
2984         Test: fast/dom/icon-url-list-apple-touch.html
2985
2986         Added iconTypes parameter to Document::iconURLs().
2987         Added Document::shortcutIconURLs() with original semantics of iconURLs().
2988         Fixed IconController.cpp to provide iconTypesMask to iconURLs().
2989         Renamed iconTypes to iconTypesMask to make the meaning clearer.
2990
2991         * WebCore.exp.in:
2992         * dom/Document.cpp:
2993         (WebCore::Document::shortcutIconURLs):
2994         (WebCore):
2995         (WebCore::Document::iconURLs):
2996         * dom/Document.h:
2997         (Document):
2998         * loader/icon/IconController.cpp:
2999         (WebCore::IconController::iconURL):
3000         (WebCore::IconController::urlsForTypes):
3001         * testing/Internals.cpp:
3002         (WebCore::Internals::iconURLs):
3003         (WebCore::Internals::shortcutIconURLs):
3004         (WebCore):
3005         (WebCore::Internals::allIconURLs):
3006         * testing/Internals.h:
3007         * testing/Internals.idl:
3008
3009 2013-02-27  Jeffrey Pfau  <jpfau@apple.com>
3010
3011         Cache partitioning does not affect iframe MainResources
3012         https://bugs.webkit.org/show_bug.cgi?id=111022
3013
3014         Reviewed by David Kilzer.
3015
3016         Set the partition of a main resource request if in a subframe.
3017
3018         Test: http/tests/cache/partitioned-cache-iframe.html
3019
3020         * loader/FrameLoader.cpp:
3021         (WebCore::FrameLoader::loadURL):
3022
3023 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
3024
3025         AX: user agent shadow roots for plugins should be 'accessible'
3026         https://bugs.webkit.org/show_bug.cgi?id=111339
3027
3028         Reviewed by Tim Horton.
3029
3030         If a plugin element uses a user agent shadow element, we should make that shadow element
3031         into a button with the title and subtitle put together, and use that as the label. This 
3032         will probably be the best accessibility experience.
3033
3034         * html/HTMLPlugInImageElement.cpp:
3035         (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
3036
3037 2013-03-04  Alok Priyadarshi  <alokp@chromium.org>
3038
3039         [chromium] Form controls on composited layers are not painted properly
3040         https://bugs.webkit.org/show_bug.cgi?id=111366
3041
3042         Reviewed by James Robinson.
3043
3044         Set PlatformContextSkia::m_drawingToImageBuffer which is used as a hint to properly blend GDI-painted bitmap.
3045
3046         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
3047         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
3048
3049 2013-03-04  Simon Fraser  <simon.fraser@apple.com>
3050
3051         Give ViewportConstraints classes copy constructors
3052         https://bugs.webkit.org/show_bug.cgi?id=111367
3053
3054         Reviewed by Beth Dakin.
3055         
3056         Downstream code requires that ViewportConstraints objects have
3057         copy constructors, so add them.
3058         
3059         Also clean up some redundant initialization of stack objects
3060         in RenderLayerCompositor.
3061
3062         No behavior change.
3063
3064         * page/scrolling/ScrollingConstraints.h:
3065         (WebCore::ViewportConstraints::ViewportConstraints):
3066         (ViewportConstraints):
3067         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
3068         (FixedPositionViewportConstraints):
3069         (WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
3070         (StickyPositionViewportConstraints):
3071         * rendering/RenderLayerCompositor.cpp:
3072         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
3073         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
3074
3075 2013-03-04  Roger Fong  <roger_fong@apple.com>
3076
3077         Unreviewed. AppleWin build fix.
3078
3079         * html/parser/XSSAuditor.cpp:
3080         (WebCore::isSemicolonSeparatedAttribute):
3081
3082 2013-03-04  Andreas Kling  <akling@apple.com>
3083
3084         CSSParser: Avoid temporary String when parsing hex colors.
3085         <http://webkit.org/b/111341>
3086
3087         Reviewed by Anders Carlsson.
3088
3089         Templatize CSSParser::fastParseColor() so we can pass a CSSParserString as the color name.
3090         This avoids creating a temporary WTF::String from the parser string.
3091
3092         * css/CSSParser.cpp:
3093         (WebCore::CSSParser::fastParseColor):
3094         * css/CSSParser.h:
3095         * css/CSSParserValues.h:
3096         (CSSParserString):
3097
3098 2013-03-04  Julien Chaffraix  <jchaffraix@webkit.org>
3099
3100         [CSS Grid Layout] Add parsing for grid-{start|before}
3101         https://bugs.webkit.org/show_bug.cgi?id=110988
3102
3103         Reviewed by Tony Chang.
3104
3105         Test: fast/css-grid-layout/grid-item-start-before-get-set.html
3106
3107         Refactored how we store internally grid-{row|column} to be based on grid-{before|start}.
3108         This is required as grid-{row|column} are shorthands for resp. grid-{before|after} and grid-{start|end}
3109         in the specification and will also be in the code. That means a lot of methods were renamed to be more
3110         aligned with the new design.
3111
3112         * css/CSSComputedStyleDeclaration.cpp:
3113         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3114         * css/CSSParser.cpp:
3115         (WebCore::CSSParser::parseValue):
3116         * css/CSSProperty.cpp:
3117         (WebCore::CSSProperty::isInheritedProperty):
3118         * css/CSSPropertyNames.in:
3119         * css/StyleResolver.cpp:
3120         (WebCore::StyleResolver::applyProperty):
3121         Added the code to parse, apply and get back the new properties. Also
3122         some renaming after the internal naming change below.
3123
3124         * rendering/RenderGrid.cpp:
3125         (WebCore::RenderGrid::maximumIndexInDirection):
3126         (WebCore::RenderGrid::placeItemsOnGrid):
3127         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
3128         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
3129         * rendering/style/RenderStyle.h:
3130         * rendering/style/StyleGridItemData.cpp:
3131         (WebCore::StyleGridItemData::StyleGridItemData):
3132         * rendering/style/StyleGridItemData.h:
3133         (WebCore::StyleGridItemData::operator==):
3134         Updated the naming now that we manipulate grid-{before|start} instead of grid-{row|column}.
3135
3136 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
3137
3138         WebSpeech: change voiceURI to voice
3139         https://bugs.webkit.org/show_bug.cgi?id=110773
3140
3141         Reviewed by Tim Horton.
3142
3143         Change the voiceURI property to a voice property that takes a SpeechSynthesisVoice.
3144         This was recently added to the errata of the WebSpeech spec.
3145
3146         Test: platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html
3147
3148         * Modules/speech/SpeechSynthesisUtterance.cpp:
3149         (WebCore):
3150         (WebCore::SpeechSynthesisUtterance::voice):
3151         (WebCore::SpeechSynthesisUtterance::setVoice):
3152         * Modules/speech/SpeechSynthesisUtterance.h:
3153         (SpeechSynthesisUtterance):
3154         * Modules/speech/SpeechSynthesisUtterance.idl:
3155         * Modules/speech/SpeechSynthesisVoice.h:
3156         (WebCore::SpeechSynthesisVoice::platformVoice):
3157         (SpeechSynthesisVoice):
3158         * platform/PlatformSpeechSynthesisUtterance.cpp:
3159         (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
3160         * platform/PlatformSpeechSynthesisUtterance.h:
3161         (WebCore::PlatformSpeechSynthesisUtterance::voice):
3162         (WebCore::PlatformSpeechSynthesisUtterance::setVoice):
3163         (PlatformSpeechSynthesisUtterance):
3164         * platform/mac/PlatformSpeechSynthesizerMac.mm:
3165         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
3166
3167 2013-03-04  Victor Costan <costan@gmail.com>
3168
3169         Filename passed to FormData.append() takes precedence over filename in
3170         File.
3171         https://bugs.webkit.org/show_bug.cgi?id=111255
3172
3173         Reviewed by Alexey Proskuryakov.
3174
3175         Test: http/tests/local/formdata/send-form-data-with-filename.html
3176
3177         * platform/network/FormData.cpp:
3178         (WebCore::FormData::appendKeyValuePairItems): changed to implement the
3179         behavior in the XMLHttpRequest W3C spec.
3180
3181 2013-03-04  Alexis Hetu  <sugoi@chromium.org>
3182
3183         Canvas and DOM go out of sync
3184         https://bugs.webkit.org/show_bug.cgi?id=107701
3185
3186         Reviewed by Simon Fraser.
3187
3188         Test: fast/canvas/canvas-overflow-hidden-animation.html
3189
3190         Added an update of the current compositor from the layer's stacking
3191         container when the layer itself isn't a stacking container.
3192
3193         * rendering/RenderLayerBacking.cpp:
3194         (WebCore::RenderLayerBacking::updateAfterLayout):
3195         Added an update of the stacking container of the owning layer of the
3196         layer backing when the owning layer isn't a stacking container itself.
3197
3198 2013-03-04  Alexey Proskuryakov  <ap@apple.com>
3199
3200         Small BlobResourceHandle cleanup
3201         https://bugs.webkit.org/show_bug.cgi?id=111352
3202
3203         Reviewed by Sam Weinig.
3204
3205         1. Don't use PassRefPtr<BlobStorageData> when ownership is not being passed.
3206         2. Added OVERRIDE to some functions.
3207         3. Added const to ResourceHandle::firstRequest().
3208
3209         * platform/network/BlobRegistryImpl.cpp:
3210         (WebCore::loadResourceSynchronously):
3211         (WebCore::BlobRegistryImpl::createResourceHandle):
3212         (WebCore::BlobRegistryImpl::getBlobDataFromURL):
3213         * platform/network/BlobRegistryImpl.h:
3214         (BlobRegistryImpl):
3215         * platform/network/BlobResourceHandle.cpp:
3216         (WebCore::BlobResourceHandle::createAsync):
3217         (WebCore::BlobResourceHandle::loadResourceSynchronously):
3218         * platform/network/BlobResourceHandle.h:
3219         (BlobResourceHandle):
3220         * platform/network/FormData.cpp:
3221         (WebCore::appendBlobResolved):
3222         * platform/network/ResourceHandle.cpp:
3223         (WebCore::ResourceHandle::firstRequest):
3224         * platform/network/ResourceHandle.h:
3225         (ResourceHandle):
3226
3227 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
3228
3229         Web Inspector: Introduce WebInspector.EventTarget interface for interfaces that dispatch events.
3230         https://bugs.webkit.org/show_bug.cgi?id=111320
3231
3232         Reviewed by Pavel Feldman.
3233
3234         * inspector/front-end/Object.js:
3235         (WebInspector.EventTarget):
3236         (WebInspector.EventTarget.prototype.addEventListener):
3237         (WebInspector.EventTarget.prototype.removeEventListener):
3238         (WebInspector.EventTarget.prototype.removeAllListeners):
3239         (WebInspector.EventTarget.prototype.hasEventListeners):
3240         (WebInspector.EventTarget.prototype.dispatchEventToListeners):
3241         * inspector/front-end/ResourceScriptMapping.js:
3242         * inspector/front-end/UISourceCode.js:
3243         * inspector/front-end/Workspace.js:
3244         (WebInspector.ProjectDelegate.prototype.searchInFileContent):
3245
3246 2013-03-04  Tom Sepez  <tsepez@chromium.org>
3247
3248         XSSAuditor bypass with --> comment syntax.
3249         https://bugs.webkit.org/show_bug.cgi?id=111349
3250
3251         Reviewed by Adam Barth.
3252
3253         Test: http/tests/security/xssAuditor/open-iframe-src-03.html
3254
3255         * html/parser/XSSAuditor.cpp:
3256         (WebCore::isTerminatingCharacter):
3257         Adds ">" to the list of terminating characters, so that comments of
3258         the form --> end the snippet we seek to match.
3259
3260 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
3261
3262         Web Inspector: Modal dialogs sometimes lose focus.
3263         https://bugs.webkit.org/show_bug.cgi?id=111317
3264
3265         Reviewed by Pavel Feldman.
3266
3267         setCurrentFocusElement doesn't give focus to an element anymore
3268         if modal glass pane is shown and element is not inside it.
3269
3270         * inspector/front-end/Dialog.js:
3271         (WebInspector.Dialog):
3272         (WebInspector.Dialog.prototype._hide):
3273         * inspector/front-end/InspectorView.js:
3274         (WebInspector.InspectorView.prototype.defaultFocusedElement):
3275         * inspector/front-end/ScriptsPanel.js:
3276         (WebInspector.ScriptsPanel.prototype.defaultFocusedElement):
3277         * inspector/front-end/UIUtils.js:
3278         (WebInspector.GlassPane):
3279         (WebInspector.GlassPane.prototype.dispose):
3280         (WebInspector.setCurrentFocusElement):
3281         * inspector/front-end/dialog.css:
3282
3283 2013-03-04  Roger Fong  <roger_fong@apple.com>
3284
3285         Unreviewed. AppleWin build fix.
3286
3287         * WebCore.vcxproj/WebCore.vcxproj:
3288
3289 2013-03-04  Dan Carney  <dcarney@google.com>
3290
3291         [v8] add isolate parameter to heap statistics calls
3292         https://bugs.webkit.org/show_bug.cgi?id=111308
3293
3294         Reviewed by Jochen Eisinger.
3295
3296         No new tests.
3297
3298         * bindings/v8/ScriptGCEvent.cpp:
3299         (WebCore::ScriptGCEvent::getHeapSize):
3300         (WebCore::ScriptGCEvent::getUsedHeapSize):
3301         * bindings/v8/V8AdaptorFunction.cpp:
3302         (WebCore::V8AdaptorFunction::getTemplate):
3303         * bindings/v8/V8GCController.cpp:
3304         (WebCore::V8GCController::checkMemoryUsage):
3305
3306 2013-03-04  Jochen Eisinger  <jochen@chromium.org>
3307
3308         [chromium] remove deprecated hyphenation methods from Platform
3309         https://bugs.webkit.org/show_bug.cgi?id=111101
3310
3311         Reviewed by Adam Barth.
3312
3313         * platform/text/chromium/Hyphenation.cpp:
3314         (WebCore::canHyphenate):
3315         (WebCore::lastHyphenLocation):
3316
3317 2013-03-04  Benjamin Poulain  <benjamin@webkit.org>
3318
3319         Use initialization from literal for MediaFeatureNames
3320         https://bugs.webkit.org/show_bug.cgi?id=111283
3321
3322         Reviewed by Andreas Kling.
3323
3324         * css/MediaFeatureNames.cpp:
3325         (WebCore::MediaFeatureNames::init):
3326         Initialization from literal is faster and use less memory. The names are
3327         defined statically in MediaFeatureNames.h.
3328
3329         Also use the NotNull placement new to avoid a branch on silly allocators.
3330
3331 2013-03-04  Joshua Bell  <jsbell@chromium.org>
3332
3333         [V8] Unreviewed. Rebaselined run-bindings-tests following r144617
3334
3335         * bindings/scripts/test/V8/V8Float64Array.cpp:
3336         (WebCore::ConfigureV8Float64ArrayTemplate):
3337         (WebCore::V8Float64Array::GetTemplate):
3338         * bindings/scripts/test/V8/V8Float64Array.h:
3339         (V8Float64Array):
3340         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3341         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
3342         (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
3343         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
3344         (WebCore::V8TestActiveDOMObject::GetTemplate):
3345         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3346         (V8TestActiveDOMObject):
3347         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3348         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
3349         (WebCore::V8TestCustomNamedGetter::GetTemplate):
3350         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3351         (V8TestCustomNamedGetter):
3352         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3353         (WebCore::ConfigureV8TestEventConstructorTemplate):
3354         (WebCore::V8TestEventConstructor::GetTemplate):
3355         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3356         (V8TestEventConstructor):
3357         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3358         (WebCore::ConfigureV8TestEventTargetTemplate):
3359         (WebCore::V8TestEventTarget::GetTemplate):
3360         * bindings/scripts/test/V8/V8TestEventTarget.h:
3361         (V8TestEventTarget):
3362         * bindings/scripts/test/V8/V8TestException.cpp:
3363         (WebCore::ConfigureV8TestExceptionTemplate):
3364         (WebCore::V8TestException::GetTemplate):
3365         * bindings/scripts/test/V8/V8TestException.h:
3366         (V8TestException):
3367         * bindings/scripts/test/V8/V8TestInterface.cpp:
3368         (WebCore::ConfigureV8TestInterfaceTemplate):
3369         (WebCore::V8TestInterface::GetTemplate):
3370         * bindings/scripts/test/V8/V8TestInterface.h:
3371         (V8TestInterface):
3372         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3373         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
3374         (WebCore::V8TestMediaQueryListListener::GetTemplate):
3375         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3376         (V8TestMediaQueryListListener):
3377         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3378         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
3379         (WebCore::ConfigureV8TestNamedConstructorTemplate):
3380         (WebCore::V8TestNamedConstructor::GetTemplate):
3381         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3382         (V8TestNamedConstructorConstructor):
3383         (V8TestNamedConstructor):
3384         * bindings/scripts/test/V8/V8TestNode.cpp:
3385         (WebCore::ConfigureV8TestNodeTemplate):
3386         (WebCore::V8TestNode::GetTemplate):
3387         * bindings/scripts/test/V8/V8TestNode.h:
3388         (V8TestNode):
3389         * bindings/scripts/test/V8/V8TestObj.cpp:
3390         (WebCore::ConfigureV8TestObjTemplate):
3391         (WebCore::V8TestObj::GetTemplate):
3392         (WebCore::V8TestObj::installPerContextPrototypeProperties):
3393         * bindings/scripts/test/V8/V8TestObj.h:
3394         (V8TestObj):
3395         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
3396         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
3397         (WebCore::V8TestOverloadedConstructors::GetTemplate):
3398         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
3399         (V8TestOverloadedConstructors):
3400         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3401         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
3402         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
3403         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3404         (V8TestSerializedScriptValueInterface):
3405         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
3406         (WebCore::ConfigureV8TestTypedefsTemplate):
3407         (WebCore::V8TestTypedefs::GetTemplate):
3408         * bindings/scripts/test/V8/V8TestTypedefs.h:
3409         (V8TestTypedefs):
3410
3411 2013-03-04  Tony Chang  <tony@chromium.org>
3412
3413         Unreviewed, rolling out r144562.
3414         http://trac.webkit.org/changeset/144562
3415         https://bugs.webkit.org/show_bug.cgi?id=85642
3416
3417         Caused KeyPadInsert faluires in webkit_unittests
3418
3419         * platform/chromium/KeyCodeConversionGtk.cpp:
3420         (WebCore::windowsKeyCodeForKeyEvent):
3421
3422 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
3423
3424         getComputedStyle not implemented for -webkit-columns shorthand
3425         https://bugs.webkit.org/show_bug.cgi?id=111236
3426
3427         Reviewed by Alexis Menard.
3428
3429         Implement getComputedStyle for -webkit-columns shorthand.
3430
3431         Test: fast/css/getComputedStyle/getComputedStyle-webkit-columns-shorthand.html
3432
3433         * css/CSSComputedStyleDeclaration.cpp:
3434         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3435
3436 2013-03-04  Levi Weintraub  <leviw@chromium.org>
3437
3438         Add support for 8 bit TextRuns on Chromium Linux & Mac
3439         https://bugs.webkit.org/show_bug.cgi?id=99393
3440
3441         Reviewed by Eric Seidel.
3442
3443         Adding support for 8 bit TextRuns for Mac and Linux Chromium. To accomplish this,
3444         8 bit text runs are upconverted to 16 bit in the complex text path during string
3445         normalization, as HarfBuzz operates on UChars.
3446
3447         Windows has platfom assumptions that TextRuns are 16 bit that need to be addressed
3448         before enabling this optimization.
3449