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