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