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