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