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