AX: aria-hidden on container does not hide descendant popup buttons
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-16  Chris Fleizach  <cfleizach@apple.com>
2
3         AX: aria-hidden on container does not hide descendant popup buttons
4         https://bugs.webkit.org/show_bug.cgi?id=112373
5
6         Reviewed by Ryosuke Niwa.
7
8         There are a number of subclass AX objects that implement accessibilityIsIgnored()
9         to always return false. This means that even if their parent is aria-hidden=true
10         they still show up in the tree.
11
12         This re-organizes this base case of aria-hidden into AccessibilityObject so that
13         it can be re-used by these special subclasses where appropriate.
14
15         Test: accessibility/aria-hidden-hides-all-elements.html
16
17         * accessibility/AccessibilityImageMapLink.h:
18         (WebCore::AccessibilityImageMapLink::isImageMapLink):
19         * accessibility/AccessibilityList.cpp:
20         (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
21         * accessibility/AccessibilityListBox.cpp:
22         (WebCore):
23         * accessibility/AccessibilityListBox.h:
24         (AccessibilityListBox):
25         * accessibility/AccessibilityListBoxOption.cpp:
26         (WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
27         * accessibility/AccessibilityMediaControls.cpp:
28         (WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
29         (WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
30         (WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
31         * accessibility/AccessibilityMediaControls.h:
32         (AccessibilityMediaControlsContainer):
33         * accessibility/AccessibilityMenuList.h:
34         (WebCore::AccessibilityMenuList::roleValue):
35         * accessibility/AccessibilityMenuListOption.cpp:
36         (WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
37         * accessibility/AccessibilityMenuListPopup.cpp:
38         (WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
39         * accessibility/AccessibilityMockObject.cpp:
40         (WebCore::AccessibilityMockObject::computeAccessibilityIsIgnored):
41         (WebCore):
42         * accessibility/AccessibilityMockObject.h:
43         (AccessibilityMockObject):
44         * accessibility/AccessibilityObject.cpp:
45         (WebCore::AccessibilityObject::accessibilityIsIgnoredDefaultForObject):
46         (WebCore):
47         (WebCore::AccessibilityObject::ariaIsHidden):
48         (WebCore::AccessibilityObject::accessibilityIsIgnoredBase):
49         * accessibility/AccessibilityObject.h:
50         (AccessibilityObject):
51         * accessibility/AccessibilityProgressIndicator.cpp:
52         (WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
53         * accessibility/AccessibilityRenderObject.cpp:
54         (WebCore):
55         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
56         (WebCore::AccessibilityRenderObject::addImageMapChildren):
57         * accessibility/AccessibilityRenderObject.h:
58         (AccessibilityRenderObject):
59         * accessibility/AccessibilityScrollbar.h:
60         (AccessibilityScrollbar):
61         * accessibility/AccessibilitySlider.cpp:
62         (WebCore):
63         (WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
64         * accessibility/AccessibilitySlider.h:
65         (AccessibilitySlider):
66         * accessibility/AccessibilitySpinButton.h:
67         (WebCore::AccessibilitySpinButton::roleValue):
68         (AccessibilitySpinButtonPart):
69
70 2013-03-15  Simon Fraser  <simon.fraser@apple.com>
71
72         Reflected video elements hit assertion on Lion
73         https://bugs.webkit.org/show_bug.cgi?id=112490
74
75         Disable the new reflected video functionality added in r145915
76         on Lion because of a nasty re-entrancy problem. Tracked by bug 112490.
77
78         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
79         (PlatformCALayer::clone):
80
81 2013-03-15  Bem Jones-Bey  <bjonesbe@adobe.com>
82
83         [CSS Exclusions] shape-outside on floats for circle and ellipse shapes
84         https://bugs.webkit.org/show_bug.cgi?id=98673
85
86         Reviewed by Dirk Schulze.
87
88         Enable circles and ellipses for shape-outside on floats. Most of the
89         code already supports them, just needed to turn them on and add tests.
90
91         Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-circle.html
92                fast/exclusions/shape-outside-floats/shape-outside-floats-simple-ellipse.html
93
94         * rendering/ExclusionShapeOutsideInfo.cpp:
95         (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Enable circles and
96             ellipses. Also add a check for if the RenderBox is floating, since
97             that test should have been there all along, as shape outside is
98             only supported on floats for now.
99
100 2013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
101
102         Convert old flexbox uses in html.css to new flexbox (non-<select>)
103         https://bugs.webkit.org/show_bug.cgi?id=110837
104
105         Reviewed by Ojan Vafai.
106
107         Covered by existing tests.
108
109         * rendering/RenderTextControlSingleLine.cpp:
110         (WebCore::RenderTextControlSingleLine::layout):
111         After we set our descendants' heights, we need to mark them for
112         layout.
113         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
114         Use new-flexbox style setters.
115
116         * css/html.css:
117         (input::-webkit-textfield-decoration-container):
118         (input[type="search"]::-webkit-search-cancel-button):
119         (input[type="search"]::-webkit-search-decoration):
120         (input[type="search"]::-webkit-search-results-decoration):
121         (input[type="search"]::-webkit-search-results-button):
122         (input::-webkit-inner-spin-button):
123         (input::-webkit-input-speech-button):
124         (textarea):
125         (input[type="file"]):
126         (input[type="color"]::-webkit-color-swatch-wrapper):
127         (input[type="color"]::-webkit-color-swatch):
128         (::-webkit-validation-bubble-message):
129         (::-webkit-validation-bubble-text-block):
130         * css/themeWin.css:
131         (input[type="search"]::-webkit-search-results-decoration):
132         (input[type="search"]::-webkit-search-results-button):
133         Convert -webkit-box to -webkit-flex and adjust related properties.
134         Notably switch to auto margins for centering the speech button as well
135         as the search result and cancel buttons to stay compatible with the
136         previous centering behaviour. This does not produce visible
137         differences but eliminates the render tree dump changes.
138         * html/TextFieldInputType.cpp:
139         (WebCore::TextFieldInputType::createShadowSubtree):
140         * html/shadow/TextControlInnerElements.cpp:
141         (WebCore::TextControlInnerContainer::TextControlInnerContainer):
142         (WebCore):
143         (WebCore::TextControlInnerContainer::create):
144         (WebCore::TextControlInnerContainer::createRenderer):
145         * html/shadow/TextControlInnerElements.h:
146         (TextControlInnerContainer):
147         (WebCore):
148         * rendering/RenderTextControl.cpp:
149         (WebCore::RenderTextControlInnerContainer::RenderTextControlInnerContainer):
150         (WebCore):
151         (WebCore::RenderTextControlInnerContainer::~RenderTextControlInnerContainer):
152         * rendering/RenderTextControl.h:
153         (WebCore):
154         (RenderTextControlInnerContainer):
155         Create a new DOM element & renderer type for the textfield-decoration
156         div (the direct child of the <input> in the shadow dom if we have a
157         special input field). This is necessary because new-flexbox uses a
158         different algorithm for calculating the baseline, which would
159         otherwise cause an <input> and an <input type=search> to not be
160         aligned with each other.
161         The new renderer just calls back to RenderBlock for calculating the
162         baseline.
163         * rendering/RenderTextControlSingleLine.cpp:
164         (WebCore::RenderTextControlSingleLine::layout):
165         Make sure to mark renderers as needing layout when we change their
166         style. This didn't use to be necessary because old-flexbox relayouts
167         children even when they are not marked for needing layout.
168         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
169         Use new-flexbox CSS properties.
170         * html/shadow/TextFieldDecorationElement.cpp:
171         (WebCore::TextFieldDecorationElement::decorate):
172         Use new-flexbox CSS properties.
173
174 2013-03-15  Kenneth Russell  <kbr@google.com>
175
176         Unreviewed attempted build fix for Chromium Windows after r145929.
177         Verified this fix builds and works on Linux.
178         https://bugs.webkit.org/show_bug.cgi?id=96798
179
180         * bindings/v8/V8Binding.cpp:
181         (WebCore):
182
183 2013-03-15  Nate Chapin  <japhet@chromium.org>
184
185         Merge MainResourceLoader::willSendRequest into DocumentLoader 
186         https://bugs.webkit.org/show_bug.cgi?id=109757
187
188         This is one of the steps to merging MainResourceLoader entirely into
189         DocumentLoader, given the lack of clear division of responsibility
190         between the two.
191
192         Reviewed by Antti Koivisto.
193
194         No new tests, refactor only.
195
196         * loader/DocumentLoader.cpp:
197         (WebCore::DocumentLoader::mainResourceData):
198         (WebCore::DocumentLoader::isPostOrRedirectAfterPost):
199         (WebCore::DocumentLoader::willSendRequest):
200         (WebCore::DocumentLoader::callContinueAfterNavigationPolicy):
201         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
202         (WebCore::DocumentLoader::startLoadingMainResource):
203         * loader/DocumentLoader.h:
204         * loader/MainResourceLoader.cpp:
205         (WebCore::MainResourceLoader::resourceData):
206         (WebCore::MainResourceLoader::redirectReceived):
207         (WebCore::MainResourceLoader::continueAfterContentPolicy):
208         (WebCore::MainResourceLoader::reportMemoryUsage):
209         (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
210         (WebCore::MainResourceLoader::load):
211         * loader/MainResourceLoader.h:
212         (WebCore::MainResourceLoader::takeIdentifierFromResourceLoader): Temporarily
213             exposed for moving from a normal load to SubstituteData load on redirect.
214
215 2013-03-15  Zhenyao Mo  <zmo@google.com>
216
217         Disable EXT_draw_buffers WebGL extension on Mac
218         https://bugs.webkit.org/show_bug.cgi?id=112486
219
220         Reviewed by Kenneth Russell.
221
222         * html/canvas/EXTDrawBuffers.cpp:
223         (WebCore::EXTDrawBuffers::supported):
224
225 2013-03-15  Dana Jansens  <danakj@chromium.org>
226
227         [chromium] Remove the background filter blur layout tests
228         https://bugs.webkit.org/show_bug.cgi?id=112372
229
230         Reviewed by James Robinson.
231
232         Remove the now-unused hacks to regression test the background
233         filter blur compositor feature.
234
235         * testing/Internals.cpp:
236         * testing/Internals.h:
237         (Internals):
238         * testing/Internals.idl:
239
240 2013-03-15  Alexey Proskuryakov  <ap@apple.com>
241
242         Reduce amount of platform specific code in MessagePortChannel
243         https://bugs.webkit.org/show_bug.cgi?id=112469
244
245         Reviewed by Sam Weinig.
246
247         * dom/MessagePortChannel.h: Ifdefed out an unused channel() function, except for
248         Chromium, where it is used. We certainly don't want to expose this implementation
249         detail as a public function.
250
251         * dom/default/PlatformMessagePortChannel.h: Removed functions that are no longer
252         delegated. Made class contents all public, as it's now basically a data storage
253         for MessagePortChannel.
254
255         * dom/default/PlatformMessagePortChannel.cpp:
256         (WebCore::MessagePortChannel::createChannel):
257         (WebCore::MessagePortChannel::~MessagePortChannel):
258         (WebCore::MessagePortChannel::entangleIfOpen):
259         (WebCore::MessagePortChannel::disentangle):
260         (WebCore::MessagePortChannel::postMessageToRemote):
261         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
262         (WebCore::MessagePortChannel::close):
263         (WebCore::MessagePortChannel::isConnectedTo):
264         (WebCore::MessagePortChannel::hasPendingActivity):
265         (WebCore::MessagePortChannel::locallyEntangledPort):
266         (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
267         (WebCore::PlatformMessagePortChannel::entangledChannel):
268         Moved code from PlatformMessagePortChannel to MessagePortChannel. Added some
269         FIXMEs.
270
271 2013-03-15  Arvid Nilsson  <anilsson@rim.com>
272
273         [BlackBerry] Expose the compositing thread layer's draw rectangle to aid hit testing
274         https://bugs.webkit.org/show_bug.cgi?id=112255
275
276         Reviewed by Rob Buis.
277
278         PR 308284.
279         Reviewed internally by Yongxin Dai.
280
281         Add a getter for the layer renderer of a compositing thread layer.
282
283         No change in behavior, no new tests.
284
285         * platform/graphics/blackberry/LayerCompositingThread.h:
286         (WebCore::LayerCompositingThread::layerRenderer):
287
288 2013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
289
290         Convert <select> to new-flexbox
291         https://bugs.webkit.org/show_bug.cgi?id=112395
292
293         Reviewed by Ojan Vafai.
294
295         Covered by existing tests.
296
297         * css/html.css:
298         (select):
299         (select[size][multiple]):
300         (select[size="1"]):
301         Use new-style flexbox properties.
302         * rendering/RenderMenuList.cpp:
303         (WebCore::RenderMenuList::RenderMenuList):
304         (WebCore::RenderMenuList::createInnerBlock):
305         (WebCore::RenderMenuList::adjustInnerStyle):
306         (WebCore::RenderMenuList::removeChild):
307         RenderDeprecatedFlexibleBox -> RenderFlexibleBox, and use the
308         new-style flexbox properties. Use margin:auto for centering to get
309         the old safe-centering behavior.
310         * rendering/RenderMenuList.h:
311         (RenderMenuList):
312         Inherit from RenderFlexibleBox. Override baseline methods to call the
313         RenderBlock methods
314
315 2013-03-15  Andy Estes  <aestes@apple.com>
316
317         REGRESSION (r145820): Stop over-retaining CFDataRefs in SharedBuffer::maybeTransferPlatformData()
318         https://bugs.webkit.org/show_bug.cgi?id=112474
319
320         Reviewed by Simon Fraser.
321
322         Transfer ownership of m_cfData to the local variable rather than leaking a reference.
323
324         * platform/cf/SharedBufferCF.cpp:
325         (WebCore::SharedBuffer::maybeTransferPlatformData):
326
327 2013-03-15  Rajeev Sarvaria  <rsarvaria@blackberry.com>
328
329         New context extensions restored improperly
330         https://bugs.webkit.org/show_bug.cgi?id=112156
331
332         Reviewed by Rob Buis.
333
334         Sets up extensions after new context is created for restoration.
335         Previous extensions set up is lost when context is initially lost.
336
337         Cannot create a test as change is not visible from the web. When a context
338         is lost, WebGLRenderingContext drops m_context. Upon restoration a new context
339         object is created without available extensions initialized. Calling isEnabled
340         within setupFlags leads to the eventual initialization of extensions for the
341         new context.
342
343         * html/canvas/WebGLRenderingContext.cpp:
344         (WebCore):
345         (WebCore::WebGLRenderingContext::maybeRestoreContext):
346
347 2013-03-15  Aurimas Liutikas  <aurimas@chromium.org>
348
349         TextIterator emits LF for a br element inside an empty input element
350         https://bugs.webkit.org/show_bug.cgi?id=112275
351
352         Reviewed by Ryosuke Niwa.
353
354         Adding a check to avoid emiting LF for br elements inside a shadow tree
355         of an input element.
356
357         Test: editing/text-iterator/basic-iteration.html
358               editing/text-iterator/basic-iteration-shadowdom.html
359
360         * editing/TextIterator.cpp:
361         (WebCore::shouldEmitNewlineForNode):
362         (WebCore::TextIterator::handleNonTextNode):
363         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
364         (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
365         (WebCore::SimplifiedBackwardsTextIterator::exitNode):
366         * editing/TextIterator.h:
367         (SimplifiedBackwardsTextIterator):
368
369 2013-03-15  Arvid Nilsson  <anilsson@rim.com>
370
371         [BlackBerry] Allow an embedder to position child windows using window coordinates
372         https://bugs.webkit.org/show_bug.cgi?id=112236
373
374         Reviewed by Rob Buis.
375
376         PR 232752
377
378         The LayerCompositingThread can now position the video window using
379         either document or window coordinates.
380
381         The LayerRenderer class gets a new client interface. This allows us to
382         avoid state duplication by delegating decisions directly to the client,
383         which can then be in charge of the (one and only) state.
384
385         The context is moved over to the client, as well as delegation of the
386         decision on whether to clear the surface every frame.
387
388         Also, the decision on which coordinate system to use for positioning
389         child windows is delegated to the client interface.
390
391         No new tests, not testable using DRT.
392
393         * platform/graphics/blackberry/LayerCompositingThread.cpp:
394         (WebCore::LayerCompositingThread::drawTextures):
395         * platform/graphics/blackberry/LayerRenderer.cpp:
396         (WebCore::LayerRenderer::create):
397         (WebCore::LayerRenderer::LayerRenderer):
398         (WebCore::LayerRenderer::setViewport):
399         (WebCore::LayerRenderer::compositeLayers):
400         (WebCore::LayerRenderer::toWebKitWindowCoordinates):
401         (WebCore::LayerRenderer::makeContextCurrent):
402         * platform/graphics/blackberry/LayerRenderer.h:
403         (WebCore):
404         (LayerRenderer):
405         (WebCore::LayerRenderer::client):
406         * platform/graphics/blackberry/LayerRendererClient.h: Added.
407         (Graphics):
408         (WebCore):
409         (LayerRendererClient):
410         (WebCore::LayerRendererClient::~LayerRendererClient):
411
412 2013-03-15  Jochen Eisinger  <jochen@chromium.org>
413
414         Expose whether a UserGestureToken still has gestures via WebKit API
415         https://bugs.webkit.org/show_bug.cgi?id=112342
416
417         Reviewed by Adam Barth.
418
419         * dom/UserGestureIndicator.cpp:
420         * dom/UserGestureIndicator.h:
421         (UserGestureToken):
422
423 2013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
424
425         Convert inspector to new-flexbox
426         https://bugs.webkit.org/show_bug.cgi?id=112399
427
428         Reviewed by Ojan Vafai.
429
430         No new tests, refactoring.
431
432         * inspector/front-end/auditsPanel.css:
433         (.audit-launcher-view .audit-launcher-view-content):
434         (.audit-launcher-view div.button-container):
435         (.audit-launcher-view div.button-container > button):
436         * inspector/front-end/dialog.css:
437         (.dialog):
438         * inspector/front-end/elementsPanel.css:
439         (.sidebar-pane.composite .metrics):
440         * inspector/front-end/helpScreen.css:
441         (.help-window-main):
442         (.help-content):
443         * inspector/front-end/inspector.css:
444         (#toolbar):
445         (#toolbar-controls):
446         (#toolbar-dropdown .scrollable-content):
447         (#toolbar-dropdown .toolbar-item):
448         (.toolbar-item.close-left, .toolbar-item.close-right):
449         * inspector/front-end/nativeMemoryProfiler.css:
450         (.memory-pie-chart-container):
451         (.memory-pie-chart):
452         * inspector/front-end/networkPanel.css:
453         (.network-item-view.visible):
454         * inspector/front-end/panelEnablerView.css:
455         (.panel-enabler-view .flexible-space):
456         * inspector/front-end/profilesPanel.css:
457         (.profile-launcher-view-content):
458         (.control-profiling):
459         * inspector/front-end/splitView.css:
460         (.sidebar-overlay):
461         * inspector/front-end/tabbedPane.css:
462         (.tabbed-pane):
463         (.tabbed-pane-content):
464         Replace -webkit-box with -webkit-flex, -webkit-box-orient with
465         -webkit-flex-direction, etc.
466
467 2013-03-15  Rouslan Solomakhin  <rouslan@chromium.org>
468
469         Remove unused unified textchecker variable
470         https://bugs.webkit.org/show_bug.cgi?id=112362
471
472         Reviewed by Tony Chang.
473
474         The variable m_originalUnifiedSpellCheckerEnabled is never used. The generated
475         code from Settings.in already backs up and restores unified textchecker setting.
476
477         * testing/InternalSettings.h: Remove unusued m_originalUnifiedSpellCheckerEnabled variable.
478
479 2013-03-14  Ojan Vafai  <ojan@chromium.org>
480
481         Auto height column flexboxes with border and padding are too short
482         https://bugs.webkit.org/show_bug.cgi?id=112398
483
484         Reviewed by Tony Chang.
485
486         Test: css3/flexbox/auto-height-column-with-border-and-padding.html
487
488         * rendering/RenderFlexibleBox.cpp:
489         (WebCore::RenderFlexibleBox::mainAxisContentExtent):
490         computeLogicalHeight expects that you pass in the border-box logicalHeight, not
491         the contentLogicalHeight. Since we subtract the border, padding and scrollbar height from 
492         the returned m_extent, if we pass in the contentLogicalHeight and the flexbox is auto-sized
493         then we end up incorrectly subtracting border, padding and scrollbar height from the
494         contentLogicalHeight.
495
496 2013-03-15  Tim Horton  <timothy_horton@apple.com>
497
498         RenderSnapshottedPlugIn can't be a RenderBlock (what if it's display: inline?)
499         https://bugs.webkit.org/show_bug.cgi?id=112432
500         <rdar://problem/13187211>
501
502         Reviewed by Simon Fraser and Dean Jackson.
503
504         Re-use code from PLUGIN_PROXY_FOR_VIDEO to allow RenderEmbeddedObject to lay out its children,
505         and make RenderSnapshottedPlugIn a RenderEmbeddedObject subclass once again. This will ensure that
506         RenderSnapshottedPlugIn lays itself out in the page the same as the RenderEmbeddedObject it replaces did,
507         preventing snapshotted plug-ins from breaking the layout when they are display: inline.
508
509         * html/HTMLPlugInElement.cpp:
510         (WebCore::HTMLPlugInElement::defaultEventHandler):
511         RenderSnapshottedPlugIn is a RenderEmbeddedObject subclass again, so we need to check
512         for it when we have a RenderEmbeddedObject, instead of when we don't.
513
514         * page/FrameView.cpp:
515         (WebCore::FrameView::updateWidget):
516         Ditto.
517
518         * rendering/RenderEmbeddedObject.cpp:
519         (WebCore::RenderEmbeddedObject::layout):
520         (WebCore::RenderEmbeddedObject::canHaveChildren):
521         Allow RenderEmbeddedObject to have and lay out children if it is a RenderSnapshottedPlugIn.
522         Also, preserve the code that allows children if it is a media element and PLUGIN_PROXY_FOR_VIDEO is enabled.
523         Don't call addWidgetToUpdate for instances which will never have a widget, like RenderSnapshottedPlugIn.
524
525         * rendering/RenderEmbeddedObject.h:
526         (RenderEmbeddedObject):
527         We need canHaveChildren() and children() and m_children now.
528         Add canHaveWidget(), which returns true. Subclasses can override if need be.
529
530         * rendering/RenderSnapshottedPlugIn.h: Add canHaveWidget(), which is false for RenderSnapshottedPlugIn.
531         * rendering/RenderSnapshottedPlugIn.cpp:
532         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
533         (WebCore::RenderSnapshottedPlugIn::layout):
534         (WebCore::RenderSnapshottedPlugIn::getCursor):
535         Make RenderSnapshottedPlugIn a RenderEmbeddedObject.
536
537         (WebCore::RenderSnapshottedPlugIn::paint):
538         Paint our children.
539
540 2013-03-15  Hajime Morrita  <morrita@google.com>
541
542         [Custom Elements] Any HTMLElement subclass should become a superclass of custom element
543         https://bugs.webkit.org/show_bug.cgi?id=110436
544
545         Reviewed by Dimitri Glazkov.
546
547         This change introduces "type extension" concept of custom elements.
548         With the type extension, each custom elements are able to inherit
549         from not only HTMLElement, but also any HTML element. To make it work,
550         this change extends the plumbing.
551
552         This change does following changes:
553
554         = Data structure:
555
556         - Let CustomElementConstructor objects being keyed by pair of (element
557           name, local name) as the standard requries, instead of just using
558           single name. See CustomElementRegistry::ConstructorMap and CustomElementRegistry::find().
559
560         - Creates mapping from WrapperTypeInfo to element name.  This map
561           can be looked-up by generated functions like
562           findHTMLTagNameOfV8Type().  With this table, WebKit can determine
563           the custom element local name of given prototype object. See  make_names.pl.
564           Note that V8 prototype object knows associated WrapperTypeInfo. See r144865.
565
566         = Hooking up element lifecyle:
567
568         - Create appropriate C++ instance for each custom element.  Before
569           this change, the C++ backend of custom elements were always
570           HTMLUnknownElements or HTMLElement.  See
571           CustomElementConstructor::createElement() and ElementFactories in
572           make_names.pl.
573
574         - Hooks up element construction and element wrapper creation for
575           custom element "before" non-custom case instead of "after"
576           that. We do this because custom element needs to
577           override non-custom case when @is attribute is given for
578           otherwise-non-custom elements like <div is=x-bar>.
579           See make_names.pl.
580
581         - Gives @is attributes to elements if needed. See setTypeExtension() call sites
582           like Document::createElement(), Document::createElementtNS() and CustomElementConstructor::createElementt()
583
584         Test: fast/dom/custom/document-register-type-extensions.html
585
586         * bindings/scripts/CodeGeneratorV8.pm:
587         (GenerateHeader):
588         * bindings/scripts/test/V8/V8Float64Array.h:
589         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
590         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
591         * bindings/scripts/test/V8/V8TestEventConstructor.h:
592         * bindings/scripts/test/V8/V8TestEventTarget.h:
593         * bindings/scripts/test/V8/V8TestException.h:
594         * bindings/scripts/test/V8/V8TestInterface.h:
595         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
596         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
597         * bindings/scripts/test/V8/V8TestNode.h:
598         * bindings/scripts/test/V8/V8TestObj.h:
599         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
600         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
601         * bindings/scripts/test/V8/V8TestTypedefs.h:
602         * bindings/v8/CustomElementHelpers.cpp:
603         (WebCore::hasValidPrototypeChain):
604         (WebCore::CustomElementHelpers::isValidPrototypeParameter):
605         (WebCore::CustomElementHelpers::findLocalName):
606         (WebCore):
607         (WebCore::CustomElementHelpers::findWrapperType):
608         * bindings/v8/CustomElementHelpers.h:
609         (CustomElementHelpers):
610         * bindings/v8/V8CustomElement.cpp:
611         (WebCore::V8CustomElement::createWrapper):
612         * bindings/v8/V8CustomElement.h:
613         (V8CustomElement):
614         (WebCore::V8CustomElement::wrap):
615         (WebCore::V8CustomElement::constructorOf):
616         * bindings/v8/WrapperTypeInfo.h:
617         (WrapperTypeTraits): Added.
618         * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
619         (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
620         * dom/CustomElementConstructor.cpp:
621         (WebCore::CustomElementConstructor::create):
622         (WebCore::CustomElementConstructor::CustomElementConstructor):
623         (WebCore::CustomElementConstructor::createElement):
624         (WebCore::setTypeExtension):
625         * dom/CustomElementConstructor.h:
626         (CustomElementConstructor):
627         (WebCore::CustomElementConstructor::document):
628         (WebCore::CustomElementConstructor::typeName):
629         (WebCore::CustomElementConstructor::localName):
630         * dom/CustomElementRegistry.cpp:
631         (WebCore::nameIncludesHyphen):
632         (WebCore::CustomElementRegistry::isValidName):
633         (WebCore::CustomElementRegistry::registerElement):
634         (WebCore::CustomElementRegistry::findFor):
635         (WebCore::CustomElementRegistry::find):
636         (WebCore::CustomElementRegistry::createElement):
637         * dom/CustomElementRegistry.h:
638         (CustomElementRegistry):
639         * dom/Document.cpp:
640         (WebCore::Document::createElement):
641         (WebCore::Document::createElementNS):
642         (WebCore::Document::registerElement):
643         * dom/Document.h:
644         (Document):
645         (WebCore::Document::registry): Moved from Document.cpp to be inlined.
646         * dom/Document.idl:
647         * dom/make_names.pl:
648         (printFactoryCppFile):
649         (printWrapperFactoryCppFile):
650         (printWrapperFactoryHeaderFile):
651         * html/HTMLAttributeNames.in: Added @is attribute
652
653 2013-03-15  Alexey Proskuryakov  <ap@apple.com>
654
655         Minor cleanup in worker code
656         https://bugs.webkit.org/show_bug.cgi?id=112455
657
658         Reviewed by Anders Carlsson.
659
660         - Added OVERRIDE keywords.
661         - Toned down FIXMEs about single MessagePort versions of functions. It's not a given
662         that we'll want to get rid of them even when implementing array versions.
663         - Explicitly marked virtual destructors as virtual.
664
665         * dom/MessageEvent.cpp:
666         * dom/MessageEvent.h:
667         * workers/Worker.cpp:
668         * workers/Worker.h:
669         Removed an unused version of postMessage() that took no MessagePorts. This makes
670         it less confusing why MessagePortArray is passed by pointer, and not by reference.
671
672         * workers/DedicatedWorkerContext.cpp:
673         (WebCore::DedicatedWorkerContext::~DedicatedWorkerContext):
674         * workers/DedicatedWorkerContext.h:
675         Added a destructor instead of an implicit one.
676         Removed an unused version of postMessage() that took no MessagePorts.
677
678         * workers/SharedWorker.h: Removed an unused virtual function (thank you OVERRIDE!)
679
680         * dom/MessagePort.cpp:
681         * dom/MessagePort.h:
682         * loader/WorkerThreadableLoader.h:
683         * page/DOMWindow.h:
684         * workers/AbstractWorker.h:
685         * workers/DedicatedWorkerThread.h:
686         * workers/SharedWorkerContext.h:
687         * workers/SharedWorkerThread.h:
688         * workers/WorkerContext.h:
689         * workers/WorkerMessagingProxy.h:
690         * workers/WorkerObjectProxy.h:
691         * workers/WorkerScriptLoader.h:
692
693 2013-03-15  Joshua Bell  <jsbell@chromium.org>
694
695         [V8] Binding: Implement EnforceRange IDL Attribute for long long conversions
696         https://bugs.webkit.org/show_bug.cgi?id=96798
697
698         Reviewed by Kentaro Hara.
699
700         Implement [EnforceRange] attribute for V8 bindings, which specifies throwing behavior
701         on conversions outside int/uint 32/64 ranges and edge cases like NaNs and Infinities.
702         Conversely, conversions without this attribute should *not* throw.
703
704         Tests: fast/js/webidl-type-mapping.html:
705                fast/dom/non-numeric-values-numeric-parameters.html
706                fast/js/script-tests/select-options-add.html
707                storage/indexeddb/intversion-bad-parameters.html
708
709         * Modules/indexeddb/IDBCursor.cpp: Remove custom range enforcement for advance()
710         * Modules/indexeddb/IDBCursor.h: Adjust type to match WebIDL.
711         * Modules/indexeddb/IDBCursor.idl: Specify [EnforceRange] and type matches spec WebIDL.
712         * Modules/indexeddb/IDBFactory.cpp: Remove custom range enforcement for open()
713         * Modules/indexeddb/IDBFactory.h: Adjust type to match WebIDL.
714         * Modules/indexeddb/IDBFactory.idl: Specify [EnforceRange] and type matches spec WebIDL.
715         * bindings/scripts/CodeGeneratorJS.pm:
716         (JSValueToNative): Add FIXME to support [EnforceRange]
717         * bindings/scripts/CodeGeneratorV8.pm:
718         (GenerateNormalAttrSetter): Handle [EnforceRange] in attribute setters
719         (GenerateParametersCheck): Handle [EnforceRange] in parameters.
720         (JSValueToNative): Pass EnforceRange to toInt() functions as appropriate.
721         * bindings/scripts/IDLAttributes.txt:
722         * bindings/scripts/test/TestObj.idl: Tests w/ [EnforceRange]
723         * bindings/scripts/test/V8/V8TestObj.cpp: Updated expectations
724         * bindings/scripts/test/V8/V8TestTypedefs.cpp: Updated expectations.
725         * bindings/v8/V8Binding.cpp: Overloads for toInt() variants that handle constraints.
726         (WebCore::toInt32):
727         (WebCore::toUInt32):
728         (WebCore::toInt64):
729         (WebCore::toUInt64):
730         * bindings/v8/V8Binding.h: Ditto, plus helpers for callers not expecting errors.
731         (WebCore::toInt32):
732         (WebCore::toUInt32):
733         (WebCore::toInt64):
734         (WebCore::toUInt64):
735         * bindings/v8/V8BindingMacros.h: Helper macros for type conversions that may throw.
736         * testing/TypeConversions.h: Added new members with EnforceRange constraint.
737         * testing/TypeConversions.idl: Ditto.
738
739 2013-03-15  Eugene Klyuchnikov  <eustas@chromium.org>
740
741         Web Inspector: [Network] Refine JSDocs in NetworkRequest.js
742         https://bugs.webkit.org/show_bug.cgi?id=112412
743
744         Reviewed by Vsevolod Vlasov.
745
746         Return types for some members are confusing (Object).
747
748         * inspector/front-end/NetworkManager.js: Fixed JSDocs.
749         * inspector/front-end/NetworkRequest.js: Ditto. Plus minor refactorings.
750
751 2013-03-15  Andy Estes  <aestes@apple.com>
752
753         REGRESSION (r127277): CSS URIs with multi-byte Unicode escape sequences fail to parse
754         https://bugs.webkit.org/show_bug.cgi?id=112436
755
756         Reviewed by Michael Saboff.
757
758         r127277 modified the CSS parser to use 8-bit strings when possible.
759         However, it failed to handle URIs that contain Unicode escape sequences
760         that expand to multi-byte characters. Not only would the URI fail to
761         parse, but so would the remainder of the input string.
762
763         Fix this by producing a 16-bit result when we detect a URI with a
764         multi-byte Unicode escape, like we do for identifiers and other strings.
765
766         Test: fast/css/url-with-multi-byte-unicode-escape.html
767
768         * css/CSSParser.cpp:
769         (WebCore::checkAndSkipString): Changed to be a free function since it
770         doesn't access CSSParser's internal state.
771         (WebCore::CSSParser::findURI): Added a function that consolidates the
772         logic of finding the start and end pointers of the URI and the quote
773         character (if encountered), starting at the current character.
774         (WebCore::CSSParser::parseURIInternal): Removed duplicated logic for
775         finding the URI bounds (this now lives in findURI()) and logic for
776         setting the token type and updating the current character (this now
777         lives in parseURI()).
778         (WebCore::CSSParser::parseURI): Find the URI and parse it. If a
779         multi-byte Unicode escape is encountered, rewind to the beginning of
780         the URI and re-parse with a 16-bit string as the destination.
781         * css/CSSParser.h:
782
783 2013-03-15  Andreas Kling  <akling@apple.com>
784
785         [JSC] Remove custom WebAudio mark functions that we can generate instead.
786         <http://webkit.org/b/110976>
787
788         Reviewed by Eric Carlson.
789
790         Remove custom JSC mark functions for AudioContext and ScriptProcessorNode since they
791         are trivial to generate.
792
793         * Modules/webaudio/AudioContext.idl:
794         * Modules/webaudio/ScriptProcessorNode.idl:
795         * GNUmakefile.list.am:
796         * UseJSC.cmake:
797         * WebCore.xcodeproj/project.pbxproj:
798         * bindings/js/JSAudioContextCustom.cpp:
799         * bindings/js/JSScriptProcessorNodeCustom.cpp: Removed.
800
801 2013-03-15  Jer Noble  <jer.noble@apple.com>
802
803         Unreviewed build fix. Rename local variable which was colliding with class method.
804
805         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
806         (PlatformCALayer::clone):
807
808 2013-03-15  Joshua Bell  <jsbell@chromium.org>
809
810         IndexedDB: Handle success events arriving after context stopped
811         https://bugs.webkit.org/show_bug.cgi?id=112451
812
813         Reviewed by Tony Chang.
814
815         In multiprocess ports, events from the back-end can arrive in the form of
816         onXXX() calls after the script execution context has stopped. These need to
817         be ignored. This was already done in most cases, but missing for two overloads
818         of IDBRequest::onSuccess() - void and int64_t.
819
820         Test: webkit_unit_test IDBRequestTest.EventsAfterStopping
821
822         * Modules/indexeddb/IDBRequest.cpp:
823         (WebCore::IDBRequest::onSuccess): Early return if context has stopped.
824         (WebCore::IDBRequest::onSuccessInternal): ASSERT() that callers have checked context.
825
826 2013-03-14  Jer Noble  <jer.noble@apple.com>
827
828         REGRESSION: -webkit-box-reflect does not show on video elements
829         https://bugs.webkit.org/show_bug.cgi?id=112397
830
831         Reviewed by Simon Fraser.
832
833         Test: compositing/video/video-reflection.html
834
835         Support cloning specific CALayer subtypes in PlatformCALayer,
836         which allows reflections to work correctly for those layer types.
837         Specifically, add support for cloning AVPlayerLayer layers.
838
839         * platform/graphics/ca/GraphicsLayerCA.cpp:
840         (WebCore::GraphicsLayerCA::cloneLayer): Moved most of the
841             implementation to PlatformCALayer::clone().
842         * platform/graphics/ca/PlatformCALayer.h:
843         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
844         (PlatformCALayer::PlatformCALayer): Set the layerType to 
845             LayerTypeAVPlayerLayer if the PlatformLayer parameter is an
846             AVPlayerLayer.
847         (PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
848             Copy the player value to the new layer, if the current layer is
849             a LayerTypeAVPlayerLayer.
850         (PlatformCALayer::playerLayer):
851         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
852         (PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
853             May want to add support for AVCFPlayerLayers in the future.
854
855 2013-03-15  Nate Chapin  <japhet@chromium.org>
856
857         Hide MainResourceLoader from the outside world
858         https://bugs.webkit.org/show_bug.cgi?id=109971
859
860         Reviewed by Adam Barth.
861
862         No new tests, refactor only.
863
864         * WebCore.exp.in:
865         * dom/Document.cpp:
866         * html/HTMLEmbedElement.cpp:
867         * html/MediaDocument.cpp:
868         * html/PluginDocument.cpp:
869         * loader/DocumentLoader.cpp:
870         (WebCore::DocumentLoader::mainResourceLoader):
871         (WebCore::DocumentLoader::finishedLoading):
872         (WebCore::DocumentLoader::receivedData):
873         (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
874         * loader/DocumentLoader.h:
875         * loader/EmptyClients.h:
876         * loader/FrameLoader.cpp:
877         * loader/FrameLoaderClient.h:
878         * loader/MainResourceLoader.cpp:
879         * loader/appcache/ApplicationCacheGroup.cpp:
880         * loader/appcache/ApplicationCacheHost.cpp:
881
882 2013-03-15  Abhishek Arya  <inferno@chromium.org>
883
884         Replace static_casts with to* helper functions.
885         https://bugs.webkit.org/show_bug.cgi?id=112401
886
887         Reviewed by Stephen Chenney.
888
889         to* helper functions are preferred over static_cast calls since they
890         help to catch bad casts easily on the testing infrastructure.
891
892         * accessibility/AccessibilityObject.cpp:
893         (WebCore::appendAccessibilityObject):
894         * accessibility/AccessibilityRenderObject.cpp:
895         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
896         * accessibility/AccessibilityScrollView.cpp:
897         (WebCore::AccessibilityScrollView::webAreaObject):
898         (WebCore::AccessibilityScrollView::documentFrameView):
899         (WebCore::AccessibilityScrollView::parentObject):
900         (WebCore::AccessibilityScrollView::parentObjectIfExists):
901         * accessibility/chromium/AXObjectCacheChromium.cpp:
902         (WebCore::AXObjectCache::postPlatformNotification):
903         * bindings/js/JSPluginElementFunctions.cpp:
904         (WebCore::pluginScriptObjectFromPluginViewBase):
905         * bindings/js/PageScriptDebugServer.cpp:
906         (WebCore::PageScriptDebugServer::setJavaScriptPaused):
907         * bindings/js/ScriptController.cpp:
908         (WebCore::ScriptController::createScriptInstanceForWidget):
909         * bindings/js/ScriptControllerQt.cpp:
910         (WebCore::ScriptController::createScriptInstanceForWidget):
911         * bindings/v8/ScriptController.cpp:
912         (WebCore::ScriptController::createScriptInstanceForWidget):
913         * html/HTMLObjectElement.cpp:
914         (WebCore::HTMLObjectElement::appendFormData):
915         * page/EventHandler.cpp:
916         (WebCore::EventHandler::subframeForTargetNode):
917         (WebCore::EventHandler::passGestureEventToWidget):
918         * page/Frame.cpp:
919         (WebCore::Frame::frameForWidget):
920         * page/FrameView.cpp:
921         (WebCore::collectFrameViewChildren):
922         (WebCore::FrameView::hasCustomScrollbars):
923         (WebCore::FrameView::convertToContainingView):
924         (WebCore::FrameView::convertFromContainingView):
925         (WebCore::FrameView::removeChild):
926         * page/FrameView.h:
927         (WebCore::toFrameView):
928         (WebCore):
929         * page/Page.cpp:
930         (WebCore::Page::collectPluginViews):
931         * page/chromium/EventHandlerChromium.cpp:
932         (WebCore::EventHandler::passWheelEventToWidget):
933         * page/efl/EventHandlerEfl.cpp:
934         (WebCore::EventHandler::passWheelEventToWidget):
935         * page/gtk/EventHandlerGtk.cpp:
936         (WebCore::EventHandler::passWheelEventToWidget):
937         * page/mac/EventHandlerMac.mm:
938         (WebCore::EventHandler::passWheelEventToWidget):
939         * page/qt/EventHandlerQt.cpp:
940         (WebCore::EventHandler::passWheelEventToWidget):
941         * page/scrolling/ScrollingCoordinator.cpp:
942         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
943         * page/win/EventHandlerWin.cpp:
944         (WebCore::EventHandler::passWheelEventToWidget):
945         * page/wx/EventHandlerWx.cpp:
946         (WebCore::EventHandler::passWheelEventToWidget):
947         * platform/ScrollView.h:
948         (WebCore::toScrollView):
949         (WebCore):
950         * platform/Scrollbar.cpp:
951         (WebCore::Scrollbar::isScrollViewScrollbar):
952         (WebCore::Scrollbar::mouseUp):
953         (WebCore::Scrollbar::axObjectCache):
954         * platform/Widget.h:
955         (WebCore::Widget::isScrollView):
956         * platform/blackberry/PlatformScreenBlackBerry.cpp:
957         (WebCore::toUserSpace):
958         * platform/efl/ScrollbarEfl.cpp:
959         (ScrollbarEfl::setParent):
960         * platform/qt/PlatformSupportQt.cpp:
961         (WebCore::PlatformSupport::popupsAllowed):
962         (WebCore::PlatformSupport::pluginScriptableObject):
963         * plugins/IFrameShimSupport.cpp:
964         (WebCore::getPluginOcclusions):
965         * plugins/PluginView.h:
966         (WebCore::toPluginView):
967         (WebCore):
968         * plugins/PluginViewBase.h:
969         (WebCore::PluginViewBase::isPluginViewBase):
970         (PluginViewBase):
971         (WebCore::toPluginViewBase):
972         (WebCore):
973         * plugins/blackberry/PluginViewBlackBerry.cpp:
974         (WebCore::PluginView::updatePluginWidget):
975         (WebCore::PluginView::updateBuffer):
976         (WebCore::PluginView::paint):
977         (WebCore::PluginView::handleScrollEvent):
978         (WebCore::PluginView::calculateClipRect):
979         (WebCore::PluginView::handleFullScreenAllowedEvent):
980         (WebCore::PluginView::handleFullScreenExitEvent):
981         (WebCore::PluginView::setParent):
982         (WebCore::PluginView::setNPWindowIfNeeded):
983         (WebCore::PluginView::platformGetValue):
984         (WebCore::PluginView::platformStart):
985         (WebCore::PluginView::platformDestroy):
986         (WebCore::PluginView::setBackgroundPlay):
987         * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
988         (WebCore::PluginViewPrivate::setVisibleRects):
989         (WebCore::PluginViewPrivate::showKeyboard):
990         (WebCore::PluginViewPrivate::requestFullScreen):
991         (WebCore::PluginViewPrivate::requestCenterFitZoom):
992         (WebCore::PluginViewPrivate::lockOrientation):
993         (WebCore::PluginViewPrivate::unlockOrientation):
994         (WebCore::PluginViewPrivate::preventIdle):
995         * plugins/gtk/PluginViewGtk.cpp:
996         (WebCore::PluginView::updatePluginWidget):
997         * plugins/mac/PluginViewMac.mm:
998         (WebCore::PluginView::platformStart):
999         * plugins/qt/PluginViewQt.cpp:
1000         (WebCore::PluginView::updatePluginWidget):
1001         * plugins/win/PluginViewWin.cpp:
1002         (WebCore::PluginView::updatePluginWidget):
1003         (WebCore::PluginView::paintIntoTransformedContext):
1004         (WebCore::PluginView::paintWindowedPluginIntoContext):
1005         (WebCore::PluginView::paint):
1006         (WebCore::PluginView::handleMouseEvent):
1007         (WebCore::PluginView::setNPWindowRect):
1008         (WebCore::PluginView::snapshot):
1009         * rendering/RenderBox.cpp:
1010         (WebCore::RenderBox::addLayoutOverflow):
1011         * rendering/RenderBoxModelObject.cpp:
1012         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
1013         * rendering/RenderEmbeddedObject.cpp:
1014         (WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing):
1015         (WebCore::RenderEmbeddedObject::viewCleared):
1016         (WebCore::RenderEmbeddedObject::nodeAtPoint):
1017         (WebCore::RenderEmbeddedObject::scroll):
1018         * rendering/RenderFlexibleBox.h:
1019         (WebCore::toRenderFlexibleBox):
1020         (WebCore):
1021         * rendering/RenderFrame.cpp:
1022         (WebCore::RenderFrame::viewCleared):
1023         * rendering/RenderFrameBase.cpp:
1024         (WebCore::RenderFrameBase::layoutWithFlattening):
1025         * rendering/RenderIFrame.cpp:
1026         (WebCore::RenderIFrame::contentRootRenderer):
1027         (WebCore::RenderIFrame::layoutSeamlessly):
1028         * rendering/RenderLayerBacking.cpp:
1029         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1030         * rendering/RenderLayerCompositor.cpp:
1031         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
1032         * rendering/RenderPart.cpp:
1033         (WebCore::RenderPart::requiresAcceleratedCompositing):
1034         (WebCore::RenderPart::embeddedContentBox):
1035         (WebCore::RenderPart::nodeAtPoint):
1036         * rendering/RenderRuby.cpp:
1037         (WebCore::rubyBeforeBlock):
1038         (WebCore::rubyAfterBlock):
1039         (WebCore::lastRubyRun):
1040         (WebCore::findRubyRunParent):
1041         * rendering/RenderTreeAsText.cpp:
1042         (WebCore::write):
1043         * rendering/RenderWidget.cpp:
1044         (WebCore::RenderWidget::paintContents):
1045         (WebCore::RenderWidget::setOverlapTestResult):
1046         (WebCore::RenderWidget::updateWidgetPosition):
1047
1048 2013-03-15  No'am Rosenthal  <noam@webkit.org>
1049
1050         [Texmap] REGRESSION (r144190): Failure at style with preserve-3d and opacity
1051         https://bugs.webkit.org/show_bug.cgi?id=112370
1052
1053         According to spec, we avoid masking and clipping when preserves-3d is enabled.
1054         However, opacity should still work.
1055         Allowing opacity when preserves-3d is on.
1056
1057         Reviewed by Caio Marcelo de Oliveira Filho.
1058
1059         Test: compositing/overlap-blending/preserves3d-opacity.html
1060
1061         * platform/graphics/texmap/TextureMapperGL.cpp:
1062         * platform/graphics/texmap/TextureMapperLayer.cpp:
1063         (WebCore::TextureMapperLayer::paintRecursive):
1064
1065 2013-03-15  Konrad Piascik  <kpiascik@blackberry.com>
1066
1067         Get rid of useless forward declaration.
1068         https://bugs.webkit.org/show_bug.cgi?id=112449
1069
1070         Reviewed by Stephen Chenney.
1071
1072         No behavioural change 
1073
1074         * svg/SVGRectElement.cpp:
1075
1076 2013-03-15  Alexei Filippov  <alph@chromium.org>
1077
1078         Web Inspector: make CPU profiler show timings using the same time unit [ms]
1079         https://bugs.webkit.org/show_bug.cgi?id=112356
1080
1081         That makes it much easier to compare values when looking at the data.
1082
1083         Reviewed by Yury Semikhatsky.
1084
1085         * inspector/front-end/ProfileDataGridTree.js:
1086         (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
1087
1088 2013-03-15  Peter Beverloo  <peter@chromium.org>
1089
1090         Implement support for nullable types in the bindings generator
1091         https://bugs.webkit.org/show_bug.cgi?id=111728
1092
1093         Reviewed by Kentaro Hara.
1094
1095         This patch adds support for nullable types in the bindings
1096         generator, as described in section 3.10.22 of WebIDL:
1097             http://dev.w3.org/2006/webapi/WebIDL/#idl-nullable-type
1098
1099         interface MyInterface {
1100             readonly attribute boolean? value; // true, false or null.
1101         };
1102
1103         The IDL Parser has been modified to record whether attributes are
1104         nullable. Question marks from the type will always be stripped
1105         from the domAttribute->signature->type field. Once support for
1106         this has been completely implemented, we'll be able to remove a
1107         bunch of custom bindings, i.e. those of Device Orientation.
1108
1109         Any getter for an attribute which returns a nullable type will be
1110         called with an additional attribute (passed by reference) named
1111         "isNull". This will be the last argument passed to the method,
1112         unless an exception code (ec) argument will be passed as well.
1113
1114         The CPP, GObject and ObjC bindings will not change behavior following
1115         this patch, although they have been modified to call the WebCore
1116         methods for nullable attributes with the correct signature. The
1117         V8 and JS binding generators do have modified behavior, in that they
1118         will actually return v8Null/jsNull when isNull == true.
1119
1120         Tested by existing binding tests and the new nullable attribute
1121         tests in the bindings/scripts/test/ directory.
1122
1123         * bindings/scripts/CodeGeneratorCPP.pm:
1124         (GenerateImplementation):
1125         * bindings/scripts/CodeGeneratorGObject.pm:
1126         (GenerateProperty):
1127         (GenerateFunction):
1128         * bindings/scripts/CodeGeneratorJS.pm:
1129         (GenerateImplementation):
1130         * bindings/scripts/CodeGeneratorObjC.pm:
1131         (GenerateImplementation):
1132         * bindings/scripts/CodeGeneratorV8.pm:
1133         (GenerateNormalAttrGetter):
1134         * bindings/scripts/IDLParser.pm:
1135         (typeHasNullableSuffix):
1136         (typeRemoveNullableSuffix):
1137         (parseAttributeRest):
1138         (parseOptionalOrRequiredArgument):
1139         (parseAttributeRestOld):
1140         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1141         (WebDOMTestObj::nullableDoubleAttribute):
1142         (WebDOMTestObj::nullableLongAttribute):
1143         (WebDOMTestObj::nullableBooleanAttribute):
1144         (WebDOMTestObj::nullableStringAttribute):
1145         (WebDOMTestObj::nullableLongSettableAttribute):
1146         (WebDOMTestObj::setNullableLongSettableAttribute):
1147         (WebDOMTestObj::nullableStringValue):
1148         (WebDOMTestObj::setNullableStringValue):
1149         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1150         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1151         (webkit_dom_test_obj_set_property):
1152         (webkit_dom_test_obj_get_property):
1153         (webkit_dom_test_obj_class_init):
1154         (webkit_dom_test_obj_get_nullable_double_attribute):
1155         (webkit_dom_test_obj_get_nullable_long_attribute):
1156         (webkit_dom_test_obj_get_nullable_boolean_attribute):
1157         (webkit_dom_test_obj_get_nullable_string_attribute):
1158         (webkit_dom_test_obj_get_nullable_long_settable_attribute):
1159         (webkit_dom_test_obj_set_nullable_long_settable_attribute):
1160         (webkit_dom_test_obj_get_nullable_string_value):
1161         (webkit_dom_test_obj_set_nullable_string_value):
1162         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1163         * bindings/scripts/test/JS/JSTestObj.cpp:
1164         (WebCore):
1165         (WebCore::jsTestObjNullableDoubleAttribute):
1166         (WebCore::jsTestObjNullableLongAttribute):
1167         (WebCore::jsTestObjNullableBooleanAttribute):
1168         (WebCore::jsTestObjNullableStringAttribute):
1169         (WebCore::jsTestObjNullableLongSettableAttribute):
1170         (WebCore::jsTestObjNullableStringValue):
1171         (WebCore::setJSTestObjNullableLongSettableAttribute):
1172         (WebCore::setJSTestObjNullableStringValue):
1173         * bindings/scripts/test/JS/JSTestObj.h:
1174         (WebCore):
1175         * bindings/scripts/test/ObjC/DOMTestObj.h:
1176         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1177         (-[DOMTestObj nullableDoubleAttribute]):
1178         (-[DOMTestObj nullableLongAttribute]):
1179         (-[DOMTestObj nullableBooleanAttribute]):
1180         (-[DOMTestObj nullableStringAttribute]):
1181         (-[DOMTestObj nullableLongSettableAttribute]):
1182         (-[DOMTestObj setNullableLongSettableAttribute:]):
1183         (-[DOMTestObj nullableStringValue]):
1184         (-[DOMTestObj setNullableStringValue:]):
1185         * bindings/scripts/test/TestObj.idl:
1186         * bindings/scripts/test/V8/V8TestObj.cpp:
1187         (WebCore::TestObjV8Internal::nullableDoubleAttributeAttrGetter):
1188         (TestObjV8Internal):
1189         (WebCore::TestObjV8Internal::nullableDoubleAttributeAttrGetterCallback):
1190         (WebCore::TestObjV8Internal::nullableLongAttributeAttrGetter):
1191         (WebCore::TestObjV8Internal::nullableLongAttributeAttrGetterCallback):
1192         (WebCore::TestObjV8Internal::nullableBooleanAttributeAttrGetter):
1193         (WebCore::TestObjV8Internal::nullableBooleanAttributeAttrGetterCallback):
1194         (WebCore::TestObjV8Internal::nullableStringAttributeAttrGetter):
1195         (WebCore::TestObjV8Internal::nullableStringAttributeAttrGetterCallback):
1196         (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrGetter):
1197         (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrGetterCallback):
1198         (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetter):
1199         (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetterCallback):
1200         (WebCore::TestObjV8Internal::nullableStringValueAttrGetter):
1201         (WebCore::TestObjV8Internal::nullableStringValueAttrGetterCallback):
1202         (WebCore::TestObjV8Internal::nullableStringValueAttrSetter):
1203         (WebCore::TestObjV8Internal::nullableStringValueAttrSetterCallback):
1204         (WebCore):
1205
1206 2013-03-15  Marja Hölttä  <marja@chromium.org>
1207
1208         [V8] Store main world and non-main world templates separately.
1209         https://bugs.webkit.org/show_bug.cgi?id=111724
1210
1211         Reviewed by Jochen Eisinger.
1212
1213         This is needed for generating specialized bindings for the main
1214         world (bug 110874).
1215
1216         No new tests (updated existing bindings tests).
1217
1218         * bindings/scripts/CodeGeneratorV8.pm:
1219         (GenerateHeader):
1220         (GenerateDomainSafeFunctionGetter):
1221         (GenerateNormalAttrSetter):
1222         (GenerateParametersCheckExpression):
1223         (GenerateParametersCheck):
1224         (GenerateImplementation):
1225         (JSValueToNative):
1226         (CreateCustomSignature):
1227         * bindings/scripts/test/V8/V8Float64Array.cpp:
1228         (WebCore::Float64ArrayV8Internal::fooMethod):
1229         (WebCore::ConfigureV8Float64ArrayTemplate):
1230         (WebCore::V8Float64Array::GetTemplate):
1231         (WebCore::V8Float64Array::HasInstance):
1232         (WebCore):
1233         (WebCore::V8Float64Array::HasInstanceInAnyWorld):
1234         * bindings/scripts/test/V8/V8Float64Array.h:
1235         (V8Float64Array):
1236         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1237         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
1238         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
1239         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1240         (WebCore::V8TestActiveDOMObject::GetTemplate):
1241         (WebCore::V8TestActiveDOMObject::HasInstance):
1242         (WebCore):
1243         (WebCore::V8TestActiveDOMObject::HasInstanceInAnyWorld):
1244         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1245         (V8TestActiveDOMObject):
1246         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1247         (WebCore::V8TestCustomNamedGetter::GetTemplate):
1248         (WebCore::V8TestCustomNamedGetter::HasInstance):
1249         (WebCore):
1250         (WebCore::V8TestCustomNamedGetter::HasInstanceInAnyWorld):
1251         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1252         (V8TestCustomNamedGetter):
1253         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1254         (WebCore::V8TestEventConstructor::GetTemplate):
1255         (WebCore::V8TestEventConstructor::HasInstance):
1256         (WebCore):
1257         (WebCore::V8TestEventConstructor::HasInstanceInAnyWorld):
1258         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1259         (V8TestEventConstructor):
1260         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1261         (WebCore::TestEventTargetV8Internal::dispatchEventMethod):
1262         (WebCore::ConfigureV8TestEventTargetTemplate):
1263         (WebCore::V8TestEventTarget::GetTemplate):
1264         (WebCore::V8TestEventTarget::HasInstance):
1265         (WebCore):
1266         (WebCore::V8TestEventTarget::HasInstanceInAnyWorld):
1267         * bindings/scripts/test/V8/V8TestEventTarget.h:
1268         (V8TestEventTarget):
1269         * bindings/scripts/test/V8/V8TestException.cpp:
1270         (WebCore::V8TestException::GetTemplate):
1271         (WebCore::V8TestException::HasInstance):
1272         (WebCore):
1273         (WebCore::V8TestException::HasInstanceInAnyWorld):
1274         * bindings/scripts/test/V8/V8TestException.h:
1275         (V8TestException):
1276         * bindings/scripts/test/V8/V8TestInterface.cpp:
1277         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
1278         (WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
1279         (WebCore::ConfigureV8TestInterfaceTemplate):
1280         (WebCore::V8TestInterface::GetTemplate):
1281         (WebCore::V8TestInterface::HasInstance):
1282         (WebCore):
1283         (WebCore::V8TestInterface::HasInstanceInAnyWorld):
1284         * bindings/scripts/test/V8/V8TestInterface.h:
1285         (V8TestInterface):
1286         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1287         (WebCore::V8TestMediaQueryListListener::GetTemplate):
1288         (WebCore::V8TestMediaQueryListListener::HasInstance):
1289         (WebCore):
1290         (WebCore::V8TestMediaQueryListListener::HasInstanceInAnyWorld):
1291         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1292         (V8TestMediaQueryListListener):
1293         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1294         (WebCore::V8TestNamedConstructor::GetTemplate):
1295         (WebCore::V8TestNamedConstructor::HasInstance):
1296         (WebCore):
1297         (WebCore::V8TestNamedConstructor::HasInstanceInAnyWorld):
1298         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1299         (V8TestNamedConstructor):
1300         * bindings/scripts/test/V8/V8TestNode.cpp:
1301         (WebCore::V8TestNode::GetTemplate):
1302         (WebCore::V8TestNode::HasInstance):
1303         (WebCore):
1304         (WebCore::V8TestNode::HasInstanceInAnyWorld):
1305         * bindings/scripts/test/V8/V8TestNode.h:
1306         (V8TestNode):
1307         * bindings/scripts/test/V8/V8TestObj.cpp:
1308         (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
1309         (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
1310         (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
1311         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
1312         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
1313         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
1314         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
1315         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
1316         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
1317         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
1318         (WebCore::TestObjV8Internal::mutablePointAttrSetter):
1319         (WebCore::TestObjV8Internal::immutablePointAttrSetter):
1320         (WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
1321         (WebCore::TestObjV8Internal::longMethodWithArgsMethod):
1322         (WebCore::TestObjV8Internal::objMethodWithArgsMethod):
1323         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
1324         (WebCore::TestObjV8Internal::overloadedMethod1Method):
1325         (WebCore::TestObjV8Internal::overloadedMethod2Method):
1326         (WebCore::TestObjV8Internal::overloadedMethod8Method):
1327         (WebCore::TestObjV8Internal::overloadedMethodMethod):
1328         (WebCore::TestObjV8Internal::convert1Method):
1329         (WebCore::TestObjV8Internal::convert2Method):
1330         (WebCore::TestObjV8Internal::convert4Method):
1331         (WebCore::TestObjV8Internal::convert5Method):
1332         (WebCore::TestObjV8Internal::variadicNodeMethodMethod):
1333         (WebCore::ConfigureV8TestObjTemplate):
1334         (WebCore::V8TestObj::GetTemplate):
1335         (WebCore::V8TestObj::HasInstance):
1336         (WebCore):
1337         (WebCore::V8TestObj::HasInstanceInAnyWorld):
1338         * bindings/scripts/test/V8/V8TestObj.h:
1339         (V8TestObj):
1340         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1341         (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
1342         (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
1343         (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
1344         (WebCore::TestOverloadedConstructorsV8Internal::constructor):
1345         (WebCore::V8TestOverloadedConstructors::GetTemplate):
1346         (WebCore::V8TestOverloadedConstructors::HasInstance):
1347         (WebCore):
1348         (WebCore::V8TestOverloadedConstructors::HasInstanceInAnyWorld):
1349         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
1350         (V8TestOverloadedConstructors):
1351         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1352         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
1353         (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
1354         (WebCore):
1355         (WebCore::V8TestSerializedScriptValueInterface::HasInstanceInAnyWorld):
1356         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1357         (V8TestSerializedScriptValueInterface):
1358         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
1359         (WebCore::TestTypedefsV8Internal::funcMethod):
1360         (WebCore::ConfigureV8TestTypedefsTemplate):
1361         (WebCore::V8TestTypedefs::GetTemplate):
1362         (WebCore::V8TestTypedefs::HasInstance):
1363         (WebCore):
1364         (WebCore::V8TestTypedefs::HasInstanceInAnyWorld):
1365         * bindings/scripts/test/V8/V8TestTypedefs.h:
1366         (V8TestTypedefs):
1367         * bindings/v8/Dictionary.cpp:
1368         (WebCore::Dictionary::get):
1369         * bindings/v8/ScriptProfiler.cpp:
1370         (WebCore::ScriptProfiler::visitNodeWrappers):
1371         * bindings/v8/SerializedScriptValue.cpp:
1372         * bindings/v8/V8AdaptorFunction.cpp:
1373         (WebCore::V8AdaptorFunction::getTemplate):
1374         * bindings/v8/V8Binding.cpp:
1375         (WebCore::toDOMStringList):
1376         (WebCore::toXPathNSResolver):
1377         * bindings/v8/V8Binding.h:
1378         (WebCore):
1379         (WebCore::toRefPtrNativeArray):
1380         * bindings/v8/V8Collection.cpp:
1381         (WebCore::toOptionsCollectionSetter):
1382         * bindings/v8/V8GCController.cpp:
1383         * bindings/v8/V8NPObject.cpp:
1384         (WebCore::npObjectInvokeImpl):
1385         * bindings/v8/V8PerIsolateData.cpp:
1386         (WebCore::V8PerIsolateData::reportMemoryUsage):
1387         (WebCore::V8PerIsolateData::hasPrivateTemplate):
1388         (WebCore::V8PerIsolateData::privateTemplate):
1389         (WebCore::V8PerIsolateData::rawTemplate):
1390         (WebCore::V8PerIsolateData::hasInstance):
1391         * bindings/v8/V8PerIsolateData.h:
1392         (WebCore::V8PerIsolateData::rawTemplateMap):
1393         (V8PerIsolateData):
1394         (WebCore::V8PerIsolateData::templateMap):
1395         * bindings/v8/V8Utilities.cpp:
1396         (WebCore::extractTransferables):
1397         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1398         (WebCore::constructWebGLArray):
1399         (WebCore::setWebGLArrayHelper):
1400         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
1401         (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
1402         * bindings/v8/custom/V8BlobCustom.cpp:
1403         (WebCore::V8Blob::constructorCustom):
1404         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
1405         (WebCore::toCanvasStyle):
1406         * bindings/v8/custom/V8ClipboardCustom.cpp:
1407         (WebCore::V8Clipboard::setDragImageMethodCustom):
1408         * bindings/v8/custom/V8CryptoCustom.cpp:
1409         (WebCore::V8Crypto::getRandomValuesMethodCustom):
1410         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
1411         (WebCore::V8DOMFormData::constructorCustom):
1412         (WebCore::V8DOMFormData::appendMethodCustom):
1413         * bindings/v8/custom/V8DataViewCustom.cpp:
1414         (WebCore::V8DataView::constructorCustom):
1415         * bindings/v8/custom/V8DocumentCustom.cpp:
1416         (WebCore::V8Document::evaluateMethodCustom):
1417         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
1418         (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
1419         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1420         (WebCore::V8HTMLOptionsCollection::addMethodCustom):
1421         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
1422         (WebCore::removeElement):
1423         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1424         (WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
1425         (WebCore::V8InjectedScriptHost::typeMethodCustom):
1426         (WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
1427         * bindings/v8/custom/V8LocationCustom.cpp:
1428         (WebCore::V8Location::reloadAttrGetterCustom):
1429         (WebCore::V8Location::replaceAttrGetterCustom):
1430         (WebCore::V8Location::assignAttrGetterCustom):
1431         * bindings/v8/custom/V8NodeCustom.cpp:
1432         (WebCore::V8Node::insertBeforeMethodCustom):
1433         (WebCore::V8Node::replaceChildMethodCustom):
1434         (WebCore::V8Node::removeChildMethodCustom):
1435         (WebCore::V8Node::appendChildMethodCustom):
1436         * bindings/v8/custom/V8NodeListCustom.cpp:
1437         (WebCore::V8NodeList::opaqueRootForGC):
1438         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1439         (WebCore::toWebGLUniformLocation):
1440         (WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
1441         (WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
1442         (WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
1443         (WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
1444         (WebCore::vertexAttribAndUniformHelperf):
1445         (WebCore::uniformHelperi):
1446         (WebCore::uniformMatrixHelper):
1447         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1448         (WebCore::isDocumentType):
1449         (WebCore::V8XMLHttpRequest::sendMethodCustom):
1450
1451 2013-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1452
1453         Unreviewed, rolling out r145802.
1454         http://trac.webkit.org/changeset/145802
1455         https://bugs.webkit.org/show_bug.cgi?id=112444
1456
1457         This broke Chrome. (Requested by marja____ on #webkit).
1458
1459         * bindings/scripts/CodeGeneratorV8.pm:
1460         (GenerateHeader):
1461         (GenerateDomainSafeFunctionGetter):
1462         (GenerateNormalAttrSetter):
1463         (GenerateParametersCheckExpression):
1464         (GenerateParametersCheck):
1465         (GenerateImplementation):
1466         (JSValueToNative):
1467         (CreateCustomSignature):
1468         * bindings/scripts/test/V8/V8Float64Array.cpp:
1469         (WebCore::Float64ArrayV8Internal::fooMethod):
1470         (WebCore::ConfigureV8Float64ArrayTemplate):
1471         (WebCore::V8Float64Array::GetTemplate):
1472         (WebCore::V8Float64Array::HasInstance):
1473         * bindings/scripts/test/V8/V8Float64Array.h:
1474         (V8Float64Array):
1475         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1476         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
1477         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
1478         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1479         (WebCore::V8TestActiveDOMObject::GetTemplate):
1480         (WebCore::V8TestActiveDOMObject::HasInstance):
1481         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1482         (V8TestActiveDOMObject):
1483         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1484         (WebCore::V8TestCustomNamedGetter::GetTemplate):
1485         (WebCore::V8TestCustomNamedGetter::HasInstance):
1486         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1487         (V8TestCustomNamedGetter):
1488         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1489         (WebCore::V8TestEventConstructor::GetTemplate):
1490         (WebCore::V8TestEventConstructor::HasInstance):
1491         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1492         (V8TestEventConstructor):
1493         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1494         (WebCore::TestEventTargetV8Internal::dispatchEventMethod):
1495         (WebCore::ConfigureV8TestEventTargetTemplate):
1496         (WebCore::V8TestEventTarget::GetTemplate):
1497         (WebCore::V8TestEventTarget::HasInstance):
1498         * bindings/scripts/test/V8/V8TestEventTarget.h:
1499         (V8TestEventTarget):
1500         * bindings/scripts/test/V8/V8TestException.cpp:
1501         (WebCore::V8TestException::GetTemplate):
1502         (WebCore::V8TestException::HasInstance):
1503         * bindings/scripts/test/V8/V8TestException.h:
1504         (V8TestException):
1505         * bindings/scripts/test/V8/V8TestInterface.cpp:
1506         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
1507         (WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
1508         (WebCore::ConfigureV8TestInterfaceTemplate):
1509         (WebCore::V8TestInterface::GetTemplate):
1510         (WebCore::V8TestInterface::HasInstance):
1511         * bindings/scripts/test/V8/V8TestInterface.h:
1512         (V8TestInterface):
1513         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1514         (WebCore::V8TestMediaQueryListListener::GetTemplate):
1515         (WebCore::V8TestMediaQueryListListener::HasInstance):
1516         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1517         (V8TestMediaQueryListListener):
1518         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1519         (WebCore::V8TestNamedConstructor::GetTemplate):
1520         (WebCore::V8TestNamedConstructor::HasInstance):
1521         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1522         (V8TestNamedConstructor):
1523         * bindings/scripts/test/V8/V8TestNode.cpp:
1524         (WebCore::V8TestNode::GetTemplate):
1525         (WebCore::V8TestNode::HasInstance):
1526         * bindings/scripts/test/V8/V8TestNode.h:
1527         (V8TestNode):
1528         * bindings/scripts/test/V8/V8TestObj.cpp:
1529         (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
1530         (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
1531         (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
1532         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
1533         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
1534         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
1535         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
1536         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
1537         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
1538         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
1539         (WebCore::TestObjV8Internal::mutablePointAttrSetter):
1540         (WebCore::TestObjV8Internal::immutablePointAttrSetter):
1541         (WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
1542         (WebCore::TestObjV8Internal::longMethodWithArgsMethod):
1543         (WebCore::TestObjV8Internal::objMethodWithArgsMethod):
1544         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
1545         (WebCore::TestObjV8Internal::overloadedMethod1Method):
1546         (WebCore::TestObjV8Internal::overloadedMethod2Method):
1547         (WebCore::TestObjV8Internal::overloadedMethod8Method):
1548         (WebCore::TestObjV8Internal::overloadedMethodMethod):
1549         (WebCore::TestObjV8Internal::convert1Method):
1550         (WebCore::TestObjV8Internal::convert2Method):
1551         (WebCore::TestObjV8Internal::convert4Method):
1552         (WebCore::TestObjV8Internal::convert5Method):
1553         (WebCore::TestObjV8Internal::variadicNodeMethodMethod):
1554         (WebCore::ConfigureV8TestObjTemplate):
1555         (WebCore::V8TestObj::GetTemplate):
1556         (WebCore::V8TestObj::HasInstance):
1557         * bindings/scripts/test/V8/V8TestObj.h:
1558         (V8TestObj):
1559         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1560         (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
1561         (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
1562         (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
1563         (WebCore::TestOverloadedConstructorsV8Internal::constructor):
1564         (WebCore::V8TestOverloadedConstructors::GetTemplate):
1565         (WebCore::V8TestOverloadedConstructors::HasInstance):
1566         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
1567         (V8TestOverloadedConstructors):
1568         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1569         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
1570         (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
1571         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1572         (V8TestSerializedScriptValueInterface):
1573         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
1574         (WebCore::TestTypedefsV8Internal::funcMethod):
1575         (WebCore::ConfigureV8TestTypedefsTemplate):
1576         (WebCore::V8TestTypedefs::GetTemplate):
1577         (WebCore::V8TestTypedefs::HasInstance):
1578         * bindings/scripts/test/V8/V8TestTypedefs.h:
1579         (V8TestTypedefs):
1580         * bindings/v8/Dictionary.cpp:
1581         (WebCore::Dictionary::get):
1582         * bindings/v8/ScriptProfiler.cpp:
1583         (WebCore::ScriptProfiler::visitNodeWrappers):
1584         * bindings/v8/SerializedScriptValue.cpp:
1585         * bindings/v8/V8AdaptorFunction.cpp:
1586         (WebCore::V8AdaptorFunction::getTemplate):
1587         * bindings/v8/V8Binding.cpp:
1588         (WebCore::toDOMStringList):
1589         (WebCore::toXPathNSResolver):
1590         * bindings/v8/V8Binding.h:
1591         (WebCore::toRefPtrNativeArray):
1592         (WebCore):
1593         * bindings/v8/V8Collection.cpp:
1594         (WebCore::toOptionsCollectionSetter):
1595         * bindings/v8/V8GCController.cpp:
1596         * bindings/v8/V8NPObject.cpp:
1597         (WebCore::npObjectInvokeImpl):
1598         * bindings/v8/V8PerIsolateData.cpp:
1599         (WebCore::V8PerIsolateData::reportMemoryUsage):
1600         (WebCore::V8PerIsolateData::hasPrivateTemplate):
1601         (WebCore::V8PerIsolateData::privateTemplate):
1602         (WebCore::V8PerIsolateData::rawTemplate):
1603         (WebCore::V8PerIsolateData::hasInstance):
1604         * bindings/v8/V8PerIsolateData.h:
1605         (WebCore::V8PerIsolateData::rawTemplateMap):
1606         (WebCore::V8PerIsolateData::templateMap):
1607         (V8PerIsolateData):
1608         * bindings/v8/V8Utilities.cpp:
1609         (WebCore::extractTransferables):
1610         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1611         (WebCore::constructWebGLArray):
1612         (WebCore::setWebGLArrayHelper):
1613         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
1614         (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
1615         * bindings/v8/custom/V8BlobCustom.cpp:
1616         (WebCore::V8Blob::constructorCustom):
1617         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
1618         (WebCore::toCanvasStyle):
1619         * bindings/v8/custom/V8ClipboardCustom.cpp:
1620         (WebCore::V8Clipboard::setDragImageMethodCustom):
1621         * bindings/v8/custom/V8CryptoCustom.cpp:
1622         (WebCore::V8Crypto::getRandomValuesMethodCustom):
1623         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
1624         (WebCore::V8DOMFormData::constructorCustom):
1625         (WebCore::V8DOMFormData::appendMethodCustom):
1626         * bindings/v8/custom/V8DataViewCustom.cpp:
1627         (WebCore::V8DataView::constructorCustom):
1628         * bindings/v8/custom/V8DocumentCustom.cpp:
1629         (WebCore::V8Document::evaluateMethodCustom):
1630         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
1631         (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
1632         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1633         (WebCore::V8HTMLOptionsCollection::addMethodCustom):
1634         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
1635         (WebCore::removeElement):
1636         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1637         (WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
1638         (WebCore::V8InjectedScriptHost::typeMethodCustom):
1639         (WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
1640         * bindings/v8/custom/V8LocationCustom.cpp:
1641         (WebCore::V8Location::reloadAttrGetterCustom):
1642         (WebCore::V8Location::replaceAttrGetterCustom):
1643         (WebCore::V8Location::assignAttrGetterCustom):
1644         * bindings/v8/custom/V8NodeCustom.cpp:
1645         (WebCore::V8Node::insertBeforeMethodCustom):
1646         (WebCore::V8Node::replaceChildMethodCustom):
1647         (WebCore::V8Node::removeChildMethodCustom):
1648         (WebCore::V8Node::appendChildMethodCustom):
1649         * bindings/v8/custom/V8NodeListCustom.cpp:
1650         (WebCore::V8NodeList::opaqueRootForGC):
1651         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1652         (WebCore::toWebGLUniformLocation):
1653         (WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
1654         (WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
1655         (WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
1656         (WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
1657         (WebCore::vertexAttribAndUniformHelperf):
1658         (WebCore::uniformHelperi):
1659         (WebCore::uniformMatrixHelper):
1660         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1661         (WebCore::isDocumentType):
1662         (WebCore::V8XMLHttpRequest::sendMethodCustom):
1663
1664 2013-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1665
1666         Unreviewed, rolling out r145896.
1667         http://trac.webkit.org/changeset/145896
1668         https://bugs.webkit.org/show_bug.cgi?id=112443
1669
1670         Chrome broken by r145802 and this builds on top of it.
1671         (Requested by marja____ on #webkit).
1672
1673         * bindings/scripts/CodeGeneratorV8.pm:
1674         (GenerateHeader):
1675         (GenerateNormalAttrGetterCallback):
1676         (GenerateNormalAttrGetter):
1677         (GenerateNormalAttrSetterCallback):
1678         (GenerateNormalAttrSetter):
1679         (GenerateNamedConstructor):
1680         (GenerateBatchedAttributeData):
1681         (GenerateSingleBatchedAttribute):
1682         (GenerateImplementation):
1683         (GenerateCallbackImplementation):
1684         (GenerateFunctionCallString):
1685         (CreateCustomSignature):
1686         (NativeToJSValue):
1687         * bindings/scripts/test/V8/V8Float64Array.cpp:
1688         (WebCore::ConfigureV8Float64ArrayTemplate):
1689         (WebCore::V8Float64Array::GetTemplate):
1690         (WebCore::V8Float64Array::HasInstance):
1691         * bindings/scripts/test/V8/V8Float64Array.h:
1692         (WebCore):
1693         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1694         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1695         (WebCore::V8TestActiveDOMObject::GetTemplate):
1696         (WebCore::V8TestActiveDOMObject::HasInstance):
1697         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1698         (WebCore):
1699         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1700         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
1701         (WebCore::V8TestCustomNamedGetter::GetTemplate):
1702         (WebCore::V8TestCustomNamedGetter::HasInstance):
1703         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1704         (WebCore):
1705         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1706         (WebCore):
1707         (WebCore::ConfigureV8TestEventConstructorTemplate):
1708         (WebCore::V8TestEventConstructor::GetTemplate):
1709         (WebCore::V8TestEventConstructor::HasInstance):
1710         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1711         (WebCore):
1712         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1713         (WebCore::ConfigureV8TestEventTargetTemplate):
1714         (WebCore::V8TestEventTarget::GetTemplate):
1715         (WebCore::V8TestEventTarget::HasInstance):
1716         * bindings/scripts/test/V8/V8TestEventTarget.h:
1717         (WebCore):
1718         * bindings/scripts/test/V8/V8TestException.cpp:
1719         (WebCore::ConfigureV8TestExceptionTemplate):
1720         (WebCore::V8TestException::GetTemplate):
1721         (WebCore::V8TestException::HasInstance):
1722         * bindings/scripts/test/V8/V8TestException.h:
1723         (WebCore):
1724         * bindings/scripts/test/V8/V8TestInterface.cpp:
1725         (TestInterfaceV8Internal):
1726         (WebCore):
1727         (WebCore::ConfigureV8TestInterfaceTemplate):
1728         (WebCore::V8TestInterface::GetTemplate):
1729         (WebCore::V8TestInterface::HasInstance):
1730         * bindings/scripts/test/V8/V8TestInterface.h:
1731         (WebCore):
1732         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1733         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
1734         (WebCore::V8TestMediaQueryListListener::GetTemplate):
1735         (WebCore::V8TestMediaQueryListListener::HasInstance):
1736         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1737         (WebCore):
1738         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1739         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
1740         (WebCore::ConfigureV8TestNamedConstructorTemplate):
1741         (WebCore::V8TestNamedConstructor::GetTemplate):
1742         (WebCore::V8TestNamedConstructor::HasInstance):
1743         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1744         (WebCore):
1745         * bindings/scripts/test/V8/V8TestNode.cpp:
1746         (WebCore::ConfigureV8TestNodeTemplate):
1747         (WebCore::V8TestNode::GetTemplate):
1748         (WebCore::V8TestNode::HasInstance):
1749         * bindings/scripts/test/V8/V8TestNode.h:
1750         (WebCore):
1751         * bindings/scripts/test/V8/V8TestObj.cpp:
1752         (TestObjV8Internal):
1753         (WebCore):
1754         (WebCore::ConfigureV8TestObjTemplate):
1755         (WebCore::V8TestObj::GetTemplate):
1756         (WebCore::V8TestObj::HasInstance):
1757         * bindings/scripts/test/V8/V8TestObj.h:
1758         (WebCore):
1759         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1760         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
1761         (WebCore::V8TestOverloadedConstructors::GetTemplate):
1762         (WebCore::V8TestOverloadedConstructors::HasInstance):
1763         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
1764         (WebCore):
1765         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1766         (WebCore):
1767         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
1768         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
1769         (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
1770         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1771         (WebCore):
1772         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
1773         (WebCore):
1774         (WebCore::ConfigureV8TestTypedefsTemplate):
1775         (WebCore::V8TestTypedefs::GetTemplate):
1776         (WebCore::V8TestTypedefs::HasInstance):
1777         * bindings/scripts/test/V8/V8TestTypedefs.h:
1778         (WebCore):
1779         * bindings/v8/DOMDataStore.h:
1780         (DOMDataStore):
1781         * bindings/v8/V8DOMConfiguration.cpp:
1782         * bindings/v8/V8DOMConfiguration.h:
1783         (V8DOMConfiguration):
1784         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1785         * bindings/v8/custom/V8EventTargetCustom.cpp:
1786         * bindings/v8/custom/V8IDBAnyCustom.cpp:
1787         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
1788         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1789
1790 2013-03-15  Alberto Garcia  <agarcia@igalia.com>
1791
1792         [BlackBerry] Remove PlatformSupport
1793         https://bugs.webkit.org/show_bug.cgi?id=112438
1794
1795         Reviewed by Rob Buis.
1796
1797         This class only contains getFontFamilyForCharacters(), which was
1798         moved from PlatformSupport to FontCache in r129257.
1799
1800         This patch does the same for the BlackBerry port.
1801
1802         * platform/graphics/FontCache.h:
1803         (FontCache):
1804         * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
1805         (WebCore::FontCache::getFontFamilyForCharacters):
1806         (WebCore):
1807         (WebCore::FontCache::getFontDataForCharacters):
1808         * platform/graphics/blackberry/PlatformSupport.cpp: Removed.
1809         * platform/graphics/blackberry/PlatformSupport.h: Removed.
1810
1811 2013-03-15  Alberto Garcia  <agarcia@igalia.com>
1812
1813         [BlackBerry] FontPlatformData: remove TextOrientation parameter
1814         https://bugs.webkit.org/show_bug.cgi?id=112135
1815
1816         Reviewed by Rob Buis.
1817
1818         I forgot to remove the #include "TextOrientation.h" line as
1819         well. This file no longer exists.
1820
1821         * platform/graphics/blackberry/FontCustomPlatformData.h:
1822
1823 2013-03-15  Sankeerth V S  <sankeerth.vs@samsung.com>
1824
1825         DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
1826         https://bugs.webkit.org/show_bug.cgi?id=112404
1827
1828         Reviewed by Vsevolod Vlasov.
1829
1830         No new tests as this is a UI related change.
1831
1832         While deleting the entries of the data grid by clicking on 'Delete'
1833         status bar button, deletion of selected node should trigger selection of
1834         next possible (backward/forward) DataGridNode.
1835
1836         * inspector/front-end/DOMStorageItemsView.js:
1837         (WebInspector.DOMStorageItemsView.prototype._deleteButtonClicked):
1838         * inspector/front-end/DataGrid.js:
1839         (WebInspector.DataGrid.prototype._keyDown):
1840         (WebInspector.DataGrid.prototype.changeNodeAfterDeletion):
1841
1842 2013-03-15  Ilya Tikhonovsky  <loislo@chromium.org>
1843
1844         Web Inspector: Flame Chart. Draw timeline grid over flame chart items.
1845         https://bugs.webkit.org/show_bug.cgi?id=112439
1846
1847         Reviewed by Pavel Feldman.
1848
1849         I've used WebInspector.TimelineGrid
1850
1851         * inspector/front-end/FlameChart.js:
1852         (WebInspector.FlameChart):
1853         (WebInspector.FlameChart.Calculator):
1854         (WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
1855         (WebInspector.FlameChart.Calculator.prototype.computePosition):
1856         (WebInspector.FlameChart.Calculator.prototype.formatTime):
1857         (WebInspector.FlameChart.Calculator.prototype.maximumBoundary):
1858         (WebInspector.FlameChart.Calculator.prototype.minimumBoundary):
1859         (WebInspector.FlameChart.Calculator.prototype.boundarySpan):
1860         (WebInspector.FlameChart.prototype.update):
1861
1862 2013-03-15  Marja Hölttä  <marja@chromium.org>
1863
1864         [V8] Add machinery for generating specialized bindings for the main world
1865         https://bugs.webkit.org/show_bug.cgi?id=111417
1866
1867         Reviewed by Kentaro Hara.
1868
1869         The new specialized bindings will be faster, because they don't need to
1870         do the "main world, isolated world or a worker" check, but can right
1871         away assume that we're in the main world.
1872
1873         This patch generates main world bindings for getters and setters.
1874
1875         No new tests (updated existing bindings tests).
1876
1877         * bindings/scripts/CodeGeneratorV8.pm:
1878         (GenerateHeader):
1879         (GenerateNormalAttrGetterCallback):
1880         (GenerateNormalAttrGetter):
1881         (GenerateNormalAttrSetterCallback):
1882         (GenerateNormalAttrSetter):
1883         (GenerateNamedConstructor):
1884         (GenerateBatchedAttributeData):
1885         (GenerateSingleBatchedAttribute):
1886         (GenerateImplementation):
1887         (GenerateCallbackImplementation):
1888         (GenerateFunctionCallString):
1889         (CreateCustomSignature):
1890         (NativeToJSValue):
1891         * bindings/scripts/test/V8/V8Float64Array.cpp:
1892         (WebCore::ConfigureV8Float64ArrayTemplate):
1893         (WebCore::V8Float64Array::GetTemplate):
1894         (WebCore::V8Float64Array::HasInstance):
1895         * bindings/scripts/test/V8/V8Float64Array.h:
1896         (WebCore::toV8ForMainWorld):
1897         (WebCore):
1898         (WebCore::toV8FastForMainWorld):
1899         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1900         (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterForMainWorld):
1901         (TestActiveDOMObjectV8Internal):
1902         (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterCallbackForMainWorld):
1903         (WebCore):
1904         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1905         (WebCore::V8TestActiveDOMObject::GetTemplate):
1906         (WebCore::V8TestActiveDOMObject::HasInstance):
1907         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1908         (WebCore::toV8ForMainWorld):
1909         (WebCore):
1910         (WebCore::toV8FastForMainWorld):
1911         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1912         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
1913         (WebCore::V8TestCustomNamedGetter::GetTemplate):
1914         (WebCore::V8TestCustomNamedGetter::HasInstance):
1915         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1916         (WebCore::toV8ForMainWorld):
1917         (WebCore):
1918         (WebCore::toV8FastForMainWorld):
1919         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1920         (WebCore::TestEventConstructorV8Internal::attr1AttrGetterForMainWorld):
1921         (TestEventConstructorV8Internal):
1922         (WebCore::TestEventConstructorV8Internal::attr1AttrGetterCallbackForMainWorld):
1923         (WebCore::TestEventConstructorV8Internal::attr2AttrGetterForMainWorld):
1924         (WebCore::TestEventConstructorV8Internal::attr2AttrGetterCallbackForMainWorld):
1925         (WebCore):
1926         (WebCore::ConfigureV8TestEventConstructorTemplate):
1927         (WebCore::V8TestEventConstructor::GetTemplate):
1928         (WebCore::V8TestEventConstructor::HasInstance):
1929         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1930         (WebCore::toV8ForMainWorld):
1931         (WebCore):
1932         (WebCore::toV8FastForMainWorld):
1933         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1934         (WebCore::ConfigureV8TestEventTargetTemplate):
1935         (WebCore::V8TestEventTarget::GetTemplate):
1936         (WebCore::V8TestEventTarget::HasInstance):
1937         * bindings/scripts/test/V8/V8TestEventTarget.h:
1938         (WebCore::toV8ForMainWorld):
1939         (WebCore):
1940         (WebCore::toV8FastForMainWorld):
1941         * bindings/scripts/test/V8/V8TestException.cpp:
1942         (WebCore::TestExceptionV8Internal::nameAttrGetterForMainWorld):
1943         (TestExceptionV8Internal):
1944         (WebCore::TestExceptionV8Internal::nameAttrGetterCallbackForMainWorld):
1945         (WebCore):
1946         (WebCore::ConfigureV8TestExceptionTemplate):
1947         (WebCore::V8TestException::GetTemplate):
1948         (WebCore::V8TestException::HasInstance):
1949         * bindings/scripts/test/V8/V8TestException.h:
1950         (WebCore::toV8ForMainWorld):
1951         (WebCore):
1952         (WebCore::toV8FastForMainWorld):
1953         * bindings/scripts/test/V8/V8TestInterface.cpp:
1954         (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterForMainWorld):
1955         (TestInterfaceV8Internal):
1956         (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterCallbackForMainWorld):
1957         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterForMainWorld):
1958         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterCallbackForMainWorld):
1959         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterForMainWorld):
1960         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterCallbackForMainWorld):
1961         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterForMainWorld):
1962         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterCallbackForMainWorld):
1963         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterForMainWorld):
1964         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterCallbackForMainWorld):
1965         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterForMainWorld):
1966         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterCallbackForMainWorld):
1967         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetterCallbackForMainWorld):
1968         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetterCallbackForMainWorld):
1969         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterForMainWorld):
1970         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterCallbackForMainWorld):
1971         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterForMainWorld):
1972         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterCallbackForMainWorld):
1973         (WebCore):
1974         (WebCore::ConfigureV8TestInterfaceTemplate):
1975         (WebCore::V8TestInterface::GetTemplate):
1976         (WebCore::V8TestInterface::HasInstance):
1977         * bindings/scripts/test/V8/V8TestInterface.h:
1978         (WebCore::toV8ForMainWorld):
1979         (WebCore):
1980         (WebCore::toV8FastForMainWorld):
1981         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1982         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
1983         (WebCore::V8TestMediaQueryListListener::GetTemplate):
1984         (WebCore::V8TestMediaQueryListListener::HasInstance):
1985         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1986         (WebCore::toV8ForMainWorld):
1987         (WebCore):
1988         (WebCore::toV8FastForMainWorld):
1989         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1990         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
1991         (WebCore::ConfigureV8TestNamedConstructorTemplate):
1992         (WebCore::V8TestNamedConstructor::GetTemplate):
1993         (WebCore::V8TestNamedConstructor::HasInstance):
1994         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1995         (WebCore::toV8ForMainWorld):
1996         (WebCore):
1997         (WebCore::toV8FastForMainWorld):
1998         * bindings/scripts/test/V8/V8TestNode.cpp:
1999         (WebCore::ConfigureV8TestNodeTemplate):
2000         (WebCore::V8TestNode::GetTemplate):
2001         (WebCore::V8TestNode::HasInstance):
2002         * bindings/scripts/test/V8/V8TestNode.h:
2003         (WebCore::toV8ForMainWorld):
2004         (WebCore):
2005         (WebCore::toV8FastForMainWorld):
2006         * bindings/scripts/test/V8/V8TestObj.cpp:
2007         (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterForMainWorld):
2008         (TestObjV8Internal):
2009         (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterCallbackForMainWorld):
2010         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterForMainWorld):
2011         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterCallbackForMainWorld):
2012         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterForMainWorld):
2013         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterCallbackForMainWorld):
2014         (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterForMainWorld):
2015         (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterCallbackForMainWorld):
2016         (WebCore::TestObjV8Internal::staticStringAttrAttrGetterForMainWorld):
2017         (WebCore::TestObjV8Internal::staticStringAttrAttrGetterCallbackForMainWorld):
2018         (WebCore::TestObjV8Internal::staticStringAttrAttrSetterForMainWorld):
2019         (WebCore::TestObjV8Internal::staticStringAttrAttrSetterCallbackForMainWorld):
2020         (WebCore::TestObjV8Internal::enumAttrAttrGetterForMainWorld):
2021         (WebCore::TestObjV8Internal::enumAttrAttrGetterCallbackForMainWorld):
2022         (WebCore::TestObjV8Internal::enumAttrAttrSetterForMainWorld):
2023         (WebCore::TestObjV8Internal::enumAttrAttrSetterCallbackForMainWorld):
2024         (WebCore::TestObjV8Internal::shortAttrAttrGetterForMainWorld):
2025         (WebCore::TestObjV8Internal::shortAttrAttrGetterCallbackForMainWorld):
2026         (WebCore::TestObjV8Internal::shortAttrAttrSetterForMainWorld):
2027         (WebCore::TestObjV8Internal::shortAttrAttrSetterCallbackForMainWorld):
2028         (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterForMainWorld):
2029         (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterCallbackForMainWorld):
2030         (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterForMainWorld):
2031         (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterCallbackForMainWorld):
2032         (WebCore::TestObjV8Internal::longAttrAttrGetterForMainWorld):
2033         (WebCore::TestObjV8Internal::longAttrAttrGetterCallbackForMainWorld):
2034         (WebCore::TestObjV8Internal::longAttrAttrSetterForMainWorld):
2035         (WebCore::TestObjV8Internal::longAttrAttrSetterCallbackForMainWorld):
2036         (WebCore::TestObjV8Internal::longLongAttrAttrGetterForMainWorld):
2037         (WebCore::TestObjV8Internal::longLongAttrAttrGetterCallbackForMainWorld):
2038         (WebCore::TestObjV8Internal::longLongAttrAttrSetterForMainWorld):
2039         (WebCore::TestObjV8Internal::longLongAttrAttrSetterCallbackForMainWorld):
2040         (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterForMainWorld):
2041         (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterCallbackForMainWorld):
2042         (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterForMainWorld):
2043         (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterCallbackForMainWorld):
2044         (WebCore::TestObjV8Internal::stringAttrAttrGetterForMainWorld):
2045         (WebCore::TestObjV8Internal::stringAttrAttrGetterCallbackForMainWorld):
2046         (WebCore::TestObjV8Internal::stringAttrAttrSetterForMainWorld):
2047         (WebCore::TestObjV8Internal::stringAttrAttrSetterCallbackForMainWorld):
2048         (WebCore::TestObjV8Internal::testObjAttrAttrGetterForMainWorld):
2049         (WebCore::TestObjV8Internal::testObjAttrAttrGetterCallbackForMainWorld):
2050         (WebCore::TestObjV8Internal::testObjAttrAttrSetterForMainWorld):
2051         (WebCore::TestObjV8Internal::testObjAttrAttrSetterCallbackForMainWorld):
2052         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetterForMainWorld):
2053         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetterCallbackForMainWorld):
2054         (WebCore::TestObjV8Internal::XMLObjAttrAttrSetterForMainWorld):
2055         (WebCore::TestObjV8Internal::XMLObjAttrAttrSetterCallbackForMainWorld):
2056         (WebCore::TestObjV8Internal::createAttrGetterForMainWorld):
2057         (WebCore::TestObjV8Internal::createAttrGetterCallbackForMainWorld):
2058         (WebCore::TestObjV8Internal::createAttrSetterForMainWorld):
2059         (WebCore::TestObjV8Internal::createAttrSetterCallbackForMainWorld):
2060         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterForMainWorld):
2061         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterCallbackForMainWorld):
2062         (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterForMainWorld):
2063         (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterCallbackForMainWorld):
2064         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterForMainWorld):
2065         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterCallbackForMainWorld):
2066         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetter):
2067         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterForMainWorld):
2068         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterCallbackForMainWorld):
2069         (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterForMainWorld):
2070         (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterCallbackForMainWorld):
2071         (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterForMainWorld):
2072         (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterCallbackForMainWorld):
2073         (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterForMainWorld):
2074         (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterCallbackForMainWorld):
2075         (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterForMainWorld):
2076         (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterCallbackForMainWorld):
2077         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterForMainWorld):
2078         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterCallbackForMainWorld):
2079         (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterForMainWorld):
2080         (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterCallbackForMainWorld):
2081         (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterForMainWorld):
2082         (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterCallbackForMainWorld):
2083         (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterForMainWorld):
2084         (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterCallbackForMainWorld):
2085         (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterForMainWorld):
2086         (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterCallbackForMainWorld):
2087         (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterForMainWorld):
2088         (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterCallbackForMainWorld):
2089         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterForMainWorld):
2090         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterCallbackForMainWorld):
2091         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterForMainWorld):
2092         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterCallbackForMainWorld):
2093         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetterForMainWorld):
2094         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetterCallbackForMainWorld):
2095         (WebCore::TestObjV8Internal::typedArrayAttrAttrSetterForMainWorld):
2096         (WebCore::TestObjV8Internal::typedArrayAttrAttrSetterCallbackForMainWorld):
2097         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterForMainWorld):
2098         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterCallbackForMainWorld):
2099         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterForMainWorld):
2100         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterCallbackForMainWorld):
2101         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterForMainWorld):
2102         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterCallbackForMainWorld):
2103         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterForMainWorld):
2104         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterCallbackForMainWorld):
2105         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterForMainWorld):
2106         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterCallbackForMainWorld):
2107         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterForMainWorld):
2108         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterCallbackForMainWorld):
2109         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterForMainWorld):
2110         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterCallbackForMainWorld):
2111         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterForMainWorld):
2112         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterCallbackForMainWorld):
2113         (WebCore::TestObjV8Internal::customAttrAttrGetterCallbackForMainWorld):
2114         (WebCore::TestObjV8Internal::customAttrAttrSetterCallbackForMainWorld):
2115         (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterForMainWorld):
2116         (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterCallbackForMainWorld):
2117         (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterForMainWorld):
2118         (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterCallbackForMainWorld):
2119         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterForMainWorld):
2120         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterCallbackForMainWorld):
2121         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterForMainWorld):
2122         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterCallbackForMainWorld):
2123         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterForMainWorld):
2124         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterCallbackForMainWorld):
2125         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterForMainWorld):
2126         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterCallbackForMainWorld):
2127         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterForMainWorld):
2128         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterCallbackForMainWorld):
2129         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterForMainWorld):
2130         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterCallbackForMainWorld):
2131         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterForMainWorld):
2132         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterCallbackForMainWorld):
2133         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterForMainWorld):
2134         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterCallbackForMainWorld):
2135         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterForMainWorld):
2136         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterCallbackForMainWorld):
2137         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterForMainWorld):
2138         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterCallbackForMainWorld):
2139         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterForMainWorld):
2140         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterCallbackForMainWorld):
2141         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterForMainWorld):
2142         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterCallbackForMainWorld):
2143         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterForMainWorld):
2144         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterCallbackForMainWorld):
2145         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterForMainWorld):
2146         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterCallbackForMainWorld):
2147         (WebCore::TestObjV8Internal::conditionalAttr1AttrGetterForMainWorld):
2148         (WebCore::TestObjV8Internal::conditionalAttr1AttrGetterCallbackForMainWorld):
2149         (WebCore::TestObjV8Internal::conditionalAttr1AttrSetterForMainWorld):
2150         (WebCore::TestObjV8Internal::conditionalAttr1AttrSetterCallbackForMainWorld):
2151         (WebCore::TestObjV8Internal::conditionalAttr2AttrGetterForMainWorld):
2152         (WebCore::TestObjV8Internal::conditionalAttr2AttrGetterCallbackForMainWorld):
2153         (WebCore::TestObjV8Internal::conditionalAttr2AttrSetterForMainWorld):
2154         (WebCore::TestObjV8Internal::conditionalAttr2AttrSetterCallbackForMainWorld):
2155         (WebCore::TestObjV8Internal::conditionalAttr3AttrGetterForMainWorld):
2156         (WebCore::TestObjV8Internal::conditionalAttr3AttrGetterCallbackForMainWorld):
2157         (WebCore::TestObjV8Internal::conditionalAttr3AttrSetterForMainWorld):
2158         (WebCore::TestObjV8Internal::conditionalAttr3AttrSetterCallbackForMainWorld):
2159         (WebCore::TestObjV8Internal::cachedAttribute1AttrGetterForMainWorld):
2160         (WebCore::TestObjV8Internal::cachedAttribute1AttrGetterCallbackForMainWorld):
2161         (WebCore::TestObjV8Internal::cachedAttribute2AttrGetterForMainWorld):
2162         (WebCore::TestObjV8Internal::cachedAttribute2AttrGetterCallbackForMainWorld):
2163         (WebCore::TestObjV8Internal::anyAttributeAttrGetterForMainWorld):
2164         (WebCore::TestObjV8Internal::anyAttributeAttrGetterCallbackForMainWorld):
2165         (WebCore::TestObjV8Internal::anyAttributeAttrSetterForMainWorld):
2166         (WebCore::TestObjV8Internal::anyAttributeAttrSetterCallbackForMainWorld):
2167         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterForMainWorld):
2168         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterCallbackForMainWorld):
2169         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterForMainWorld):
2170         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterCallbackForMainWorld):
2171         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterForMainWorld):
2172         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterCallbackForMainWorld):
2173         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterForMainWorld):
2174         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterCallbackForMainWorld):
2175         (WebCore::TestObjV8Internal::floatArrayAttrGetterForMainWorld):
2176         (WebCore::TestObjV8Internal::floatArrayAttrGetterCallbackForMainWorld):
2177         (WebCore::TestObjV8Internal::floatArrayAttrSetterForMainWorld):
2178         (WebCore::TestObjV8Internal::floatArrayAttrSetterCallbackForMainWorld):
2179         (WebCore::TestObjV8Internal::doubleArrayAttrGetterForMainWorld):
2180         (WebCore::TestObjV8Internal::doubleArrayAttrGetterCallbackForMainWorld):
2181         (WebCore::TestObjV8Internal::doubleArrayAttrSetterForMainWorld):
2182         (WebCore::TestObjV8Internal::doubleArrayAttrSetterCallbackForMainWorld):
2183         (WebCore::TestObjV8Internal::contentDocumentAttrGetterForMainWorld):
2184         (WebCore::TestObjV8Internal::contentDocumentAttrGetterCallbackForMainWorld):
2185         (WebCore::TestObjV8Internal::mutablePointAttrGetterForMainWorld):
2186         (WebCore::TestObjV8Internal::mutablePointAttrGetterCallbackForMainWorld):
2187         (WebCore::TestObjV8Internal::mutablePointAttrSetterForMainWorld):
2188         (WebCore::TestObjV8Internal::mutablePointAttrSetterCallbackForMainWorld):
2189         (WebCore::TestObjV8Internal::immutablePointAttrGetterForMainWorld):
2190         (WebCore::TestObjV8Internal::immutablePointAttrGetterCallbackForMainWorld):
2191         (WebCore::TestObjV8Internal::immutablePointAttrSetterForMainWorld):
2192         (WebCore::TestObjV8Internal::immutablePointAttrSetterCallbackForMainWorld):
2193         (WebCore::TestObjV8Internal::strawberryAttrGetterForMainWorld):
2194         (WebCore::TestObjV8Internal::strawberryAttrGetterCallbackForMainWorld):
2195         (WebCore::TestObjV8Internal::strawberryAttrSetterForMainWorld):
2196         (WebCore::TestObjV8Internal::strawberryAttrSetterCallbackForMainWorld):
2197         (WebCore::TestObjV8Internal::strictFloatAttrGetterForMainWorld):
2198         (WebCore::TestObjV8Internal::strictFloatAttrGetterCallbackForMainWorld):
2199         (WebCore::TestObjV8Internal::strictFloatAttrSetterForMainWorld):
2200         (WebCore::TestObjV8Internal::strictFloatAttrSetterCallbackForMainWorld):
2201         (WebCore::TestObjV8Internal::descriptionAttrGetterForMainWorld):
2202         (WebCore::TestObjV8Internal::descriptionAttrGetterCallbackForMainWorld):
2203         (WebCore::TestObjV8Internal::idAttrGetterForMainWorld):
2204         (WebCore::TestObjV8Internal::idAttrGetterCallbackForMainWorld):
2205         (WebCore::TestObjV8Internal::idAttrSetterForMainWorld):
2206         (WebCore::TestObjV8Internal::idAttrSetterCallbackForMainWorld):
2207         (WebCore::TestObjV8Internal::hashAttrGetterForMainWorld):
2208         (WebCore::TestObjV8Internal::hashAttrGetterCallbackForMainWorld):
2209         (WebCore::TestObjV8Internal::replaceableAttributeAttrGetterForMainWorld):
2210         (WebCore::TestObjV8Internal::replaceableAttributeAttrGetterCallbackForMainWorld):
2211         (WebCore):
2212         (WebCore::ConfigureV8TestObjTemplate):
2213         (WebCore::V8TestObj::GetTemplate):
2214         (WebCore::V8TestObj::HasInstance):
2215         * bindings/scripts/test/V8/V8TestObj.h:
2216         (WebCore::toV8ForMainWorld):
2217         (WebCore):
2218         (WebCore::toV8FastForMainWorld):
2219         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
2220         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
2221         (WebCore::V8TestOverloadedConstructors::GetTemplate):
2222         (WebCore::V8TestOverloadedConstructors::HasInstance):
2223         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
2224         (WebCore::toV8ForMainWorld):
2225         (WebCore):
2226         (WebCore::toV8FastForMainWorld):
2227         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2228         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterForMainWorld):
2229         (TestSerializedScriptValueInterfaceV8Internal):
2230         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterCallbackForMainWorld):
2231         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterForMainWorld):
2232         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterCallbackForMainWorld):
2233         (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterForMainWorld):
2234         (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterCallbackForMainWorld):
2235         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterForMainWorld):
2236         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterCallbackForMainWorld):
2237         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterForMainWorld):
2238         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterCallbackForMainWorld):
2239         (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterForMainWorld):
2240         (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterCallbackForMainWorld):
2241         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterForMainWorld):
2242         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterCallbackForMainWorld):
2243         (WebCore):
2244         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
2245         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
2246         (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
2247         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2248         (WebCore::toV8ForMainWorld):
2249         (WebCore):
2250         (WebCore::toV8FastForMainWorld):
2251         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2252         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterForMainWorld):
2253         (TestTypedefsV8Internal):
2254         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterCallbackForMainWorld):
2255         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterForMainWorld):
2256         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterCallbackForMainWorld):
2257         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterForMainWorld):
2258         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterCallbackForMainWorld):
2259         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterForMainWorld):
2260         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterCallbackForMainWorld):
2261         (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterForMainWorld):
2262         (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterCallbackForMainWorld):
2263         (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterForMainWorld):
2264         (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterCallbackForMainWorld):
2265         (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterForMainWorld):
2266         (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterCallbackForMainWorld):
2267         (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterForMainWorld):
2268         (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterCallbackForMainWorld):
2269         (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterForMainWorld):
2270         (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterCallbackForMainWorld):
2271         (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterForMainWorld):
2272         (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterCallbackForMainWorld):
2273         (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterForMainWorld):
2274         (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterCallbackForMainWorld):
2275         (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterForMainWorld):
2276         (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterCallbackForMainWorld):
2277         (WebCore):
2278         (WebCore::ConfigureV8TestTypedefsTemplate):
2279         (WebCore::V8TestTypedefs::GetTemplate):
2280         (WebCore::V8TestTypedefs::HasInstance):
2281         * bindings/scripts/test/V8/V8TestTypedefs.h:
2282         (WebCore::toV8ForMainWorld):
2283         (WebCore):
2284         (WebCore::toV8FastForMainWorld):
2285         * bindings/v8/DOMDataStore.h:
2286         (WebCore::DOMDataStore::getWrapperForMainWorld):
2287         (DOMDataStore):
2288         * bindings/v8/V8DOMConfiguration.cpp:
2289         (WebCore::V8DOMConfiguration::addToTemplate):
2290         (WebCore):
2291         * bindings/v8/V8DOMConfiguration.h:
2292         (V8DOMConfiguration):
2293         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2294         (WebCore::toV8ForMainWorld):
2295         (WebCore):
2296         * bindings/v8/custom/V8EventTargetCustom.cpp:
2297         (WebCore::toV8ForMainWorld):
2298         (WebCore):
2299         * bindings/v8/custom/V8IDBAnyCustom.cpp:
2300         (WebCore::toV8ForMainWorld):
2301         (WebCore):
2302         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
2303         (WebCore::toV8ForMainWorld):
2304         (WebCore):
2305         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2306         (WebCore::toV8ForMainWorld):
2307         (WebCore):
2308
2309 2013-03-15  Ilya Tikhonovsky  <loislo@chromium.org>
2310
2311         Web Inspector: Flame Chart. xOffset calculates incorrectly when chart width less that canvas.width.
2312         https://bugs.webkit.org/show_bug.cgi?id=112423
2313
2314         Reviewed by Yury Semikhatsky.
2315
2316         I extracted xOffset assigment procedure into a separate function.
2317
2318         Drive by fix: size and posion of anchor element was adjusted.
2319         Drive by fix: we will not paint item if it is not visible.
2320
2321         * inspector/front-end/FlameChart.js:
2322         (WebInspector.FlameChart.prototype._maxXOffset):
2323         (WebInspector.FlameChart.prototype._setXOffset):
2324         (WebInspector.FlameChart.prototype._canvasDragging):
2325         (WebInspector.FlameChart.prototype._onMouseMove):
2326         (WebInspector.FlameChart.prototype._adjustXOffset):
2327         (WebInspector.FlameChart.prototype._adjustXScale):
2328         (WebInspector.FlameChart.prototype.draw):
2329
2330 2013-03-15  Noam Rosenthal  <noam@webkit.org>
2331
2332         [Texmap] Change brightness filter to match new spec
2333         https://bugs.webkit.org/show_bug.cgi?id=112422
2334
2335         New filters spec specifies an intercept of 0 instead of 1.
2336         This is already done for the software version in http://trac.webkit.org/changeset/139770.
2337         This patch adjusts the value for the accelerated version.
2338
2339         Reviewed by Allan Sandfeld Jensen.
2340
2341         Filter tests are currently disabled on Qt/GTK/EFL, but they would need to be rebaselined once enabled.
2342
2343         * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
2344
2345 2013-03-15  Jaehun Lim  <ljaehun.lim@samsung.com>
2346
2347         Call release() when a RefPtr is returned.
2348         https://bugs.webkit.org/show_bug.cgi?id=112420
2349
2350         Reviewed by Eric Seidel.
2351
2352         release() should be called on a RefPtr to convert it to a PassRefPtr.
2353
2354         No new tests needed, no behavior changes.
2355
2356         * css/CSSParser.cpp:
2357         (WebCore::CSSParser::parseImageResolution):
2358         (WebCore::CSSParser::parseImageSet):
2359
2360 2013-03-15  Eugene Klyuchnikov  <eustas@chromium.org>
2361
2362         Web Inspector: [Network] InitiatorComparator is not reflexive/antisymmetric.
2363         https://bugs.webkit.org/show_bug.cgi?id=112341
2364
2365         Reviewed by Vsevolod Vlasov.
2366
2367         When both objects do not have initiator: f(a, b) = f(b, a) = -1
2368         Furthermore: redirected responses are mixed with "other".
2369
2370         * inspector/front-end/NetworkPanel.js:
2371         (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
2372         Remember "displayed" initiator type.
2373         (WebInspector.NetworkDataGridNode.InitiatorComparator):
2374         Recall "diaplayed" initiator type for more precise comparison.
2375
2376 2013-03-15  Andrey Kosyakov  <caseq@chromium.org>
2377
2378         Web Inspector: show image decode performed off main thread on timeline
2379         https://bugs.webkit.org/show_bug.cgi?id=111159
2380
2381         Reviewed by Pavel Feldman.
2382
2383         - add handling of Decode Image event to TimelineTraceEventProcessorr;
2384         - only log platform events for the main thread;
2385         - extract constants for trace events produced by platform instrumentation.
2386
2387         * inspector/InspectorTimelineAgent.cpp:
2388         (TimelineRecordType):
2389         * inspector/InspectorTimelineAgent.h:
2390         (TimelineRecordType):
2391         * inspector/TimelineTraceEventProcessor.cpp:
2392         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
2393         (WebCore::TimelineTraceEventProcessor::onImageDecodeBegin):
2394         (WebCore):
2395         (WebCore::TimelineTraceEventProcessor::onImageDecodeEnd):
2396         * inspector/TimelineTraceEventProcessor.h:
2397         (TimelineTraceEventProcessor):
2398         * platform/PlatformInstrumentation.cpp:
2399         (WebCore):
2400         * platform/PlatformInstrumentation.h:
2401         (PlatformInstrumentation):
2402         (WebCore):
2403         (WebCore::PlatformInstrumentation::willDecodeImage):
2404         (WebCore::PlatformInstrumentation::didDecodeImage):
2405         (WebCore::PlatformInstrumentation::willResizeImage):
2406         (WebCore::PlatformInstrumentation::didResizeImage):
2407
2408 2013-03-15  Ilya Tikhonovsky  <loislo@chromium.org>
2409
2410         Web Inspector: Flame Chart. When user zooms the chart, the point under cursor has to be the zooming center.
2411         https://bugs.webkit.org/show_bug.cgi?id=112417
2412
2413         Reviewed by Yury Semikhatsky.
2414
2415         It converts the cursor position into time,
2416         changes the scale factor and calculates the new offset for the canvas.
2417
2418         * inspector/front-end/FlameChart.js:
2419         (WebInspector.FlameChart.prototype._adjustXScale):
2420         (WebInspector.FlameChart.prototype._onMouseWheel):
2421
2422 2013-03-13  Eugene Klyuchnikov  <eustas@chromium.org>
2423
2424         Web Inspector: [Network] Sort columns context menu items alphabetically.
2425         https://bugs.webkit.org/show_bug.cgi?id=112321
2426
2427         Reviewed by Pavel Feldman.
2428
2429         Problem: columns are presented in "natural" order,
2430         so it is hard to find specific item.
2431
2432         * inspector/front-end/NetworkPanel.js:
2433         (WebInspector.NetworkLogView.prototype._getConfigurableColumnIDs):
2434         Generate list of column IDs sorted alphabetically.
2435         (WebInspector.NetworkLogView.prototype._contextMenu):
2436         Use alphabetically sorted list of column IDs.
2437
2438 2013-03-15  Takashi Sakamoto  <tasak@google.com>
2439
2440         Crash at RenderStyle::inheritFrom reported by fuzzer
2441         https://bugs.webkit.org/show_bug.cgi?id=112322
2442
2443         Reviewed by Hajime Morrita.
2444
2445         pseudoStyleForElement should check whether a parent style of a given
2446         element is available or not. If a given element's parent is
2447         an insertion point whose reset-style-inheritance is true, the parent
2448         style is not available. Need to use defaultStyleForElement.
2449
2450         Test: fast/dom/shadow/insertion-point-resetStyleInheritance-with-pseudo-element-crash.html
2451
2452         * css/StyleResolver.cpp:
2453         (WebCore::StyleResolver::styleForElement):
2454         Removed cloneForParent. Instead, made m_state own parentStyle, i.e.
2455         changed m_parentStyle in class State from RenderStyle* to
2456         RefPtr<RenderStyle>.
2457         (WebCore::StyleResolver::pseudoStyleForElement):
2458         If an actual parent style of a given element is not available, use
2459         defaultStyleForElement. This is the same logic as styleForElement.
2460         * css/StyleResolver.h:
2461         (WebCore::StyleResolver::State::setParentStyle):
2462         Modified the parameter to use PassRefPtr<RenderStyle>.
2463         (WebCore::StyleResolver::State::parentStyle):
2464         (State):
2465
2466 2013-03-15  Mihnea Ovidenie  <mihnea@adobe.com>
2467
2468         [CSS Regions] Selecting text inside an empty region causes selection outside the region area
2469         https://bugs.webkit.org/show_bug.cgi?id=107752
2470
2471         Reviewed by David Hyatt.
2472
2473         When performing hit testing inside a flow thread, we need to make sure that
2474         we actually hit some node from the flow thread content and not the flow thread
2475         itself (which would set the hit test result node to the document node, allowing
2476         wrong selection of content outside the empty region).
2477
2478         Test: fast/regions/selecting-text-in-empty-region.html
2479
2480         * rendering/RenderFlowThread.cpp:
2481         (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
2482
2483 2013-03-15  Luiz Agostini  <luiz.agostini@nokia.com>
2484
2485         [Texmap] layerRect should be used instead of contents rect for scrollable layer hit tests.
2486         https://bugs.webkit.org/show_bug.cgi?id=112413
2487
2488         Reviewed by Noam Rosenthal.
2489
2490         Using layerRect() instead of m_state.contentsRect for scrollable layer hit test.
2491         * platform/graphics/texmap/TextureMapperLayer.cpp:
2492         (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
2493
2494 2013-03-14  Dominic Cooney  <dominicc@chromium.org>
2495
2496         Redundant if statement in RenderTextControlSingleLine::layout should be removed
2497         https://bugs.webkit.org/show_bug.cgi?id=112406
2498
2499         Reviewed by Andreas Kling.
2500
2501         Covered by existing tests added in r145239.
2502
2503         * rendering/RenderTextControlSingleLine.cpp:
2504         (WebCore::RenderTextControlSingleLine::layout):
2505
2506 2013-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
2507
2508         Unreviewed, rolling out r145864.
2509         http://trac.webkit.org/changeset/145864
2510         https://bugs.webkit.org/show_bug.cgi?id=112408
2511
2512         should fix XMLDocumentParser instead of CSSDefaultStyleSheet
2513         (Requested by tasak on #webkit).
2514
2515         * css/CSSDefaultStyleSheets.cpp:
2516         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2517
2518 2013-03-14  Eugene Klyuchnikov  <eustas@chromium.org>
2519
2520         Web Inspector: [DataGrid] Specify columns with array of descriptors.
2521         https://bugs.webkit.org/show_bug.cgi?id=112338
2522
2523         Reviewed by Pavel Feldman.
2524
2525         Currently columns are specified by Object that maps
2526         column identifiers to column descriptors. Iteration order over
2527         Object keys is not guaranteed.
2528
2529         Array should be used to specify column order.
2530
2531         * inspector/front-end/DataGrid.js: Change consrtructor parameter type.
2532         * inspector/front-end/ApplicationCacheItemsView.js: Adopt changes.
2533         * inspector/front-end/CPUProfileView.js: Ditto.
2534         * inspector/front-end/CSSSelectorProfileView.js: Ditto.
2535         * inspector/front-end/CanvasProfileView.js: Ditto.
2536         * inspector/front-end/CookieItemsView.js: Ditto.
2537         * inspector/front-end/CookiesTable.js: Ditto.
2538         * inspector/front-end/DOMStorageItemsView.js: Ditto.
2539         * inspector/front-end/DirectoryContentView.js: Ditto.
2540         * inspector/front-end/HeapSnapshot.js: Ditto.
2541         * inspector/front-end/HeapSnapshotDataGrids.js: Ditto.
2542         * inspector/front-end/IndexedDBViews.js: Ditto.
2543         * inspector/front-end/NativeMemorySnapshotView.js: Ditto.
2544         * inspector/front-end/NetworkPanel.js: Ditto.
2545         * inspector/front-end/ResourceWebSocketFrameView.js: Ditto.
2546
2547 2013-03-14  Ilya Tikhonovsky  <loislo@chromium.org>
2548
2549         Web Inspector: Flame Chart. Support scrolling by dragging.
2550         https://bugs.webkit.org/show_bug.cgi?id=112346
2551
2552         Reviewed by Yury Semikhatsky.
2553
2554         Drag hander was added. It seems that simple repaint works well.
2555         When the user starts dragging we hide the popover, change offset
2556         and do update for the new canvas image.
2557         Drive by change: Due to new way of scrolling the canvas I changed
2558         the behaiviour of the wheel events. Now wheel scrolls if Shift key pressed
2559         and zooms if not.
2560
2561         * inspector/front-end/FlameChart.js:
2562         (WebInspector.FlameChart):
2563         (WebInspector.FlameChart.prototype._startCanvasDragging):
2564         (WebInspector.FlameChart.prototype._canvasDragging):
2565         (WebInspector.FlameChart.prototype._endCanvasDragging):
2566         (WebInspector.FlameChart.prototype._onMouseWheel):
2567
2568 2013-03-14  Hayato Ito  <hayato@chromium.org>
2569
2570         [Shadow Dom]: Non Bubbling events in ShadowDOM dispatch in an incorrect order
2571         https://bugs.webkit.org/show_bug.cgi?id=112214
2572
2573         Reviewed by Dimitri Glazkov.
2574
2575         Fix the order of event dispatching for Shadow DOM.
2576
2577         So far, an event whose event phase should be set to AT_TARGET,
2578         e.g. event at shadow hosts, is dispatched in bubbling phase in the
2579         whole event path.  This patch fixed the order of event dispatching
2580         so that an event whose event phase must be set to AT_TARGET phase
2581         is dispatched in capturing phase rather than bubbling phase.
2582
2583         The spec is here:
2584         https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#event-dispatch
2585
2586         5.5 Event Dispatch says:
2587
2588         - When capturing, which entails processing step 3 of the event
2589         dispatch algorithm, the Event eventPhase attribute must return
2590         AT_TARGET if the relative target is same as the node on which
2591         event listeners are invoked
2592         - When bubbling, which entails
2593         processing step 6 of the event dispatch algorithm, the event
2594         listeners must not be invoked on a node if it is the same as its
2595         relative target
2596
2597         No new tests. Update existing layout tests.
2598
2599         * dom/EventDispatcher.cpp:
2600         (WebCore::EventDispatcher::dispatchEventAtCapturing):
2601         (WebCore::EventDispatcher::dispatchEventAtBubbling):
2602
2603 2013-03-14  Shezan Baig  <sbaig1@bloomberg.net>
2604
2605         Backspace/delete at start of table cell shouldn't step out of cell
2606         https://bugs.webkit.org/show_bug.cgi?id=35372
2607
2608         Reviewed by Ryosuke Niwa.
2609
2610         Make Delete and ForwardDelete commands be no-ops if we are at the first
2611         position or last position of a table cell respectively.
2612
2613         Tests: editing/deleting/backspace-at-table-cell-beginning.html
2614                editing/deleting/forward-delete-at-table-cell-ending.html
2615
2616         * editing/TypingCommand.cpp:
2617         (WebCore::TypingCommand::deleteKeyPressed):
2618         (WebCore::TypingCommand::forwardDeleteKeyPressed):
2619
2620 2013-03-14  Xidorn Quan  <quanxunzhen@gmail.com>
2621
2622         Clickable area is incorrect for elements with border-radius
2623         https://bugs.webkit.org/show_bug.cgi?id=95373
2624
2625         Reviewed by Simon Fraser.
2626
2627         As RenderBlock doesn't see rounded rect which comes from border-radius
2628         in nodeAtPoint, the rounded corner seems to have an 'invisible' square
2629         box which catches hits. So we added check on whether hitTestPoint also
2630         intersects the rounded rect when hasBorderRadius is set.
2631
2632         This patch is based on Takashi Sakamoto's work in
2633         https://bugs.webkit.org/show_bug.cgi?id=95373
2634
2635         Test: fast/borders/border-radius-position.html
2636
2637         * platform/graphics/FloatQuad.cpp:
2638         (WebCore):
2639         (WebCore::lineIntersectsCircle):
2640         (WebCore::FloatQuad::intersectsCircle):
2641         (WebCore::FloatQuad::intersectsEllipse):
2642         * platform/graphics/FloatQuad.h:
2643         (FloatQuad):
2644         * platform/graphics/RoundedRect.cpp:
2645         (WebCore::RoundedRect::intersectsQuad):
2646         (WebCore):
2647         * platform/graphics/RoundedRect.h:
2648         (RoundedRect):
2649         * rendering/HitTestLocation.cpp:
2650         (WebCore::HitTestLocation::intersects):
2651         (WebCore):
2652         * rendering/HitTestLocation.h:
2653         (HitTestLocation):
2654         * rendering/RenderBlock.cpp:
2655         (WebCore::RenderBlock::nodeAtPoint):
2656
2657 2013-03-14  Chris Fleizach  <cfleizach@apple.com>
2658
2659         AX: Crash when removing aria-menu item from DOM
2660         https://bugs.webkit.org/show_bug.cgi?id=112396
2661
2662         Reviewed by Tim Horton.
2663
2664         Prevent nil access to items in the ARIA menu flow when deleting
2665         objects from the DOM.
2666
2667         Test: accessibility/menu-item-crash.html
2668
2669         * accessibility/AccessibilityNodeObject.cpp:
2670         (WebCore::siblingWithAriaRole):
2671         (WebCore::AccessibilityNodeObject::menuButtonForMenu):
2672
2673 2013-03-14  Hayato Ito  <hayato@chromium.org>
2674
2675         [Shadow]: left side of ::-webkit-distributed selector not working as expected
2676         https://bugs.webkit.org/show_bug.cgi?id=110825
2677
2678         Reviewed by Dimitri Glazkov.
2679
2680         Make functional pseudo distributed elements work even when a left side element has specifiers.
2681
2682         Test: fast/dom/shadow/distributed-pseudo-element-specifiers-in-left-side.html
2683
2684         * css/CSSParser.cpp:
2685         (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
2686         Make it call rewriteSpecifiersForShadowDistributed() if required.
2687
2688         (WebCore::CSSParser::rewriteSpecifiersWithElementName):
2689         Updated so that it can generate a correct chain of
2690         CSSParserSelectors even when '::distributed()' is used with an
2691         element, which might be empty, with specifiers.
2692
2693         e.g. When parsing a selector of 'content.content-class::-webkit-distributed(div)', the following happens:
2694
2695         1. rewriteSpecifiersWithElementName(...) is called with:
2696
2697            elementName is: "content"
2698            specifiers is: [.content-class] -> [::-webkit-distributed]
2699
2700         2. Looking for a distributed pseudo element in the specifiers and
2701            found it at the end of tagHistory chain of the specifiers.
2702
2703         3. The result of calling specifiers->prependTagSelector(tag) is:
2704
2705            specifiers is: [content] -> [.content-class] -> [::-webkit-distributed]
2706
2707         4. rewriteSpecifiersForShadowDistributed() is called with:
2708
2709            specifiers is: [content] -> [.content-class] -> [::-webkit-distributed]
2710            distributedPseudoElementSelector is: [::-webkit-distributed]
2711
2712         5. An argumentSelector of the distributedPseudoElementSelector is:
2713
2714            argumentSelector is: [div]
2715
2716         6. Remove the distributed pseudo element selector from the specifiers.
2717
2718            specifiers is: [content] -> [.content-class]
2719
2720            Note that one pseudo-element may appear per complex selector
2721            and the pseudo-element may appear only if the subject of the
2722            selector is the last compound selector in the selector.
2723
2724         7. Append specifiers to the end of the argument selector with a relation of ShadowDistributed:
2725
2726            argumentSelector is: [div] -(ShadowDistributed)-> [content] -> [.content-class]
2727
2728         8. Returns the argument selector as a return value.
2729
2730         (WebCore::CSSParser::rewriteSpecifiersForShadowDistributed): As explained.
2731         * css/CSSParserValues.cpp:
2732         (WebCore):
2733         (WebCore::CSSParserSelector::findDistributedPseudoElementSelector):
2734         * css/CSSParserValues.h:
2735         (CSSParserSelector):
2736         (WebCore::CSSParserSelector::clearTagHistory):
2737
2738 2013-03-14  Takashi Sakamoto  <tasak@google.com>
2739
2740         Crash at CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement reported by fuzzer
2741         https://bugs.webkit.org/show_bug.cgi?id=112328
2742
2743         Reviewed by Dimitri Glazkov.
2744
2745         ensureDefaultStyleSheets should check whether page() is null or not.
2746
2747         Test: fast/css/ensure-default-style-sheets-crash.xhtml
2748
2749         * css/CSSDefaultStyleSheets.cpp:
2750         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2751
2752 2013-03-14  Brandon Jones  <bajones@google.com>
2753
2754         Check to ensure MultisampleRenderbuffer creation succeeds
2755         https://bugs.webkit.org/show_bug.cgi?id=111780
2756
2757         Reviewed by Kenneth Russell.
2758
2759         On OSX systems using AMD graphics chips the allocation of large
2760         Multisample Renderbuffers in Chromium would fail without any indication
2761         of failure. Attempting to draw to the buffer resulted in garbage being
2762         rendered onscreen. This could be reproduced by opening a full-page
2763         WebGL app and pressing (Command + "-") several times. This patch adds an
2764         additional check during DrawingBuffer resize to verify that the resized
2765         buffer is valid. 
2766
2767         * platform/graphics/gpu/DrawingBuffer.cpp:
2768         (WebCore):
2769         (WebCore::DrawingBuffer::checkBufferIntegrity):
2770         (WebCore::DrawingBuffer::reset):
2771         * platform/graphics/gpu/DrawingBuffer.h:
2772         (DrawingBuffer):
2773
2774 2013-03-14  Enrica Casucci  <enrica@apple.com>
2775
2776         Character orientation should follow UTR50 specs for vertical layout.
2777         https://bugs.webkit.org/show_bug.cgi?id=112213
2778         <rdar://problem/12880943>
2779
2780         Reviewed by Ryosuke Niwa.
2781
2782         platform/mac/fast/text/vertical-no-sideways.html: Modified to cover samples
2783         of the additional character ranges that should not be rotated in vertical layout.
2784         Added pixel results.
2785
2786         This patch modifies shouldIgnoreRotation to include all the characters that
2787         should not be rotated sideways in vertical layout according to the UTR50 draft 6
2788         specifications. It also fixes rotation for Emojii.
2789
2790         * platform/graphics/FontFastPath.cpp:
2791         (WebCore::shouldIgnoreRotation):
2792         (WebCore::isInRange): Added.
2793         * platform/graphics/mac/FontMac.mm:
2794         (WebCore::showGlyphsWithAdvances): Adds the proper transforms to ensure
2795         Emojii also are drawn correctly upright.
2796
2797 2013-03-14  Manuel Rego Casasnovas  <rego@igalia.com>
2798
2799         Add selectTrailingWhitespaceEnabled setting to WebCore::Page
2800         https://bugs.webkit.org/show_bug.cgi?id=109404
2801
2802         Reviewed by Tony Chang.
2803
2804         Covered by
2805         editing/selection/doubleclick-inline-first-last-contenteditable.html.
2806
2807         * page/Settings.cpp:
2808         (WebCore): Configure default value for smartInsertDeleteEnabled and
2809         selectTrailingWhitespaceEnabled seetings as they are different in
2810         Chromium port depending on the OS.
2811         * page/Settings.in: Add new setting.
2812
2813 2013-03-14  Robert Flack  <flackr@chromium.org>
2814
2815         [chromium] Short scrollbar has empty track rect even when buttons have no size.
2816         https://bugs.webkit.org/show_bug.cgi?id=102580
2817
2818         Reviewed by James Robinson.
2819
2820         When computing the scrollbar track rect, don't assume the button's height is the track width.
2821
2822         Test: platform/chromium/scrollbars/short-scrollbar.html
2823         Note however that this doesn't expose the bug on any tested platforms and mock scrollbars
2824         don't use ScrollbarThemeChromium.cpp. Manually running this test on linux chromiumos will
2825         show the now present scrollbar track and thumb.
2826
2827         * platform/chromium/ScrollbarThemeChromium.cpp:
2828         (WebCore::ScrollbarThemeChromium::trackRect):
2829
2830 2013-03-14  Andrey Lushnikov  <lushnikov@chromium.org>
2831
2832         Web Inspector: Show syntax highlight for application/javascript in Resource Preview tab
2833         https://bugs.webkit.org/show_bug.cgi?id=112355
2834
2835         Reviewed by Pavel Feldman.
2836
2837         No new tests.
2838
2839         Return canonical mimeType in requestContent method of
2840         NetworkRequest.js
2841
2842         * inspector/front-end/NetworkRequest.js:
2843         (WebInspector.NetworkRequest.prototype.requestContent):
2844
2845 2013-03-14  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2846
2847         [EFL] Use CROSS_PLATFORM_CONTEXT_MENU
2848         https://bugs.webkit.org/show_bug.cgi?id=111877
2849
2850         Reviewed by Caio Marcelo de Oliveira Filho.
2851
2852         Now EFL uses the CROSS_PLATFORM_CONTEXT_MENUS
2853         USE flag. This flag provides a full cross-platform
2854         representation of a ContextMenu and a ContextMenuItem.
2855         The embedder can then decide how to show this and neither
2856         WebCore nor WebCore/platform need to know any platform
2857         specific code about the menus, even though they could.
2858
2859         No new tests needed, no behavior changes.
2860
2861         * platform/ContextMenu.h:
2862         (ContextMenu):
2863         * platform/ContextMenuItem.h:
2864         (WebCore):
2865         * platform/PlatformMenuDescription.h:
2866         (WebCore):
2867         * platform/efl/ContextMenuEfl.cpp:
2868         (WebCore::ContextMenu::ContextMenu):
2869         (WebCore::ContextMenu::getContextMenuItems):
2870         (WebCore::ContextMenu::createPlatformContextMenuFromItems):
2871         (WebCore::ContextMenu::platformContextMenu):
2872         * platform/efl/ContextMenuItemEfl.cpp:
2873         (WebCore::ContextMenuItem::platformContextMenuItem):
2874
2875 2013-03-14  Julien Chaffraix  <jchaffraix@webkit.org>
2876
2877         [CSS Grid Layout] resolveContentBasedTrackSizingFunctions should iterate over the grid items not the grid tracks
2878         https://bugs.webkit.org/show_bug.cgi?id=112299
2879
2880         Reviewed by Tony Chang.
2881
2882         Our initial implementation would iterate over the grid tracks. This was equivalent as no items were spanning but
2883         once grid items spans, they start to contribute to several grid tracks differently. This change aligns our code
2884         with what the specification does.
2885
2886         One upside of doing a grid items' iteration is that the complexity should be better in all cases as we don't do
2887         a full grid walking (which is potentially quadratic), only some extra grid tracks' iteration (which are linear).
2888
2889         Refactoring, there should be no change in behavior.
2890
2891         * rendering/RenderGrid.cpp:
2892         (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
2893         Moved the |availableLogicalSpace| update into resolveContentBasedTrackSizingFunctions. This simplifies and consolidate our handling.
2894
2895         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
2896         Updated the core loop to iterator over grid items and not grid tracks. This idea is that now resolveContentBasedTrackSizingFunctionsForItems
2897         uses a filtering function to only process the appropriate grid tracks.
2898
2899         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
2900         Updated to filter the grid tracks here (this matches the |TracksForGrowth| spec logic that is merely a filtering function).
2901
2902         * rendering/RenderGrid.h:
2903         Added a new typedef and updated resolveContentBasedTrackSizingFunctionsForItems to use it.
2904
2905         * rendering/style/GridTrackSize.h:
2906         (WebCore::GridTrackSize::hasMinOrMaxContentMinTrackBreadth):
2907         (WebCore::GridTrackSize::hasMaxContentMinTrackBreadth):
2908         (WebCore::GridTrackSize::hasMinOrMaxContentMaxTrackBreadth):
2909         (WebCore::GridTrackSize::hasMaxContentMaxTrackBreadth):
2910         Added the following filtering function, which matches the values from |TracksForGrowth| in the specification.
2911
2912 2013-03-14  Alberto Garcia  <agarcia@igalia.com>
2913
2914         [BlackBerry] Gradient: don't use the default setPlatformGradientSpaceTransform()
2915         https://bugs.webkit.org/show_bug.cgi?id=112246
2916
2917         Reviewed by Xan Lopez.
2918
2919         BlackBerry has its own implementation.
2920
2921         * platform/graphics/Gradient.cpp:
2922         (WebCore):
2923
2924 2013-03-14  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2925
2926         [GStreamer] simulateAudioInterruption needs to be guarded by ENABLE(VIDEO)"
2927         https://bugs.webkit.org/show_bug.cgi?id=112358
2928
2929         Guarded with ENABLE(VIDEO) to prevent problems when it is not
2930         enabled.
2931
2932         Reviewed by Philippe Normand.
2933
2934 2013-03-12  Florin Malita  <fmalita@chromium.org>
2935
2936         Tighten up the type bounds for SVGPropertyInfo callback parameters
2937         https://bugs.webkit.org/show_bug.cgi?id=111786
2938
2939         Reviewed by Philip Rogers.
2940
2941         Update SVGPropertyInfo's callbacks to pass SVGElement* parameters instead of void*. This
2942         allows us to perform some ASSERT-based type checking before downcasting in implementors.
2943
2944         To avoid adding virtual methods unused in release builds to the base class (and overrides
2945         in descendants), for subtypes lacking polymorphic type markers (isXXX()) the check is
2946         performed using hasTagName() instead.
2947
2948         The patch is also removing the lookupOrCreateWrapperForAnimatedProperty() SVGPropertyInfo
2949         callback for SVGViewSpec properties, because
2950
2951           a) it doesn't appear to be reachable (SVGViewSpec doesn't have a backing element and
2952           thus cannot have an associated animator)
2953
2954           b) it interferes with the parameter specialization described above (SVGViewSpec does not
2955           inherit from SVGElement)
2956
2957         No new tests, refactoring only.
2958
2959         * svg/SVGElement.cpp:
2960         (WebCore::SVGElement::synchronizeRequiredFeatures):
2961         (WebCore::SVGElement::synchronizeRequiredExtensions):
2962         (WebCore::SVGElement::synchronizeSystemLanguage):
2963         * svg/SVGElement.h:
2964         (SVGElement):
2965         * svg/SVGMarkerElement.cpp:
2966         (WebCore::SVGMarkerElement::synchronizeOrientType):
2967         (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
2968         * svg/SVGMarkerElement.h:
2969         (SVGMarkerElement):
2970         (WebCore::toSVGMarkerElement):
2971         (WebCore):
2972         * svg/SVGPathElement.cpp:
2973         (WebCore::SVGPathElement::lookupOrCreateDWrapper):
2974         (WebCore::SVGPathElement::synchronizeD):
2975         * svg/SVGPathElement.h:
2976         (SVGPathElement):
2977         (WebCore::toSVGPathElement):
2978         (WebCore):
2979         * svg/SVGPolyElement.cpp:
2980         (WebCore::SVGPolyElement::synchronizePoints):
2981         (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
2982         * svg/SVGPolyElement.h:
2983         (SVGPolyElement):
2984         (WebCore::toSVGPolyElement):
2985         (WebCore):
2986         * svg/SVGTextContentElement.cpp:
2987         (WebCore::SVGTextContentElement::synchronizeTextLength):
2988         (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
2989         * svg/SVGTextContentElement.h:
2990         (SVGTextContentElement):
2991         (WebCore::toSVGTextContentElement):
2992         (WebCore):
2993         Change SVGPropertyInfo callback params to SVGElement* and replace static casts with
2994         conversion wrappers. Implement conversion wrappers where needed.
2995
2996         * svg/SVGViewSpec.cpp:
2997         (WebCore::SVGViewSpec::viewBoxPropertyInfo):
2998         (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
2999         (WebCore::SVGViewSpec::transformPropertyInfo):
3000         (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
3001         (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
3002         (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
3003         * svg/SVGViewSpec.h:
3004         (SVGViewSpec):
3005         Remove SVGPropertyInfo-based lookupOrCreate* callbacks and updated the methods' parameters
3006         to SVGViewSpec*. Remove now-unneeded casts.
3007
3008         * svg/properties/SVGAnimatedPropertyMacros.h:
3009         (WebCore):
3010         * svg/properties/SVGPropertyInfo.h:
3011         (WebCore):
3012         (SVGPropertyInfo):
3013         Update callback declarations.
3014
3015 2013-03-14  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
3016
3017         Move platform-specific typedefs to PlatformMenuDescription.h
3018         https://bugs.webkit.org/show_bug.cgi?id=111876
3019
3020         Reviewed by Caio Marcelo de Oliveira Filho.
3021
3022         Cross platform Context Menu platform-specific typedefs fit better
3023         in PlatformMenuDescription.h and should not be part of the classes
3024         ContextMenu and ContextMenuItem. We have also renamed them to
3025         PlatformContextMenu and PlatformContextMenuItem instead of NativeMenu
3026         and NativeMenuItem respectively.
3027
3028         No new tests needed since no behavior has changed.
3029
3030         * platform/ContextMenu.h:
3031         (ContextMenu):
3032         * platform/ContextMenuItem.h:
3033         (ContextMenuItem):
3034         * platform/PlatformMenuDescription.h:
3035         (WebCore):
3036         * platform/efl/ContextMenuEfl.cpp:
3037         (WebCore::ContextMenu::createPlatformContextMenuFromItems):
3038         (WebCore::ContextMenu::platformContextMenu):
3039         * platform/efl/ContextMenuItemEfl.cpp:
3040         (WebCore::ContextMenuItem::platformContextMenuItem):
3041         * platform/win/ContextMenuItemWin.cpp:
3042         (WebCore):
3043         (WebCore::ContextMenuItem::platformContextMenuItem):
3044         * platform/win/ContextMenuWin.cpp:
3045         (WebCore::ContextMenu::createPlatformContextMenuFromItems):
3046         (WebCore::ContextMenu::platformContextMenu):
3047
3048 2013-03-11  Jer Noble  <jer.noble@apple.com>
3049
3050         Crash in DumpRenderTree at com.apple.WebCore: WebCore::CaptionUserPreferences::captionPreferencesChanged + 185
3051         https://bugs.webkit.org/show_bug.cgi?id=112051
3052
3053         Reviewed by Eric Carlson.
3054
3055         No new tests; fixes a crash during media/video-controls-captions-trackmenu.html.
3056
3057         Instead of relying on a registration system which can fail when an element's document does not have a page,
3058         Elements will register for captionPreferencesChanged() notifications directly with their owning Document.
3059         CaptionUserPreferences, in turn, will notify all Documents in its PageGroup, rather than only directly
3060         registered listeners.
3061
3062         * dom/Document.cpp:
3063         (WebCore::Document::registerForCaptionPreferencesChangedCallbacks): Added. Notify the CaptionUserPreferences that someone
3064             is interested in captionPreferencesChanged notfications.
3065         (WebCore::Document::unregisterForCaptionPreferencesChangedCallbacks): Added.
3066         (WebCore::Document::captionPreferencesChanged): Added. Pass to all registered elements.
3067         * dom/Document.h:
3068         * dom/Element.h:
3069         (WebCore::Element::captionPreferencesChanged): Added. Empty; intended
3070             to be overridden by subclasses.
3071         * history/CachedPage.cpp:
3072         (WebCore::CachedPage::CachedPage): Initialize m_needsCaptionPreferenceChanged member.
3073         (WebCore::CachedPage::restore): Call captionPreferencesChanged() if necessary.
3074         * history/CachedPage.h:
3075         (WebCore::CachedPage::markForCaptionPreferencesChanged): Set the m_needsCaptionPreferenceChanged member.
3076         * history/PageCache.cpp:
3077         (WebCore::PageCache::markPagesForCaptionPreferencesChanged): Pass to every CachedPage.
3078         * history/PageCache.h:
3079         * html/HTMLMediaElement.cpp:
3080         (WebCore::HTMLMediaElement::HTMLMediaElement): Register with the Document.
3081         (WebCore::HTMLMediaElement::~HTMLMediaElement): Unregister with same.
3082         (WebCore::HTMLMediaElement::attach): Remove previous registration call.
3083         * html/HTMLMediaElement.h:
3084         * page/CaptionUserPreferences.cpp:
3085         (WebCore::CaptionUserPreferences::captionPreferencesChanged): Pass to the
3086             PageGroup.
3087         * page/CaptionUserPreferences.h:
3088         (WebCore::CaptionUserPreferences::setInterestedInCaptionPreferenceChanges):
3089             Empty; intended to be overridden by subclasses.
3090         * page/CaptionUserPreferencesMac.h:
3091         * page/CaptionUserPreferencesMac.mm:
3092         (WebCore::CaptionUserPreferencesMac::setInterestedInCaptionPreferenceChanges):
3093             Renamed from registerForPreferencesChangedCallbacks().
3094         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged):
3095             Replace call to havePreferenceChangeListeners() with m_listeningForPreferenceChanges.
3096         * page/Page.cpp:
3097         (WebCore::Page::captionPreferencesChanged):
3098             Pass to every contained Document.
3099         * page/Page.h:
3100         * page/CaptionUserPreferences.cpp:
3101         (WebCore::CaptionUserPreferences::captionPreferencesChanged): Pass to the PageGroup.
3102         * page/CaptionUserPreferences.h:
3103         * page/PageGroup.cpp:
3104         (WebCore::PageGroup::captionPreferencesChanged): Pass to every page, as well as pages in the PageCache.
3105         * page/PageGroup.h:
3106
3107 2013-03-14  David Grogan  <dgrogan@chromium.org>
3108
3109         IndexedDB: Histogram leveldb open errors.
3110         https://bugs.webkit.org/show_bug.cgi?id=112307
3111
3112         Reviewed by Tony Chang.
3113
3114         No new tests, I don't know if there's a good way to test histograms.
3115
3116         * platform/leveldb/LevelDBDatabase.cpp:
3117         (WebCore::LevelDBDatabase::open):
3118
3119 2013-03-14  Robert Hogan  <robert@webkit.org>
3120
3121         REGRESSION(r145305) Performance: 1.3% mac-release-10.6-webkit-latest/intl2/times/t change after rev 145300
3122         https://bugs.webkit.org/show_bug.cgi?id=112125
3123
3124         Reviewed by Julien Chaffraix.
3125
3126         When detecting cases where a loaded image may need to move up into the padding created by the row's baseline
3127         we don't need to do anything if the row doesn't have a baseline yet.
3128
3129         * rendering/RenderTableCell.cpp:
3130         (WebCore::RenderTableCell::layout):
3131
3132 2013-03-14  Brady Eidson  <beidson@apple.com>
3133
3134         Add a mode to ResourceLoader that takes SharedBuffers instead of raw pointers and lengths.
3135         <rdar://problem/13416953> and https://bugs.webkit.org/show_bug.cgi?id=112310
3136
3137         Reviewed by Andy Estes.
3138
3139         No new tests (No independently testable change in behavior).
3140
3141         Many of the tested platforms deliver data buffers to their ResourceHandles from objects
3142         that encapsulate a data buffer such as NSData (Mac), CFDataRef (CF), or QByteArray (qt).
3143
3144         If those platforms also augmented SharedBuffer to wrap their native object (which Mac/CF do)
3145         and there existed ResourceLoader callbacks to take that SharedBuffer instead of char* + length,
3146         then many resource loads could avoid a useless copy.
3147
3148         At least on Mac, there are some extremely important behind-the-scenes optimizations for NS/CFData
3149         that will be a more important win than simply avoiding a copy.
3150
3151         This patch adds that SharedBuffer-based callback with the hope that all platforms could find a 
3152         way to use a buffer-encapsulating object going forward, and we could therefore deprecate the
3153         char* + length version of didReceiveData.
3154
3155         * platform/network/ResourceHandleClient.h:
3156         (WebCore::ResourceHandleClient::didReceiveBuffer): Add a didReceiveBuffer callback that takes 
3157           a SharedBuffer object. The default implementation passes raw bytes + length to didReceiveData.
3158
3159         * loader/ResourceLoader.cpp:
3160         (WebCore::ResourceLoader::addDataOrBuffer): Replacing addData(), optionally adding the data from
3161           either a data+length or SharedBuffer
3162         (WebCore::ResourceLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
3163         (WebCore::ResourceLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
3164         (WebCore::ResourceLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data.
3165         * loader/ResourceLoader.h: Add OVERRIDE to all of the ResourceHandleClient methods to help
3166           catch future mistakes. Remove "virtual" from methods that didn't need it. Make "addData" into
3167           "addDataOrBuffer" and make it private.
3168
3169         * loader/NetscapePlugInStreamLoader.cpp:
3170         (WebCore::NetscapePlugInStreamLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
3171         (WebCore::NetscapePlugInStreamLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
3172         (WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data.
3173         * loader/NetscapePlugInStreamLoader.h:
3174
3175         * loader/SubresourceLoader.cpp:
3176         (WebCore::SubresourceLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
3177         (WebCore::SubresourceLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
3178         (WebCore::SubresourceLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data. Also,
3179           rely on ResourceLoader's base implementation for notifying the ResourceLoadNotifier.
3180         * loader/SubresourceLoader.h:
3181
3182         * loader/ResourceBuffer.cpp:
3183         (WebCore::ResourceBuffer::append): Add a mode that appends a SharedBuffer.
3184         * loader/ResourceBuffer.h:
3185
3186         * platform/cf/SharedBufferCF.cpp:
3187         (WebCore::SharedBuffer::maybeTransferPlatformData): Fix a bug where appending data to a CFData-backed
3188           SharedBuffer would re-enter maybeTransferPlatformData and blow out the stack.
3189
3190         * platform/network/mac/ResourceHandleMac.mm:
3191         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): Send a wrapped NSData
3192           to didReceiveBuffer() instead of sending its char* and length to didReceiveData()
3193
3194 2013-03-14  Yury Semikhatsky  <yurys@chromium.org>
3195
3196         Web Inspector: nuke bottom up CPU profile calculation on backend
3197         https://bugs.webkit.org/show_bug.cgi?id=112351
3198
3199         Reviewed by Pavel Feldman.
3200
3201         Removed code that builds bottom-up CPU profile on the inspector
3202         backend. Bottom-up view is already built on the front-end from
3203         the top-down profile data.
3204
3205         * bindings/js/ScriptProfile.cpp:
3206         * bindings/js/ScriptProfile.h:
3207         (ScriptProfile):
3208         * bindings/v8/ScriptProfile.cpp:
3209         (WebCore::ScriptProfile::buildInspectorObjectForHead):
3210         * bindings/v8/ScriptProfile.h:
3211         (ScriptProfile):
3212         * inspector/Inspector.json:
3213         * inspector/InspectorProfilerAgent.cpp:
3214         (WebCore::InspectorProfilerAgent::getCPUProfile):
3215
3216 2013-03-14  Abhishek Arya  <inferno@chromium.org>
3217
3218         Replace static_casts with to* helper functions.
3219         https://bugs.webkit.org/show_bug.cgi?id=112296
3220
3221         Reviewed by Kentaro Hara.
3222
3223         to* helper functions are preferred over static_cast calls since they
3224         help to catch bad casts easily on the testing infrastructure.
3225
3226         * accessibility/AXObjectCache.cpp:
3227         (WebCore::nodeHasRole):
3228         * accessibility/AccessibilityObject.cpp:
3229         (WebCore::AccessibilityObject::hasAttribute):
3230         (WebCore::AccessibilityObject::getAttribute):
3231         * accessibility/AccessibilityRenderObject.cpp:
3232         (WebCore::AccessibilityRenderObject::anchorElement):
3233         (WebCore::AccessibilityRenderObject::helpText):
3234         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
3235         (WebCore::AccessibilityRenderObject::titleUIElement):
3236         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
3237         (WebCore::AccessibilityRenderObject::accessKey):
3238         (WebCore::AccessibilityRenderObject::setElementAttributeValue):
3239         (WebCore::AccessibilityRenderObject::setValue):
3240         (WebCore::AccessibilityRenderObject::activeDescendant):
3241         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
3242         (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
3243         (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
3244         (WebCore::AccessibilityRenderObject::setAccessibleName):
3245         (WebCore::AccessibilityRenderObject::stringRoleForMSAA):
3246         * bindings/gobject/WebKitDOMBinding.cpp:
3247         (WebKit::createWrapper):
3248         * bindings/js/JSClipboardCustom.cpp:
3249         (WebCore::JSClipboard::setDragImage):
3250         * bindings/js/JSElementCustom.cpp:
3251         (WebCore::toJSNewlyCreated):
3252         * bindings/js/JSNodeCustom.cpp:
3253         (WebCore::createWrapperInline):
3254         * bindings/v8/custom/V8ClipboardCustom.cpp:
3255         (WebCore::V8Clipboard::setDragImageMethodCustom):
3256         * bindings/v8/custom/V8ElementCustom.cpp:
3257         (WebCore::wrap):
3258         * bindings/v8/custom/V8NodeCustom.cpp:
3259         (WebCore::wrap):
3260         * dom/Document.cpp:
3261         (WebCore::Document::importNode):
3262         (WebCore::Document::recalcStyle):
3263         (WebCore::Document::setFocusedNode):
3264         (WebCore::Document::updateFocusAppearanceTimerFired):
3265         * dom/DocumentStyleSheetCollection.cpp:
3266         (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
3267         * dom/Element.cpp:
3268         (WebCore::Element::offsetParent):
3269         (WebCore::Element::boundsInRootViewSpace):
3270         (WebCore::Element::getBoundingClientRect):
3271         (WebCore::Element::recalcStyle):
3272         (WebCore::Element::computeInheritedLanguage):
3273         (WebCore::Element::lastElementChild):
3274         * dom/LiveNodeList.cpp:
3275         (WebCore::LiveNodeList::namedItem):
3276         * dom/Node.cpp:
3277         (WebCore::Node::dumpStatistics):
3278         (WebCore::Node::normalize):
3279         (WebCore::Node::rootEditableElement):
3280         (WebCore::Node::isDefaultNamespace):
3281         (WebCore::Node::ancestorElement):
3282         (WebCore::appendAttributeDesc):
3283         * dom/Position.cpp:
3284         (WebCore::Position::element):
3285         * dom/Range.cpp:
3286         (WebCore::Range::getBorderAndTextQuads):
3287         * dom/SelectorQuery.cpp:
3288         (WebCore::SelectorDataList::queryFirst):
3289         (WebCore::SelectorDataList::execute):
3290         * dom/ShadowRoot.cpp:
3291         (WebCore::ShadowRoot::recalcStyle):
3292         * dom/StaticHashSetNodeList.cpp:
3293         (WebCore::StaticHashSetNodeList::namedItem):
3294         * editing/ApplyStyleCommand.cpp:
3295         (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
3296         (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
3297         (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
3298         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
3299         * editing/Editor.cpp:
3300         (WebCore::Editor::applyEditingStyleToBodyElement):
3301         * editing/FrameSelection.cpp:
3302         (WebCore::removingNodeRemovesPosition):
3303         * editing/IndentOutdentCommand.cpp:
3304         (WebCore::IndentOutdentCommand::outdentParagraph):
3305         * editing/MarkupAccumulator.cpp:
3306         (WebCore::MarkupAccumulator::entityMaskForText):
3307         (WebCore::MarkupAccumulator::appendStartMarkup):
3308         (WebCore::MarkupAccumulator::appendEndMarkup):
3309         * editing/ModifySelectionListLevel.cpp:
3310         (WebCore::IncreaseSelectionListLevelCommand::doApply):
3311         * editing/ReplaceSelectionCommand.cpp:
3312         (WebCore::haveSameTagName):
3313         (WebCore::handleStyleSpansBeforeInsertion):
3314         (WebCore::ReplaceSelectionCommand::doApply):
3315         * editing/SplitTextNodeContainingElementCommand.cpp:
3316         (WebCore::SplitTextNodeContainingElementCommand::doApply):
3317         * editing/TextIterator.cpp:
3318         (WebCore::TextIterator::advance):
3319         * editing/htmlediting.cpp:
3320         (WebCore::unsplittableElementForPosition):
3321         (WebCore::enclosingTableCell):
3322         * editing/markup.cpp:
3323         (WebCore::StyledMarkupAccumulator::wrapWithNode):
3324         (WebCore::createMarkupInternal):
3325         (WebCore::createFragmentFromMarkupWithContext):
3326         (WebCore::isPlainTextMarkup):
3327         (WebCore::createFragmentFromText):
3328         * html/HTMLElement.cpp:
3329         (WebCore::HTMLElement::insertAdjacentElement):
3330         (WebCore::contextElementForInsertion):
3331         * html/HTMLFormControlElement.cpp:
3332         (WebCore::focusPostAttach):
3333         (WebCore::updateFromElementCallback):
3334         * html/HTMLFormElement.cpp:
3335         (WebCore::submitElementFromEvent):
3336         * html/HTMLObjectElement.cpp:
3337         (WebCore::HTMLObjectElement::updateDocNamedItem):
3338         * html/HTMLPlugInImageElement.cpp:
3339         (WebCore::HTMLPlugInImageElement::updateSnapshotInfo):
3340         * html/HTMLViewSourceDocument.cpp:
3341         (WebCore::HTMLViewSourceDocument::addRange):
3342         * html/parser/HTMLTreeBuilder.cpp:
3343         (WebCore::closestFormAncestor):
3344         * html/shadow/MediaControlElementTypes.cpp:
3345         (WebCore::toParentMediaElement):
3346         * html/shadow/TextFieldDecorationElement.h:
3347         (WebCore::toTextFieldDecorationElement):
3348         * inspector/DOMPatchSupport.cpp:
3349         (WebCore::DOMPatchSupport::createDigest):
3350         * inspector/InspectorDOMAgent.cpp:
3351         (WebCore::InspectorDOMAgent::buildObjectForNode):
3352         (WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
3353         * inspector/InspectorStyleSheet.cpp:
3354         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
3355         * mathml/MathMLElement.h:
3356         (WebCore::toMathMLElement):
3357         * page/ContextMenuController.cpp:
3358         (WebCore::ContextMenuController::populate):
3359         * page/DragController.cpp:
3360         (WebCore::elementUnderMouse):
3361         (WebCore::DragController::startDrag):
3362         * page/FocusController.cpp:
3363         (WebCore::FocusController::advanceFocusInDocumentOrder):
3364         * page/Frame.cpp:
3365         (WebCore::Frame::searchForLabelsBeforeElement):
3366         * page/FrameView.cpp:
3367         (WebCore::FrameView::updateWidget):
3368         * page/SpatialNavigation.cpp:
3369         (WebCore::rectToAbsoluteCoordinates):
3370         * page/animation/ImplicitAnimation.cpp:
3371         (WebCore::ImplicitAnimation::sendTransitionEvent):
3372         * page/animation/KeyframeAnimation.cpp:
3373         (WebCore::KeyframeAnimation::KeyframeAnimation):
3374         (WebCore::KeyframeAnimation::sendAnimationEvent):
3375         * platform/efl/RenderThemeEfl.cpp:
3376         (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
3377         (WebCore::RenderThemeEfl::paintMediaMuteButton):
3378         * rendering/FilterEffectRenderer.cpp:
3379         (WebCore::FilterEffectRenderer::buildReferenceFilter):
3380         * rendering/svg/RenderSVGViewportContainer.cpp:
3381         (WebCore::RenderSVGViewportContainer::calcViewport):
3382         * svg/SVGSVGElement.cpp:
3383         (WebCore::SVGSVGElement::getElementById):
3384         * svg/SVGUseElement.cpp:
3385         (WebCore::isDisallowedElement):
3386         * svg/animation/SVGSMILElement.cpp:
3387         (WebCore::SVGSMILElement::buildPendingResource):
3388         * xml/XPathStep.cpp:
3389         (WebCore::XPath::nodeMatchesBasicTest):
3390         * xml/parser/XMLDocumentParserQt.cpp:
3391         (WebCore::XMLDocumentParser::XMLDocumentParser):
3392         (WebCore::XMLDocumentParser::parseEndElement):
3393
3394 2013-03-14  Pavel Feldman  <pfeldman@chromium.org>
3395
3396         Web Inspector: keep deprecated function stubs in InspectorFrontendHost.
3397         https://bugs.webkit.org/show_bug.cgi?id=112347
3398
3399         Reviewed by Vsevolod Vlasov.
3400
3401         In order to open older front-ends in newer hosts, we need to keep stubs
3402         for deprecated functions. Longer term, we need to wrap all calls to InspectorFrontendHost in the front-end.
3403
3404         * inspector/InspectorFrontendHost.cpp:
3405         (WebCore::InspectorFrontendHost::canInspectWorkers):
3406         (WebCore):
3407         (WebCore::InspectorFrontendHost::hiddenPanels):
3408         * inspector/InspectorFrontendHost.h:
3409         (InspectorFrontendHost):
3410         * inspector/InspectorFrontendHost.idl: