Flexbox should ignore firstLine pseudo element.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-15  Xueqing Huang  <huangxueqing@baidu.com>
2
3         Flexbox should ignore firstLine pseudo element.
4         https://bugs.webkit.org/show_bug.cgi?id=104485
5
6         Reviewed by Tony Chang.
7
8         Spec[1] said that "None of the properties defined in this module
9         apply to '::first-line' or '::first-letter' pseudo-elements." and
10         css2[2] define "The :first-line pseudo-element can only be attached
11         to a block container element." 
12         [1]http://dev.w3.org/csswg/css3-flexbox/#display-flex
13         [2]http://www.w3.org/TR/CSS2/selector.html#first-line-pseudo
14
15         tests:
16         css3/flexbox/flexbox-ignore-firstLine.html
17         css3/flexbox/flexitem-firstLine-valid.html
18         css3/flexbox/inline-flexbox-ignore-firstLine.html 
19
20         * rendering/RenderBlock.cpp:
21         (WebCore::RenderBlock::firstLineBlock):
22
23 2013-02-15  Alec Flett  <alecflett@chromium.org>
24
25         IndexedDB: Implement SharedBuffer version of put()
26         https://bugs.webkit.org/show_bug.cgi?id=109092
27
28         Reviewed by Adam Barth.
29
30         Switch IDBDatabaseBackendInterface::put over
31         to SharedBuffer, to avoid buffer copies of the value.
32
33         No new tests, this is a refactor.
34
35         * Modules/indexeddb/IDBBackingStore.cpp:
36         (WebCore::IDBBackingStore::putRecord):
37         * Modules/indexeddb/IDBBackingStore.h:
38         (WebCore):
39         (IDBBackingStore):
40         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41         (WebCore::PutOperation::create):
42         (WebCore::PutOperation::PutOperation):
43         (PutOperation):
44         (WebCore::IDBDatabaseBackendImpl::put):
45         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
46         (IDBDatabaseBackendImpl):
47         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
48         (WebCore):
49         * Modules/indexeddb/IDBObjectStore.cpp:
50         (WebCore::IDBObjectStore::put):
51
52 2013-02-15  Anders Carlsson  <andersca@apple.com>
53
54         Implement StorageAreaProxy::length
55         https://bugs.webkit.org/show_bug.cgi?id=109962
56
57         Reviewed by Andreas Kling.
58
59         Export a symbol needed by WebKit2.
60
61         * WebCore.exp.in:
62
63 2013-02-15  Anders Carlsson  <andersca@apple.com>
64
65         Remove const from a bunch of StorageArea member functions
66         https://bugs.webkit.org/show_bug.cgi?id=109957
67
68         Reviewed by Beth Dakin.
69
70         StorageArea is an abstract base class, and its subclasses might want to mutate the object
71         when certain member functions are called so remove const from all member functions.
72
73         * storage/StorageArea.h:
74         (WebCore):
75         (StorageArea):
76         (WebCore::StorageArea::~StorageArea):
77         (WebCore::StorageArea::incrementAccessCount):
78         (WebCore::StorageArea::decrementAccessCount):
79         (WebCore::StorageArea::closeDatabaseIfIdle):
80         * storage/StorageAreaImpl.cpp:
81         (WebCore::StorageAreaImpl::canAccessStorage):
82         (WebCore::StorageAreaImpl::length):
83         (WebCore::StorageAreaImpl::key):
84         (WebCore::StorageAreaImpl::getItem):
85         (WebCore::StorageAreaImpl::contains):
86         (WebCore::StorageAreaImpl::memoryBytesUsedByCache):
87         * storage/StorageAreaImpl.h:
88         (StorageAreaImpl):
89
90 2013-02-13  Ryosuke Niwa  <rniwa@webkit.org>
91
92         DeleteButtonController::enable and disable should be called via a RAII object
93         https://bugs.webkit.org/show_bug.cgi?id=109550
94
95         Reviewed by Enrica Casucci.
96
97         Added DeleteButtonControllerDisableScope, a friend class of DeleteButtonController,
98         and made DeleteButtonController::enable/disable private.
99
100         * dom/ContainerNode.cpp:
101         * editing/CompositeEditCommand.cpp:
102         (WebCore::EditCommandComposition::unapply):
103         (WebCore::EditCommandComposition::reapply):
104         (WebCore::CompositeEditCommand::apply):
105         * editing/DeleteButtonController.h:
106         (WebCore):
107         (DeleteButtonController):
108         (DeleteButtonControllerDisableScope):
109         (WebCore::DeleteButtonControllerDisableScope::DeleteButtonControllerDisableScope):
110         (WebCore::DeleteButtonControllerDisableScope::~DeleteButtonControllerDisableScope):
111         * editing/markup.cpp:
112         (WebCore::createMarkup):
113         (WebCore::createFragmentFromNodes):
114
115 2013-02-15  Max Vujovic  <mvujovic@adobe.com>
116
117         Add code from other branch.
118
119         [CSS Shaders] Parse src property in @-webkit-filter at-rules
120         https://bugs.webkit.org/show_bug.cgi?id=109770
121
122         Reviewed by Dean Jackson.
123
124         This patch implements the parsing for the CSS src property in @-webkit-filter at-rules.
125
126         The Filter Effects spec [1] specifies its syntax:
127             src: [ <uri> [format(<string>)]?]#
128
129         In practice, it can look like:
130             src: url(shader.vs) format('x-shader/x-vertex'),
131                  url(shader.fs) format('x-shader/x-fragment');
132
133         This src property is similar to the src property in CSS font-face rules, but a little
134         different. The CSS Fonts spec [2] specifies:
135             src: [ <uri> [format(<string>#)]? | <font-face-name> ]#
136             The syntax for a <font-face-name> is a unique font face name enclosed by "local("
137             and ")".
138
139         Unlike the filter src property, the font face src property accepts the local function
140         [e.g. src: local("SomeFont");]. Also, the font face src property accepts a list of strings
141         instead of just one string in its format function.
142
143         [1]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-src
144         [2]: http://www.w3.org/TR/css3-fonts/#src-desc
145
146         Tests: css3/filters/custom-with-at-rule-syntax/parsing-src-property-invalid.html
147                css3/filters/custom-with-at-rule-syntax/parsing-src-property-valid.html
148
149         * css/CSSGrammar.y.in:
150             Set (and unset) a flag called "m_inFilterRule", which tells us if we are in a
151             @-webkit-filter at-rule or in a @font-face at-rule when we encounter a src property.
152             We parse the two variants of the src property separately so that we can create different
153             objects (WebKitCSSShaderValue vs. CSSFontFaceSrcValue) and because their syntax is a
154             little different.
155         * css/CSSParser.cpp:
156         (WebCore::CSSParser::CSSParser):
157         (WebCore::CSSParser::parseValue):
158         (WebCore::CSSParser::parseFilterRuleSrcUriAndFormat):
159             Parses a URI and format pair found in the @-webkit-filter src property.
160         (WebCore::CSSParser::parseFilterRuleSrc):
161             Parse the @-webkit-filter src property.
162         * css/CSSParser.h:
163         (CSSParser):
164         * css/WebKitCSSShaderValue.cpp:
165         (WebCore::WebKitCSSShaderValue::customCssText):
166             WebKitCSSShaderValue now has an m_format member, which needs to be included in its
167             cssText.
168         (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
169         * css/WebKitCSSShaderValue.h:
170         (WebCore::WebKitCSSShaderValue::format):
171         (WebCore::WebKitCSSShaderValue::setFormat):
172         (WebKitCSSShaderValue):
173
174 2013-02-15  Eric Carlson  <eric.carlson@apple.com>
175
176         Crash occurs at WebCore::TextTrackList::length() when enabling closed captions in movie
177         https://bugs.webkit.org/show_bug.cgi?id=109886
178
179         Reviewed by Dean Jackson.
180
181         No new tests, media/media-captions.html does not crash with this change.
182
183         * html/HTMLMediaElement.cpp:
184         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Early return when
185             m_textTracks is NULL.
186
187 2013-02-15  Adam Barth  <abarth@webkit.org>
188
189         TokenPreloadScanner should be able to scan CompactHTMLTokens
190         https://bugs.webkit.org/show_bug.cgi?id=109861
191
192         Reviewed by Eric Seidel.
193
194         This patch moves the main scanning logic for the TokenPreloadScanner to
195         a templated scanCommon routine that can scan either an HTMLToken or a
196         CompactHTMLToken. This patch will let the BackgroundHTMLParser preload
197         scan its CompactHTMLTokens.
198
199         * html/parser/CSSPreloadScanner.cpp:
200         (WebCore):
201         (WebCore::CSSPreloadScanner::scanCommon):
202         (WebCore::CSSPreloadScanner::scan):
203         * html/parser/CSSPreloadScanner.h:
204         (CSSPreloadScanner):
205             - Tweak the CSSPreloadScanner API slightly to make it easier to
206               call from templated code.
207         * html/parser/HTMLPreloadScanner.cpp:
208         (WebCore::TokenPreloadScanner::tagIdFor):
209         (WebCore):
210         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
211         (TokenPreloadScanner::StartTagScanner):
212         (WebCore::TokenPreloadScanner::scan):
213         (WebCore::TokenPreloadScanner::scanCommon):
214         (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
215         (WebCore::HTMLPreloadScanner::scan):
216         * html/parser/HTMLPreloadScanner.h:
217         (TokenPreloadScanner):
218
219 2013-02-15  Alexis Menard  <alexis@webkit.org>
220
221         WebKit shouldn't accept "none, none" in transition shorthand property.
222         https://bugs.webkit.org/show_bug.cgi?id=108751
223
224         Reviewed by Dean Jackson.
225
226         http://dev.w3.org/csswg/css3-transitions/#transition-shorthand-property
227         specifies that if there is more than one transition defined in the
228         shorthand and any of them has a value of 'none' then the declaration is
229         invalid. This patch fixes the problem by passing a parsing context to
230         track if a keyword has been set for the transition-property and if so
231         then use it to invalidate or not the declaration.
232
233         Test: transitions/transitions-parsing.html
234
235         * css/CSSParser.cpp:
236         (AnimationParseContext):
237         (WebCore::AnimationParseContext::AnimationParseContext):
238         (WebCore::AnimationParseContext::commitFirstAnimation): track whether
239         it's the first <single-transition/animation> or not defined in the
240         shorthand.
241         (WebCore::AnimationParseContext::hasCommittedFirstAnimation):
242         (WebCore::AnimationParseContext::commitAnimationPropertyKeywordInShorthand):
243         In the shorthand as soon as a keyword has been found then the parsing
244         is 'finished', if any other animation/transition declaration part of
245         the shorthand are with a keyword then it's invalid.
246         (WebCore::AnimationParseContext::animationPropertyKeywordInShorthandAllowed):
247         (WebCore::AnimationParseContext::hasSeenAnimationPropertyKeyword):
248         (WebCore::AnimationParseContext::sawAnimationPropertyKeyword):
249         (WebCore):
250         (WebCore::CSSParser::parseValue):
251         (WebCore::CSSParser::parseAnimationShorthand):
252         (WebCore::CSSParser::parseTransitionShorthand):
253         (WebCore::CSSParser::parseAnimationProperty):
254         * css/CSSParser.h:
255         (WebCore):
256
257 2013-02-15  Andreas Kling  <akling@apple.com>
258
259         ElementData: Move leafy things out of the base class.
260         <http://webkit.org/b/109888>
261
262         Reviewed by Antti Koivisto.
263
264         - Moved functions for mutating/adding/removing attributes into UniqueElementData.
265           Attempts to modify shared element data will now fail at compile-time.
266
267         - Removed mutableAttributeVector() and have call sites access the vector directly.
268
269         - Move immutableAttributeArray() to ShareableElementData.
270
271         - Move some function bodies from Element.h to Element.cpp since all clients are in there.
272
273         * dom/Element.cpp:
274         (WebCore::Element::addAttributeInternal):
275         (WebCore::ShareableElementData::ShareableElementData):
276         (WebCore::UniqueElementData::makeShareableCopy):
277         (WebCore::UniqueElementData::addAttribute):
278         (WebCore::UniqueElementData::removeAttribute):
279         (WebCore::ElementData::reportMemoryUsage):
280         (WebCore::UniqueElementData::getAttributeItem):
281         (WebCore::UniqueElementData::attributeItem):
282         * dom/Element.h:
283         (ElementData):
284         (WebCore::ShareableElementData::immutableAttributeArray):
285         (ShareableElementData):
286         (UniqueElementData):
287         (WebCore::ElementData::length):
288         (WebCore::ElementData::attributeItem):
289
290 2013-02-15  Hans Muller  <hmuller@adobe.com>
291
292         [CSS Exclusions] Enable shape-inside support for circles
293         https://bugs.webkit.org/show_bug.cgi?id=109713
294
295         Reviewed by Dirk Schulze.
296
297         Removed the test that disabled circle values for shape-inside.
298         The remaining support for circles, which is based on rounded rectangles
299         whose width/height is equal to their radiusX/radiusY, has not changed.
300
301         Test: fast/exclusions/shape-inside/shape-inside-circle.html
302
303         * rendering/ExclusionShapeInsideInfo.h:
304         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Now only disallows ellipse.
305
306 2013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
307
308         [Soup] Leverage new soup_cookie_jar_get_cookie_list() API
309         https://bugs.webkit.org/show_bug.cgi?id=109931
310
311         Reviewed by Kenneth Rohde Christiansen.
312
313         In several cases, the CookieJarSoup implementation was retrieving / copying ALL the
314         cookies using soup_cookie_jar_all_cookies() and then using soup_cookie_applies_to_uri()
315         to filter out cookies it is not interested in. This was inefficient.
316
317         In libsoup 2.40, soup_cookie_jar_get_cookie_list() was introduced to retrieve only the
318         cookies that apply to a given URI. This patch leverages this new API in CookieJarSoup's
319         getRawCookies() and deleteCookie(). This way, only the cookies we are interested in
320         are retrieved and copied. Libsoup does not need to iterate over all the cookies itself
321         because it keeps the cookies in a hash table using the host names as key.
322
323         No new tests, no behavior change.
324
325         * platform/network/soup/CookieJarSoup.cpp:
326         (WebCore::getRawCookies):
327         (WebCore::deleteCookie):
328
329 2013-02-15  Vladislav Kaznacheev  <kaznacheev@chromium.org>
330
331         Web Inspector: Added an option to split Elements and Sources sidebars in two panes.
332         https://bugs.webkit.org/show_bug.cgi?id=109298.
333
334         Reviewed by Vsevolod Vlasov.
335
336         Introduced the "Split sidebar" context menu option that splits the horizontal sidebar into two panes.
337         The width split ratio is 1:1 by default and is preserved when the Inspector window is resized.
338         Elements sidebar is split into two tabbed panes, Sources sidebar is split into a pane stack and a tabbed pane.
339
340         No new tests.
341
342         * inspector/front-end/DOMBreakpointsSidebarPane.js:
343         (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
344         * inspector/front-end/ElementsPanel.js:
345         (WebInspector.ElementsPanel.get this):
346         (WebInspector.ElementsPanel):
347         (WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
348         (WebInspector.ElementsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
349         (WebInspector.ElementsPanel.prototype.get _arrangeSidebarPanes.get this):
350         (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
351         * inspector/front-end/ExtensionServer.js:
352         (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
353         * inspector/front-end/ScriptsPanel.js:
354         (WebInspector.ScriptsPanel):
355         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
356         (WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
357         (WebInspector.ScriptsPanel.prototype._sidebarContextMenuEventFired):
358         (WebInspector.ScriptsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
359         (WebInspector.ScriptsPanel.prototype.get _arrangeSidebarPanes.get this):
360         * inspector/front-end/SidebarPane.js:
361         (WebInspector.SidebarPane):
362         (WebInspector.SidebarPane.prototype.expand):
363         (WebInspector.SidebarPane.prototype.onContentReady):
364         (WebInspector.SidebarPane.prototype._setExpandCallback):
365         (WebInspector.SidebarPane.prototype.wasShown):
366         (WebInspector.SidebarPaneTitle):
367         (WebInspector.SidebarPaneTitle.prototype._expand):
368         (WebInspector.SidebarPaneTitle.prototype._collapse):
369         (WebInspector.SidebarPaneTitle.prototype._toggleExpanded):
370         (WebInspector.SidebarPaneTitle.prototype._onTitleKeyDown):
371         (WebInspector.SidebarPaneStack):
372         (WebInspector.SidebarPaneStack.prototype.addPane):
373         (WebInspector.SidebarTabbedPane):
374         (WebInspector.SidebarTabbedPane.prototype.addPane):
375         * inspector/front-end/SidebarView.js:
376         * inspector/front-end/SplitView.js:
377         (WebInspector.SplitView):
378         (WebInspector.SplitView.prototype.get mainElement):
379         (WebInspector.SplitView.prototype.get sidebarElement):
380
381 2013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>
382
383         Web Inspector: Several consecutive Backspace or Delete strikes should not be marked as undoable state.
384         https://bugs.webkit.org/show_bug.cgi?id=109915
385
386         Reviewed by Pavel Feldman.
387
388         Extracted _isEditRangeUndoBoundary() and _isEditRangeAdjacentToLastCommand() in TextEditorModel
389         to detect if markUndoableState() call is needed before and after editRange.
390
391         * inspector/front-end/TextEditorModel.js:
392         (WebInspector.TextRange.prototype.immediatelyPrecedes):
393         (WebInspector.TextRange.prototype.immediatelyFollows):
394         (WebInspector.TextEditorModel.endsWithBracketRegex.):
395
396 2013-02-15  Andrey Adaikin  <aandrey@chromium.org>
397
398         Fix inconsistency in WebGLRenderingContext.idl for getAttribLocation
399         https://bugs.webkit.org/show_bug.cgi?id=109892
400
401         Reviewed by Kentaro Hara.
402
403         * html/canvas/WebGLRenderingContext.idl:
404
405 2013-02-15  Andrey Adaikin  <aandrey@chromium.org>
406
407         Web Inspector: [Canvas] show replay log grouped by draw calls
408         https://bugs.webkit.org/show_bug.cgi?id=109592
409
410         Reviewed by Pavel Feldman.
411
412         Show canvas capturing log grouped by drawing calls.
413         Drive-by: extended Array.prototype with a handy peekLast function.
414         Drive-by: removed code dups in few places.
415
416         * inspector/front-end/CanvasProfileView.js:
417         (WebInspector.CanvasProfileView):
418         (WebInspector.CanvasProfileView.prototype.dispose):
419         (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
420         (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
421         (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
422         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
423         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
424         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
425         (WebInspector.CanvasProfileView.prototype._selectedCallIndex):
426         (WebInspector.CanvasProfileView.prototype._selectedDrawCallGroupIndex):
427         (WebInspector.CanvasProfileView.prototype._appendCallNode):
428         * inspector/front-end/DataGrid.js:
429         (WebInspector.DataGrid.prototype.setColumnVisible):
430         (WebInspector.DataGridNode.prototype.set hasChildren):
431         (WebInspector.DataGridNode.prototype.set revealed):
432         (WebInspector.DataGridNode.prototype.get leftPadding):
433         * inspector/front-end/externs.js:
434         (Array.prototype.peekLast):
435         * inspector/front-end/utilities.js:
436
437 2013-02-15  Yury Semikhatsky  <yurys@chromium.org>
438
439         Web Inspector: highlight record revealed in Timeline
440         https://bugs.webkit.org/show_bug.cgi?id=109930
441
442         Reviewed by Pavel Feldman.
443
444         Revealed timeline record is now highlighted with yellow background
445         that fades out in 2 seconds.
446
447         * inspector/front-end/TimelinePanel.js:
448         (WebInspector.TimelinePanel.prototype._revealRecord):
449         (WebInspector.TimelinePanel.prototype._refreshRecords):
450         (WebInspector.TimelinePanel.prototype._clearRecordHighlight):
451         * inspector/front-end/timelinePanel.css:
452         (.highlighted-timeline-record):
453         (@-webkit-keyframes timeline_record_highlight):
454         (to):
455
456 2013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>
457
458         Web Inspector: Pass original selection to textModel to correctly restore it after undo.
459         https://bugs.webkit.org/show_bug.cgi?id=109911
460
461         Reviewed by Pavel Feldman.
462
463         We can distinguish backspace pressed with and without selection now.
464
465         * inspector/front-end/DefaultTextEditor.js:
466         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
467         (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):
468         * inspector/front-end/TextEditorModel.js:
469         (WebInspector.TextEditorCommand):
470         (WebInspector.TextEditorModel.endsWithBracketRegex.):
471
472 2013-02-15  Joe Mason  <jmason@rim.com>
473
474         [BlackBerry] Remove redundant requireAuth parameter of NetworkJob::notifyAuthReceived
475         https://bugs.webkit.org/show_bug.cgi?id=109855
476
477         Reviewed by Yong Li.
478
479         Internal PR: 296697
480         Internally Reviewed By: Leo Yang
481
482         Code cleanup: The requireAuth parameter of NetworkJob::notifyAuthReceived is redundant as its value
483         can be determined from "result" - if result is AuthResultRetry, requireAuth is false, otherwise it
484         is true.
485
486         No new tests as there is no behaviour change.
487
488         * platform/network/blackberry/NetworkJob.cpp:
489         (WebCore::NetworkJob::notifyAuthReceived):
490         * platform/network/blackberry/NetworkJob.h:
491         (NetworkJob):
492
493 2013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>
494
495         Web Inspector: Redo in text editor should always collapse selection to end.
496         https://bugs.webkit.org/show_bug.cgi?id=109907
497
498         Reviewed by Pavel Feldman.
499
500         * inspector/front-end/TextEditorModel.js:
501         (WebInspector.TextEditorModel.endsWithBracketRegex.):
502
503 2013-02-15  Dan Carney  <dcarney@google.com>
504
505         [v8] persistent handle dispose before last use
506         https://bugs.webkit.org/show_bug.cgi?id=109927
507
508         Reviewed by Jochen Eisinger.
509
510         No new tests. No change in functionality.
511
512         * bindings/v8/ScriptWrappable.h:
513         (WebCore::ScriptWrappable::weakCallback):
514
515 2013-02-15  Keishi Hattori  <keishi@webkit.org>
516
517         PagePopupController.formatMonth should support short month format
518         https://bugs.webkit.org/show_bug.cgi?id=109530
519
520         Reviewed by Kent Tamura.
521
522         PagePopupController.formatMonth should support short month format so we
523         can use it in the new calendar picker.
524
525         Tested by LocaleMacTest::formatMonth.
526
527         * page/PagePopupController.cpp:
528         (WebCore::PagePopupController::formatMonth): Take an extra bool argument to switch to short month format.
529         * page/PagePopupController.h:
530         (PagePopupController):
531         * page/PagePopupController.idl:
532         * platform/text/LocaleICU.cpp:
533         (WebCore::LocaleICU::shortMonthFormat):
534         (WebCore):
535         * platform/text/LocaleICU.h:
536         (LocaleICU):
537         * platform/text/LocaleNone.cpp:
538         (WebCore::shortMonthFormat):
539         (WebCore):
540         * platform/text/PlatformLocale.cpp:
541         (WebCore::DateTimeStringBuilder::visitField):
542         (WebCore::Locale::formatDateTime):
543         * platform/text/PlatformLocale.h:
544         (Locale):
545         * platform/text/mac/LocaleMac.h:
546         (LocaleMac):
547         * platform/text/mac/LocaleMac.mm:
548         (WebCore::LocaleMac::shortMonthFormat):
549         (WebCore):
550         * platform/text/win/LocaleWin.cpp:
551         (WebCore::LocaleWin::shortMonthFormat): Windows doesn't have a short
552         month format so we just replace MMMM with MMM.
553         (WebCore):
554         * platform/text/win/LocaleWin.h:
555         (LocaleWin):
556
557 2013-02-15  Keishi Hattori  <keishi@webkit.org>
558
559         Add setValue and closePopup methods to PagePopupController
560         https://bugs.webkit.org/show_bug.cgi?id=109897
561
562         Reviewed by Kent Tamura.
563
564         The new calendar picker (Bug 109439) needs to set a value without
565         closing the popup. We can't do that with the existing
566         setValueAndClosePopup.
567
568         No new tests. Existing calendar picker and color suggestion picker tests
569         that closing and setting values work properly.
570
571         * Resources/pagepopups/pickerCommon.js:
572         (Picker.prototype.submitValue): Stop using setValueAndClosePopup.
573         (Picker.prototype.handleCancel): Ditto.
574         * page/PagePopupClient.h:
575         (PagePopupClient):
576         * page/PagePopupController.cpp:
577         (WebCore::PagePopupController::setValue): Sets value to element without closing popup.
578         (WebCore):
579         (WebCore::PagePopupController::closePopup): Just closes popup.
580         * page/PagePopupController.h:
581         (PagePopupController):
582         * page/PagePopupController.idl:
583
584 2013-02-15  Mihnea Ovidenie  <mihnea@adobe.com>
585
586         [CSS Regions] RenderRegion should inherit from RenderBlock
587         https://bugs.webkit.org/show_bug.cgi?id=74132
588
589         Reviewed by Julien Chaffraix.
590
591         Change the base class for RenderRegion to be RenderBlock instead of RenderReplaced.
592         Per spec http://dev.w3.org/csswg/css3-regions/#the-flow-from-property, a region is a non-replaced block container.
593         This change is covered by the existing regions tests (in fast/region and fast/repaint).
594
595         The RenderFlowThread object is a self-painting layer (it requires layer and is positioned).
596         Because of that, the RenderFlowThread object is responsible for painting its children,
597         the collected objects. When the RenderRegion::paintObject is called during paint, it delegates painting
598         of content collected inside the flow thread to the associated RenderFlowThread object.
599         Since we do not want to paint the flow thread content multiple times (for each paint phase
600         in which the RenderRegion::paintObject is called), we allow RenderFlowThread painting only for
601         selection and foreground paint phases.
602
603         * rendering/RenderBox.cpp: Clean-up the code from regions specific stuff, now that the regions are render blocks.
604         (WebCore::RenderBox::computePositionedLogicalWidth):
605         (WebCore::RenderBox::computePositionedLogicalHeight):
606         * rendering/RenderLayerBacking.cpp: A region should always render content from its associated flow thread,
607         even when it does not have children of its own.
608         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
609         * rendering/RenderMultiColumnSet.cpp: Make changes to match the new inheritance for RenderRegion.
610         (WebCore::RenderMultiColumnSet::paint):
611         (WebCore::RenderMultiColumnSet::paintColumnRules):
612         * rendering/RenderMultiColumnSet.h:
613         * rendering/RenderRegion.cpp:
614         (WebCore::RenderRegion::RenderRegion):
615         (WebCore::RenderRegion::paintObject):
616         (WebCore::RenderRegion::styleDidChange):
617         (WebCore::RenderRegion::layoutBlock):
618         (WebCore::RenderRegion::insertedIntoTree):
619         (WebCore::RenderRegion::willBeRemovedFromTree):
620         (WebCore::RenderRegion::computePreferredLogicalWidths): Use this method instead of min/maxPreferredLogicalWidth.
621         (WebCore::RenderRegion::updateLogicalHeight):
622         * rendering/RenderRegion.h: For now, assume the region is not allowed to have children.
623         When we will implement the processing model for pseudo-elements http://dev.w3.org/csswg/css3-regions/#processing-model,
624         we will have to remove this function. By having this function return false i was able to leave some tests unchanged.
625
626 2013-02-15  Andrey Lushnikov  <lushnikov@chromium.org>
627
628         Web Inspector: implement smart braces functionality
629         https://bugs.webkit.org/show_bug.cgi?id=109200
630
631         Reviewed by Pavel Feldman.
632
633         - implement SmartBraceController which will handle character insertions
634         and override them if brace character was inserted. Additionally it
635         should handle Backspace key and override it if a cursor is located
636         inside of a bracket pair.
637         - guard smart brace functionality via experiment checkbox.
638
639         New test: inspector/editor/text-editor-smart-braces.html
640
641         * inspector/front-end/DefaultTextEditor.js:
642         (WebInspector.TextEditorMainPanel):
643         (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
644         (WebInspector.TextEditorMainPanel.prototype._handleKeyPress):
645         (WebInspector.TextEditorMainPanel.SmartBraceController):
646         (WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerShortcuts):
647         (WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerCharOverrides):
648         (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBackspace):
649         (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBracePairInsertion):
650         (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleClosingBraceOverride):
651         * inspector/front-end/Settings.js:
652         (WebInspector.ExperimentsSettings):
653
654 2013-02-15  Andrei Bucur  <abucur@adobe.com>
655
656         [CSS Regions][Mac] fast/regions/full-screen-video-from-region.html hits an assertion in RenderFlowThread::removeRenderBoxRegionInfo
657         https://bugs.webkit.org/show_bug.cgi?id=106075
658
659         Reviewed by Tony Chang.
660
661         The crash is caused by two issues.
662
663         The first problem is how a block inside a flow thread determines if the children needs relayout or not.
664         When the region chain is invalidated, the information is lost so we need to return true, even for the
665         enclosing RenderFlowThread. Because the video renderer is the first child of the flow thread this doesn't
666         happen.
667
668         The patch implements this behaviour by inspecting both if the region chain has changed and
669         if the block has no range computed yet.
670
671         The second problem is RenderMedia not inheriting from RenderBlock. The logic of child relayout doesn't apply
672         to it. In the test case, when the full screen button is pressed, the region changes width to fill the viewport,
673         the chain is invalidated and the box info hash map is cleared. When the video is laid out again (after fixing
674         the first issue) it has the same size so the controls don't do a layout. They remain without box info inside
675         the flow thread, thus causing the assertion.
676
677         The patch forces the controls to relayout if the region chain was invalidated. We can't use the
678         logicalWidthChangedInRegions method because it is block specific. This will be fixed in a later patch.
679
680         Tests: No new tests. fast/regions/full-screen-video-from-region.html no longer crashes.
681
682         * rendering/RenderBlock.cpp:
683         (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
684         * rendering/RenderFlowThread.cpp:
685         (WebCore::RenderFlowThread::RenderFlowThread):
686         (WebCore::RenderFlowThread::layout):
687         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
688         * rendering/RenderFlowThread.h: Renamed pageLogicalHeightChanged to pageLogicalSizeChanged.
689         * rendering/RenderMedia.cpp:
690         (WebCore::RenderMedia::layout):
691
692 2013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
693
694         [CoordGfx] Regression from r135212: big layers with transform animations sometime fail to render tiles
695         https://bugs.webkit.org/show_bug.cgi?id=109179
696
697         Reviewed by Jocelyn Turcotte.
698
699         Fix adjustForContentsRect logic for AC layers that are higher or wider than the visible rect.
700
701         Force updates of the visible rect while it is animating, and until we have done one last update after
702         it stops animating.
703
704         Test: compositing/transitions/transform-on-large-layer.html
705
706         * platform/graphics/TiledBackingStore.cpp:
707         (WebCore::TiledBackingStore::adjustForContentsRect):
708         (WebCore::TiledBackingStore::computeCoverAndKeepRect):
709         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
710         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
711         (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
712         (WebCore::CoordinatedGraphicsLayer::computePixelAlignment):
713         (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
714         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
715         (CoordinatedGraphicsLayer):
716
717 2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
718
719         Unreviewed, rolling out r142876.
720         http://trac.webkit.org/changeset/142876
721         https://bugs.webkit.org/show_bug.cgi?id=109920
722
723         Broke relative URL linkification in the computed styles pane
724         (Requested by apavlov on #webkit).
725
726         * inspector/front-end/StylesSidebarPane.js:
727         (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
728
729 2013-02-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>
730
731         Simplify hitTestResultAtPoint and nodesFromRect APIs
732         https://bugs.webkit.org/show_bug.cgi?id=95720
733
734         Reviewed by Julien Chaffraix.
735
736         The existing API was overloaded and could be simplified by passing all the bool arguments in 
737         a HitTestRequest argument. This should also help clarify the call as the enum values explicitely
738         state what they do.
739
740         * WebCore.exp.in:
741         * WebCore.order:
742         * dom/Document.cpp:
743         (WebCore::Document::nodesFromRect):
744         * dom/Document.h:
745         (Document):
746         * page/ContextMenuController.cpp:
747         (WebCore::ContextMenuController::createContextMenu):
748         * page/DragController.cpp:
749         (WebCore::DragController::canProcessDrag):
750         (WebCore::DragController::startDrag):
751         * page/EventHandler.cpp:
752         (WebCore::EventHandler::hitTestResultAtPoint):
753         (WebCore::EventHandler::handleMousePressEvent):
754         (WebCore::EventHandler::handleGestureEvent):
755         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
756         (WebCore::EventHandler::bestClickableNodeForTouchPoint):
757         (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
758         (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
759         (WebCore::EventHandler::handleTouchEvent):
760         * page/EventHandler.h:
761         (WebCore):
762         (EventHandler):
763         * page/FocusController.cpp:
764         (WebCore::updateFocusCandidateIfNeeded):
765         * page/Frame.cpp:
766         (WebCore::Frame::visiblePositionForPoint):
767         (WebCore::Frame::documentAtPoint):
768         * page/TouchDisambiguation.cpp:
769         (WebCore::findGoodTouchTargets):
770         * rendering/HitTestRequest.h:
771         (WebCore::HitTestRequest::allowsFrameScrollbars):
772         * testing/Internals.cpp:
773         (WebCore::Internals::nodesFromRect):
774
775 2013-02-14  Pavel Feldman  <pfeldman@chromium.org>
776
777         Web Inspector: make component-based compile-front-end happy
778         https://bugs.webkit.org/show_bug.cgi?id=109798
779
780         Reviewed by Vsevolod Vlasov.
781
782         * inspector/Inspector.json:
783         * inspector/InspectorDebuggerAgent.cpp:
784         (WebCore::InspectorDebuggerAgent::setVariableValue):
785         * inspector/InspectorDebuggerAgent.h:
786         (InspectorDebuggerAgent):
787         * inspector/compile-front-end.py:
788         * inspector/front-end/AuditResultView.js:
789         * inspector/front-end/CPUProfileView.js:
790         * inspector/front-end/DataGrid.js:
791         * inspector/front-end/InspectorFrontendAPI.js:
792         (InspectorFrontendAPI.loadTimelineFromURL):
793
794 2013-02-14  Alexander Pavlov  <apavlov@chromium.org>
795
796         Web Inspector: Implement tracking of active stylesheets in the frontend
797         https://bugs.webkit.org/show_bug.cgi?id=105828
798
799         Reviewed by Pavel Feldman.
800
801         - This change introduces the CSS.styleSheetAdded() and CSS.styleSheetRemoved() events
802         that update the frontend with all active stylesheet changes in the inspected page.
803         As such, fetching stylesheet headers from the backend manually is no longer needed,
804         and many asynchronous methods have been turned into normal accessors.
805         - One notable change to the stylesheet binding process is that when a via-inspector stylesheet
806         is created, it is instantly reported through the instrumentation, and the viaInspectorStyleSheet() method
807         is [indirectly] called recursively from bindStyleSheet(). Thus, the actual creation and registration
808         of the respective InspectorStyleSheet have been moved into bindStyleSheet(),
809         which relies upon the m_creatingViaInspectorStyleSheet flag.
810
811         Test: inspector/styles/stylesheet-tracking.html
812
813         * dom/DocumentStyleSheetCollection.cpp:
814         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Instrumented.
815         * inspector/Inspector.json: Add events, update the CSS domain description.
816         * inspector/InspectorCSSAgent.cpp:
817         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
818         (WebCore::InspectorCSSAgent::clearFrontend):
819         (WebCore::InspectorCSSAgent::enable): Push all existing stylesheet headers into the frontend.
820         (WebCore::InspectorCSSAgent::activeStyleSheetsUpdated): Push added/removed stylesheet into the frontend.
821         (WebCore::InspectorCSSAgent::getAllStyleSheets): Slightly refactored to make use of collectAllStyleSheets().
822         (WebCore::InspectorCSSAgent::collectAllStyleSheets): Added to collect InspectorStyleSheets rather than headers.
823         (WebCore::InspectorCSSAgent::collectStyleSheets):
824         (WebCore::InspectorCSSAgent::bindStyleSheet): Binds via-inspector stylesheets, too.
825         (WebCore::InspectorCSSAgent::unbindStyleSheet): Now we can unbind stylesheets upon their removal from the document.
826         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet): Modifies m_creatingViaInspectorStyleSheet when necessary.
827         (WebCore::InspectorCSSAgent::detectOrigin): Modified to make use of m_creatingViaInspectorStyleSheet.
828         (WebCore::InspectorCSSAgent::buildObjectForRule): Removed extraneous bound InspectorStyleSheet 0-check.
829         * inspector/InspectorCSSAgent.h:
830         * inspector/InspectorInstrumentation.cpp: Instrumentation of active stylesheet set updates.
831         (WebCore::InspectorInstrumentation::activeStyleSheetsUpdatedImpl):
832         * inspector/InspectorInstrumentation.h: Ditto.
833         (WebCore::InspectorInstrumentation::activeStyleSheetsUpdated):
834         * inspector/front-end/CSSStyleModel.js:
835         (WebInspector.CSSStyleModel.prototype.styleSheetHeaders):
836         (WebInspector.CSSStyleModel.prototype._styleSheetAdded): Added.
837         (WebInspector.CSSStyleModel.prototype._styleSheetRemoved): Added.
838         (WebInspector.CSSStyleModel.prototype.viaInspectorResourceForRule):
839         (WebInspector.CSSStyleModelResourceBinding.prototype._setHeaderForStyleSheetId):
840         (WebInspector.CSSStyleModelResourceBinding.prototype.resourceURLForStyleSheetId):
841         (WebInspector.CSSStyleModelResourceBinding.prototype.styleSheetIdForResource):
842         (WebInspector.CSSStyleModelResourceBinding.prototype._headerKey): Calculate the (frameID + URL) key for CSSStyleSheetHeader.
843         (WebInspector.CSSStyleModelResourceBinding.prototype._createInspectorResource):
844         (WebInspector.CSSStyleModelResourceBinding.prototype._inspectorResource):
845         (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
846         (WebInspector.CSSDispatcher.prototype.styleSheetAdded): Added.
847         (WebInspector.CSSDispatcher.prototype.styleSheetRemoved): Added.
848         * inspector/front-end/SASSSourceMapping.js: Get rid of async implementations.
849         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
850         * inspector/front-end/StylesSidebarPane.js: Ditto.
851         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
852         * inspector/front-end/StylesSourceMapping.js: Ditto.
853         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
854
855 2013-02-15  Andrei Bucur  <abucur@adobe.com>
856
857         Implement the -webkit-margin-collapse properties correct rendering
858         https://bugs.webkit.org/show_bug.cgi?id=108168
859
860         Reviewed by David Hyatt.
861
862         The patch implements the correct behavior for the -webkit-margin-collapse properties:
863         - a value of "discard" on a margin will truncate all the margins collapsing with it;
864         - a value of "separate" will prevent the margin to collapse;
865         - a value of "collapse" is the default collapse behavior.
866
867         The implementation is aware of multiple writing-modes:
868         - if the writing mode of a child is parallel with the writing mode of the container and has the same direction,
869         the -webkit-margin-collapse properties on the child are left as is;
870         - if the writing mode of a child is parallel with the writing mode of the container but has a different direction,
871         the -webkit-margin-collapse properties on the child are reversed;
872         - if the writing mode of a child is perpendicular on the writing mode of the container,
873         the -webkit-margin-collapse properties on the child are ignored;
874
875         I. The "discard" value implementation
876         There are two new bits (before and after) added on the RenderBlockRareData structure specifying if the margins
877         of the block will be discarded or not. We can't rely only on the value from style() because
878         it's possible a block to discard it's margins because it has collapsed with a children that
879         specified "discard" for -webkit-margin-collapse. However, the bits are set only if it is
880         required.
881         Another bit is added on the MarginInfo structure specifying if the margin has to be discarded or not. When
882         collapsing at the before side of a block it will hold information if the container block needs to discard
883         or not. If the collapsing happens between siblings/with after side of the container it will tell if the previous
884         child discards the margin or not. The self collapsing blocks are a special case. If any of its margins
885         discards then both its margins discard and all the other margins collapsing with it.
886         To ensure an optimal behavior it is asserted margin values can't be set on the MarginInfo object if the
887         discard flag is active. If this happens it may indicate someone ignored the possibility of the margin being
888         discarded altogether and incorrectly updated the margin values.
889         Float clearing also needs to change because it may force margins to stop collapsing. If this happens the discard
890         flags and margins needs to be restored to their values before the collapse.
891
892         II. The "separate" value implementation
893         The implementation for separate was not changed too much. I've added new accessor methods for the property
894         that take writing mode into consideration and I've removed some code that didn't work correctly in layoutBlockChild.
895         The problem was the marginInfo structure was cleared if the child was specifying the "separate" value for before.
896         This is wrong because you lose the margin information of the previous child/before side.
897
898         Tests: fast/block/margin-collapse/webkit-margin-collapse-container.html
899                fast/block/margin-collapse/webkit-margin-collapse-floats.html
900                fast/block/margin-collapse/webkit-margin-collapse-siblings-bt.html
901                fast/block/margin-collapse/webkit-margin-collapse-siblings.html
902
903         * rendering/RenderBlock.cpp:
904         (WebCore::RenderBlock::MarginInfo::MarginInfo):
905         (WebCore::RenderBlock::layoutBlock):
906         (WebCore::RenderBlock::collapseMargins):
907         (WebCore::RenderBlock::clearFloatsIfNeeded):
908         (WebCore::RenderBlock::marginBeforeEstimateForChild):
909         (WebCore::RenderBlock::estimateLogicalTopPosition):
910         (WebCore::RenderBlock::setCollapsedBottomMargin):
911         (WebCore::RenderBlock::handleAfterSideOfBlock):
912         (WebCore::RenderBlock::layoutBlockChild):
913         (WebCore::RenderBlock::setMustDiscardMarginBefore):
914         (WebCore):
915         (WebCore::RenderBlock::setMustDiscardMarginAfter):
916         (WebCore::RenderBlock::mustDiscardMarginBefore):
917         (WebCore::RenderBlock::mustDiscardMarginAfter):
918         (WebCore::RenderBlock::mustDiscardMarginBeforeForChild):
919         (WebCore::RenderBlock::mustDiscardMarginAfterForChild):
920         (WebCore::RenderBlock::mustSeparateMarginBeforeForChild):
921         (WebCore::RenderBlock::mustSeparateMarginAfterForChild):
922         * rendering/RenderBlock.h:
923         (RenderBlock):
924         (WebCore::RenderBlock::initMaxMarginValues):
925         (MarginInfo):
926         (WebCore::RenderBlock::MarginInfo::setPositiveMargin):
927         (WebCore::RenderBlock::MarginInfo::setNegativeMargin):
928         (WebCore::RenderBlock::MarginInfo::setPositiveMarginIfLarger):
929         (WebCore::RenderBlock::MarginInfo::setNegativeMarginIfLarger):
930         (WebCore::RenderBlock::MarginInfo::setMargin):
931         (WebCore::RenderBlock::MarginInfo::setCanCollapseMarginAfterWithChildren):
932         (WebCore::RenderBlock::MarginInfo::setDiscardMargin):
933         (WebCore::RenderBlock::MarginInfo::discardMargin):
934         (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
935         (WebCore::RenderBlock::RenderBlockRareData::positiveMarginBeforeDefault):
936         (RenderBlockRareData):
937         * rendering/style/RenderStyle.h:
938
939 2013-02-14  Yury Semikhatsky  <yurys@chromium.org>
940
941         Web Inspector: always show memory size in Mb on the native memory graph
942         https://bugs.webkit.org/show_bug.cgi?id=109813
943
944         Reviewed by Pavel Feldman.
945
946         Memory size vlue is alway shown in Mb on the native memory graph.
947
948         * inspector/front-end/NativeMemoryGraph.js:
949         (WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
950
951 2013-02-14  Andrey Adaikin  <aandrey@chromium.org>
952
953         Use GL typedefs in WebGLRenderingContext.idl
954         https://bugs.webkit.org/show_bug.cgi?id=109060
955
956         Reviewed by Kenneth Russell.
957
958         Use GL typedefs in WebGLRenderingContext.idl according to the specs.
959         Added a FIXME about inconsistency with the current WebGL spec for getAttribLocation.
960
961         Tested manually that generators V8, JS, ObjC, GObject, CPP produce same output.
962
963         * html/canvas/WebGLRenderingContext.idl:
964
965 2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
966
967         Web Inspector: Copy-pasting selected text over itself should be an undoable state.
968         https://bugs.webkit.org/show_bug.cgi?id=109830
969
970         Reviewed by Pavel Feldman.
971
972         * inspector/front-end/TextEditorModel.js:
973         (WebInspector.TextEditorModel.endsWithBracketRegex.):
974
975 2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
976
977         Unreviewed, rolling out r142889.
978         http://trac.webkit.org/changeset/142889
979         https://bugs.webkit.org/show_bug.cgi?id=109891
980
981         It caused an assertion failure in scrollbars/overflow-
982         scrollbar-combinations.html (Requested by tkent on #webkit).
983
984         * rendering/RenderBox.cpp:
985         (WebCore::borderWidthChanged):
986         (WebCore::RenderBox::styleDidChange):
987
988 2013-02-14  Arpita Bahuguna  <arpitabahuguna@gmail.com>
989
990         Caret positioned at the end of a text line (followed by an empty block) in vertical writing mode disappears when pressing the right/down arrow key.
991         https://bugs.webkit.org/show_bug.cgi?id=106452
992
993         Reviewed by Ryosuke Niwa.
994
995         Pressing the down or the right arrow key at the end of a text line in
996         vertical writing mode would make the caret dissapear. This occurs only
997         when the text line is followed by an empty block.
998
999         When trying to compute the next position for placing the caret (for
1000         down/right key), we try to ascertain whether the renderer (in this
1001         case the empty block) is a valid candidate or not. For blockFlow
1002         elements we check against their height.
1003         In vertical writing mode though we would fail such a check since we
1004         should instead be comparing against the renderer's width and not
1005         it's height. Thus, a valid position for the placement of the caret
1006         was not found in such a case.
1007
1008         Test: editing/selection/caret-at-end-of-text-line-followed-by-empty-block-in-vertical-mode.html
1009
1010         * dom/Position.cpp:
1011         (WebCore::Position::isCandidate):
1012         * dom/PositionIterator.cpp:
1013         (WebCore::PositionIterator::isCandidate):
1014         Instead of checking against the height(), check against the
1015         logicalHeight() of the renderer has been added. logicalHeight()
1016         on blockFlow renderer's returns a value in accordance with
1017         the writing mode.
1018
1019 2013-02-14  Ryosuke Niwa  <rniwa@webkit.org>
1020
1021         Windows build fix after r142957.
1022
1023         * dom/DOMAllInOne.cpp:
1024
1025 2013-02-14  Ryosuke Niwa  <rniwa@webkit.org>
1026
1027         Fix a typo introduced in r142705.
1028
1029         Without this fix, text-input-controller.html can fail when DeleteButtonController is enabled.
1030         e.g. "run-webkit-tests platform/mac/editing/deleting/deletionUI-single-instance.html
1031             platform/mac/editing/input/text-input-controller.html --child-processes=1"
1032
1033         * editing/Editor.cpp:
1034         (WebCore::Editor::avoidIntersectionWithDeleteButtonController):
1035
1036 2013-02-14  Hayato Ito  <hayato@chromium.org>
1037
1038         Factor Event retargeting code.
1039         https://bugs.webkit.org/show_bug.cgi?id=109156
1040
1041         Reviewed by Dimitri Glazkov.
1042
1043         To supoort Touch event retargeting (bug 107800), we have to factor
1044         event retargeting code so that it can support not only MouseEvent,
1045         but also other events.
1046
1047         New class, EventRetargeter, was introduced. From now,
1048         EventDispatchMediator (and its subclasses) should call, if event
1049         retargeting is required, an appropriate function provided in
1050         EventRetargeter rather than calling
1051         EventDispatcher::adjustRelatedTarget(), which was removed in this
1052         patch.
1053
1054         No tests. No change in behavior.
1055
1056         * CMakeLists.txt:
1057         * GNUmakefile.list.am:
1058         * Target.pri:
1059         * WebCore.gypi:
1060         * WebCore.xcodeproj/project.pbxproj:
1061         * dom/EventDispatchMediator.cpp:
1062         * dom/EventDispatcher.cpp:
1063         (WebCore):
1064         (WebCore::EventDispatcher::ensureEventPath): Changed to return an EventPath, which will be used by EventRetargeter.
1065         (WebCore::EventDispatcher::dispatchScopedEvent):
1066         (WebCore::EventDispatcher::dispatchEvent):
1067         (WebCore::EventDispatcher::dispatchEventPostProcess):
1068         * dom/EventDispatcher.h:
1069         (WebCore):
1070         (EventDispatcher):
1071         * dom/EventRetargeter.cpp: Added.
1072         (WebCore):
1073         (WebCore::inTheSameScope):
1074         (WebCore::determineDispatchBehavior):
1075         (WebCore::EventRetargeter::calculateEventPath): Factored out from EventDispatcher::ensureEventPath().
1076         (WebCore::EventRetargeter::adjustForMouseEvent):
1077         (WebCore::EventRetargeter::adjustForFocusEvent):
1078         (WebCore::EventRetargeter::adjustForRelatedTarget):
1079         (WebCore::EventRetargeter::calculateAdjustedNodes): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
1080         (WebCore::EventRetargeter::buildRelatedNodeMap): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
1081         (WebCore::EventRetargeter::findRelatedNode):
1082         * dom/EventRetargeter.h: Added.
1083         (WebCore):
1084         (EventRetargeter):
1085         (WebCore::EventRetargeter::eventTargetRespectingTargetRules):
1086         * dom/FocusEvent.cpp:
1087         (WebCore::FocusEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForFocusEvent().
1088         (WebCore::BlurEventDispatchMediator::dispatchEvent): Ditto.
1089         (WebCore::FocusInEventDispatchMediator::dispatchEvent): Ditto.
1090         (WebCore::FocusOutEventDispatchMediator::dispatchEvent): Ditto.
1091         * dom/MouseEvent.cpp:
1092         (WebCore::MouseEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForMouseEvent().
1093
1094 2013-02-14  Simon Fraser  <simon.fraser@apple.com>
1095
1096         Reverting r142861. Hit testing inside of style recalc is fundamentally wrong
1097
1098         * page/EventHandler.cpp:
1099         (WebCore::EventHandler::selectCursor):
1100         (WebCore::EventHandler::handleMouseMoveEvent):
1101         * page/EventHandler.h:
1102         * rendering/RenderObject.cpp:
1103         (WebCore::RenderObject::setStyle):
1104         (WebCore::areNonIdenticalCursorListsEqual):
1105         (WebCore::areCursorsEqual):
1106         (WebCore::RenderObject::styleDidChange):
1107
1108 2013-02-14  Florin Malita  <fmalita@chromium.org>
1109
1110         [SVG] Cached filter results are not invalidated on repaint rect change
1111         https://bugs.webkit.org/show_bug.cgi?id=106221
1112
1113         Reviewed by Dean Jackson.
1114
1115         Since the cached filter results are not invalidated for different repaint rects, we need
1116         to render the content of the whole filter region upfront (otherwise elements not visible
1117         during the initial paint due to scrolling/window size/etc. are never redrawn).
1118
1119         Tests: svg/filters/filter-hidden-content-expected.svg
1120                svg/filters/filter-hidden-content.svg
1121
1122         * rendering/svg/RenderSVGResourceFilter.cpp:
1123         (WebCore::RenderSVGResourceFilter::applyResource):
1124         (WebCore::RenderSVGResourceFilter::drawingRegion):
1125         (WebCore):
1126         * rendering/svg/RenderSVGResourceFilter.h:
1127         (FilterData):
1128         (RenderSVGResourceFilter):
1129         Track the filter drawing region in FilterData.
1130
1131         * rendering/svg/SVGRenderingContext.cpp:
1132         (WebCore::SVGRenderingContext::~SVGRenderingContext):
1133         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
1134         * rendering/svg/SVGRenderingContext.h:
1135         Update paintInfo.rect to cover the whole drawing region while rendering filter content, and
1136         restore it when done.
1137
1138 2013-02-14  Jinwoo Song  <jinwoo7.song@samsung.com>
1139
1140         [EFL] Correct the mismatched cursor map
1141         https://bugs.webkit.org/show_bug.cgi?id=109655
1142
1143         Reviewed by Laszlo Gombos.
1144
1145         Correct the mismatched ECORE_X_CURSOR values in the cursor map.
1146
1147         * platform/efl/EflScreenUtilities.cpp:
1148         (WebCore::CursorMap::CursorMap):
1149
1150 2013-02-14  Kentaro Hara  <haraken@chromium.org>
1151
1152         Unreviewed. Rebaselined run-bindings-tests.
1153
1154         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1155         (WebDOMTestObj::anyAttribute):
1156         (WebDOMTestObj::setAnyAttribute):
1157         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1158         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1159         (webkit_dom_test_obj_get_any_attribute):
1160         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1161         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
1162         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
1163         (WebCore::TestTypedefsV8Internal::funcWithClampCallback):
1164
1165 2013-02-14  Christian Biesinger  <cbiesinger@chromium.org>
1166
1167         Convert media controls from DeprecatedFlexibleBox to FlexibleBox
1168         https://bugs.webkit.org/show_bug.cgi?id=109775
1169
1170         Reviewed by Ojan Vafai.
1171
1172         Covered by existing tests in media/.
1173
1174         * css/mediaControls.css:
1175         * css/mediaControlsBlackBerry.css:
1176         * css/mediaControlsChromium.css:
1177         * css/mediaControlsChromiumAndroid.css:
1178         * css/mediaControlsEfl.css:
1179         * css/mediaControlsGtk.css:
1180         * css/mediaControlsQt.css:
1181         * css/mediaControlsQuickTime.css:
1182         Automated search and replace of old flexbox CSS rules to new ones.
1183         Minor tuning of the chromium rules.
1184
1185         * rendering/RenderMediaControlElements.cpp:
1186         (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
1187         (WebCore::RenderMediaControlTimeDisplay::layout):
1188         * rendering/RenderMediaControlElements.h:
1189         Make media controls inherit from RenderFlexibleBox
1190
1191 2013-02-14  Roger Fong  <roger_fong@apple.com>
1192
1193         Build fix for Windows.
1194
1195         * Modules/webdatabase/SQLTransactionStateMachine.cpp:
1196         (WebCore::nameForSQLTransactionState):
1197
1198 2013-02-14  Dean Jackson  <dino@apple.com>
1199
1200         Inspector doesn't show rules from pluginsStyleSheet
1201         https://bugs.webkit.org/show_bug.cgi?id=109872
1202
1203         Reviewed by Darin Adler.
1204
1205         Make sure getWrapperForRuleInSheets collects the rules
1206         from CSSDefaultStyleSheets::plugInsStyleSheet.
1207
1208         Making a test for this is difficult because the rules in
1209         this sheet only apply to snapshotted plugins at the moment,
1210         which are disabled in DRT, and would require a fairly long
1211         timeout in the test.
1212
1213         * css/InspectorCSSOMWrappers.cpp:
1214         (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
1215
1216 2013-02-14  Hayato Ito  <hayato@chromium.org>
1217
1218         Recover edge names used in MemoryInstrumentation for DocumentRuleSets.
1219         https://bugs.webkit.org/show_bug.cgi?id=109800
1220
1221         Reviewed by Hajime Morita.
1222
1223         This is a following patch for r142573.
1224         r142563 accidentally removes edge names for MemoryInstrumentation. We should recover edge names.
1225
1226         No tests. No change in behavior.
1227
1228         * css/DocumentRuleSets.cpp:
1229         (WebCore::DocumentRuleSets::reportMemoryUsage):
1230
1231 2013-02-14  Hajime Morrita  <morrita@google.com>
1232
1233         [V8] Assertion failure on an exception is thrown
1234         https://bugs.webkit.org/show_bug.cgi?id=109129
1235
1236         An assertion in V8AbstractEventListener is wrong. This change turns it into an error check.
1237
1238         Reviewed by Kentaro Hara.
1239
1240         Test: fast/events/onerror-no-constructor.html
1241
1242         * bindings/v8/V8AbstractEventListener.cpp:
1243         (WebCore::V8AbstractEventListener::handleEvent):
1244
1245 2013-02-14  Kentaro Hara  <haraken@chromium.org>
1246
1247         [V8] CodeGeneratorV8.pm can assume that DOMWindow has [CheckSecurity]
1248         https://bugs.webkit.org/show_bug.cgi?id=109788
1249
1250         Reviewed by Adam Barth.
1251
1252         There is code like this:
1253
1254           if ($extendedAttr{"CheckSecurity"} || $interfaceName eq "DOMWindow")
1255
1256         This check is redundant. DOMWindow has [CheckSecurity]. We can remove the
1257         DOMWindow check.
1258
1259         No tests. No change in behavior.
1260
1261         * bindings/scripts/CodeGeneratorV8.pm:
1262         (GenerateReplaceableAttrSetter):
1263         (GenerateFunctionCallback):
1264         (GenerateNonStandardFunction):
1265         (GenerateImplementation):
1266
1267 2013-02-14  Joshua Bell  <jsbell@chromium.org>
1268
1269         [V8] IndexedDB: Remove unused creationContext paramter from idbKeyToV8Value
1270         https://bugs.webkit.org/show_bug.cgi?id=109870
1271
1272         Reviewed by Kentaro Hara.
1273
1274         This parameter was left over from when the function was toV8(IDBKey). Remove it.
1275
1276         No new tests - just removing dead code.
1277
1278         * bindings/v8/IDBBindingUtilities.cpp:
1279         (WebCore::idbKeyToV8Value): Remove unused parameter.
1280         (WebCore::injectIDBKeyIntoScriptValue): No need for dummy handle.
1281         (WebCore::idbKeyToScriptValue): No need for dummy handle.
1282
1283 2013-02-14  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1284
1285         [WebGL][Qt] regression:r142786 Qt Build fix for Arm and Windows.
1286         https://bugs.webkit.org/show_bug.cgi?id=109797
1287
1288         Reviewed by Csaba Osztrogon√°c.
1289
1290         After r142786, we use OpenGLShims to load necessary GL functions
1291         exposed by ARB_vertex_array_object extension. Qt uses OpenGLShims
1292         to load functions with GLES too. This patch adds support for loading the
1293         equivalent functions on GLES exposed by OES_vertex_array_object.
1294         
1295         * platform/graphics/OpenGLShims.cpp:
1296         (WebCore::initializeOpenGLShims):
1297         * platform/graphics/OpenGLShims.h:
1298
1299 2013-02-14  Alexey Proskuryakov  <ap@apple.com>
1300
1301         <rdar://problem/13210723> CORS preflight broken with NetworkProcess
1302         https://bugs.webkit.org/show_bug.cgi?id=109753
1303
1304         Reviewed by Brady Eidson.
1305
1306         * loader/DocumentThreadableLoader.h:
1307         * loader/DocumentThreadableLoader.cpp:
1308         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
1309         (WebCore::DocumentThreadableLoader::cancel):
1310         (WebCore::DocumentThreadableLoader::didReceiveResponse):
1311         (WebCore::DocumentThreadableLoader::dataReceived):
1312         (WebCore::DocumentThreadableLoader::didReceiveData):
1313         (WebCore::DocumentThreadableLoader::notifyFinished):
1314         (WebCore::DocumentThreadableLoader::didFinishLoading):
1315         (WebCore::DocumentThreadableLoader::didFail):
1316         (WebCore::DocumentThreadableLoader::preflightFailure): Notify InspectorInstrumentation
1317         immediately. In addition to keeping up eith other changes, this means that an accurate
1318         error will be passed now, not a cancellation.
1319         (WebCore::DocumentThreadableLoader::loadRequest):
1320         Get rid of m_preflightRequestIdentifier. Every loader has an identifier, and tracking
1321         identifiers twice is wrong.
1322         Pass identifier explicitly to more internal functions, so that they would not have to
1323         second-guess callers.
1324
1325         * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest):
1326         Create an identifier for all loaders, not just those that we expect to have client
1327         callbacks about. Both Inspector and NetworkProcess need identifiers everywhere.
1328
1329         * loader/TextTrackLoader.cpp: (WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource):
1330         * loader/TextTrackLoader.h:
1331         * loader/cache/CachedResourceClient.h:
1332         (WebCore::CachedResourceClient::deprecatedDidReceiveCachedResource):
1333         * loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::data):
1334         Renamed didReceiveData to avoid conflict with the new DocumentThreadableLoader::didReceiveData.
1335         And we should really get rid of this CachedResourceClient function anyway.
1336
1337 2013-02-14  Kentaro Hara  <haraken@chromium.org>
1338
1339         Replace 'DOMObject' with 'any'
1340         https://bugs.webkit.org/show_bug.cgi?id=109793
1341
1342         Reviewed by Dimitri Glazkov.
1343
1344         In the Web IDL spec, there is no type named 'DOMObject'.
1345         It should be 'any'. We should replace all 'DOMObject's in WebKit IDLs with 'any's.
1346
1347         * Modules/webdatabase/SQLResultSetRowList.idl:
1348         * bindings/scripts/CodeGeneratorCPP.pm:
1349         (GetClassName):
1350         (AddIncludesForType):
1351         * bindings/scripts/CodeGeneratorGObject.pm:
1352         (GenerateFunction):
1353         * bindings/scripts/CodeGeneratorJS.pm:
1354         (AddIncludesForType):
1355         (GenerateImplementation):
1356         (JSValueToNative):
1357         (NativeToJSValue):
1358         * bindings/scripts/CodeGeneratorV8.pm:
1359         (GetNativeType):
1360         (JSValueToNative):
1361         (GetV8HeaderName):
1362         * dom/CustomEvent.idl:
1363         * dom/MessageEvent.idl:
1364         * dom/PopStateEvent.idl:
1365         * fileapi/FileReader.idl:
1366         * html/HTMLCanvasElement.idl:
1367         * html/HTMLElement.idl:
1368         * html/canvas/DataView.idl:
1369         * inspector/InjectedScriptHost.idl:
1370         * inspector/InspectorFrontendHost.idl:
1371         * inspector/JavaScriptCallFrame.idl:
1372         * page/DOMWindow.idl:
1373         * page/Location.idl:
1374
1375 2013-02-14  Kentaro Hara  <haraken@chromium.org>
1376
1377         [V8] Remove GenerateEventListenerCallback() from CodeGeneratorV8.pm
1378         https://bugs.webkit.org/show_bug.cgi?id=109786
1379
1380         Reviewed by Adam Barth.
1381
1382         Some code is duplicated between GenerateEventListenerCallback()
1383         and GenerateFunctionCallback(). By inlining GenerateEventListenerCallback()
1384         into GenerateFunctionCallback(), we can remove the duplication.
1385
1386         No tests. No change in behavior.
1387
1388         * bindings/scripts/CodeGeneratorV8.pm:
1389         (GenerateFunctionCallback):
1390
1391 2013-02-14  Ojan Vafai  <ojan@chromium.org>
1392
1393         Intrinsic and preferred widths on replaced elements are wrong in many cases
1394         https://bugs.webkit.org/show_bug.cgi?id=109859
1395
1396         Reviewed by Levi Weintraub.
1397
1398         Test: fast/replaced/preferred-widths.html
1399
1400         * rendering/RenderReplaced.cpp:
1401         (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
1402         Separate out computing the intrinsic widths. Eventually,
1403         we should be able to share computePreferredLogicalWidth implementations
1404         for all replaced elements and form controls since only the intrinsic width
1405         changes.
1406
1407         (WebCore::RenderReplaced::computePreferredLogicalWidths):
1408         -Apply min-width and max-width constraints and then add borderAndPaddingLogicalWidth
1409         at the end to make sure it's always applied. This matches all our other
1410         computePreferredLogicalWidths override and makes use match Gecko's/Opera's rendering.
1411         -Only set the minPreferredLogicalWidth to 0 if the width or max-width is a percent value.
1412         Doing it for height values and for min-width doesn't make any sense and doesn't
1413         match other browsers. Doing this for max-width still doesn't match other browsers,
1414         but it sounds like Gecko at least would like to change that.
1415
1416         * rendering/RenderReplaced.h:
1417         (WebCore::RenderReplaced::hasRelativeIntrinsicLogicalWidth):
1418         * rendering/svg/RenderSVGRoot.cpp:
1419         (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
1420         Add a way to check if the logicalWidth is relative so that we only check
1421         the width in computePreferredLogicalWidths instead of also checking the height.
1422
1423         * rendering/svg/RenderSVGRoot.h:
1424
1425 2013-02-14  Stephen Chenney  <schenney@chromium.org>
1426
1427         Crash when selecting a HarfBuzz text run with SVG fonts included
1428         https://bugs.webkit.org/show_bug.cgi?id=109833
1429
1430         Reviewed by Tony Chang.
1431
1432         There is an assert in SimpleFontData::applyTransforms that should not
1433         be there, as the code is valid for SVG fonts. If we get past this,
1434         then the HarfBuzz text run shaping code assumes that font data has a
1435         SkTypeface member, and SVG fonts do not. So we crash there too.
1436
1437         For now, we fix the crashes. This still leaves incorrect selection
1438         rectangles in this situation, on all platforms, tracked in
1439         https://bugs.webkit.org/show_bug.cgi?id=108133
1440
1441         Test: svg/css/font-face-crash.html
1442
1443         * platform/graphics/SimpleFontData.h:
1444         (WebCore::SimpleFontData::applyTransforms): Remove ASSERT_NOT_REACHED as the code can legally be reached for SVG fonts.
1445         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
1446         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Check for SVG fonts in the text run, and abort if we find them.
1447
1448 2013-02-13 Joe Mason <jmason@rim.com>
1449
1450         [BlackBerry] Notify platform layer of failing to get authentication credentials
1451         https://bugs.webkit.org/show_bug.cgi?id=109751
1452
1453         Reviewed by Yong Li.
1454         Reviewed internally by Leo Yang
1455         Internal PR: 181302
1456
1457         The BlackBerry platform network layer needs to know if a stream failed to get authentication credentials.
1458         This patch is using newly added stream API to do it.
1459
1460         No functionality changed no new tests.
1461
1462         * platform/network/blackberry/NetworkJob.cpp:
1463         (WebCore::NetworkJob::notifyAuthReceived):
1464         (WebCore::NetworkJob::sendRequestWithCredentials):
1465         (WebCore::NetworkJob::notifyChallengeResult):
1466         * platform/network/blackberry/NetworkJob.h:
1467         * platform/network/blackberry/NetworkManager.cpp:
1468         (WebCore::protectionSpaceToPlatformAuth):
1469         (WebCore):
1470         (WebCore::setAuthCredentials):
1471         * platform/network/blackberry/NetworkManager.h:
1472         (WebCore):
1473
1474 2013-02-14  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1475
1476         [GTK] Fix indentation in GNUmakefile.list.am.
1477         https://bugs.webkit.org/show_bug.cgi?id=109854
1478
1479         Reviewed by Martin Robinson.
1480
1481         This patch fixes indentation in GNUmakefile.list.am.
1482
1483         * GNUmakefile.list.am:
1484
1485 2013-02-14  Tony Chang  <tony@chromium.org>
1486
1487         Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
1488         https://bugs.webkit.org/show_bug.cgi?id=96934
1489
1490         * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
1491         * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
1492
1493 2013-02-14  Abhishek Arya  <inferno@chromium.org>
1494
1495         Bad cast in RenderBlock::splitBlocks.
1496         https://bugs.webkit.org/show_bug.cgi?id=108691
1497
1498         Reviewed by Levi Weintraub.
1499
1500         Test: fast/multicol/remove-child-split-flow-crash.html
1501
1502         * rendering/RenderBlock.cpp:
1503         (WebCore):
1504         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): rename gIsInColumnFlowSplit to gColumnFlowSplitEnabled
1505         and use it to decide when to do the column flow split or not.
1506         (WebCore::RenderBlock::removeChild): Do not allow column flow split inside removeChild
1507         since we might be merging anonymous blocks.
1508
1509 2013-02-14  Mark Lam  <mark.lam@apple.com>
1510
1511         Split SQLTransaction work between the frontend and backend.
1512         https://bugs.webkit.org/show_bug.cgi?id=104750.
1513
1514         Reviewed by Sam Weinig.
1515
1516         This is part of the webdatabase refactoring for webkit2.
1517
1518         1. Changed how transactions are created.
1519
1520            - Database::runTransaction() first creates a SQLTransaction frontend
1521              which encapsulates the 3 script callbacks. It then passes the
1522              SQLTransaction to the backend database to create the
1523              SQLTransactionBackend.
1524            - The SQLTransactionBackend manages all SQLiteTransaction work.
1525
1526         2. Introduced SQLTransactionState and SQLTransactionStateMachine.
1527
1528            - Instead of tracking the transaction phases as "steps" in m_nextStep,
1529              we now use m_nextState which is of enum class SQLTransactionState.
1530              Unlike m_nextStep which is a pointer to a "step" function,
1531              m_nextState is a state variable which is used to index into a
1532              state dispatch table.
1533
1534            - Both SQLTransaction and SQLTransactionBackend now extends
1535              SQLTransactionStateMachine, and uses its dispatch mechanism based on
1536              the SQLTransactionState.
1537
1538            - Instead of having 1 state machine instances, there are 2: 1 in the
1539              frontend, and 1 in the backend. The 2 have mirrored states, and
1540              transfers work to the other state machine when needed.
1541
1542            - Previously, state functions can be called inline from other states.
1543              They are now only called from the state machines runStateMachine()
1544              method. This makes it possible to isolate the state transition
1545              mechanism going between the sides (frontend and backend) to 2
1546              functions only: SQLTransaction::sendToBackendState() and
1547              SQLTransactionBackend::sendToFrontendState().
1548
1549         3. Consolidated cleanup work (mostly) to a unified cleanup function.
1550
1551         4. Changed the frontend Database::runTransaction() to use a
1552            ChangeVersionData* (instead of a ChangeVersionWrapper ref ptr).
1553
1554            - This is necessary because ChangeVersionWrapper contains functionality
1555              used in processing a transaction (to be invoked in the backend).
1556              Instead, what we want is to simply pass the 2 old and new version
1557              strings to the backend. The new ChangeVersionData simply packages up
1558              these 2 strings.
1559            - This makes ChangeVersionData easy to serialize for IPC messaging later.
1560
1561         5. Moved some transaction functions back to the frontend SQLTransaction
1562            because they belong there.
1563
1564         6. Moved some Database functions to its DatabaseBackendAsync backend
1565            now that the transaction has been split up.
1566
1567            - This is driven naturally by those functions being used exclusively
1568              in the backend for transaction work.
1569            - SQLTransactionClient, SQLTransactionCoordinator, and
1570              SQLTransactionWrapper are now exclusively backend data structures.
1571              SQLTransactionClient still has some frontend "pollution" that I'll
1572              fix later.
1573
1574         7. Made the few database report functions used only by Chromium conditional
1575            on PLATFORM(chromium).
1576
1577            - The report functions gets re-routed to Chromium's DatabaseObserver
1578              which further routes them elsewhere. It is unclear how Chromium uses
1579              these routed messages, and I am therefore not able to determine how
1580              they should work in a frontend/backend world. So, I'm #ifdef'ing
1581              them out. They still work like in the old way for Chromium.
1582
1583         8. Added new files to the build / project files.
1584
1585         9. Updated / added comments about how the transaction and its states work.
1586
1587         No new tests.
1588
1589         * CMakeLists.txt:
1590         * GNUmakefile.list.am:
1591         * Modules/webdatabase/AbstractDatabaseServer.h:
1592         * Modules/webdatabase/ChangeVersionData.h: Added.
1593         (ChangeVersionData):
1594         (WebCore::ChangeVersionData::ChangeVersionData):
1595         (WebCore::ChangeVersionData::oldVersion):
1596         (WebCore::ChangeVersionData::newVersion):
1597         * Modules/webdatabase/ChangeVersionWrapper.cpp:
1598         (WebCore::ChangeVersionWrapper::performPreflight):
1599         (WebCore::ChangeVersionWrapper::performPostflight):
1600         (WebCore::ChangeVersionWrapper::handleCommitFailedAfterPostflight):
1601         * Modules/webdatabase/ChangeVersionWrapper.h:
1602         (ChangeVersionWrapper):
1603         * Modules/webdatabase/Database.cpp:
1604         (WebCore::Database::Database):
1605         (WebCore::Database::close):
1606         (WebCore::Database::changeVersion):
1607         (WebCore::Database::transaction):
1608         (WebCore::Database::readTransaction):
1609         (WebCore::Database::runTransaction):
1610         (WebCore::Database::reportStartTransactionResult):
1611         (WebCore::Database::reportCommitTransactionResult):
1612         (WebCore::Database::reportExecuteStatementResult):
1613         * Modules/webdatabase/Database.h:
1614         (WebCore::Database::databaseContext):
1615         (Database):
1616         (WebCore::Database::reportStartTransactionResult):
1617         (WebCore::Database::reportCommitTransactionResult):
1618         (WebCore::Database::reportExecuteStatementResult):
1619         * Modules/webdatabase/DatabaseBackend.cpp:
1620         * Modules/webdatabase/DatabaseBackend.h:
1621         (DatabaseBackend):
1622         (WebCore::DatabaseBackend::reportOpenDatabaseResult):
1623         (WebCore::DatabaseBackend::reportChangeVersionResult):
1624         (WebCore::DatabaseBackend::reportStartTransactionResult):
1625         (WebCore::DatabaseBackend::reportCommitTransactionResult):
1626         (WebCore::DatabaseBackend::reportExecuteStatementResult):
1627         (WebCore::DatabaseBackend::reportVacuumDatabaseResult):
1628         * Modules/webdatabase/DatabaseBackendAsync.cpp:
1629         (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
1630         (WebCore::DatabaseBackendAsync::runTransaction):
1631         (WebCore::DatabaseBackendAsync::inProgressTransactionCompleted): Moved from frontend.
1632         (WebCore::DatabaseBackendAsync::scheduleTransaction): Moved from frontend.
1633         (WebCore::DatabaseBackendAsync::scheduleTransactionStep): Moved from frontend.
1634         (WebCore::DatabaseBackendAsync::transactionClient): Moved from frontend.
1635         (WebCore::DatabaseBackendAsync::transactionCoordinator): Moved from frontend.
1636         * Modules/webdatabase/DatabaseBackendAsync.h:
1637         (DatabaseBackendAsync):
1638         * Modules/webdatabase/DatabaseBackendContext.cpp:
1639         (WebCore::DatabaseBackendContext::frontend):
1640         * Modules/webdatabase/DatabaseBackendContext.h:
1641         (DatabaseBackendContext):
1642         * Modules/webdatabase/DatabaseManager.cpp:
1643         * Modules/webdatabase/DatabaseManager.h:
1644         (DatabaseManager):
1645         * Modules/webdatabase/DatabaseServer.cpp:
1646         * Modules/webdatabase/DatabaseServer.h:
1647         * Modules/webdatabase/DatabaseTask.cpp:
1648         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
1649         * Modules/webdatabase/SQLTransaction.cpp:
1650         (WebCore::SQLTransaction::create):
1651         (WebCore::SQLTransaction::SQLTransaction):
1652         (WebCore::SQLTransaction::setBackend):
1653         (WebCore::SQLTransaction::stateFunctionFor):
1654         (WebCore::SQLTransaction::requestTransitToState):
1655         (WebCore::SQLTransaction::nextStateForTransactionError):
1656             - was handleTransactionError(). There's also a backend version.
1657         (WebCore::SQLTransaction::deliverTransactionCallback): Moved from backend.
1658         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Moved from backend.
1659         (WebCore::SQLTransaction::deliverStatementCallback): Moved from backend.
1660         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Moved from backend.
1661         (WebCore::SQLTransaction::deliverSuccessCallback): Moved from backend.
1662         (WebCore::SQLTransaction::unreachableState):
1663         (WebCore::SQLTransaction::sendToBackendState):
1664         (WebCore::SQLTransaction::performPendingCallback): Moved from backend.
1665         (WebCore::SQLTransaction::executeSQL): Moved from backend.
1666         (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
1667         (WebCore::SQLTransaction::clearCallbackWrappers):
1668         * Modules/webdatabase/SQLTransaction.h:
1669         (SQLTransaction):
1670         (WebCore::SQLTransaction::database):
1671         (WebCore::SQLTransaction::hasCallback):
1672         (WebCore::SQLTransaction::hasSuccessCallback):
1673         (WebCore::SQLTransaction::hasErrorCallback):
1674         * Modules/webdatabase/SQLTransactionBackend.cpp:
1675         (WebCore::SQLTransactionBackend::create):
1676         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
1677         (WebCore::SQLTransactionBackend::doCleanup):
1678         (WebCore::SQLTransactionBackend::transactionError):
1679         (WebCore::SQLTransactionBackend::setShouldRetryCurrentStatement):
1680         (WebCore::SQLTransactionBackend::stateFunctionFor):
1681         (WebCore::SQLTransactionBackend::enqueueStatement):
1682         (WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
1683         (WebCore::SQLTransactionBackend::performNextStep):
1684         (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
1685         (WebCore::SQLTransactionBackend::acquireLock):
1686         (WebCore::SQLTransactionBackend::lockAcquired):
1687         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
1688         (WebCore::SQLTransactionBackend::runStatements):
1689         (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
1690             - was runCurrentStatement().
1691         (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
1692             - was handleCurrentStatementError().
1693         (WebCore::SQLTransactionBackend::postflightAndCommit):
1694         (WebCore::SQLTransactionBackend::cleanupAndTerminate):
1695         (WebCore::SQLTransactionBackend::nextStateForTransactionError):
1696             - was handleTransactionError(). There's also a frontend version.
1697         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
1698         (WebCore::SQLTransactionBackend::requestTransitToState):
1699         (WebCore::SQLTransactionBackend::unreachableState):
1700         (WebCore::SQLTransactionBackend::sendToFrontendState):
1701         * Modules/webdatabase/SQLTransactionBackend.h:
1702         (SQLTransactionWrapper):
1703         (SQLTransactionBackend):
1704         (WebCore::SQLTransactionBackend::database):
1705         * Modules/webdatabase/SQLTransactionClient.cpp:
1706         (WebCore::SQLTransactionClient::didCommitWriteTransaction):
1707         (WebCore::SQLTransactionClient::didExecuteStatement):
1708         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
1709         (WebCore::getDatabaseIdentifier):
1710         * Modules/webdatabase/SQLTransactionState.h: Added.
1711         * Modules/webdatabase/SQLTransactionStateMachine.cpp: Added.
1712         (WebCore::nameForSQLTransactionState):
1713             - was debugStepName().
1714         * Modules/webdatabase/SQLTransactionStateMachine.h: Added.
1715         (SQLTransactionStateMachine):
1716         (WebCore::SQLTransactionStateMachine::~SQLTransactionStateMachine):
1717         (WebCore::::SQLTransactionStateMachine):
1718         (WebCore::::setStateToRequestedState):
1719         (WebCore::::runStateMachine):
1720         * Target.pri:
1721         * WebCore.gypi:
1722         * WebCore.vcproj/WebCore.vcproj:
1723         * WebCore.vcxproj/WebCore.vcxproj:
1724         * WebCore.vcxproj/WebCore.vcxproj.filters:
1725         * WebCore.xcodeproj/project.pbxproj:
1726         * inspector/InspectorDatabaseAgent.cpp:
1727
1728 2013-02-14  Jer Noble  <jer.noble@apple.com>
1729
1730         EME: replace MediaKeySession.addKey() -> update()
1731         https://bugs.webkit.org/show_bug.cgi?id=109461
1732
1733         Reviewed by Eric Carlson.
1734
1735         No new tests; updated media/encrypted-media/encrypted-media-v2-syntax.html test.
1736
1737         In the latest draft of the Encrypted Media Spec, the addKeys() method has been replaced
1738         with update().
1739
1740         * Modules/encryptedmedia/CDM.h:
1741         * Modules/encryptedmedia/MediaKeySession.cpp:
1742         (WebCore::MediaKeySession::update):
1743         (WebCore::MediaKeySession::addKeyTimerFired):
1744         * Modules/encryptedmedia/MediaKeySession.h:
1745         * Modules/encryptedmedia/MediaKeySession.idl:
1746         * html/HTMLMediaElement.cpp:
1747         (WebCore::HTMLMediaElement::webkitAddKey):
1748         * testing/MockCDM.cpp:
1749         (WebCore::MockCDMSession::update):
1750
1751 2013-02-14  Tony Chang  <tony@chromium.org>
1752
1753         Unreviewed, set svn:eol-style CRLF for .sln files.
1754
1755         * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
1756         * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
1757
1758 2013-02-14  Eric Carlson  <eric.carlson@apple.com>
1759
1760         [Mac] adjust caption color user preference calculation
1761         https://bugs.webkit.org/show_bug.cgi?id=109840
1762
1763         Reviewed by Dean Jackson.
1764
1765         No new tests, it isn't possible to test this with DRT.
1766
1767         * page/CaptionUserPreferencesMac.mm:
1768         (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): The color is "important" if either the
1769             color or opacity are supposed to override.
1770         (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Ditto.
1771         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Ditto.
1772
1773         * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
1774         * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
1775
1776 2013-02-14  Cosmin Truta  <ctruta@rim.com>
1777
1778         Numeric identifiers of events are not guaranteed to be unique
1779         https://bugs.webkit.org/show_bug.cgi?id=103259
1780
1781         Reviewed by Alexey Proskuryakov.
1782
1783         The results of setTimeout, setInterval and navigator.geolocation.watchPosition
1784         are positive integer values extracted from a simple circular sequential number
1785         generator, whose uniqueness can be guaranteed for no more than 2^31 calls to
1786         any of these functions. In order to provide this guarantee beyond this limit,
1787         we repeatedly ask for the next sequential id until we get one that's not used
1788         already.
1789
1790         This solution works instantly under normal circumstances, when there are few
1791         live timeout ids or geolocation ids at any given moment. Handling millions of
1792         live ids will require another solution.
1793
1794         No new tests. Brief tests of uniqueness already exist.
1795         Moreover, reproducing this particular issue would require 2^31 set/clear
1796         function calls, which is prohibitively expensive.
1797
1798         * Modules/geolocation/Geolocation.cpp:
1799         (WebCore::Geolocation::Watchers::add): Rename from Watchers::set; return false if watch id already exists.
1800         (WebCore::Geolocation::watchPosition): Repeat until the new watch id is unique.
1801         * Modules/geolocation/Geolocation.h:
1802         (Watchers): Rename Watchers::set to Watchers::add.
1803         * Modules/geolocation/Geolocation.idl: Rename the argument of Geolocation::clearWatch to WatchID.
1804         * dom/ScriptExecutionContext.cpp:
1805         (WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
1806         (WebCore::ScriptExecutionContext::circularSequentialID): Rename from newUniqueID; remove FIXME note.
1807         * dom/ScriptExecutionContext.h:
1808         (ScriptExecutionContext): Rename ScriptExecutionContext::newUniqueID to ScriptExecutionContext::circularSequentialID.
1809         (WebCore::ScriptExecutionContext::addTimeout): Return false (do not assert) if timeout id already exists.
1810         * page/DOMTimer.cpp:
1811         (WebCore::DOMTimer::DOMTimer): Repeat until the new timeout id is unique.
1812
1813 2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1814
1815         Unreviewed, rolling out r142825.
1816         http://trac.webkit.org/changeset/142825
1817         https://bugs.webkit.org/show_bug.cgi?id=109856
1818
1819         Causes some inspector tests to time out (Requested by anttik
1820         on #webkit).
1821
1822         * platform/mac/SharedTimerMac.mm:
1823         (WebCore):
1824         (WebCore::PowerObserver::restartSharedTimer):
1825         (WebCore::setSharedTimerFireInterval):
1826         (WebCore::stopSharedTimer):
1827
1828 2013-02-14  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
1829
1830         Support the ch unit from css3-values
1831         https://bugs.webkit.org/show_bug.cgi?id=85755
1832
1833         Reviewed by David Hyatt.
1834
1835         Original patch by Sumedha Widyadharma <sumedha.widyadharma@basyskom.com>.
1836
1837         Test: fast/css/css3-ch-unit.html
1838
1839         * css/CSSCalculationValue.cpp:
1840         (WebCore::unitCategory):
1841         * css/CSSGrammar.y.in:
1842         * css/CSSParser.cpp:
1843         (WebCore::CSSParser::validUnit):
1844         (WebCore::CSSParser::createPrimitiveNumericValue):
1845         (WebCore::CSSParser::parseValidPrimitive):
1846         (WebCore::CSSParser::detectNumberToken):
1847         * css/CSSParserValues.cpp:
1848         (WebCore::CSSParserValue::createCSSValue):
1849         * css/CSSPrimitiveValue.cpp:
1850         (WebCore::isValidCSSUnitTypeForDoubleConversion):
1851         (WebCore::CSSPrimitiveValue::cleanup):
1852         (WebCore::CSSPrimitiveValue::computeLengthDouble):
1853         (WebCore::CSSPrimitiveValue::customCssText):
1854         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
1855         * css/CSSPrimitiveValue.h:
1856         (WebCore::CSSPrimitiveValue::isFontRelativeLength):
1857         (WebCore::CSSPrimitiveValue::isLength):
1858         * platform/graphics/FontMetrics.h:
1859         (WebCore::FontMetrics::FontMetrics):
1860         (WebCore::FontMetrics::zeroWidth):
1861         (WebCore::FontMetrics::setZeroWidth):
1862         (FontMetrics):
1863         (WebCore::FontMetrics::hasZeroWidth):
1864         (WebCore::FontMetrics::setHasZeroWidth):
1865         * platform/graphics/SimpleFontData.cpp:
1866         (WebCore::SimpleFontData::platformGlyphInit):
1867         * platform/graphics/SimpleFontData.h:
1868         (WebCore::SimpleFontData::zeroGlyph):
1869         (WebCore::SimpleFontData::setZeroGlyph):
1870         (SimpleFontData):
1871         * platform/graphics/qt/SimpleFontDataQt.cpp:
1872         (WebCore::SimpleFontData::platformInit):
1873
1874 2013-02-14  David Kilzer  <ddkilzer@apple.com>
1875
1876         [Mac] Clean up WARNING_CFLAGS
1877         <http://webkit.org/b/109747>
1878         <rdar://problem/13208373>
1879
1880         Reviewed by Mark Rowe.
1881
1882         * Configurations/Base.xcconfig: Use
1883         GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
1884         -Wshorten-64-to-32 rather than WARNING_CFLAGS.
1885
1886 2013-02-14  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1887
1888         Add addHTTPHeaderField() method to ResourceResponse
1889         https://bugs.webkit.org/show_bug.cgi?id=109844
1890
1891         Reviewed by Adam Barth.
1892
1893         ResourceRequestBase provides both setHTTPHeaderField() and addHTTPHeaderField(). However,
1894         ResourceResponseBase only provides setHTTPHeaderField(). This is a bit inconsistent. As a
1895         result, the addHTTPHeaderField() functionality's implementation is duplicated in several
1896         ports (at least chromium and soup).
1897
1898         This patch introduces addHTTPHeaderField() to ResourceResponseBase and makes use of it
1899         in Chromium and Soup backends.
1900
1901         No new tests, no behavior change.
1902
1903         * platform/chromium/support/WebURLResponse.cpp:
1904         (WebKit::WebURLResponse::addHTTPHeaderField): Use ResourceResponseBase::addHTTPHeaderField().
1905         * platform/network/ResourceResponseBase.cpp:
1906         (WebCore::ResourceResponseBase::updateHeaderParsedState): Move headers' parsed state update code
1907         from setHTTPHeaderField() to a new updateHeaderParsedState() method to avoid code duplication.
1908         (WebCore):
1909         (WebCore::ResourceResponseBase::setHTTPHeaderField):
1910         (WebCore::ResourceResponseBase::addHTTPHeaderField):
1911         * platform/network/ResourceResponseBase.h:
1912         (ResourceResponseBase):
1913         * platform/network/soup/ResourceResponseSoup.cpp:
1914         (WebCore::ResourceResponse::updateFromSoupMessageHeaders): Use ResourceResponseBase::addHTTPHeaderField().
1915
1916 2013-02-14  Philip Rogers  <pdr@google.com>
1917
1918         Prevent inconsistent firstChild during document destruction
1919         https://bugs.webkit.org/show_bug.cgi?id=106530
1920
1921         Reviewed by Abhishek Arya.
1922
1923         During document destruction, addChildNodesToDeletionQueue can allow a container
1924         node to have an invalid first child, causing a crash. This patch updates
1925         addChildNodesToDeletionQueue to maintain a valid value for firstChild() even
1926         while updating its children.
1927
1928         Test: svg/custom/animateMotion-path-change-crash.svg
1929
1930         * dom/ContainerNodeAlgorithms.h:
1931         (WebCore::Private::addChildNodesToDeletionQueue):
1932             To ensure prevoiusSibling() is also valid, this code was slightly refactored
1933             to call setPreviousSibling(0) on the next node instead of the current node.
1934
1935 2013-02-14  Julien Chaffraix  <jchaffraix@webkit.org>
1936
1937         [CSS Grid Layout] Add an internal 2D grid representation to RenderGrid
1938         https://bugs.webkit.org/show_bug.cgi?id=109714
1939
1940         Reviewed by Ojan Vafai.
1941
1942         This change introduces a 2D grid representation of the grid areas. Our implementation
1943         is a straight Vector of Vectors for the grid areas, each grid area able to hold an
1944         arbitrary number of RenderBox* so they hold a Vector of RenderBoxes. As an optimization,
1945         each grid area has enough inline storage to hold one grid item which should cover
1946         most cases.
1947
1948         In order to keep the code readable, a GridIterator was introduced to hide the new grid.
1949
1950         Refactoring, covered by existing tests.
1951
1952         * rendering/RenderGrid.cpp:
1953         (RenderGrid::GridIterator):
1954         (WebCore::RenderGrid::GridIterator::GridIterator):
1955         (WebCore::RenderGrid::GridIterator::nextGridItem):
1956         Added a mono-directional iterator. In order to be more aligned with the rest of the code,
1957         this iterator actually walks orthogonally to the |direction| (ie fixing the |direction|'s track).
1958
1959         * rendering/RenderGrid.cpp:
1960         (WebCore::RenderGrid::computePreferredLogicalWidths):
1961         (WebCore::RenderGrid::layoutGridItems):
1962         Updated these 2 functions to place the items on the grid and clear it at the end.
1963
1964         (WebCore::RenderGrid::computePreferredTrackWidth):
1965         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
1966         Updated to use the GridIterator to walk over the rows / columns.
1967
1968         (WebCore::RenderGrid::placeItemsOnGrid):
1969         Added this function that inserts the grid items into the right grid area.
1970
1971         * rendering/RenderGrid.h:
1972         (WebCore::RenderGrid::gridColumnCount):
1973         (WebCore::RenderGrid::gridRowCount):
1974         Added these helper functions.
1975
1976 2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1977
1978         Unreviewed, rolling out r141990.
1979         http://trac.webkit.org/changeset/141990
1980         https://bugs.webkit.org/show_bug.cgi?id=109850
1981
1982         ~5% regression on intl2 page cycler (Requested by kling on
1983         #webkit).
1984
1985         * platform/graphics/GlyphPage.h:
1986         (WebCore::GlyphPage::create):
1987         (WebCore::GlyphPage::glyphDataForCharacter):
1988         (WebCore::GlyphPage::glyphDataForIndex):
1989         (WebCore::GlyphPage::fontDataForCharacter):
1990         (WebCore::GlyphPage::setGlyphDataForIndex):
1991         (GlyphPage):
1992         (WebCore::GlyphPage::copyFrom):
1993         (WebCore::GlyphPage::clear):
1994         (WebCore::GlyphPage::clearForFontData):
1995         (WebCore::GlyphPage::GlyphPage):
1996         * platform/graphics/GlyphPageTreeNode.cpp:
1997         (WebCore::GlyphPageTreeNode::initializePage):
1998         * rendering/svg/SVGTextRunRenderingContext.cpp:
1999         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
2000
2001 2013-02-14  Mark Pilgrim  <pilgrim@chromium.org>
2002
2003         [Chromium] Move PlatformMessagePortChannel to WebCore
2004         https://bugs.webkit.org/show_bug.cgi?id=109845
2005
2006         Reviewed by Adam Barth.
2007
2008         Part of a larger refactoring series; see tracking bug 106829.
2009
2010         * WebCore.gyp/WebCore.gyp:
2011         * WebCore.gypi:
2012         * dom/default/chromium: Added.
2013         * dom/default/chromium/PlatformMessagePortChannelChromium.cpp: Added.
2014         (WebCore):
2015         (WebCore::MessagePortChannel::create):
2016         (WebCore::MessagePortChannel::createChannel):
2017         (WebCore::MessagePortChannel::MessagePortChannel):
2018         (WebCore::MessagePortChannel::~MessagePortChannel):
2019         (WebCore::MessagePortChannel::entangleIfOpen):
2020         (WebCore::MessagePortChannel::disentangle):
2021         (WebCore::MessagePortChannel::postMessageToRemote):
2022         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
2023         (WebCore::MessagePortChannel::close):
2024         (WebCore::MessagePortChannel::isConnectedTo):
2025         (WebCore::MessagePortChannel::hasPendingActivity):
2026         (WebCore::MessagePortChannel::locallyEntangledPort):
2027         (WebCore::PlatformMessagePortChannel::create):
2028         (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
2029         (WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
2030         (WebCore::PlatformMessagePortChannel::createChannel):
2031         (WebCore::PlatformMessagePortChannel::messageAvailable):
2032         (WebCore::PlatformMessagePortChannel::entangleIfOpen):
2033         (WebCore::PlatformMessagePortChannel::disentangle):
2034         (WebCore::PlatformMessagePortChannel::postMessageToRemote):
2035         (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
2036         (WebCore::PlatformMessagePortChannel::close):
2037         (WebCore::PlatformMessagePortChannel::isConnectedTo):
2038         (WebCore::PlatformMessagePortChannel::hasPendingActivity):
2039         (WebCore::PlatformMessagePortChannel::setEntangledChannel):
2040         (WebCore::PlatformMessagePortChannel::webChannelRelease):
2041         * dom/default/chromium/PlatformMessagePortChannelChromium.h: Added.
2042         (WebKit):
2043         (WebCore):
2044         (PlatformMessagePortChannel):
2045
2046 2013-02-14  Chris Fleizach  <cfleizach@apple.com>
2047
2048         Remove Leopard Accessibility support from WebCore (now that no port builds on Leopard)
2049         https://bugs.webkit.org/show_bug.cgi?id=90250
2050
2051         Reviewed by Eric Seidel.
2052
2053         The Leopard era checks for accessibility lists and accessibility tables can be removed now.
2054
2055         * accessibility/AccessibilityARIAGrid.cpp:
2056         (WebCore):
2057         * accessibility/AccessibilityARIAGrid.h:
2058         (AccessibilityARIAGrid):
2059         (WebCore::AccessibilityARIAGrid::isTableExposableThroughAccessibility):
2060         * accessibility/AccessibilityList.cpp:
2061         (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
2062         * accessibility/AccessibilityList.h:
2063         * accessibility/AccessibilityTable.cpp:
2064         (WebCore::AccessibilityTable::AccessibilityTable):
2065         (WebCore::AccessibilityTable::init):
2066         * accessibility/AccessibilityTable.h:
2067         (AccessibilityTable):
2068         * accessibility/mac/AXObjectCacheMac.mm:
2069         (WebCore::AXObjectCache::postPlatformNotification):
2070         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
2071         (createAccessibilityRoleMap):
2072
2073 2013-02-14  Bear Travis  <betravis@adobe.com>
2074
2075         Make outside-shape the default value for shape-inside
2076         https://bugs.webkit.org/show_bug.cgi?id=109605
2077
2078         Reviewed by Levi Weintraub.
2079
2080         Creating a single reference outside-shape value and setting it as the default
2081         for shape-inside.
2082
2083         Existing tests cover the default value, just updating them to use outside-shape.
2084
2085         * rendering/style/RenderStyle.cpp:
2086         (WebCore::RenderStyle::initialShapeInside): Define a local static outside-shape
2087         value.
2088         (WebCore):
2089         * rendering/style/RenderStyle.h: Move the initialShapeInside method to the .cpp
2090         file.
2091
2092 2013-02-14  Min Qin  <qinmin@chromium.org>
2093
2094         Passing alpha to DeferredImageDecoder once decoding completes
2095         https://bugs.webkit.org/show_bug.cgi?id=108892
2096
2097         Reviewed by Stephen White.
2098
2099         We should pass hasAlpha value back to the DeferredImageDecoder once decoding is completed
2100         Added unit tests in ImageFrameGeneratorTest.
2101
2102         * platform/graphics/chromium/DeferredImageDecoder.cpp:
2103         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
2104         * platform/graphics/chromium/ImageFrameGenerator.cpp:
2105         (WebCore::ImageFrameGenerator::tryToScale):
2106         (WebCore::ImageFrameGenerator::decode):
2107         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
2108         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
2109         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
2110         * platform/graphics/chromium/LazyDecodingPixelRef.h:
2111         (WebCore::LazyDecodingPixelRef::hasAlpha):
2112         (LazyDecodingPixelRef):
2113         * platform/graphics/chromium/ScaledImageFragment.cpp:
2114         (WebCore::ScaledImageFragment::ScaledImageFragment):
2115         * platform/graphics/chromium/ScaledImageFragment.h:
2116         (WebCore::ScaledImageFragment::create):
2117         (ScaledImageFragment):
2118         (WebCore::ScaledImageFragment::hasAlpha):
2119
2120 2013-02-14  David Grogan  <dgrogan@chromium.org>
2121
2122         IndexedDB: Add a few more histogram calls
2123         https://bugs.webkit.org/show_bug.cgi?id=109762
2124
2125         Reviewed by Tony Chang.
2126
2127         A few places where commits could fail weren't being logged.
2128
2129         * Modules/indexeddb/IDBBackingStore.cpp:
2130         (WebCore::IDBBackingStore::deleteDatabase):
2131         (WebCore::IDBBackingStore::Transaction::commit):
2132
2133 2013-02-14  Tony Chang  <tony@chromium.org>
2134
2135         Padding and border changes doesn't trigger relayout of children
2136         https://bugs.webkit.org/show_bug.cgi?id=109639
2137
2138         Reviewed by Kent Tamura.
2139
2140         In RenderBlock::layoutBlock, we only relayout our children if our logical width
2141         changes. This misses cases where our logical width doesn't change (i.e., padding
2142         or border changes), but our content width does change.
2143
2144         This is a more general case of bug 104997.
2145
2146         Test: fast/block/dynamic-padding-border.html
2147
2148         * rendering/RenderBox.cpp:
2149         (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
2150         (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
2151         even without border-box box sizing.
2152
2153 2013-02-14  Peter Rybin  <prybin@chromium.org>
2154
2155         Web Inspector: fix closure compilation warnings caused by setVariableValue change
2156         https://bugs.webkit.org/show_bug.cgi?id=109488
2157
2158         Reviewed by Pavel Feldman.
2159
2160         Annotations are fixed as required by closure compiler.
2161         Parameters in Inspector.json are reordered as required.
2162
2163         * inspector/InjectedScriptExterns.js:
2164         (InjectedScriptHost.prototype.setFunctionVariableValue):
2165         (JavaScriptCallFrame.prototype.setVariableValue):
2166         * inspector/InjectedScriptSource.js:
2167         (.):
2168         * inspector/Inspector.json:
2169         * inspector/InspectorDebuggerAgent.cpp:
2170         (WebCore::InspectorDebuggerAgent::setVariableValue):
2171         * inspector/InspectorDebuggerAgent.h:
2172         (InspectorDebuggerAgent):
2173
2174 2013-02-14  Tommy Widenflycht  <tommyw@google.com>
2175
2176         MediaStream API: RTCDataChannel triggers a use-after-free
2177         https://bugs.webkit.org/show_bug.cgi?id=109806
2178
2179         Reviewed by Adam Barth.
2180
2181         Making sure RTCPeerConnection::stop() is always called at least once.
2182         Also making sure that RTCDataChannels state gets set to Closed correctly.
2183
2184         Hard to test in WebKit but covered by Chromium tests.
2185
2186         * Modules/mediastream/RTCDataChannel.cpp:
2187         (WebCore::RTCDataChannel::stop):
2188         * Modules/mediastream/RTCPeerConnection.cpp:
2189         (WebCore::RTCPeerConnection::~RTCPeerConnection):
2190         (WebCore::RTCPeerConnection::stop):
2191
2192 2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
2193
2194         Web Inspector: [Regression] When several consecutive characters are typed each of them is marked as undoable state.
2195         https://bugs.webkit.org/show_bug.cgi?id=109823
2196
2197         Reviewed by Pavel Feldman.
2198
2199         * inspector/front-end/TextEditorModel.js:
2200         (WebInspector.TextEditorModel.endsWithBracketRegex.):
2201
2202 2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
2203
2204         Unreviewed, rolling out r142820.
2205         http://trac.webkit.org/changeset/142820
2206         https://bugs.webkit.org/show_bug.cgi?id=109839
2207
2208         Causing crashes on chromium canaries (Requested by atwilson_
2209         on #webkit).
2210
2211         * dom/Document.cpp:
2212         (WebCore::Document::updateLayout):
2213         (WebCore::Document::implicitClose):
2214         * rendering/RenderQuote.h:
2215         (RenderQuote):
2216         * rendering/RenderView.cpp:
2217         * rendering/RenderView.h:
2218
2219 2013-02-14  Mario Sanchez Prada  <mario.prada@samsung.com>
2220
2221         [GTK] Missing call to g_object_ref while retrieving accessible table cells
2222         https://bugs.webkit.org/show_bug.cgi?id=106903
2223
2224         Reviewed by Martin Robinson.
2225
2226         Add missing extra ref to implementation of atk_table_ref_at().
2227
2228         Test: accessibility/table-cell-for-column-and-row-crash.html
2229
2230         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
2231         (webkitAccessibleTableRefAt): This method transfers full ownership
2232         over the returned AtkObject, so an extra reference is needed here.
2233
2234 2013-02-14  Mike Fenton  <mifenton@rim.com>
2235
2236         [BlackBerry] Update keyboard event details to match platform details.
2237         https://bugs.webkit.org/show_bug.cgi?id=109693
2238
2239         Reviewed by Yong Li.
2240
2241         PR 220170.
2242
2243         Update the keyboard event details to match the
2244         platform details available.
2245
2246         Rename helper function to better describe the conversion.
2247
2248         Reviewed Internally by Nima Ghanavatian and Gen Mak.
2249
2250         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
2251         (WebCore::windowsKeyCodeForBlackBerryKeycode):
2252         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2253
2254 2013-02-08  Andrey Kosyakov  <caseq@chromium.org>
2255
2256         Web Inspector: expose did{Begin,Cancel}Frame() and {will,did}Composite() on WebDebToolsAgent
2257         https://bugs.webkit.org/show_bug.cgi?id=109192
2258
2259         Reviewed by Pavel Feldman.
2260
2261         - remove frame and compositing instrumentation methods from InspectorInstrumentation;
2262         - expose those methods on InspectorController instead.
2263
2264         * WebCore.exp.in:
2265         * inspector/InspectorController.cpp:
2266         (WebCore::InspectorController::didBeginFrame):
2267         (WebCore):
2268         (WebCore::InspectorController::didCancelFrame):
2269         (WebCore::InspectorController::willComposite):
2270         (WebCore::InspectorController::didComposite):
2271         * inspector/InspectorController.h:
2272         (InspectorController):
2273         * inspector/InspectorInstrumentation.cpp:
2274         (WebCore):
2275         * inspector/InspectorInstrumentation.h:
2276         (InspectorInstrumentation):
2277         * testing/Internals.cpp:
2278         (WebCore::Internals::emitInspectorDidBeginFrame):
2279         (WebCore::Internals::emitInspectorDidCancelFrame):
2280
2281 2013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2282
2283         Web Inspector: Fixed a layout regression in CanvasProfileView.
2284         https://bugs.webkit.org/show_bug.cgi?id=109835
2285
2286         Reviewed by Pavel Feldman.
2287
2288         Changed splitView.css to supported nested SplitView instances.
2289
2290         * inspector/front-end/splitView.css:
2291         (.split-view-vertical > .split-view-contents):
2292         (.split-view-vertical > .split-view-contents-first):
2293         (.split-view-vertical > .split-view-contents-first.maximized):
2294         (.split-view-vertical > .split-view-contents-second):
2295         (.split-view-vertical > .split-view-contents-second.maximized):
2296         (.split-view-horizontal > .split-view-contents):
2297         (.split-view-horizontal > .split-view-contents-first):
2298         (.split-view-horizontal > .split-view-contents-first.maximized):
2299         (.split-view-horizontal > .split-view-contents-second):
2300         (.split-view-horizontal > .split-view-contents-second.maximized):
2301         (.split-view-vertical > .split-view-sidebar.split-view-contents-first:not(.maximized)):
2302         (.split-view-vertical > .split-view-sidebar.split-view-contents-second:not(.maximized)):
2303         (.split-view-horizontal > .split-view-sidebar.split-view-contents-first:not(.maximized)):
2304         (.split-view-horizontal > .split-view-sidebar.split-view-contents-second:not(.maximized)):
2305         (.split-view-vertical > .split-view-resizer):
2306         (.split-view-horizontal > .split-view-resizer):
2307
2308 2013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2309
2310         Web Inspector: Color picker should not be available in Computed Styles pane.
2311         https://bugs.webkit.org/show_bug.cgi?id=109697
2312
2313         Reviewed by Alexander Pavlov.
2314
2315         Changed the parentPane parameter of WebInspector.ComputedStylePropertiesSection to the correct value
2316         (the ComputedStyleSidebarPane instance).
2317
2318         * inspector/front-end/StylesSidebarPane.js:
2319         (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
2320
2321 2013-02-14  Yury Semikhatsky  <yurys@chromium.org>
2322
2323         Web Inspector: don't create static local string for program literal in InspectorTimelineAgent
2324         https://bugs.webkit.org/show_bug.cgi?id=109811
2325
2326         Reviewed by Pavel Feldman.
2327
2328         Use const char* constant value instead of creating String from it in thread-unsafe
2329         static local variable.
2330
2331         * inspector/InspectorTimelineAgent.cpp:
2332         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2333
2334 2013-02-14  Pan Deng  <pan.deng@intel.com>
2335
2336         [Web Inspector] Fix initiator name issue in reload scenario for Network Panel.
2337         https://bugs.webkit.org/show_bug.cgi?id=108746.
2338
2339         Reviewed by Vsevolod Vlasov.
2340
2341         WebInspector.displayNameForURL() does not work as expected in the reload scenario,
2342         for example, "http://www.yahoo.com/" was trimed to "/" at one time, but at another,
2343         the full host name will be displayed.
2344         This fix return host + "/" in the issue scenario, and keep with get displayName() in ParsedURL.
2345
2346         No new tests.
2347
2348         * inspector/front-end/ParsedURL.js:
2349         (WebInspector.ParsedURL.prototype.get displayName): append "/" in the display host scenario.
2350         * inspector/front-end/ResourceUtils.js:
2351         (WebInspector.displayNameForURL): add host in the head if url trimed as a "/".
2352
2353 2013-02-14  Alexei Filippov  <alph@chromium.org>
2354
2355         Web Inspector: fix to record button remaining red after heap snapshot is taken
2356         https://bugs.webkit.org/show_bug.cgi?id=109804
2357
2358         Reviewed by Yury Semikhatsky.
2359
2360         Revert part of r142243 fix. Namely heap snapshot taking button made
2361         stateless as it was before.
2362
2363         * inspector/front-end/HeapSnapshotView.js:
2364         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
2365         * inspector/front-end/ProfilesPanel.js:
2366         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
2367
2368 2013-02-14  Alexander Pavlov  <apavlov@chromium.org>
2369
2370         Web Inspector: Consistently use SecurityOrigin::toRawString() for serialization across the backend code
2371         https://bugs.webkit.org/show_bug.cgi?id=109801
2372
2373         Reviewed by Yury Semikhatsky.
2374
2375         No new tests, as existing tests cover the change.
2376
2377         * inspector/InspectorAgent.cpp:
2378         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
2379         * inspector/InspectorIndexedDBAgent.cpp:
2380         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
2381         * inspector/InspectorPageAgent.cpp:
2382         (WebCore::InspectorPageAgent::buildObjectForFrame):
2383         * inspector/PageRuntimeAgent.cpp:
2384         (WebCore::PageRuntimeAgent::notifyContextCreated):
2385
2386 2013-02-14  Sergio Villar Senin  <svillar@igalia.com>
2387
2388         Add logging support to IndexedDB for non-Chromium platforms
2389         https://bugs.webkit.org/show_bug.cgi?id=109809
2390
2391         Reviewed by Kentaro Hara.
2392
2393         Enable logging of IndexedDB through the StorageAPI log channel for
2394         non-Chromium architectures.
2395
2396         No new tests required, we're just enabling logging for IndexedDB
2397         using the currently available logging framework.
2398
2399         * Modules/indexeddb/IDBTracing.h:
2400
2401 2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
2402
2403         Web Inspector: Remove uriForFile and fileForURI methods from FileSystemMapping.
2404         https://bugs.webkit.org/show_bug.cgi?id=109704
2405
2406         Reviewed by Alexander Pavlov.
2407
2408         Replaced this methods with one line implementation on the only call site.
2409
2410         * inspector/front-end/FileSystemMapping.js:
2411         * inspector/front-end/FileSystemProjectDelegate.js:
2412         (WebInspector.FileSystemProjectDelegate.prototype._filePathForURI):
2413         (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
2414         (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
2415         (WebInspector.FileSystemProjectDelegate.prototype._populate):
2416
2417 2013-02-14  Anton Vayvod  <avayvod@chromium.org>
2418
2419         [Text Autosizing] Process narrow descendants with the same multiplier for the font size.
2420         https://bugs.webkit.org/show_bug.cgi?id=109573
2421
2422         Reviewed by Julien Chaffraix.
2423
2424         Combine narrow descendants of the same autosizing cluster into a group that is autosized
2425         with the same multiplier.
2426
2427         For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
2428         a large margin individually applied (via a CSS selector), causing them all to individually
2429         appear narrower than their enclosing blockContainingAllText. Rather than making each of
2430         these paragraphs into a separate cluster, we want them all to share the same multiplier, as
2431         if they were a single cluster.
2432
2433         Test: fast/text-autosizing/narrow-descendants-combined.html
2434
2435         * rendering/TextAutosizer.cpp:
2436         (WebCore::TextAutosizer::processClusterInternal):
2437
2438             Common implementation for processCluster() and processCompositeCluster that accepts the
2439             text width and whether the cluster should be autosized as parameters instead of
2440             calculating it inline.
2441
2442         (WebCore::TextAutosizer::processCluster):
2443
2444             Calculates the text width for a single cluster and whether it should be autosized, then
2445             calls processClusterInternal() to apply the multiplier and process the cluster's
2446             descendants.
2447
2448         (WebCore::TextAutosizer::processCompositeCluster):
2449
2450             Calculates the text width for a group of renderers and if the group should be autosized,
2451             then calls processClusterInternal() repeatedly with the same multiplier to apply it and
2452             process all the descendants of the group.
2453
2454         (WebCore::TextAutosizer::clusterShouldBeAutosized):
2455
2456             Calls the multiple renderers version to avoid code duplication.
2457
2458         (WebCore::TextAutosizer::compositeClusterShouldBeAutosized):
2459
2460             The multiple renderers version of clusterShouldBeAutosized.
2461
2462         * rendering/TextAutosizer.h:
2463
2464             Updated method declarations.
2465
2466 2013-02-14  Andrey Adaikin  <aandrey@chromium.org>
2467
2468         Look into possibilities of typedef in webkit idl files
2469         https://bugs.webkit.org/show_bug.cgi?id=52340
2470
2471         Reviewed by Kentaro Hara.
2472
2473         Add typedef support for WebKit IDL parser.
2474         Drive by: fixed a bug of generating "unrestrictedfloat" without a space.
2475
2476         Added a new IDL test TestTypedefs.idl. The results were generated without typedefs.
2477
2478         * bindings/scripts/IDLParser.pm:
2479         (assertNoExtendedAttributesInTypedef):
2480         (parseDefinitions):
2481         (applyTypedefs):
2482         (applyTypedefsForSignature):
2483         (parseTypedef):
2484         (parseUnrestrictedFloatType):
2485         * bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp: Added.
2486         (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate::WebDOMTestTypedefsPrivate):
2487         (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate):
2488         (WebDOMTestTypedefs::WebDOMTestTypedefs):
2489         (WebDOMTestTypedefs::operator=):
2490         (WebDOMTestTypedefs::impl):
2491         (WebDOMTestTypedefs::~WebDOMTestTypedefs):
2492         (WebDOMTestTypedefs::unsignedLongLongAttr):
2493         (WebDOMTestTypedefs::setUnsignedLongLongAttr):
2494         (WebDOMTestTypedefs::immutableSerializedScriptValue):
2495         (WebDOMTestTypedefs::setImmutableSerializedScriptValue):
2496         (WebDOMTestTypedefs::func):
2497         (WebDOMTestTypedefs::multiTransferList):
2498         (WebDOMTestTypedefs::setShadow):
2499         (WebDOMTestTypedefs::nullableArrayArg):
2500         (WebDOMTestTypedefs::immutablePointFunction):
2501         (toWebCore):
2502         (toWebKit):
2503         * bindings/scripts/test/CPP/WebDOMTestTypedefs.h: Added.
2504         (WebCore):
2505         (WebDOMTestTypedefs):
2506         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp: Added.
2507         (_WebKitDOMTestTypedefsPrivate):
2508         (WebKit):
2509         (WebKit::kit):
2510         (WebKit::core):
2511         (WebKit::wrapTestTypedefs):
2512         (webkit_dom_test_typedefs_finalize):
2513         (webkit_dom_test_typedefs_set_property):
2514         (webkit_dom_test_typedefs_get_property):
2515         (webkit_dom_test_typedefs_constructor):
2516         (webkit_dom_test_typedefs_class_init):
2517         (webkit_dom_test_typedefs_init):
2518         (webkit_dom_test_typedefs_func):
2519         (webkit_dom_test_typedefs_multi_transfer_list):
2520         (webkit_dom_test_typedefs_set_shadow):
2521         (webkit_dom_test_typedefs_nullable_array_arg):
2522         (webkit_dom_test_typedefs_immutable_point_function):
2523         (webkit_dom_test_typedefs_string_array_function):
2524         (webkit_dom_test_typedefs_get_unsigned_long_long_attr):
2525         (webkit_dom_test_typedefs_set_unsigned_long_long_attr):
2526         (webkit_dom_test_typedefs_get_immutable_serialized_script_value):
2527         (webkit_dom_test_typedefs_set_immutable_serialized_script_value):
2528         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h: Added.
2529         (_WebKitDOMTestTypedefs):
2530         (_WebKitDOMTestTypedefsClass):
2531         * bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h: Added.
2532         (WebKit):
2533         * bindings/scripts/test/JS/JSTestTypedefs.cpp: Added.
2534         (WebCore):
2535         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
2536         (WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):
2537         (WebCore::JSTestTypedefsConstructor::finishCreation):
2538         (WebCore::JSTestTypedefsConstructor::getOwnPropertySlot):
2539         (WebCore::JSTestTypedefsConstructor::getOwnPropertyDescriptor):
2540         (WebCore::JSTestTypedefsConstructor::getConstructData):
2541         (WebCore::JSTestTypedefsPrototype::self):
2542         (WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
2543         (WebCore::JSTestTypedefsPrototype::getOwnPropertyDescriptor):
2544         (WebCore::JSTestTypedefs::JSTestTypedefs):
2545         (WebCore::JSTestTypedefs::finishCreation):
2546         (WebCore::JSTestTypedefs::createPrototype):
2547         (WebCore::JSTestTypedefs::destroy):
2548         (WebCore::JSTestTypedefs::~JSTestTypedefs):
2549         (WebCore::JSTestTypedefs::getOwnPropertySlot):
2550         (WebCore::JSTestTypedefs::getOwnPropertyDescriptor):
2551         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
2552         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
2553         (WebCore::jsTestTypedefsConstructorTestSubObj):
2554         (WebCore::jsTestTypedefsConstructor):
2555         (WebCore::JSTestTypedefs::put):
2556         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
2557         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
2558         (WebCore::JSTestTypedefs::getConstructor):
2559         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
2560         (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
2561         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
2562         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
2563         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
2564         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
2565         (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
2566         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
2567         (WebCore::isObservable):
2568         (WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
2569         (WebCore::JSTestTypedefsOwner::finalize):
2570         (WebCore::toJS):
2571         (WebCore::toTestTypedefs):
2572         * bindings/scripts/test/JS/JSTestTypedefs.h: Added.
2573         (WebCore):
2574         (JSTestTypedefs):
2575         (WebCore::JSTestTypedefs::create):
2576         (WebCore::JSTestTypedefs::createStructure):
2577         (WebCore::JSTestTypedefs::impl):
2578         (WebCore::JSTestTypedefs::releaseImpl):
2579         (WebCore::JSTestTypedefs::releaseImplIfNotNull):
2580         (JSTestTypedefsOwner):
2581         (WebCore::wrapperOwner):
2582         (WebCore::wrapperContext):
2583         (JSTestTypedefsPrototype):
2584         (WebCore::JSTestTypedefsPrototype::create):
2585         (WebCore::JSTestTypedefsPrototype::createStructure):
2586         (WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
2587         (JSTestTypedefsConstructor):
2588         (WebCore::JSTestTypedefsConstructor::create):
2589         (WebCore::JSTestTypedefsConstructor::createStructure):
2590         * bindings/scripts/test/ObjC/DOMTestTypedefs.h: Added.
2591         * bindings/scripts/test/ObjC/DOMTestTypedefs.mm: Added.
2592         (-[DOMTestTypedefs dealloc]):
2593         (-[DOMTestTypedefs finalize]):
2594         (-[DOMTestTypedefs unsignedLongLongAttr]):
2595         (-[DOMTestTypedefs setUnsignedLongLongAttr:]):
2596         (-[DOMTestTypedefs immutableSerializedScriptValue]):
2597         (-[DOMTestTypedefs setImmutableSerializedScriptValue:]):
2598         (-[DOMTestTypedefs multiTransferList:tx:second:txx:]):
2599         (-[DOMTestTypedefs setShadow:height:blur:color:alpha:]):
2600         (-[DOMTestTypedefs immutablePointFunction]):
2601         (core):
2602         (kit):
2603         * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h: Added.
2604         (WebCore):
2605         * bindings/scripts/test/TestTypedefs.idl: Added.
2606         * bindings/scripts/test/V8/V8TestTypedefs.cpp: Added.
2607         (WebCore):
2608         (WebCore::checkTypeOrDieTrying):
2609         (TestTypedefsV8Internal):
2610         (WebCore::TestTypedefsV8Internal::V8_USE):
2611         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetter):
2612         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
2613         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetter):
2614         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
2615         (WebCore::TestTypedefsV8Internal::TestTypedefsConstructorGetter):
2616         (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetter):
2617         (WebCore::TestTypedefsV8Internal::funcCallback):
2618         (WebCore::TestTypedefsV8Internal::multiTransferListCallback):
2619         (WebCore::TestTypedefsV8Internal::setShadowCallback):
2620         (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
2621         (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
2622         (WebCore::TestTypedefsV8Internal::funcWithClampCallback):
2623         (WebCore::TestTypedefsV8Internal::immutablePointFunctionCallback):
2624         (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
2625         (WebCore::V8TestTypedefs::constructorCallback):
2626         (WebCore::ConfigureV8TestTypedefsTemplate):
2627         (WebCore::V8TestTypedefs::GetRawTemplate):
2628         (WebCore::V8TestTypedefs::GetTemplate):
2629         (WebCore::V8TestTypedefs::HasInstance):
2630         (WebCore::V8TestTypedefs::createWrapper):
2631         (WebCore::V8TestTypedefs::derefObject):
2632         * bindings/scripts/test/V8/V8TestTypedefs.h: Added.
2633         (WebCore):
2634         (V8TestTypedefs):
2635         (WebCore::V8TestTypedefs::toNative):
2636         (WebCore::V8TestTypedefs::installPerContextProperties):
2637         (WebCore::V8TestTypedefs::installPerContextPrototypeProperties):
2638         (WebCore::wrap):
2639         (WebCore::toV8):
2640         (WebCore::toV8Fast):
2641
2642 2013-02-13  Kentaro Hara  <haraken@chromium.org>
2643
2644         [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
2645         and XXXAccessorSetter() to XXXAttrSetterCustom()
2646         https://bugs.webkit.org/show_bug.cgi?id=109679
2647
2648         Reviewed by Adam Barth.
2649
2650         For naming consistency and clarification.
2651
2652         No tests. No change in behavior.
2653
2654         * bindings/scripts/CodeGeneratorV8.pm:
2655         (GenerateHeader):
2656         (GenerateHeaderCustomCall):
2657         (GenerateNormalAttrGetter):
2658         (GenerateNormalAttrSetter):
2659         (GenerateImplementation):
2660         * bindings/scripts/test/V8/V8TestInterface.cpp:
2661         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
2662         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
2663         * bindings/scripts/test/V8/V8TestObj.cpp:
2664         (WebCore::TestObjV8Internal::customAttrAttrGetter):
2665         (WebCore::TestObjV8Internal::customAttrAttrSetter):
2666         * bindings/scripts/test/V8/V8TestObj.h:
2667         (V8TestObj):
2668         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
2669         (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
2670         * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
2671         (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
2672         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
2673         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
2674         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
2675         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
2676         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
2677         * bindings/v8/custom/V8ClipboardCustom.cpp:
2678         (WebCore::V8Clipboard::typesAttrGetterCustom):
2679         * bindings/v8/custom/V8CoordinatesCustom.cpp:
2680         (WebCore::V8Coordinates::altitudeAttrGetterCustom):
2681         (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
2682         (WebCore::V8Coordinates::headingAttrGetterCustom):
2683         (WebCore::V8Coordinates::speedAttrGetterCustom):
2684         * bindings/v8/custom/V8CustomEventCustom.cpp:
2685         (WebCore::V8CustomEvent::detailAttrGetterCustom):
2686         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2687         (WebCore::V8DOMWindow::eventAttrGetterCustom):
2688         (WebCore::V8DOMWindow::eventAttrSetterCustom):
2689         (WebCore::V8DOMWindow::locationAttrSetterCustom):
2690         (WebCore::V8DOMWindow::openerAttrSetterCustom):
2691         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
2692         (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
2693         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
2694         (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
2695         (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
2696         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
2697         (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
2698         (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
2699         (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
2700         (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
2701         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
2702         (WebCore::V8Document::locationAttrGetterCustom):
2703         (WebCore::V8Document::locationAttrSetterCustom):
2704         * bindings/v8/custom/V8EventCustom.cpp:
2705         (WebCore::V8Event::dataTransferAttrGetterCustom):
2706         (WebCore::V8Event::clipboardDataAttrGetterCustom):
2707         * bindings/v8/custom/V8FileReaderCustom.cpp:
2708         (WebCore::V8FileReader::resultAttrGetterCustom):
2709         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2710         (WebCore::V8HTMLDocument::allAttrSetterCustom):
2711         * bindings/v8/custom/V8HTMLElementCustom.cpp:
2712         (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
2713         (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
2714         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
2715         (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
2716         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
2717         (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
2718         (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
2719         (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
2720         (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
2721         (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
2722         (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
2723         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
2724         (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
2725         (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
2726         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
2727         (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
2728         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
2729         (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
2730         * bindings/v8/custom/V8HistoryCustom.cpp:
2731         (WebCore::V8History::stateAttrGetterCustom):
2732         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
2733         (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
2734         (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
2735         (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
2736         * bindings/v8/custom/V8LocationCustom.cpp:
2737         (WebCore::V8Location::hashAttrSetterCustom):
2738         (WebCore::V8Location::hostAttrSetterCustom):
2739         (WebCore::V8Location::hostnameAttrSetterCustom):
2740         (WebCore::V8Location::hrefAttrSetterCustom):
2741         (WebCore::V8Location::pathnameAttrSetterCustom):
2742         (WebCore::V8Location::portAttrSetterCustom):
2743         (WebCore::V8Location::protocolAttrSetterCustom):
2744         (WebCore::V8Location::searchAttrSetterCustom):
2745         (WebCore::V8Location::reloadAttrGetterCustom):
2746         (WebCore::V8Location::replaceAttrGetterCustom):
2747         (WebCore::V8Location::assignAttrGetterCustom):
2748         * bindings/v8/custom/V8MessageEventCustom.cpp:
2749         (WebCore::V8MessageEvent::dataAttrGetterCustom):
2750         (WebCore::V8MessageEvent::portsAttrGetterCustom):
2751         * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
2752         (WebCore::V8OscillatorNode::typeAttrSetterCustom):
2753         * bindings/v8/custom/V8PannerNodeCustom.cpp:
2754         (WebCore::V8PannerNode::panningModelAttrSetterCustom):
2755         (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
2756         * bindings/v8/custom/V8PopStateEventCustom.cpp:
2757         (WebCore::V8PopStateEvent::stateAttrGetterCustom):
2758         * bindings/v8/custom/V8SVGLengthCustom.cpp:
2759         (WebCore::V8SVGLength::valueAttrGetterCustom):
2760         (WebCore::V8SVGLength::valueAttrSetterCustom):
2761         * bindings/v8/custom/V8TrackEventCustom.cpp:
2762         (WebCore::V8TrackEvent::trackAttrGetterCustom):
2763         * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
2764         (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
2765         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2766         (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
2767         (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
2768
2769 2013-02-14  Yury Semikhatsky  <yurys@chromium.org>
2770
2771         Web Inspector: extract DOM counters graph implementation into its own class
2772         https://bugs.webkit.org/show_bug.cgi?id=109796
2773
2774         Reviewed by Alexander Pavlov.
2775
2776         Extracted DOM counters graph implementation into DOMCountersGraph.js leaving
2777         in MemoryStatistics.js only common parts shared with NativeMemoryGraph.js
2778         Added some closure annotations and converted object literals into classes
2779         with named constructors.
2780
2781         * WebCore.gypi:
2782         * WebCore.vcproj/WebCore.vcproj:
2783         * inspector/compile-front-end.py:
2784         * inspector/front-end/DOMCountersGraph.js: Added.
2785         (WebInspector.DOMCountersGraph):
2786         (WebInspector.DOMCounterUI):
2787         (WebInspector.DOMCountersGraph.Counter):
2788         (WebInspector.DOMCounterUI.prototype.setRange):
2789         (WebInspector.DOMCounterUI.prototype.updateCurrentValue):
2790         (WebInspector.DOMCounterUI.prototype.clearCurrentValueAndMarker):
2791         (WebInspector.DOMCounterUI.prototype.saveImageUnderMarker):
2792         (WebInspector.DOMCounterUI.prototype.restoreImageUnderMarker):
2793         (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
2794         (WebInspector.DOMCountersGraph.prototype._createCurrentValuesBar):
2795         (WebInspector.DOMCountersGraph.prototype._createCounterUIList):
2796         (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getNodeCount):
2797         (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getListenerCount):
2798         (WebInspector.DOMCountersGraph.prototype._canvasHeight):
2799         (WebInspector.DOMCountersGraph.prototype._onRecordAdded):
2800         (WebInspector.DOMCountersGraph.prototype._draw):
2801         (WebInspector.DOMCountersGraph.prototype._restoreImageUnderMarker):
2802         (WebInspector.DOMCountersGraph.prototype._saveImageUnderMarker):
2803         (WebInspector.DOMCountersGraph.prototype._drawMarker):
2804         (WebInspector.DOMCountersGraph.prototype._drawGraph):
2805         (WebInspector.DOMCountersGraph.prototype._discardImageUnderMarker):
2806         * inspector/front-end/MemoryStatistics.js:
2807         (WebInspector.MemoryStatistics):
2808         (WebInspector.MemoryStatistics.Counter):
2809         (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
2810         (WebInspector.MemoryStatistics.prototype._createCounterUIList):
2811         (WebInspector.MemoryStatistics.prototype.setTopPosition):
2812         (WebInspector.MemoryStatistics.prototype._canvasHeight):
2813         (WebInspector.MemoryStatistics.prototype._onRecordAdded):
2814         (WebInspector.MemoryStatistics.prototype._draw):
2815         (WebInspector.MemoryStatistics.prototype._onClick):
2816         (WebInspector.MemoryStatistics.prototype._onMouseOut):
2817         (WebInspector.MemoryStatistics.prototype._onMouseOver):
2818         (WebInspector.MemoryStatistics.prototype._onMouseMove):
2819         (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
2820         (WebInspector.MemoryStatistics.prototype._drawMarker):
2821         (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
2822         * inspector/front-end/NativeMemoryGraph.js:
2823         (WebInspector.NativeMemoryGraph.Counter):
2824         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
2825         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
2826         (WebInspector.NativeMemoryGraph.prototype._draw):
2827         * inspector/front-end/TimelinePanel.js:
2828         * inspector/front-end/WebKit.qrc:
2829
2830 2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
2831
2832         Web Inspector: Native Memory Instrumentation: Report child nodes as direct members of a container node to make them look like a tree in the snapshot.
2833         https://bugs.webkit.org/show_bug.cgi?id=109703
2834
2835         Also we need to traverse the tree from the top root element down to the leaves.
2836
2837         Reviewed by Yury Semikhatsky.
2838
2839         * dom/ContainerNode.cpp:
2840         (WebCore::ContainerNode::reportMemoryUsage):
2841         * dom/Node.cpp:
2842         (WebCore::Node::reportMemoryUsage):
2843         * inspector/InspectorMemoryAgent.cpp:
2844         (WebCore):
2845
2846 2013-02-13  Hayato Ito  <hayato@chromium.org>
2847
2848         [Shadow DOM] Implements a '::distributed()' pseudo element.
2849         https://bugs.webkit.org/show_bug.cgi?id=82169
2850
2851         Reviewed by Dimitri Glazkov.
2852
2853         Implements a '::distributed()' pseudo element.
2854         See the Shadow DOM specification and the filed bug for the detail.
2855
2856         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#selecting-nodes-distributed-to-insertion-points
2857         - https://www.w3.org/Bugs/Public/show_bug.cgi?id=19684
2858
2859         For example, suppose we are given the following DOM tree and shadow tree:
2860
2861         - <A>
2862           - <B>
2863             - <C>
2864
2865         [A's ShadowRoot]
2866           <D>
2867           - <style>
2868               E content::distributed(B C) { color: green; }
2869           - <E>
2870             - <content>  (Node B is distributed to this insertion point.)
2871
2872         In this case, the style rule defined in the shadow tree matches node 'C'.
2873
2874         A '::distributed()' pseudo element can not be a pseudo class since
2875         an intersection between matched_elements(some_selector) and
2876         matched_elements(some_selector::distributed(...)) is always an
2877         empty set. A '::distributed()' pseudo element is the first-ever
2878         *functional* pseudo element which takes a parameter, which can be
2879         a selector.
2880
2881         This rule crosses the shadow boundary from a shadow tree to the
2882         tree of its shadow host. That means a rule which includes
2883         '::distributed()' pseudo element is defined in shadow tree, but
2884         the node which is matched in the rule, the subject of the
2885         selector, is outside of the shadow tree. Therefore, we cannot
2886         predict where the subject of the selector will be beforehand.
2887         Current CSS implementation assumes the subject of the selector
2888         must exist in the current scope.
2889
2890         To overcome this issue, DocumentRuleSets now has a instance of
2891         ShadowDistributedRules class.  A style rule will be stored in this
2892         instance if the rule includes a '::distributed()' pseudo element.
2893         This class also keeps track of each RuleSet by mapping it with a
2894         scope where the rule was originally defined. In the example, the
2895         scope is A's ShadowRoot.  The scope is used to check whether the
2896         left-most matched element (in the example, it's a node 'E') exists
2897         in the scope.
2898
2899         Internally, a '::distributed' pseudo element is represented by a
2900         newly introduced 'ShadowDistributed' relation.  That makes an
2901         implementation of SelectorChecker::checkSelector() much simpler.
2902         A transformation from a distributed pseudo element to a
2903         ShadowDistributed is done in parsing stage of CSS.
2904
2905         Since '::distributed()' is an experimental feature, it's actually
2906         prefixed with '-webkit-' and guarded by SHADOW_DOM flag.
2907
2908         Tests: fast/dom/shadow/distributed-pseudo-element-for-shadow-element.html
2909                fast/dom/shadow/distributed-pseudo-element-match-all.html
2910                fast/dom/shadow/distributed-pseudo-element-match-descendant.html
2911                fast/dom/shadow/distributed-pseudo-element-nested.html
2912                fast/dom/shadow/distributed-pseudo-element-no-match.html
2913                fast/dom/shadow/distributed-pseudo-element-reprojection.html
2914                fast/dom/shadow/distributed-pseudo-element-scoped.html
2915                fast/dom/shadow/distributed-pseudo-element-support-selector.html
2916                fast/dom/shadow/distributed-pseudo-element-used-in-selector-list.html
2917                fast/dom/shadow/distributed-pseudo-element-with-any.html
2918                fast/dom/shadow/distributed-pseudo-element.html
2919
2920         * css/CSSGrammar.y.in:
2921         CSS Grammar was updated to support '::distrbuted(selector)'.
2922         This pseudo element is the first pseudo element which can take a selector as a parameter.
2923         * css/CSSParser.cpp:
2924         (WebCore::CSSParser::detectDashToken):
2925         (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
2926         (WebCore::CSSParser::rewriteSpecifiersWithElementName):
2927         Here we are converting a '::distributed' pseudo element into a
2928         ShadowDistributed relation internally.  To support the conversion,
2929         these rewriteSpecifiersXXX functions (formally called
2930         updateSpecifiersXXX) now return the specifiers which may be
2931         converted.
2932         (WebCore::CSSParser::rewriteSpecifiers):
2933         * css/CSSParser.h:
2934         * css/CSSParserValues.cpp:
2935         (WebCore::CSSParserSelector::CSSParserSelector):
2936         * css/CSSParserValues.h:
2937         (CSSParserSelector):
2938         (WebCore::CSSParserSelector::functionArgumentSelector):
2939         To hold an intermediate selector which appears at the position of an argument in
2940         functional pseudo element when parsing CSS.
2941         (WebCore::CSSParserSelector::setFunctionArgumentSelector):
2942         (WebCore::CSSParserSelector::isDistributedPseudoElement):
2943         * css/CSSSelector.cpp:
2944         Add new pseudo element, PseudoDistributed, and its internal representation, ShadowDistributed relation.
2945         (WebCore::CSSSelector::pseudoId):
2946         (WebCore::nameToPseudoTypeMap):
2947         (WebCore::CSSSelector::extractPseudoType):
2948         (WebCore::CSSSelector::selectorText):
2949         * css/CSSSelector.h:
2950         (CSSSelector):
2951         (WebCore):
2952         (WebCore::CSSSelector::isDistributedPseudoElement):
2953         (WebCore::CSSSelector::isShadowDistributed):
2954         * css/CSSSelectorList.cpp:
2955         (WebCore):
2956         (SelectorHasShadowDistributed):
2957         (WebCore::SelectorHasShadowDistributed::operator()):
2958         (WebCore::CSSSelectorList::hasShadowDistributedAt):
2959         * css/CSSSelectorList.h:
2960         (CSSSelectorList):
2961         * css/DocumentRuleSets.cpp:
2962         (WebCore):
2963         (WebCore::ShadowDistributedRules::addRule):
2964         Every CSS rule which includes '::distributed(...)' should be managed by calling this function.
2965         (WebCore::ShadowDistributedRules::collectMatchRequests):
2966         (WebCore::DocumentRuleSets::resetAuthorStyle):
2967         * css/DocumentRuleSets.h:
2968         (WebCore):
2969         (ShadowDistributedRules):
2970         (WebCore::ShadowDistributedRules::clear):
2971         (DocumentRuleSets):
2972         (WebCore::DocumentRuleSets::shadowDistributedRules)
2973         DocumentRuleSets owns an instance of ShadowDistributedRules.
2974         * css/RuleSet.cpp:
2975         (WebCore::RuleSet::addChildRules):
2976         Updated to check whether the rule contains '::distributed()' or not.
2977         * css/SelectorChecker.cpp:
2978         (WebCore::SelectorChecker::match):
2979         Support ShadowDistributed relation. Check all possible insertion points where a node is distributed.
2980         * css/SelectorChecker.h:
2981         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
2982         Adds enum of BehaviorAtBoundary. '::distributed()' is the only
2983         rule which uses 'CrossedBoundary' since it is the only rule which
2984         crosses shadow boundaries.
2985         (SelectorCheckingContext):
2986         * css/SelectorFilter.cpp:
2987         (WebCore::SelectorFilter::collectIdentifierHashes):
2988         * css/StyleResolver.cpp:
2989         (WebCore::StyleResolver::collectMatchingRules):
2990         (WebCore::StyleResolver::matchAuthorRules):
2991         (WebCore::StyleResolver::collectMatchingRulesForList):
2992         (WebCore::StyleResolver::ruleMatches):
2993         * css/StyleResolver.h:
2994         (MatchRequest):
2995         (WebCore::MatchRequest::MatchRequest): Add behaviorAtBoundary field.
2996         (WebCore):
2997         (StyleResolver):
2998         * html/shadow/InsertionPoint.cpp:
2999         (WebCore::collectInsertionPointsWhereNodeIsDistributed):
3000         (WebCore):
3001         * html/shadow/InsertionPoint.h:
3002         (WebCore):
3003
3004 2013-02-13  Kentaro Hara  <haraken@chromium.org>
3005
3006         [V8] Generate wrapper methods for custom methods
3007         https://bugs.webkit.org/show_bug.cgi?id=109678
3008
3009         Reviewed by Adam Barth.
3010
3011         Currently V8 directly calls back custom methods written
3012         in custom binding files. This makes it impossible for code
3013         generators to hook custom methods (e.g. Code generators cannot
3014         insert a code for FeatureObservation into custom methods).
3015         To solve the problem, we should generate wrapper methods for
3016         custom methods.
3017
3018         No tests. No change in behavior.
3019
3020         * page/DOMWindow.idl: Removed overloaded methods. The fact that methods in an IDL
3021         file are overloaded but they are not overloaded in custom bindings confuses code
3022         generators. (For some reason, this problem hasn't appeared before this change.)
3023         * xml/XMLHttpRequest.idl: Ditto.
3024
3025         * bindings/scripts/CodeGeneratorV8.pm:
3026         (GenerateHeader):
3027         (GenerateDomainSafeFunctionGetter):
3028         (GenerateEventListenerCallback):
3029         (GenerateFunctionCallback):
3030         (GenerateNonStandardFunction):
3031         (GenerateImplementation):
3032         * bindings/scripts/test/V8/V8TestInterface.cpp:
3033         (WebCore::TestInterfaceV8Internal::supplementalMethod3Callback):
3034         (TestInterfaceV8Internal):
3035         (WebCore):
3036         * bindings/scripts/test/V8/V8TestObj.cpp:
3037         (WebCore::TestObjV8Internal::customMethodCallback):
3038         (TestObjV8Internal):
3039         (WebCore::TestObjV8Internal::customMethodWithArgsCallback):
3040         (WebCore::TestObjV8Internal::classMethod2Callback):
3041         (WebCore):
3042         (WebCore::ConfigureV8TestObjTemplate):
3043         * bindings/scripts/test/V8/V8TestObj.h:
3044         (V8TestObj):
3045         * bindings/v8/custom/V8ClipboardCustom.cpp:
3046         (WebCore::V8Clipboard::clearDataCallbackCustom):
3047         (WebCore::V8Clipboard::setDragImageCallbackCustom):
3048         * bindings/v8/custom/V8ConsoleCustom.cpp:
3049         (WebCore::V8Console::traceCallbackCustom):
3050         (WebCore::V8Console::assertCallbackCustom):
3051         (WebCore::V8Console::profileCallbackCustom):
3052         (WebCore::V8Console::profileEndCallbackCustom):
3053         * bindings/v8/custom/V8CryptoCustom.cpp:
3054         (WebCore::V8Crypto::getRandomValuesCallbackCustom):
3055         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
3056         (WebCore::V8DOMFormData::appendCallbackCustom):
3057         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3058         (WebCore::V8DOMWindow::addEventListenerCallbackCustom):
3059         (WebCore::V8DOMWindow::removeEventListenerCallbackCustom):
3060         (WebCore::V8DOMWindow::postMessageCallbackCustom):
3061         (WebCore::V8DOMWindow::toStringCallbackCustom):
3062         (WebCore::V8DOMWindow::releaseEventsCallbackCustom):
3063         (WebCore::V8DOMWindow::captureEventsCallbackCustom):
3064         (WebCore::V8DOMWindow::showModalDialogCallbackCustom):
3065         (WebCore::V8DOMWindow::openCallbackCustom):
3066         (WebCore::V8DOMWindow::setTimeoutCallbackCustom):
3067         (WebCore::V8DOMWindow::setIntervalCallbackCustom):
3068         * bindings/v8/custom/V8DataViewCustom.cpp:
3069         (WebCore::V8DataView::getInt8CallbackCustom):
3070         (WebCore::V8DataView::getUint8CallbackCustom):
3071         (WebCore::V8DataView::setInt8CallbackCustom):
3072         (WebCore::V8DataView::setUint8CallbackCustom):
3073         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
3074         (WebCore::V8DedicatedWorkerContext::postMessageCallbackCustom):
3075         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
3076         (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallbackCustom):
3077         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
3078         (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallbackCustom):
3079         * bindings/v8/custom/V8DocumentCustom.cpp:
3080         (WebCore::V8Document::evaluateCallbackCustom):
3081         (WebCore::V8Document::createTouchListCallbackCustom):
3082         * bindings/v8/custom/V8GeolocationCustom.cpp:
3083         (WebCore::V8Geolocation::getCurrentPositionCallbackCustom):
3084         (WebCore::V8Geolocation::watchPositionCallbackCustom):
3085         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
3086         (WebCore::V8HTMLAllCollection::itemCallbackCustom):
3087         (WebCore::V8HTMLAllCollection::namedItemCallbackCustom):
3088         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3089         (WebCore::V8HTMLCanvasElement::getContextCallbackCustom):
3090         (WebCore::V8HTMLCanvasElement::toDataURLCallbackCustom):
3091         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3092         (WebCore::V8HTMLDocument::writeCallbackCustom):
3093         (WebCore::V8HTMLDocument::writelnCallbackCustom):
3094         (WebCore::V8HTMLDocument::openCallbackCustom):
3095         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
3096         (WebCore::V8HTMLFormControlsCollection::namedItemCallbackCustom):
3097         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3098         (WebCore::v8HTMLImageElementConstructorCallbackCustom):
3099         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
3100         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
3101         (WebCore::V8HTMLInputElement::setSelectionRangeCallbackCustom):
3102         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3103         (WebCore::V8HTMLOptionsCollection::namedItemCallbackCustom):
3104         (WebCore::V8HTMLOptionsCollection::removeCallbackCustom):
3105         (WebCore::V8HTMLOptionsCollection::addCallbackCustom):
3106         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
3107         (WebCore::V8HTMLSelectElement::removeCallbackCustom):
3108         * bindings/v8/custom/V8HistoryCustom.cpp:
3109         (WebCore::V8History::pushStateCallbackCustom):
3110         (WebCore::V8History::replaceStateCallbackCustom):
3111         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3112         (WebCore::V8InjectedScriptHost::inspectedObjectCallbackCustom):
3113         (WebCore::V8InjectedScriptHost::internalConstructorNameCallbackCustom):
3114         (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallbackCustom):
3115         (WebCore::V8InjectedScriptHost::typeCallbackCustom):
3116         (WebCore::V8InjectedScriptHost::functionDetailsCallbackCustom):
3117         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallbackCustom):
3118         (WebCore::V8InjectedScriptHost::getEventListenersCallbackCustom):
3119         (WebCore::V8InjectedScriptHost::inspectCallbackCustom):
3120         (WebCore::V8InjectedScriptHost::databaseIdCallbackCustom):
3121         (WebCore::V8InjectedScriptHost::storageIdCallbackCustom):
3122         (WebCore::V8InjectedScriptHost::evaluateCallbackCustom):
3123         (WebCore::V8InjectedScriptHost::setFunctionVariableValueCallbackCustom):
3124         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
3125         (WebCore::V8InspectorFrontendHost::platformCallbackCustom):
3126         (WebCore::V8InspectorFrontendHost::portCallbackCustom):
3127         (WebCore::V8InspectorFrontendHost::showContextMenuCallbackCustom):
3128         (WebCore::V8InspectorFrontendHost::recordActionTakenCallbackCustom):
3129         (WebCore::V8InspectorFrontendHost::recordPanelShownCallbackCustom):
3130         (WebCore::V8InspectorFrontendHost::recordSettingChangedCallbackCustom):
3131         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
3132         (WebCore::V8JavaScriptCallFrame::evaluateCallbackCustom):
3133         (WebCore::V8JavaScriptCallFrame::restartCallbackCustom):
3134         (WebCore::V8JavaScriptCallFrame::setVariableValueCallbackCustom):
3135         (WebCore::V8JavaScriptCallFrame::scopeTypeCallbackCustom):
3136         * bindings/v8/custom/V8LocationCustom.cpp:
3137         (WebCore::V8Location::reloadAccessorGetter):
3138         (WebCore::V8Location::replaceAccessorGetter):
3139         (WebCore::V8Location::assignAccessorGetter):
3140         (WebCore::V8Location::reloadCallbackCustom):
3141         (WebCore::V8Location::replaceCallbackCustom):
3142         (WebCore::V8Location::assignCallbackCustom):
3143         (WebCore::V8Location::valueOfCallbackCustom):
3144         (WebCore::V8Location::toStringCallbackCustom):
3145         * bindings/v8/custom/V8MessageEventCustom.cpp:
3146         (WebCore::V8MessageEvent::initMessageEventCallbackCustom):
3147         (WebCore::V8MessageEvent::webkitInitMessageEventCallbackCustom):
3148         * bindings/v8/custom/V8MessagePortCustom.cpp:
3149         (WebCore::V8MessagePort::postMessageCallbackCustom):
3150         * bindings/v8/custom/V8NodeCustom.cpp:
3151         (WebCore::V8Node::insertBeforeCallbackCustom):
3152         (WebCore::V8Node::replaceChildCallbackCustom):
3153         (WebCore::V8Node::removeChildCallbackCustom):
3154         (WebCore::V8Node::appendChildCallbackCustom):
3155         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
3156         (WebCore::V8NotificationCenter::requestPermissionCallbackCustom):
3157         * bindings/v8/custom/V8NotificationCustom.cpp:
3158         (WebCore::V8Notification::requestPermissionCallbackCustom):
3159         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
3160         (WebCore::V8SQLResultSetRowList::itemCallbackCustom):
3161         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
3162         (WebCore::V8SQLTransaction::executeSqlCallbackCustom):
3163         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
3164         (WebCore::V8SQLTransactionSync::executeSqlCallbackCustom):
3165         * bindings/v8/custom/V8SVGLengthCustom.cpp:
3166         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallbackCustom):
3167         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3168         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallbackCustom):
3169         (WebCore::V8WebGLRenderingContext::getBufferParameterCallbackCustom):
3170         (WebCore::V8WebGLRenderingContext::getExtensionCallbackCustom):
3171         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallbackCustom):
3172         (WebCore::V8WebGLRenderingContext::getParameterCallbackCustom):
3173         (WebCore::V8WebGLRenderingContext::getProgramParameterCallbackCustom):
3174         (WebCore::V8WebGLRenderingContext::getRenderbufferParameterCallbackCustom):
3175         (WebCore::V8WebGLRenderingContext::getShaderParameterCallbackCustom):
3176         (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallbackCustom):
3177         (WebCore::V8WebGLRenderingContext::getTexParameterCallbackCustom):
3178         (WebCore::V8WebGLRenderingContext::getUniformCallbackCustom):
3179         (WebCore::V8WebGLRenderingContext::getVertexAttribCallbackCustom):
3180         (WebCore::V8WebGLRenderingContext::uniform1fvCallbackCustom):
3181         (WebCore::V8WebGLRenderingContext::uniform1ivCallbackCustom):
3182         (WebCore::V8WebGLRenderingContext::uniform2fvCallbackCustom):
3183         (WebCore::V8WebGLRenderingContext::uniform2ivCallbackCustom):
3184         (WebCore::V8WebGLRenderingContext::uniform3fvCallbackCustom):
3185         (WebCore::V8WebGLRenderingContext::uniform3ivCallbackCustom):
3186         (WebCore::V8WebGLRenderingContext::uniform4fvCallbackCustom):
3187         (WebCore::V8WebGLRenderingContext::uniform4ivCallbackCustom):
3188         (WebCore::V8WebGLRenderingContext::uniformMatrix2fvCallbackCustom):
3189         (WebCore::V8WebGLRenderingContext::uniformMatrix3fvCallbackCustom):
3190         (WebCore::V8WebGLRenderingContext::uniformMatrix4fvCallbackCustom):
3191         (WebCore::V8WebGLRenderingContext::vertexAttrib1fvCallbackCustom):
3192         (WebCore::V8WebGLRenderingContext::vertexAttrib2fvCallbackCustom):
3193         (WebCore::V8WebGLRenderingContext::vertexAttrib3fvCallbackCustom):
3194         (WebCore::V8WebGLRenderingContext::vertexAttrib4fvCallbackCustom):
3195         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3196         (WebCore::V8WorkerContext::importScriptsCallbackCustom):
3197         (WebCore::V8WorkerContext::setTimeoutCallbackCustom):
3198         (WebCore::V8WorkerContext::setIntervalCallbackCustom):
3199         * bindings/v8/custom/V8WorkerCustom.cpp:
3200         (WebCore::V8Worker::postMessageCallbackCustom):
3201         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3202         (WebCore::V8XMLHttpRequest::openCallbackCustom):
3203         (WebCore::V8XMLHttpRequest::sendCallbackCustom):
3204         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
3205         (WebCore::V8XSLTProcessor::setParameterCallbackCustom):
3206         (WebCore::V8XSLTProcessor::getParameterCallbackCustom):
3207         (WebCore::V8XSLTProcessor::removeParameterCallbackCustom):
3208
3209 2013-02-13  Praveen R Jadhav  <praveen.j@samsung.com>
3210
3211         JSObject for ChannelSplitterNode and ChannelMergerNode are not created.
3212         https://bugs.webkit.org/show_bug.cgi?id=109542
3213
3214         Reviewed by Kentaro Hara.
3215
3216         "JSGenerateToJSObject" should be included in IDL files
3217         of ChannelSplitterNode and ChannelMergerNode in WebAudio.
3218         This ensures html files to access corresponding objects.
3219
3220         * Modules/webaudio/ChannelMergerNode.idl:
3221         * Modules/webaudio/ChannelSplitterNode.idl:
3222
3223 2013-02-13   Vineet Chaudhary  <rgf748@motorola.com>
3224
3225         [Regression] After r142831  collection-null-like-arguments.html layout test failing
3226         https://bugs.webkit.org/show_bug.cgi?id=109780
3227
3228         Reviewed by Kentaro Hara.
3229
3230         No new tests. LayoutTests/fast/dom/collection-null-like-arguments.html
3231         Should pass now.
3232
3233         * bindings/js/JSHTMLAllCollectionCustom.cpp: Return null for namedItem() only.
3234         (WebCore::getNamedItems):
3235         (WebCore::JSHTMLAllCollection::namedItem):
3236         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
3237         (WebCore::getNamedItems):
3238         (WebCore::JSHTMLFormControlsCollection::namedItem):
3239         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
3240         (WebCore::getNamedItems):
3241         (WebCore::JSHTMLOptionsCollection::namedItem):
3242
3243 2013-02-13  Soo-Hyun Choi  <sh9.choi@samsung.com>
3244
3245         Fix indentation error in MediaPlayerPrivateGStreamer.h
3246         https://bugs.webkit.org/show_bug.cgi?id=109768
3247
3248         Reviewed by Kentaro Hara.
3249
3250         No new tests as this patch just changes indentation style.
3251
3252         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
3253         (MediaPlayerPrivateGStreamer):
3254         (WebCore::MediaPlayerPrivateGStreamer::hasVideo):
3255         (WebCore::MediaPlayerPrivateGStreamer::hasAudio):
3256         (WebCore::MediaPlayerPrivateGStreamer::engineDescription):
3257         (WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
3258
3259 2013-02-13  Adam Barth  <abarth@webkit.org>
3260
3261         TokenPreloadScanner should be (mostly!) thread-safe
3262         https://bugs.webkit.org/show_bug.cgi?id=109760
3263
3264         Reviewed by Eric Seidel.
3265
3266         This patch makes the bulk of TokenPreloadScanner thread-safe.  The one
3267         remaining wart is processPossibleBaseTag because it wants to grub
3268         around in the base tag's attributes. I have a plan for that, but it's
3269         going to need to wait for the next patch.
3270
3271         * html/parser/HTMLPreloadScanner.cpp:
3272         (WebCore::isStartTag):
3273         (WebCore::isStartOrEndTag):
3274         (WebCore::TokenPreloadScanner::identifierFor):
3275         (WebCore::TokenPreloadScanner::inititatorFor):
3276         (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
3277         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
3278         (TokenPreloadScanner::StartTagScanner):
3279         (WebCore::TokenPreloadScanner::processPossibleTemplateTag):
3280         (WebCore::TokenPreloadScanner::processPossibleStyleTag):
3281         (WebCore::TokenPreloadScanner::processPossibleBaseTag):
3282         (WebCore::TokenPreloadScanner::scan):
3283         (WebCore::HTMLPreloadScanner::scan):
3284         * html/parser/HTMLPreloadScanner.h:
3285         (WebCore):
3286
3287 2013-02-13  Adam Barth  <abarth@webkit.org>
3288
3289         StartTagScanner should be thread-safe
3290         https://bugs.webkit.org/show_bug.cgi?id=109750
3291
3292         Reviewed by Eric Seidel.
3293
3294         This patch weens the StartTagScanner off AtomicString using two
3295         techniques:
3296
3297         1) This patch creates an enum to represent the four tag names that the
3298            StartTagScanner needs to understand. Using an enum is better than
3299            using an AtomicString because we can use the enum on both the main
3300            thread and on the background thread.
3301
3302         2) For attributes, this patch uses threadSafeMatch. We're not able to
3303            use threadSafeMatch everywhere due to performance, but using it for
3304            attributes appears to be ok becaues we only call threadSafeMatch on
3305            the attributes of "interesting" tags.
3306
3307         I tested the performance of this patch using
3308         PerformanceTests/Parser/html-parser.html and did not see any slowdown.
3309         (There actually appeared to be a <1% speedup, but I'm attributing that
3310         to noise.)
3311
3312         * html/parser/HTMLPreloadScanner.cpp:
3313         (WebCore::identifierFor):
3314         (WebCore):
3315         (WebCore::inititatorFor):
3316         (WebCore::StartTagScanner::StartTagScanner):
3317         (WebCore::StartTagScanner::processAttributes):
3318         (StartTagScanner):
3319         (WebCore::StartTagScanner::createPreloadRequest):
3320         (WebCore::StartTagScanner::processAttribute):
3321         (WebCore::StartTagScanner::charset):
3322         (WebCore::StartTagScanner::resourceType):
3323         (WebCore::StartTagScanner::shouldPreload):
3324         (WebCore::HTMLPreloadScanner::processToken):
3325
3326 2013-02-13  Huang Dongsung  <luxtella@company100.net>
3327
3328         Coordinated Graphics: a long page is scaled vertically while loading.
3329         https://bugs.webkit.org/show_bug.cgi?id=109645
3330
3331         Reviewed by Noam Rosenthal.
3332
3333         When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws
3334         vertically scaled contents. It is because there is the difference between the
3335         size of a layer and the size of CoordinatedBackingStore.
3336
3337         Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore
3338         at the moment of creating, updating and removing a tile. However, it is not
3339         necessary to send tile-related messages when the size of layer is changed.
3340         So this patch resets the size of CoordinatedBackingStore when receiving the
3341         message that is created when the size is changed: SyncLayerState.
3342
3343         There is no current way to reliably test flicker issues.
3344
3345         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
3346           Add m_pendingSize to set m_size at the moment of flushing.
3347           After http://webkit.org/b/108294, m_pendingSize will be removed
3348           because the bug makes CoordinatedGraphicsScene execute all messages at
3349           the moment of flushing.
3350         (WebCore::CoordinatedBackingStore::setSize):
3351         (WebCore::CoordinatedBackingStore::commitTileOperations):
3352         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
3353         (CoordinatedBackingStore):
3354         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
3355         (WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
3356         (WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
3357         (WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
3358         (WebCore::CoordinatedGraphicsScene::createTile):
3359         (WebCore::CoordinatedGraphicsScene::removeTile):
3360         (WebCore::CoordinatedGraphicsScene::updateTile):
3361
3362 2013-02-13  Kentaro Hara  <haraken@chromium.org>
3363
3364         [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
3365         and XXXAccessorSetter() to XXXAttrSetterCustom()
3366         https://bugs.webkit.org/show_bug.cgi?id=109679
3367
3368         Reviewed by Adam Barth.
3369
3370         For naming consistency and clarification.
3371
3372         No tests. No change in behavior.
3373
3374         * bindings/scripts/CodeGeneratorV8.pm:
3375         (GenerateHeader):
3376         (GenerateHeaderCustomCall):
3377         (GenerateNormalAttrGetter):
3378         (GenerateNormalAttrSetter):
3379         (GenerateImplementation):
3380         * bindings/scripts/test/V8/V8TestInterface.cpp:
3381         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
3382         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
3383         * bindings/scripts/test/V8/V8TestObj.cpp:
3384         (WebCore::TestObjV8Internal::customAttrAttrGetter):
3385         (WebCore::TestObjV8Internal::customAttrAttrSetter):
3386         * bindings/scripts/test/V8/V8TestObj.h:
3387         (V8TestObj):
3388         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
3389         (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
3390         * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
3391         (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
3392         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
3393         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
3394         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
3395         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
3396         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
3397         * bindings/v8/custom/V8ClipboardCustom.cpp:
3398         (WebCore::V8Clipboard::typesAttrGetterCustom):
3399         * bindings/v8/custom/V8CoordinatesCustom.cpp:
3400         (WebCore::V8Coordinates::altitudeAttrGetterCustom):
3401         (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
3402         (WebCore::V8Coordinates::headingAttrGetterCustom):
3403         (WebCore::V8Coordinates::speedAttrGetterCustom):
3404         * bindings/v8/custom/V8CustomEventCustom.cpp:
3405         (WebCore::V8CustomEvent::detailAttrGetterCustom):
3406         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3407         (WebCore::V8DOMWindow::eventAttrGetterCustom):
3408         (WebCore::V8DOMWindow::eventAttrSetterCustom):
3409         (WebCore::V8DOMWindow::locationAttrSetterCustom):
3410         (WebCore::V8DOMWindow::openerAttrSetterCustom):
3411         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
3412         (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
3413         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
3414         (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
<