Timeline



Nov 1, 2016:

7:38 PM Changeset in webkit [208270] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Creating a new pseudo-selector in the Styles sidebar doesn't work on first attempt
https://bugs.webkit.org/show_bug.cgi?id=164092

Patch by Devin Rousso <Devin Rousso> on 2016-11-01
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section:not(.invalid-selector).rule-disabled > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .selector,):
(.style-declaration-section.rule-disabled > .header > .icon): Deleted.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
(WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked):
(WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon): Added.
Re-add logic removed by https://webkit.org/b/159734 for handling invalid selectors. Instead
of just refreshing the section whenever the represented CSSRule changes selectors, we only
need to refresh if the selector no longer applies to the current element.

(WebInspector.CSSStyleDeclarationSection.prototype._handleMouseMove): Added.
Fix another issue discovered while adding the invalid selector warnings, where the title
attribute of each individual selector was no longer visible. To fix this, whenever the user
moves their mouse over the selector input, the position is compared to each selector to find
the first one that matches, whose title is then applied to the input element.

6:04 PM Changeset in webkit [208269] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.3.7

New tag.

6:03 PM Changeset in webkit [208268] by bshafiei@apple.com
  • 1 delete in tags/Safari-602.3.7

Delete tag.

5:59 PM Changeset in webkit [208267] by hyatt@apple.com
  • 9 edits in trunk/Source/WebCore

[CSS Parser] Support the shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=164240

Reviewed by Dean Jackson.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::collectIdentifierHashes):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

  • css/SelectorPseudoElementTypeMap.in:

Add support for slotted.

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::appendTagHistory):

  • css/parser/CSSParserValues.h:

(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator. Take :slotted out of
needsImplicitShadowCombinatorForMatching(), since our code doesn't do
this for :slotted.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isPseudoClassFunction):
:host can be both an id and a function, so don't restrict it.

(WebCore::CSSSelectorParser::consumePseudo):
Put in a hack for :host (inside the hack we already plan on removing
once we turn on).

(WebCore::CSSSelectorParser::consumeCombinator):
Remove deep shadow combinator support, as we don't support matching
on it.

(WebCore::CSSSelectorParser::prependTypeSelectorIfNeeded):
(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):
Make the split use our combinator, ShadowDescendant, and no longer do anything
special with :slotted.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

5:52 PM Changeset in webkit [208266] by Wenson Hsieh
  • 4 edits in trunk/Source

Turn the Input Events runtime flag on by default
https://bugs.webkit.org/show_bug.cgi?id=164297

Reviewed by Ryosuke Niwa.

Source/WebCore:

Set the initial value of inputEventsEnabled in Settings to true.

  • page/Settings.in:

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
5:34 PM Changeset in webkit [208265] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed, EFL build fix after r208225

Rename ViewState to ActivityState

  • UIProcess/efl/WebView.cpp:

(WebKit::WebView::setActive):
(WebKit::WebView::setFocused):
(WebKit::WebView::setVisible):

5:26 PM Changeset in webkit [208264] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning

5:25 PM Changeset in webkit [208263] by matthew_hanson@apple.com
  • 10 edits
    6 deletes in branches/safari-602-branch

Roll out r208025 via r208167. rdar://problem/28216240

5:25 PM Changeset in webkit [208262] by matthew_hanson@apple.com
  • 15 edits in branches/safari-602-branch/Source

Roll out r208173 via r208255. rdar://problem/28962886

4:51 PM Changeset in webkit [208261] by beidson@apple.com
  • 20 edits
    10 adds in trunk

IndexedDB 2.0: Support IDBIndex getAll/getAllKeys.
<rdar://problem/28806933> and https://bugs.webkit.org/show_bug.cgi?id=164294

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbindex_getAll-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getAllKeys-expected.txt:

Source/WebCore:

Tests: storage/indexeddb/modern/idbindex-getall-1-private.html

storage/indexeddb/modern/idbindex-getall-1.html
storage/indexeddb/modern/idbindex-getallkeys-1-private.html
storage/indexeddb/modern/idbindex-getallkeys-1.html
Existing imported W3C tests.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::getAll):
(WebCore::IDBIndex::getAllKeys):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::create):
(WebCore::IDBRequest::createIndexGet):
(WebCore::IDBRequest::createCount): Deleted.
(WebCore::IDBRequest::createGet): Deleted.

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/server/IndexValueStore.cpp:

(WebCore::IDBServer::IndexValueStore::allValuesForKey):

  • Modules/indexeddb/server/IndexValueStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::getAllRecords):

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::getAllRecords):

  • Modules/indexeddb/server/MemoryIndex.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getAllRecords):
(WebCore::IDBServer::queryForGetAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
(WebCore::IDBServer::queryForGetAllRecords): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

LayoutTests:

  • resources/js-test.js:

(areObjectsEqual):

  • storage/indexeddb/modern/idbindex-getall-1-expected.txt: Added.
  • storage/indexeddb/modern/idbindex-getall-1-private-expected.txt: Added.
  • storage/indexeddb/modern/idbindex-getall-1-private.html: Added.
  • storage/indexeddb/modern/idbindex-getall-1.html: Added.
  • storage/indexeddb/modern/idbindex-getallkeys-1-expected.txt: Added.
  • storage/indexeddb/modern/idbindex-getallkeys-1-private-expected.txt: Added.
  • storage/indexeddb/modern/idbindex-getallkeys-1-private.html: Added.
  • storage/indexeddb/modern/idbindex-getallkeys-1.html: Added.
  • storage/indexeddb/modern/resources/idbindex-getall-1.js: Added.
4:39 PM Changeset in webkit [208260] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve debugger highlight in some exception cases
https://bugs.webkit.org/show_bug.cgi?id=164300

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-01
Reviewed by Matt Baker.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When walking up AST nodes and reach a throw statement, use that.

4:37 PM Changeset in webkit [208259] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup stale code in NetworkSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=164295

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-01
Reviewed by Matt Baker.

  • UserInterface/Views/NetworkSidebarPanel.js:

(WebInspector.NetworkSidebarPanel.prototype.closed): Deleted.
This doesn't appear to be needed since NetworkSidebarPanel never
registered any event listeners.

4:31 PM Changeset in webkit [208258] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebase test after r208239
https://bugs.webkit.org/show_bug.cgi?id=164290

  • web-platform-tests/url/url-setters-expected.txt:

This was an expected change. Non-special hosts are parsed differently than special hosts.

4:23 PM Changeset in webkit [208257] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix CMake build.

  • PlatformMac.cmake:
4:16 PM Changeset in webkit [208256] by rniwa@webkit.org
  • 63 edits in trunk

Remove CUSTOM_ELEMENTS build flag
https://bugs.webkit.org/show_bug.cgi?id=164267

Reviewed by Antti Koivisto.

.:

Removed the build flag.

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Removed the build flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Removed the build flag. Also rebaselined the bindings tests.

  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.cpp:
  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::customElementsEnabled):

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):

  • bindings/js/JSCustomElementInterface.cpp:
  • bindings/js/JSCustomElementInterface.h:
  • bindings/js/JSCustomElementRegistryCustom.cpp:
  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::deleteProperty):
(WebCore::JSDOMStringMap::putDelegate):

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::setLength):
(WebCore::JSHTMLOptionsCollection::indexSetter):

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::JSHTMLSelectElement::indexSetter):

  • bindings/js/JSMainThreadExecState.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::setJSTestCEReactionsAttributeWithCEReactionsFunction):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsFunction):
(WebCore::setJSTestCEReactionsStringifierAttributeFunction):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactions):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::setJSTestCEReactionsStringifierValueFunction):

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:
  • css/PropertySetCSSStyleDeclaration.cpp:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::isDefinedElement):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

  • dom/CustomElementReactionQueue.cpp:
  • dom/CustomElementReactionQueue.h:
  • dom/CustomElementRegistry.cpp:
  • dom/CustomElementRegistry.h:
  • dom/CustomElementRegistry.idl:
  • dom/Document.cpp:

(WebCore::createHTMLElementWithNameValidation):
(WebCore::createFallbackHTMLElement):

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):
(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):

  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::setCustomElementReactionQueue):

  • dom/Node.h:

(WebCore::Node::isFailedCustomElement):

  • dom/make_names.pl:

(printWrapperFactoryCppFile):

  • html/HTMLElement.idl:
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):

  • html/parser/HTMLConstructionSite.h:
  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::insertGenericHTMLElement):
(WebCore::HTMLTreeBuilder::didCreateCustomOrCallbackElement):

  • html/parser/HTMLTreeBuilder.h:

(WebCore::HTMLTreeBuilder::hasParserBlockingScriptWork):

  • page/DOMWindow.cpp:
  • page/DOMWindow.h:
  • page/DOMWindow.idl:

Source/WebKit/mac:

Removed the build flag.

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

Removed the build flag.

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

Removed the build flag.

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Removed the build flag.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
3:58 PM Changeset in webkit [208255] by matthew_hanson@apple.com
  • 15 edits in branches/safari-602-branch/Source

Roll out r208168 via r208173. rdar://problem/28962886

3:55 PM Changeset in webkit [208254] by commit-queue@webkit.org
  • 8 edits
    1 copy
    3 adds in trunk

[Modern Media Controls] Media Controller: Airplay support
https://bugs.webkit.org/show_bug.cgi?id=163729
<rdar://problem/27989484>

Patch by Antoine Quint <Antoine Quint> on 2016-11-01
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the AirplaySupport class which brings support for playing the media
via Airplay by clicking on the Airplay button in the media controls and correctly
reflecting when the media is played through Airplay via the media API. The enabled
state of the Airplay button is also tied to Airplay sources being available.

Test: media/modern-media-controls/airplay-support/airplay-support.html

  • Modules/modern-media-controls/controls/airplay-button.js:

(AirplayButton.prototype.get on):

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/airplay-support.js: Added.

(AirplaySupport.prototype.get control):
(AirplaySupport.prototype.get mediaEvents):
(AirplaySupport.prototype.buttonWasClicked):
(AirplaySupport.prototype.handleEvent):
(AirplaySupport.prototype.syncControl):
(AirplaySupport):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding a new test to check that the AirPlay button in the media controls correctly shows
the availability of AirPlay routes and whether the media is playing via AirPlay.

  • media/modern-media-controls/airplay-support/airplay-support-expected.txt: Added.
  • media/modern-media-controls/airplay-support/airplay-support.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
3:31 PM Changeset in webkit [208253] by dino@apple.com
  • 40 edits
    15 deletes in trunk

Remove WebKitCSSFilterValue to make Hyatt happy
https://bugs.webkit.org/show_bug.cgi?id=164289
<rdar://problems/29050973>

Reviewed by Simon Fraser.

Source/WebCore:

The new CSS parser should not use WebKitCSSFilterValue. It's non-standard,
very likely only used in our tests, doesn't provide much benefit, and will be
covered by the new CSSOM function interface.

Covered by modifying existing tests.

  • DerivedSources.make: Remove WebKitCSSFilterValue.idl.
  • WebCore.xcodeproj/project.pbxproj: Make CSSFunctionValue.h private so API testing

can see it.

  • bindings/js/JSCSSValueCustom.cpp:

(WebCore::toJSNewlyCreated): No WebKitCSSFilterValue.

  • css/CSSComputedStyleDeclaration.cpp: Use CSSFunctionValue or CSSPrimitiveValue to

build up the computed style.
(WebCore::ComputedStyleExtractor::valueForFilter):

  • css/CSSValue.cpp: No WebKitCSSFilterValue.

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::cloneForCSSOM):

  • css/CSSValue.h:

(WebCore::CSSValue::isFilterImageValue):
(WebCore::CSSValue::isWebKitCSSFilterValue): Deleted.

  • css/StyleResolver.cpp: Resolve against CSSFunctionValues with

CSSValueIDs as name, rather than WebKitCSSFilterValue.
(WebCore::filterOperationForType):
(WebCore::StyleResolver::createFilterOperations):

  • css/StyleResolver.h:
  • css/WebKitCSSFilterValue.cpp: Removed.
  • css/WebKitCSSFilterValue.h: Removed.
  • css/WebKitCSSFilterValue.idl: Removed.
  • css/parser/CSSParser.cpp: Parse into CSSPrimitiveValue and CSSFunctionValue.

(WebCore::isValidPrimitiveFilterFunction):
(WebCore::CSSParser::parseBuiltinFilterArguments):
(WebCore::cssValueKeywordIDForFunctionName):
(WebCore::CSSParser::parseFilter):
(WebCore::filterInfoForName): Deleted.

  • css/parser/CSSParser.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFilterFunction):

LayoutTests:

Update the filters tests now that WebKitCSSFilterValue no longer exists.
Unfortunately CSSFunctionValue isn't exposed to the Web, so we just
rely on the cssText of the resulting CSSStyleDeclaration.

I also moved all the script-tests into the HTML files, since there is
no point them being separate.

  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-computed-style.html:
  • css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-parsing-invalid.html:
  • css3/filters/backdrop/backdropfilter-property-parsing.html:
  • css3/filters/backdrop/backdropfilter-property.html:
  • css3/filters/backdrop/script-tests/backdropfilter-property-computed-style.js: Removed.
  • css3/filters/backdrop/script-tests/backdropfilter-property-parsing-invalid.js: Removed.
  • css3/filters/backdrop/script-tests/backdropfilter-property-parsing.js: Removed.
  • css3/filters/backdrop/script-tests/backdropfilter-property.js: Removed.
  • css3/filters/effect-reference-delete-crash.html:
  • css3/filters/effect-reference-reset-style-delete-crash.html:
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-computed-style.html:
  • css3/filters/filter-property-parsing-expected.txt:
  • css3/filters/filter-property-parsing-invalid.html:
  • css3/filters/filter-property-parsing.html:
  • css3/filters/filter-property.html:
  • css3/filters/script-tests/TEMPLATE.html: Removed.
  • css3/filters/script-tests/effect-reference-delete-crash.js: Removed.
  • css3/filters/script-tests/effect-reference-reset-style-delete-crash.js: Removed.
  • css3/filters/script-tests/filter-property-computed-style.js: Removed.
  • css3/filters/script-tests/filter-property-parsing-invalid.js: Removed.
  • css3/filters/script-tests/filter-property-parsing.js: Removed.
  • css3/filters/script-tests/filter-property.js: Removed.
  • css3/filters/script-tests/unprefixed.js: Removed.
  • css3/filters/unprefixed-expected.txt:
  • css3/filters/unprefixed.html:
3:13 PM Changeset in webkit [208252] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add ViewportAPI to features.json

  • features.json:
3:09 PM Changeset in webkit [208251] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/preloader/image-srcset.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=164277

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:04 PM Changeset in webkit [208250] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for r208240.

  • inspector/InspectorInstrumentation.h:

Don't export an inlined function.

3:00 PM Changeset in webkit [208249] by eric.carlson@apple.com
  • 21 edits
    10 adds in trunk

[MediaStream] restrict media capture secure connections
https://bugs.webkit.org/show_bug.cgi?id=164234
<rdar://problem/28944906>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/ssl/media-stream/get-user-media-different-host.html

http/tests/ssl/media-stream/get-user-media-nested.html
http/tests/ssl/media-stream/get-user-media-secure-connection.html

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::isSecure): New.
(WebCore::canCallGetUserMedia): New.
(WebCore::UserMediaRequest::start): When the setting says the require secure a secure connection,

fail immediately if the page or one of its ancestors is not secure.

  • page/Settings.cpp:

(WebCore::Settings::mediaCaptureRequiresSecureConnection): New.
(WebCore::Settings::setMediaCaptureRequiresSecureConnection): New.

  • page/Settings.h:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::InternalSettings): Do not require a secure connection for media

capture during tests.

(WebCore::InternalSettings::resetToConsistentState):
(WebCore::InternalSettings::setMediaCaptureRequiresSecureConnection):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Initialize WebKitMediaCaptureRequiresSecureConnectionPreferenceKey.
(-[WebPreferences mediaCaptureRequiresSecureConnection]): New.
(-[WebPreferences setMediaCaptureRequiresSecureConnection:]): New.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Sync mediaCaptureRequiresSecureConnection.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMediaCaptureRequiresSecureConnection):
(WKPreferencesGetMediaCaptureRequiresSecureConnection):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Drive by

fix: remove some unused parameters in a lambda call.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • http/tests/ssl/media-stream: Added.
  • http/tests/ssl/media-stream/get-user-media-different-host-expected.txt: Added.
  • http/tests/ssl/media-stream/get-user-media-different-host.html: Added.
  • http/tests/ssl/media-stream/get-user-media-nested-expected.txt: Added.
  • http/tests/ssl/media-stream/get-user-media-nested.html: Added.
  • http/tests/ssl/media-stream/get-user-media-secure-connection-expected.txt: Added.
  • http/tests/ssl/media-stream/get-user-media-secure-connection.html: Added.
  • http/tests/ssl/media-stream/resources: Added.
  • http/tests/ssl/media-stream/resources/get-user-media-frame.html: Added.
  • http/tests/ssl/media-stream/resources/get-user-media.js: Added.

(else.createURL):
(createURL):

2:56 PM Changeset in webkit [208248] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r191419): Web Inspector: Autocomplete is broken
https://bugs.webkit.org/show_bug.cgi?id=150493

Patch by Devin Rousso <Devin Rousso> on 2016-11-01
Reviewed by Timothy Hatcher.

Fixed CodeMirror.undo() logic rolled out by r191539 <https://webkit.org/b/150537>

Added calls to CodeMirror.changeGeneration(true) which tells the history stack to "close"
the current event, preventing it from being consolidated with new changes. If the user
typed fast enough, non-completion changes (like adding ":" in CSS) would get merged with
completion changes, causing calls to CodeMirror.undo() to undo those changes as well. To
prevent this, a boolean variable is set to true whenever a completion "activity" is in
progress, defined by a sequence of completion related events. When this "activity" first
starts, call CodeMirror.changeGeneration(true) to freeze the current history.

See original bug for more information <https://webkit.org/b/147720>.

  • UserInterface/Controllers/CodeMirrorCompletionController.js:

(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.updateCompletions):
(WebInspector.CodeMirrorCompletionController.prototype.isCompletionChange):
(WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
(WebInspector.CodeMirrorCompletionController.prototype.close):
(WebInspector.CodeMirrorCompletionController.prototype.completionSuggestionsSelectedCompletion):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
(WebInspector.CodeMirrorCompletionController.prototype._handleBeforeChange):
(WebInspector.CodeMirrorCompletionController.prototype._createCompletionHintMarker): Deleted.
(WebInspector.CodeMirrorCompletionController.prototype._removeLastChangeFromHistory): Deleted.
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.clearMarker): Deleted.

2:49 PM Changeset in webkit [208247] by barraclough@apple.com
  • 3 edits in trunk/Source/WebCore

Port Page timer throttling to use ActivityState instead of PageThrottler
https://bugs.webkit.org/show_bug.cgi?id=164291

Reviewed by Geoff Garen & Antti Koivisto.

ActivityState now conveys this information; after this change PageThrottler is redundant and can be removed.

  • page/Page.cpp:

(WebCore::Page::updateTimerThrottlingState):

  • determine page throttling mode based on IsAudible/IsLoading in ActivityState.

(WebCore::Page::setActivityState):

  • call updateTimerThrottlingState if IsAudible/IsLoading change.
  • page/Page.h:

(WebCore::Page::pageActivityStateChanged):

  • no need to listen for PageActivityState changes from the PageThrottler.
2:48 PM Changeset in webkit [208246] by commit-queue@webkit.org
  • 23 edits in trunk

Web Inspector: Replace sublists inside DOM-related model objects with WI.Collection
https://bugs.webkit.org/show_bug.cgi?id=164098

Patch by Devin Rousso <Devin Rousso> on 2016-11-01
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/DOMTree.js:
  • UserInterface/Models/Frame.js:

Add support for WebInspector.Collection.

  • UserInterface/Models/Script.js:

(WebInspector.Script):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):

  • UserInterface/Views/FrameTreeElement.js:

(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.onpopulate):

  • UserInterface/Views/OpenResourceDialog.js:

(WebInspector.OpenResourceDialog.prototype._addResourcesForFrame):
Use new functions defined by changing to WebInspector.Collection.

LayoutTests:

  • http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:
  • http/tests/inspector/console/cross-domain-inspected-node-access.html:
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame-expected.txt:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
  • inspector/dom/content-flow-list.html:
  • inspector/dom/highlightFrame-expected.txt:
  • inspector/dom/highlightFrame.html:
  • inspector/dom/highlightNode-expected.txt:
  • inspector/dom/highlightNode.html:
  • inspector/dom/highlightSelector-expected.txt:
  • inspector/dom/highlightSelector.html:
  • inspector/model/frame-extra-scripts-expected.txt:
  • inspector/model/frame-extra-scripts.html:

Change functionality to support WebInspector.Collection methods.

2:46 PM Changeset in webkit [208245] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r208175. rdar://problem/29032335

2:46 PM Changeset in webkit [208244] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r208171. rdar://problem/29032335

2:46 PM Changeset in webkit [208243] by matthew_hanson@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r208161. rdar://problem/29032335

2:43 PM Changeset in webkit [208242] by commit-queue@webkit.org
  • 7 edits
    1 copy
    5 adds in trunk

[Modern Media Controls] Media Controller: Placard support
https://bugs.webkit.org/show_bug.cgi?id=163731
<rdar://problem/28869598>

Patch by Antoine Quint <Antoine Quint> on 2016-11-01
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the PlacardSupport class which brings support for showing the
appropriate placard when the media is played via AirPlay or in picture-in-picture.

Tests: media/modern-media-controls/placard-support/placard-support-airplay.html

media/modern-media-controls/placard-support/placard-support-pip.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/placard-support.js: Added.

(PlacardSupport):
(PlacardSupport.prototype.get mediaEvents):
(PlacardSupport.prototype.handleEvent):
(PlacardSupport.prototype._updatePlacard):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding two new tests to check that the picture-in-picture and AirPlay placards are shown
based on the media presentation mode.

  • media/modern-media-controls/placard-support/placard-support-airplay-expected.txt: Added.
  • media/modern-media-controls/placard-support/placard-support-airplay.html: Added.
  • media/modern-media-controls/placard-support/placard-support-pip-expected.txt: Added.
  • media/modern-media-controls/placard-support/placard-support-pip.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
2:43 PM Changeset in webkit [208241] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

ShowRenderTree: Add information about the type of the needsLayout bit.
https://bugs.webkit.org/show_bug.cgi?id=164287

Reviewed by Simon Fraser.

Currently showRenderTree only tells you whether a renderer's "needs layout bit" is set or not.
With certain type of layout bugs, it's essential to know the kind of layout a particular
renderer needs.
This patch extends the renderer output by listing all the layout bits set.

B------- -+ BODY RenderBody (0.00, 0.00) (0.00, 0.00) renderer->(0x) node->(0x) layout->[self][normal child]

Not testable.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::showRenderObject):

2:42 PM Changeset in webkit [208240] by commit-queue@webkit.org
  • 30 edits in trunk/Source/WebCore

Web Inspector: Use more references in inspector code
https://bugs.webkit.org/show_bug.cgi?id=164283

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-01
Reviewed by Timothy Hatcher.

(WebCore::frameForScriptExecutionContext):
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::didLayoutImpl):
(WebCore::InspectorInstrumentation::willPaintImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::frameDocumentUpdatedImpl):
(WebCore::InspectorInstrumentation::didDispatchDOMStorageEventImpl):
(WebCore::InspectorInstrumentation::instrumentingAgentsForRenderer):
(WebCore::InspectorInstrumentation::instrumentingAgentsForPage): Deleted.
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope): Deleted.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::frameWindowDiscarded):
(WebCore::InspectorInstrumentation::didInstallTimer):
(WebCore::InspectorInstrumentation::didRemoveTimer):
(WebCore::InspectorInstrumentation::willFireTimer):
(WebCore::InspectorInstrumentation::didLayout):
(WebCore::InspectorInstrumentation::willComposite):
(WebCore::InspectorInstrumentation::didComposite):
(WebCore::InspectorInstrumentation::willPaint):
(WebCore::InspectorInstrumentation::didPaint):
(WebCore::InspectorInstrumentation::continueAfterPingLoader):
(WebCore::InspectorInstrumentation::scriptImported):
(WebCore::InspectorInstrumentation::didCommitLoad):
(WebCore::InspectorInstrumentation::frameDocumentUpdated):
(WebCore::InspectorInstrumentation::frameStartedLoading):
(WebCore::InspectorInstrumentation::frameStoppedLoading):
(WebCore::InspectorInstrumentation::frameScheduledNavigation):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
(WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
(WebCore::InspectorInstrumentation::shouldWaitForDebuggerOnStart):
(WebCore::InspectorInstrumentation::workerStarted):
(WebCore::InspectorInstrumentation::workerTerminated):
(WebCore::InspectorInstrumentation::didHandleMemoryPressure):
(WebCore::InspectorInstrumentation::networkStateChanged):
(WebCore::InspectorInstrumentation::addMessageToConsole):
(WebCore::InspectorInstrumentation::consoleCount):
(WebCore::InspectorInstrumentation::startConsoleTiming):
(WebCore::InspectorInstrumentation::stopConsoleTiming):
(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
(WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):
Convert to references where possible.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::frameDocumentUpdated):

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):

  • inspector/InspectorDOMStorageAgent.h:
  • inspector/InspectorInstrumentation.cpp:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::frameNavigated):
(WebCore::InspectorPageAgent::didPaint):

  • inspector/InspectorPageAgent.h:
  • inspector/InspectorReplayAgent.cpp:

(WebCore::InspectorReplayAgent::frameNavigated):

  • inspector/InspectorReplayAgent.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::didLayout):
(WebCore::InspectorTimelineAgent::didPaint):

  • inspector/InspectorTimelineAgent.h:

Pass references through InspectorInstrumentation to the Agents.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::willDetachPage):

  • page/Frame.cpp:

(WebCore::Frame::setDocument):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):

  • page/Page.cpp:

(WebCore::networkStateChanged):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintContents):

  • replay/ReplayController.cpp:

(WebCore::ReplayController::frameNavigated):

  • replay/ReplayController.h:
  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):

  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::workerStartMode):
(WebCore::WorkerInspectorProxy::workerStarted):
(WebCore::WorkerInspectorProxy::workerTerminated):

  • workers/WorkerInspectorProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
Pass references to InspectorInstrumentation.

2:31 PM Changeset in webkit [208239] by achristensen@apple.com
  • 12 edits in trunk

Percent-encode non-ASCII code points in hosts of URLs with unrecognized schemes
https://bugs.webkit.org/show_bug.cgi?id=164290

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

NSURL fails to parse these URLs, WebKit used to punycode encode them, but now we match Chrome and Firefox,
as well as what will likely become the standard once https://github.com/whatwg/url/issues/148 is resolved.
We continue to parse IPv6 address hosts because otherwise we wouldn't be able to tell where a port
starts in a URL with colons in the IPv6 address and before the port like "a://[b::c]:4"

Covered by new API tests and updated LayoutTests.

  • platform/URLParser.cpp:

(WebCore::URLParser::domainToASCII):
(WebCore::URLParser::parseHostAndPort):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::checkRelativeURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::checkRelativeURLDifferences):
Move helper functions to the top so I can use them from any tests.
(TestWebKitAPI::shouldFail):
(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):

LayoutTests:

  • fast/url/host-lowercase-per-scheme-expected.txt:
  • fast/url/safari-extension-expected.txt:
  • fetch/fetch-url-serialization-expected.txt:
1:40 PM Changeset in webkit [208238] by keith_miller@apple.com
  • 9 edits
    4 adds in trunk/Source/JavaScriptCore

Add a WASM function validator.
https://bugs.webkit.org/show_bug.cgi?id=161707

Reviewed by Saam Barati.

This is a new template specialization of the Wasm FunctionParser class. Instead of having
the FunctionParser track what B3 values each stack entry refers to the validator has each
entry refer to the type of the stack entry. Additionally, the control stack tracks what type
of block the object is and what the result type of the block is. The validation functions
for unary, binary, and memory operations are autogenerated by the
generateWasmValidateInlinesHeader.py script.

There are still a couple issue with validating that will be addressed in follow-up patches.
1) We need to handle result types from basic blocks. https://bugs.webkit.org/show_bug.cgi?id=164100
2) We need to handle popping things from stacks when they don't exist. https://bugs.webkit.org/show_bug.cgi?id=164275

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • testWasm.cpp:

(runWasmTests):

  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmFormat.cpp: Added.

(JSC::Wasm::toString):

  • wasm/WasmFormat.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::Plan):

  • wasm/WasmValidate.cpp: Added.

(JSC::Wasm::Validate::ControlData::ControlData):
(JSC::Wasm::Validate::ControlData::dump):
(JSC::Wasm::Validate::ControlData::type):
(JSC::Wasm::Validate::ControlData::signature):
(JSC::Wasm::Validate::addConstant):
(JSC::Wasm::Validate::isContinuationReachable):
(JSC::Wasm::Validate::errorMessage):
(JSC::Wasm::Validate::Validate):
(JSC::Wasm::Validate::addArguments):
(JSC::Wasm::Validate::addLocal):
(JSC::Wasm::Validate::getLocal):
(JSC::Wasm::Validate::setLocal):
(JSC::Wasm::Validate::addBlock):
(JSC::Wasm::Validate::addLoop):
(JSC::Wasm::Validate::addIf):
(JSC::Wasm::Validate::addElse):
(JSC::Wasm::Validate::addReturn):
(JSC::Wasm::Validate::addBranch):
(JSC::Wasm::Validate::endBlock):
(JSC::Wasm::Validate::addCall):
(JSC::Wasm::Validate::unify):
(JSC::Wasm::Validate::dump):
(JSC::Wasm::validateFunction):

  • wasm/WasmValidate.h: Added.
  • wasm/generateWasmValidateInlinesHeader.py: Added.

(cppType):
(toCpp):
(unaryMacro):
(binaryMacro):
(loadMacro):
(storeMacro):

1:38 PM Changeset in webkit [208237] by barraclough@apple.com
  • 5 edits in trunk/Source

Add IsAudible, IsLoading to ActivityState
https://bugs.webkit.org/show_bug.cgi?id=164286

Reviewed by Geoff Garen.

By computing these values in the UIProcess and passing them to WebContent we can
more closely unify iOS & macOS throttling, and remove the PageThrottler class.

Source/WebCore:

  • page/ActivityState.h:
    • added IsAudible, IsLoading

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityState):

  • Added update for IsAudible, IsLoading flags.

(WebKit::WebPageProxy::updateThrottleState):

  • Read IsAudible, IsLoading flags from ActivityState.

(WebKit::WebPageProxy::setMuted):

  • call activityStateDidChange to trigger update.

(WebKit::WebPageProxy::isPlayingMediaDidChange):

  • call activityStateDidChange to trigger update.
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isLoadingChanged):

  • call activityStateDidChange to trigger update.
1:37 PM Changeset in webkit [208236] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/css/pseudo-element-matches.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=163932

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:03 PM Changeset in webkit [208235] by sbarati@apple.com
  • 28 edits
    1 add in trunk

We should be able to eliminate rest parameter allocations
https://bugs.webkit.org/show_bug.cgi?id=163925

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/rest-parameter-allocation-elimination.js: Added.

(assert):
(test1.bar):
(test1):
(test2.jaz):
(test2.jaz2.kaz):
(test2.jaz2):
(test2):
(test3.foo):
(test3.baz):
(test3.jaz):
(test3):
(test4.baz):
(test4.jaz):
(test4):
(test5.baz):
(test5.jaz):
(test5):
(test6.baz):
(test6.jaz):
(test6):
(test7.baz):
(test7.jaz):
(test7.check):
(test7):
(test8.baz):
(test8.jaz):
(test8.check):
(test8):
(test9.baz):
(test9.jaz):
(test9.check):
(test9):
(test10.baz):
(test10.jaz):
(test10):
(test11.bar):
(test11.foo):
(test11.makeArguments):
(test11.):
(test12):
(test12.bar):
(test12.foo):
(test12.makeArguments):
(test12.):
(test13.bar):
(test13.top):
(test13.foo):
(test13.makeArguments):
(test13.):
(test13):
(test14.bar):
(test14.top):
(test14.foo):
(test14.makeArguments):
(test14.):
(test14):
(test15.bar):
(test15.top):
(test15.foo):
(test15.makeArguments):
(test15.):
(test15):

Source/JavaScriptCore:

This is the first step towards eliminating rest parameter
allocations when they're spread to other function calls:
function foo(...args) { bar(...args); }

This patch simply removes the allocation for rest parameter
allocations using the same escape analysis that is performed
in the argument elimination phase. I've added a new rule to
the phase to make sure that CheckStructure doesn't count as
an escape for an allocation since this often shows up in code
like this:

`
function foo(...args) {

let r = [];
for (let i = 0; i < args.length; i++)

r.push(args[i]);

return r;

}
`

The above program now entirely eliminates the allocation for args
compiled in the FTL. Programs like this also eliminate the allocation
for args:

`
function foo(...args) { return [args.length, args[0]]; }

function bar(...args) { return someOtherFunction.apply(null, args); }
`

This patch extends the arguments elimination phase to understand
the concept that we may want to forward arguments, or get from
the arguments region, starting at some offset. The offset is the
number of names parameter before the rest parameter. For example:

`
function foo(a, b, ...args) { return bar.apply(null, args); }
`

Will forward arguments starting at the *third* argument.
Our arguments forwarding code already had the notion of starting
from some offset, however, I found bugs in that code. I extended
it to work properly for rest parameters with arbitrary skip offsets.

And this program:
`
function foo(...args) {

let r = [];
for (let i = 0; i < args.length; i++)

r.push(args[i]);

return r;

}
`

Knows to perform the GetMyArgumentByVal* with an offset of 3
inside the loop. To make this work, I taught GetMyArgumentByVal
and GetMyArgumentByValOutOfBounds to take an offset representing
the number of arguments to skip.

This patch is a ~20% speedup on microbenchmarks.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasConstant):
(JSC::DFG::Node::constant):
(JSC::DFG::Node::isPhantomAllocation):
(JSC::DFG::Node::numberOfArgumentsToSkip):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateRest):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run):

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsStart):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetVarargsFrame):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::restParameterStructure):

12:04 PM Changeset in webkit [208234] by commit-queue@webkit.org
  • 4 edits in trunk

Web Inspector: Fix double remove of ResourceCollection if type changes
https://bugs.webkit.org/show_bug.cgi?id=164268

Patch by Devin Rousso <Devin Rousso> on 2016-11-01
Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Models/ResourceCollection.js:

(WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
Change logic so that a non-typed collection will not try to remove a resource that has
changed types from the sub-collection of its old type, since the sub-collection itself will
handle the removal inside its own event listener for the type change.

LayoutTests:

  • inspector/unit-tests/resource-collection-expected.txt:

Fixed test to not expect a double remove.

11:57 AM Changeset in webkit [208233] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-602.3.7/Source/WebCore

Merge r206637. rdar://problem/28718754

11:56 AM Changeset in webkit [208232] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

11:54 AM Changeset in webkit [208231] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

11:48 AM Changeset in webkit [208230] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.3.7

New tag.

11:44 AM Changeset in webkit [208229] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r206637. rdar://problem/28718754

11:43 AM Changeset in webkit [208228] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/storage/domStorage-events.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=164278

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:38 AM Changeset in webkit [208227] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Lots of stderr logging in JSManagedValue
https://bugs.webkit.org/show_bug.cgi?id=164279
<rdar://problem/28949886>

Reviewed by Filip Pizlo.

Revert an accidental change in <https://trac.webkit.org/changeset/205462>.

  • API/JSManagedValue.mm:

(-[JSManagedValue initWithValue:]):

11:25 AM Changeset in webkit [208226] by commit-queue@webkit.org
  • 26 edits
    1 add in trunk/LayoutTests

[Modern Media Controls] load all media controller scripts and styles automatically
https://bugs.webkit.org/show_bug.cgi?id=164271

Patch by Antoine Quint <Antoine Quint> on 2016-11-01
Reviewed by Dean Jackson.

We now load all media controller assets with the inclusion of a single script,
obtaining the list of JS files to include through the same file used to build
the modern-media-controls module, so that we don't need to specify this in two places.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/playback-support/playback-support-autoplay.html:
  • media/modern-media-controls/playback-support/playback-support-button-click.html:
  • media/modern-media-controls/playback-support/playback-support-media-api.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/resources/media-controls-loader.js: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-click.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api.html:
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
  • media/modern-media-controls/volume-support/volume-support-click.html:
  • media/modern-media-controls/volume-support/volume-support-drag.html:
  • media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
  • media/modern-media-controls/volume-support/volume-support-media-api.html:
11:05 AM Changeset in webkit [208225] by barraclough@apple.com
  • 40 edits
    2 moves in trunk/Source

Rename ViewState to ActivityState
https://bugs.webkit.org/show_bug.cgi?id=164254

Reviewed by Andreas Kling.

We plan to add a couple more flags to ViewState that aren't directly related to the view
itself - whether there is an ongoing page load, and whether whether there is audio playback.
This will allow viewState (now activityState) to fully drive throttling decisions.

Renaming this bitfield accordingly.
Source/WebCore:

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::~GeolocationController):
(WebCore::GeolocationController::activityStateDidChange):
(WebCore::GeolocationController::viewStateDidChange): Deleted.

  • Modules/geolocation/GeolocationController.h:
  • WebCore.xcodeproj/project.pbxproj:
  • page/ActivityState.h: Copied from Source/WebCore/page/ViewState.h.
  • page/ActivityStateChangeObserver.h: Copied from Source/WebCore/page/ViewStateChangeObserver.h.

(WebCore::ActivityStateChangeObserver::~ActivityStateChangeObserver):
(WebCore::ViewStateChangeObserver::~ViewStateChangeObserver): Deleted.

  • page/FocusController.cpp:

(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActivityState):
(WebCore::FocusController::setActive):
(WebCore::FocusController::setViewState): Deleted.

  • page/FocusController.h:

(WebCore::FocusController::isActive):
(WebCore::FocusController::isFocused):
(WebCore::FocusController::contentIsVisible):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::addActivityStateChangeObserver):
(WebCore::Page::removeActivityStateChangeObserver):
(WebCore::Page::updateTimerThrottlingState):
(WebCore::Page::setActivityState):
(WebCore::Page::isVisibleAndActive):
(WebCore::Page::setIsVisible):
(WebCore::Page::addViewStateChangeObserver): Deleted.
(WebCore::Page::removeViewStateChangeObserver): Deleted.
(WebCore::Page::setViewState): Deleted.

  • page/Page.h:

(WebCore::Page::isVisible):
(WebCore::Page::isInWindow):

  • page/PageThrottler.h:
  • page/ViewState.h: Removed.
  • page/ViewStateChangeObserver.h: Removed.

Source/WebKit2:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
(_WebKitWebViewBasePrivate::updateActivityStateTimerFired):
(webkitWebViewBaseScheduleUpdateActivityState):
(toplevelWindowFocusInEvent):
(toplevelWindowFocusOutEvent):
(toplevelWindowStateEvent):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseMap):
(webkitWebViewBaseUnmap):
(webkitWebViewBaseSetFocus):
(webkitWebViewBaseIsInWindowActive):
(webkitWebViewBaseIsFocused):
(webkitWebViewBaseIsVisible):
(webkitWebViewBaseIsInWindow):
(_WebKitWebViewBasePrivate::updateViewStateTimerFired): Deleted.
(webkitWebViewBaseScheduleUpdateViewState): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::becomeFirstResponder):
(WebKit::WebViewImpl::resignFirstResponder):
(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::windowDidBecomeKey):
(WebKit::WebViewImpl::windowDidResignKey):
(WebKit::WebViewImpl::windowDidMiniaturize):
(WebKit::WebViewImpl::windowDidDeminiaturize):
(WebKit::WebViewImpl::windowDidChangeOcclusionState):
(WebKit::WebViewImpl::viewDidMoveToWindow):
(WebKit::WebViewImpl::viewDidHide):
(WebKit::WebViewImpl::viewDidUnhide):
(WebKit::WebViewImpl::activeSpaceDidChange):
(WebKit::WebViewImpl::endDeferringViewInWindowChanges):
(WebKit::WebViewImpl::endDeferringViewInWindowChangesSync):
(WebKit::WebViewImpl::prepareForMoveToWindow):

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::waitForDidUpdateActivityState):
(WebKit::DrawingAreaProxy::waitForDidUpdateViewState): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::setSuppressVisibilityUpdates):
(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::waitForDidUpdateActivityState):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
(WebKit::WebPageProxy::updateViewState): Deleted.
(WebKit::WebPageProxy::viewStateDidChange): Deleted.
(WebKit::WebPageProxy::dispatchViewStateChange): Deleted.
(WebKit::WebPageProxy::waitForDidUpdateViewState): Deleted.
(WebKit::WebPageProxy::installViewStateChangeCompletionHandler): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isInWindow):
(WebKit::WebPageProxy::didUpdateActivityState):
(WebKit::WebPageProxy::isViewVisible):
(WebKit::WebPageProxy::didUpdateViewState): Deleted.

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::windowServerConnectionStateChanged):

  • UIProcess/efl/WebView.cpp:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _applicationDidEnterBackground]):
(-[WKContentView _applicationWillEnterForeground]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _applicationDidEnterBackground]):
(-[WKPDFView _applicationWillEnterForeground]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState): Deleted.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateViewState): Deleted.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::activityStateDidChange):
(WebKit::PluginView::viewStateDidChange): Deleted.

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::activityStateDidChange):
(WebKit::AcceleratedDrawingArea::viewStateDidChange): Deleted.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::activityStateDidChange):
(WebKit::DrawingArea::viewStateDidChange): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::updateIsInWindow):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::setViewState): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isVisible):
(WebKit::WebPage::isVisibleOrOccluded):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
(WebKit::RemoteLayerTreeDrawingArea::viewStateDidChange): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
(WebKit::TiledCoreAnimationDrawingArea::didUpdateActivityStateTimerFired):
(WebKit::TiledCoreAnimationDrawingArea::viewStateDidChange): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::didUpdateViewStateTimerFired): Deleted.

10:20 AM Changeset in webkit [208224] by commit-queue@webkit.org
  • 28 edits
    1 delete in trunk

Unreviewed, rolling out r208208 and r208210.
https://bugs.webkit.org/show_bug.cgi?id=164276

This change caused 28 JSC test failures. (Requested by
ryanhaddad on #webkit).

Reverted changesets:

"We should be able to eliminate rest parameter allocations"
https://bugs.webkit.org/show_bug.cgi?id=163925
http://trac.webkit.org/changeset/208208

"Fix the EFL build."
http://trac.webkit.org/changeset/208210

9:44 AM Changeset in webkit [208223] by Ryan Haddad
  • 8 edits in trunk/Source/WebCore

Unreviewed, rolling out r208100.

This change caused LayoutTest crashes under GuardMalloc.

Reverted changeset:

"MediaEndpoint::generateDtlsInfo is not needed"
https://bugs.webkit.org/show_bug.cgi?id=164130
http://trac.webkit.org/changeset/208100

7:27 AM Changeset in webkit [208222] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

Add missing inline include to JSDeviceMotionEventCustom
https://bugs.webkit.org/show_bug.cgi?id=164269

Reviewed by Michael Catanzaro.

Inlined JSObject functions are used through JSObject::get() get here,
so this fixes the build with -fvisibility-inlines-hidden.

  • bindings/js/JSDeviceMotionEventCustom.cpp: Include JSObjectInlines.h
6:48 AM Changeset in webkit [208221] by hw1008.kim@samsung.com
  • 2 edits in trunk/Tools

[GTK] Failed to generate GeoClue2Interface files.
https://bugs.webkit.org/show_bug.cgi?id=164270

Reviewed by Michael Catanzaro.

To generate codes for D-Bus interfaces,
geoclue-2.0 package including D-Bus introspection XML files should be installed.

  • gtk/install-dependencies: add geoclue-2.0 package.
5:20 AM Changeset in webkit [208220] by commit-queue@webkit.org
  • 6 edits in trunk

[CMake] generate-bindings-all.pl uses USES_TERMINAL which leaves a noisy line in interactive Ninja build
https://bugs.webkit.org/show_bug.cgi?id=163868

Patch by Fujii Hironori <Fujii Hironori> on 2016-11-01
Reviewed by Michael Catanzaro.

It takes long time for generate-bindings-all.pl to generate all
bindings. So, it shows the progress while running and
USES_TERMINAL option of add_custom_target have been used to invoke
the command. However, USES_TERMINAL leaves a noisy line in
Ninja's neat build log of interactive build.

A new CMake option SHOW_BINDINGS_GENERATION_PROGRESS is added to
stop using USES_TERMINAL only in case of interactive Ninja build.

.:

  • Source/cmake/WebKitMacros.cmake: Added a new option

SHOW_BINDINGS_GENERATION_PROGRESS. Apended --showProgress switch
of generate-bindings-all.pl and used USES_TERMINAL only if
SHOW_BINDINGS_GENERATION_PROGRESS is enabled.

Source/WebCore:

  • bindings/scripts/generate-bindings-all.pl: Added a new switch

--showProgress. Removed $terminalWidth and getTerminalWidth which
are mainly for interactive Ninja build. Added printProgress.

Tools:

  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject): Enable
SHOW_BINDINGS_GENERATION_PROGRESS not in case of interactive
Ninja build.

1:38 AM Changeset in webkit [208219] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

1:12 AM Changeset in webkit [208218] by rniwa@webkit.org
  • 17 edits
    2 adds in trunk

Web Inspector: Add the support for custom elements
https://bugs.webkit.org/show_bug.cgi?id=164266
Source/JavaScriptCore:

<rdar://problem/29038883>

Reviewed by Joseph Pecoraro.

Added customElementState of type CustomElementState to reflect the custom element state on each DOM node
along with customElementStateChanged which fires when the custom element state changes.

  • inspector/protocol/DOM.json:

Source/WebCore:

<rdar://problem/29038883>

Reviewed by Joseph Pecoraro.

Set "customElementState" property on each DOMNode object when building a protocol object for the node.
Also added InspectorInstrumentation::didChangeCustomElementState to track the changes to custom element states.

Tests: inspector/dom/customElementState.html

  • dom/Element.cpp:

(WebCore::Element::setIsDefinedCustomElement): Invoke didChangeCustomElementState to update the state.
(WebCore::Element::setIsFailedCustomElement): Ditto.
(WebCore::Element::setIsCustomElementUpgradeCandidate): Ditto.
(WebCore::Element::enqueueToUpgrade): Ditto.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::customElementState): Added.
(WebCore::InspectorDOMAgent::buildObjectForNode): Set the custom element state.
(WebCore::InspectorDOMAgent::didChangeCustomElementState): Invoke customElementStateChanged.

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didChangeCustomElementStateImpl): Added.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didChangeCustomElementState): Added.

Source/WebInspectorUI:

<rdar://problem/29038883>

Reviewed by Joseph Pecoraro.

Show the custom element state in DOM node's details pane:

  • "Element" for all builtin elements.
  • "Element (Custom)" for any upgraded custom elements.
  • "Element (Waiting to be upgraded)" for any element waiting to be upgraded.
  • "Element (Failed to upgrade)" for any custom element that failed during construction or an upgrade.

And add "Jump to Definition" to the context menu of an node to find the custom element's definition.

  • Localizations/en.lproj/localizedStrings.js: Added localized strings.
  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype._customElementStateChanged): Added. Update the state and fire
WebInspector.DOMTreeManager.Event.CustomElementStateChanged to update the node's details pane.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode): Set the custom element state or default to "builtin". Use null when the node
is not an element.
(WebInspector.DOMNode.prototype.isCustomElement): Added. Returns true if this is a successfully
constructed or upgraded custom element.
(WebInspector.DOMNode.prototype.customElementState): Added.
(WebInspector.DOMNode.CustomElementState): Added.

  • UserInterface/Protocol/DOMObserver.js:

(WebInspector.DOMObserver.prototype.customElementStateChanged): Added.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.getProperty): Added. Retrieves the property of a given name from
the remote backend.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel): Call _customElementStateChanged when the custom element
state changes by listening to WebInspector.DOMTreeManager.Event.CustomElementStateChanged.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.layout):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshIdentity): Extracted from layout.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementStateChanged): Added.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._nodeTypeDisplayName): Include the custom element
state when it's not a builtin element (_customElementState returns null in that case).
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementState): Get the localized string for
each custom element state.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu): Add "Jump to Definition" item in the
context menu of an element when it's a successfully constructed or upgraded custom element.

LayoutTests:

Reviewed by Joseph Pecoraro.

Added a Inspector protocol test for CustomElementState.

  • inspector/dom/customElementState-expected.txt: Added.
  • inspector/dom/customElementState.html: Added.

Oct 31, 2016:

11:48 PM Changeset in webkit [208217] by rniwa@webkit.org
  • 2 edits in trunk

Enable custom elements by default everywhere
https://bugs.webkit.org/show_bug.cgi?id=164242

Reviewed by Michael Catanzaro.

Enable the Custom Elements API in CMake builds.

  • Source/cmake/WebKitFeatures.cmake:
11:32 PM Changeset in webkit [208216] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Add StaticPasteboard.cpp to the cmake after r207841.

  • CMakeLists.txt:
11:24 PM Changeset in webkit [208215] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed, CMake build fix

Adds #include <WebCore/IDBGetAllRecordsData.h>

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
10:35 PM Changeset in webkit [208214] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Simple line layout: Clear needs layout flag even when only overflow is getting recomputed.
https://bugs.webkit.org/show_bug.cgi?id=164253

Reviewed by Antti Koivisto.

When a style change triggers visual overflow re-computation, we set StyleDifferenceLayout style diff
but in practice we don't actually make changes to the simple line structure. We just re-compute the visual overflow later.
This patch moves the 'clean the renderes' logic back to RenderBlockFlow::layoutSimpleLines so that
we set the needs layout bit to false regardless of whether we preformed layout.

Covered by fast/events/tabindex-focus-blur-all.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutSimpleLines):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::create):

10:32 PM Changeset in webkit [208213] by Simon Fraser
  • 26 edits
    14 adds in trunk

Add basic visual/layout viewport support for fixed position layout
https://bugs.webkit.org/show_bug.cgi?id=164261

Reviewed by Dean Jackson.

Source/WebCore:

This patch adds a new behavior for position:fixed objects on zooming. Instead of
interpolating between two implicit viewports as we do now, have explicit and distinct
layout and visual viewports.

The layout viewport is always the size of the initial containing block (i.e. the RenderView).
Position:fixed and sticky elements are laid out relative to the layout viewport.

The visual viewport is the visible part of the view, in content coordinates.

When the user pans and zooms, the visual viewport changes. If it hits the edge of the
layout viepwort, it pushes the layout viewport in that direction; it's as if the user
is dragging the layout viewport around.

The layout viewport is maintained on FrameView, and has to be recomputed when the
scroll position changes, when the view size changes, and when the content size (which
affets min/max scroll position) changes. Layout viewport size and position are computed
in unzoomed coordinates, requiring some new functions on FrameView to return these.

Updated the TileCoverageMap to show the layout viewport visually.

Subsequent patches will plumb the layout and visual viewports through the scrolling tree.

Tests: fast/visual-viewport/nonzoomed-rects.html

fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html
fast/visual-viewport/zoomed-fixed.html
fast/visual-viewport/zoomed-rects.html

  • page/FrameView.cpp:

(WebCore::FrameView::fixedScrollableAreaBoundsInflatedForScrolling):
(WebCore::FrameView::scrollPositionRespectingCustomFixedPosition):
(WebCore::FrameView::computeLayoutViewportOrigin):
(WebCore::FrameView::setLayoutViewportOrigin):
(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::minStableLayoutViewportOrigin):
(WebCore::FrameView::maxStableLayoutViewportOrigin):
(WebCore::FrameView::layoutViewportRect):
(WebCore::FrameView::visualViewportRect):
(WebCore::FrameView::viewportConstrainedVisibleContentRect):
(WebCore::FrameView::rectForFixedPositionLayout):
(WebCore::FrameView::scrollPositionForFixedPosition):
(WebCore::FrameView::unscaledMinimumScrollPosition):
(WebCore::FrameView::unscaledMaximumScrollPosition):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::scrollTo):
(WebCore::FrameView::useCustomFixedPositionLayoutRect):

  • page/FrameView.h:
  • page/Settings.in:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setLayoutViewportRect):

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap):
(WebCore::TileCoverageMap::update):

  • platform/graphics/ca/TileCoverageMap.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):

  • rendering/RenderTreeAsText.cpp:

(WebCore::externalRepresentation): Logging here is useful when debugging tests.

  • testing/Internals.cpp:

(WebCore::Internals::layoutViewportRect): Expose these rects so tests can dump them.
(WebCore::Internals::visualViewportRect):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

Don't make visualViewportEnabled an experimental feature, because I don't want it enabled
by default in WebKitTestRunner (and therefore mismatching DumpRenderTree).

  • Shared/WebPreferencesDefinitions.h:

Tools:

Don't give tests in the "visual-viewport" directory a flexible viewport.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(shouldMakeViewportFlexible):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::shouldMakeViewportFlexible):

LayoutTests:

  • fast/visual-viewport/nonzoomed-rects-expected.txt: Added.
  • fast/visual-viewport/nonzoomed-rects.html: Added.
  • fast/visual-viewport/zoomed-fixed-expected.txt: Added.
  • fast/visual-viewport/zoomed-fixed-scroll-down-then-up-expected.txt: Added.
  • fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html: Added.
  • fast/visual-viewport/zoomed-fixed.html: Added.
  • fast/visual-viewport/zoomed-rects-expected.txt: Added.
  • fast/visual-viewport/zoomed-rects.html: Added.
  • platform/ios-simulator/fast/visual-viewport/nonzoomed-rects-expected.txt: Added.
  • platform/ios-simulator/fast/visual-viewport/zoomed-fixed-scroll-down-then-up-expected.txt: Added.
  • platform/ios-simulator/fast/visual-viewport/zoomed-rects-expected.txt: Added.
  • resources/js-test-pre.js:

(evalAndLog):
(evalAndLogResult):
(shouldEvaluateTo):

10:22 PM Changeset in webkit [208212] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix bindings tests after r208209.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjTypedArrayAttrFunction):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):

9:36 PM Changeset in webkit [208211] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Warning: Multiple build commands for output file RenderThemeCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=164265

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-31
Reviewed by Ryosuke Niwa.

  • WebCore.xcodeproj/project.pbxproj:
8:23 PM Changeset in webkit [208210] by Simon Fraser
  • 2 edits in trunk/Source/JavaScriptCore

Fix the EFL build.

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

8:10 PM Changeset in webkit [208209] by fpizlo@apple.com
  • 99 edits
    10 adds in trunk

JSC should support SharedArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=163986

Reviewed by Keith Miller.
JSTests:


This adds our own test for the various corner cases of SharedArrayBuffer. This test is meant to
check all of the things that don't require concurrency.

  • stress/SharedArrayBuffer.js: Added.

(checkAtomics):
(shouldFail):
(Symbol):
(runAtomic):

Source/JavaScriptCore:


This implements https://tc39.github.io/ecmascript_sharedmem/shmem.html.

There is now a new SharedArrayBuffer type. In the JS runtime, which includes typed array
types, the SharedArrayBuffer is a drop-in replacement for ArrayBuffer, even though they are
distinct types (new SharedArrayBuffer() instanceof ArrayBuffer == false and vice versa). The
DOM will not recognize SharedArrayBuffer, or any typed array that wraps it, to ensure safety.
This matches what other browsers intend to do, see
https://github.com/tc39/ecmascript_sharedmem/issues/38. API is provided for the DOM to opt
into SharedArrayBuffer. One notable place is postMessage, which will share the
SharedArrayBuffer's underlying data storage with other workers. This creates a pool of shared
memory that the workers can use to talk to each other.

There is also an Atomics object in global scope, which exposes sequentially consistent atomic
operations: add, and, compareExchange, exchange, load, or, store, sub, and xor. Additionally
it exposes a Atomics.isLockFree utility, which takes a byte amount and returns true or false.
Also there is Atomics.wake/wait, which neatly map to ParkingLot.

Accesses to typed arrays that wrap SharedArrayBuffer are optimized by JSC the same way as
always. I believe that DFG and B3 already obey the following memory model, which I believe is
a bit weaker than Cambridge and a bit stronger than what is being proposed for
SharedArrayBuffer. To predict a program's behavior under the B3 memory model, imagine the
space of all possible programs that would result from running an optimizer that adversarially
follows B3's transformation rules. B3 transformations are correct if the newly created
program is equivalent to the old one, assuming that any opaque effect in IR (like the reads
and writes of a patchpoint/call/fence) could perform any load/store that satisfies the
B3::Effects summary. Opaque effects are a way of describing an infinite set of programs: any
program that only does the effects summarized in B3::Effects belongs to the set. For example,
this prevents motion of operations across fences since fences are summarized as opaque
effects that could read or write memory. This rule alone is not enough, because it leaves the
door open for turning an atomic operation (like a load) into a non-atomic one (like a load
followed by a store of the same value back to the same location or multiple loads). This is
not an optimization that either our compiler or the CPU would want to do. One way to think of
what exactly is forbidden is that B3 transformations that mess with memory accesses can only
reorder them or remove them. This means that for any execution of the untransformed program,
the corresponding execution of the transformed program (i.e. with the same input arguments
and the same programs filled in for the opaque effects) must have the same loads and stores,
with some removed and some reordered. This is a fairly simple mental model that B3 and DFG
already follow and it's based on existing abstractions for the infinite set of programs
inside an opaque effect (DFG's AbstractHeaps and B3's Effects).

This patch makes all atomics operations intrinsic, but the DFG doesn't know about any of them
yet. That's covered by bug 164108.

This ought to be perf-neutral, but I am still running tests to confirm this. I'm also still
writing new tests to cover all of the Atomics functionality and the behavior of SAB objects.

  • API/JSTypedArray.cpp:

(JSObjectGetTypedArrayBytesPtr):
(JSObjectGetTypedArrayBuffer):
(JSObjectMakeArrayBufferWithBytesNoCopy):

  • API/tests/CompareAndSwapTest.cpp:

(Bitmap::concurrentTestAndSet):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):

  • heap/Heap.cpp:

(JSC::Heap::reportExtraMemoryVisited):
(JSC::Heap::reportExternalMemoryVisited):

  • jsc.cpp:

(functionTransferArrayBuffer):

  • runtime/ArrayBuffer.cpp:

(JSC::SharedArrayBufferContents::SharedArrayBufferContents):
(JSC::SharedArrayBufferContents::~SharedArrayBufferContents):
(JSC::ArrayBufferContents::ArrayBufferContents):
(JSC::ArrayBufferContents::operator=):
(JSC::ArrayBufferContents::~ArrayBufferContents):
(JSC::ArrayBufferContents::clear):
(JSC::ArrayBufferContents::destroy):
(JSC::ArrayBufferContents::reset):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBufferContents::makeShared):
(JSC::ArrayBufferContents::transferTo):
(JSC::ArrayBufferContents::copyTo):
(JSC::ArrayBufferContents::shareWith):
(JSC::ArrayBuffer::create):
(JSC::ArrayBuffer::createAdopted):
(JSC::ArrayBuffer::createFromBytes):
(JSC::ArrayBuffer::tryCreate):
(JSC::ArrayBuffer::createUninitialized):
(JSC::ArrayBuffer::tryCreateUninitialized):
(JSC::ArrayBuffer::createInternal):
(JSC::ArrayBuffer::ArrayBuffer):
(JSC::ArrayBuffer::slice):
(JSC::ArrayBuffer::sliceImpl):
(JSC::ArrayBuffer::makeShared):
(JSC::ArrayBuffer::setSharingMode):
(JSC::ArrayBuffer::transferTo):
(JSC::ArrayBuffer::transfer): Deleted.

  • runtime/ArrayBuffer.h:

(JSC::arrayBufferSharingModeName):
(JSC::SharedArrayBufferContents::data):
(JSC::ArrayBufferContents::data):
(JSC::ArrayBufferContents::sizeInBytes):
(JSC::ArrayBufferContents::isShared):
(JSC::ArrayBuffer::sharingMode):
(JSC::ArrayBuffer::isShared):
(JSC::ArrayBuffer::gcSizeEstimateInBytes):
(JSC::arrayBufferDestructorNull): Deleted.
(JSC::arrayBufferDestructorDefault): Deleted.
(JSC::ArrayBufferContents::ArrayBufferContents): Deleted.
(JSC::ArrayBufferContents::transfer): Deleted.
(JSC::ArrayBufferContents::copyTo): Deleted.
(JSC::ArrayBuffer::create): Deleted.
(JSC::ArrayBuffer::createAdopted): Deleted.
(JSC::ArrayBuffer::createFromBytes): Deleted.
(JSC::ArrayBuffer::tryCreate): Deleted.
(JSC::ArrayBuffer::createUninitialized): Deleted.
(JSC::ArrayBuffer::tryCreateUninitialized): Deleted.
(JSC::ArrayBuffer::createInternal): Deleted.
(JSC::ArrayBuffer::ArrayBuffer): Deleted.
(JSC::ArrayBuffer::slice): Deleted.
(JSC::ArrayBuffer::sliceImpl): Deleted.
(JSC::ArrayBufferContents::tryAllocate): Deleted.
(JSC::ArrayBufferContents::~ArrayBufferContents): Deleted.

  • runtime/ArrayBufferSharingMode.h: Added.
  • runtime/ArrayBufferView.h:

(JSC::ArrayBufferView::possiblySharedBuffer):
(JSC::ArrayBufferView::unsharedBuffer):
(JSC::ArrayBufferView::isShared):
(JSC::ArrayBufferView::buffer): Deleted.

  • runtime/AtomicsObject.cpp: Added.

(JSC::AtomicsObject::AtomicsObject):
(JSC::AtomicsObject::create):
(JSC::AtomicsObject::createStructure):
(JSC::AtomicsObject::finishCreation):
(JSC::atomicsFuncAdd):
(JSC::atomicsFuncAnd):
(JSC::atomicsFuncCompareExchange):
(JSC::atomicsFuncExchange):
(JSC::atomicsFuncIsLockFree):
(JSC::atomicsFuncLoad):
(JSC::atomicsFuncOr):
(JSC::atomicsFuncStore):
(JSC::atomicsFuncSub):
(JSC::atomicsFuncWait):
(JSC::atomicsFuncWake):
(JSC::atomicsFuncXor):

  • runtime/AtomicsObject.h: Added.
  • runtime/CommonIdentifiers.h:
  • runtime/DataView.cpp:

(JSC::DataView::wrap):

  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::subarray):

  • runtime/Intrinsic.h:
  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::finishCreation):
(JSC::JSArrayBuffer::isShared):
(JSC::JSArrayBuffer::sharingMode):

  • runtime/JSArrayBuffer.h:

(JSC::toPossiblySharedArrayBuffer):
(JSC::toUnsharedArrayBuffer):
(JSC::JSArrayBuffer::toWrapped):
(JSC::toArrayBuffer): Deleted.

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSArrayBufferConstructor::JSArrayBufferConstructor):
(JSC::JSArrayBufferConstructor::finishCreation):
(JSC::JSArrayBufferConstructor::create):
(JSC::constructArrayBuffer):

  • runtime/JSArrayBufferConstructor.h:

(JSC::JSArrayBufferConstructor::sharingMode):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):
(JSC::JSArrayBufferPrototype::JSArrayBufferPrototype):
(JSC::JSArrayBufferPrototype::finishCreation):
(JSC::JSArrayBufferPrototype::create):

  • runtime/JSArrayBufferPrototype.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::finishCreation):
(JSC::JSArrayBufferView::visitChildren):
(JSC::JSArrayBufferView::unsharedBuffer):
(JSC::JSArrayBufferView::unsharedJSBuffer):
(JSC::JSArrayBufferView::possiblySharedJSBuffer):
(JSC::JSArrayBufferView::neuter):
(JSC::JSArrayBufferView::toWrapped): Deleted.

  • runtime/JSArrayBufferView.h:

(JSC::JSArrayBufferView::jsBuffer): Deleted.

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::isShared):
(JSC::JSArrayBufferView::possiblySharedBuffer):
(JSC::JSArrayBufferView::possiblySharedImpl):
(JSC::JSArrayBufferView::unsharedImpl):
(JSC::JSArrayBufferView::byteOffset):
(JSC::JSArrayBufferView::toWrapped):
(JSC::JSArrayBufferView::buffer): Deleted.
(JSC::JSArrayBufferView::impl): Deleted.
(JSC::JSArrayBufferView::neuter): Deleted.

  • runtime/JSDataView.cpp:

(JSC::JSDataView::possiblySharedTypedImpl):
(JSC::JSDataView::unsharedTypedImpl):
(JSC::JSDataView::getTypedArrayImpl):
(JSC::JSDataView::typedImpl): Deleted.

  • runtime/JSDataView.h:

(JSC::JSDataView::possiblySharedBuffer):
(JSC::JSDataView::unsharedBuffer):
(JSC::JSDataView::buffer): Deleted.

  • runtime/JSDataViewPrototype.cpp:

(JSC::dataViewProtoGetterBuffer):

  • runtime/JSGenericTypedArrayView.h:

(JSC::toPossiblySharedNativeTypedView):
(JSC::toUnsharedNativeTypedView):
(JSC::JSGenericTypedArrayView<Adaptor>::toWrapped):
(JSC::JSGenericTypedArrayView::typedImpl): Deleted.
(JSC::toNativeTypedView): Deleted.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::possiblySharedTypedImpl):
(JSC::JSGenericTypedArrayView<Adaptor>::unsharedTypedImpl):
(JSC::JSGenericTypedArrayView<Adaptor>::getTypedArrayImpl):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoGetterFuncBuffer):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • runtime/JSGlobalObject.cpp:

(JSC::createAtomicsProperty):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arrayBufferPrototype):
(JSC::JSGlobalObject::arrayBufferStructure):

  • runtime/MathObject.cpp:
  • runtime/RuntimeFlags.h:
  • runtime/SimpleTypedArrayController.cpp:

(JSC::SimpleTypedArrayController::toJS):

  • runtime/TypedArrayType.h:

(JSC::typedArrayTypeForType):

Source/WebCore:

New tests added in the LayoutTests/workers/sab directory.

This teaches WebCore that a typed array could be shared or not. By default, WebCore will
reject shared typed arrays as if they were not typed arrays. This ensures that we don't get
race conditions in code that can't handle it.

If you postMessage a SharedArrayBuffer or something that wraps it, you will send the shared
memory to the other worker.

  • Modules/encryptedmedia/CDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::cachedKeyForKeyID):

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::extract):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::send):

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::getChannelData):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::send):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::createRsaKeyGenParams):

  • bindings/js/JSCryptoCustom.cpp:

(WebCore::JSCrypto::getRandomValues):

  • bindings/js/JSCryptoOperationData.cpp:

(WebCore::cryptoOperationDataFromJSValue):

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):
(WebCore::toPossiblySharedArrayBufferView):
(WebCore::toUnsharedArrayBufferView):
(WebCore::toPossiblySharedInt8Array):
(WebCore::toPossiblySharedInt16Array):
(WebCore::toPossiblySharedInt32Array):
(WebCore::toPossiblySharedUint8Array):
(WebCore::toPossiblySharedUint8ClampedArray):
(WebCore::toPossiblySharedUint16Array):
(WebCore::toPossiblySharedUint32Array):
(WebCore::toPossiblySharedFloat32Array):
(WebCore::toPossiblySharedFloat64Array):
(WebCore::toUnsharedInt8Array):
(WebCore::toUnsharedInt16Array):
(WebCore::toUnsharedInt32Array):
(WebCore::toUnsharedUint8Array):
(WebCore::toUnsharedUint8ClampedArray):
(WebCore::toUnsharedUint16Array):
(WebCore::toUnsharedUint32Array):
(WebCore::toUnsharedFloat32Array):
(WebCore::toUnsharedFloat64Array):
(WebCore::toArrayBufferView): Deleted.
(WebCore::toInt8Array): Deleted.
(WebCore::toInt16Array): Deleted.
(WebCore::toInt32Array): Deleted.
(WebCore::toUint8Array): Deleted.
(WebCore::toUint8ClampedArray): Deleted.
(WebCore::toUint16Array): Deleted.
(WebCore::toUint32Array): Deleted.
(WebCore::toFloat32Array): Deleted.
(WebCore::toFloat64Array): Deleted.

  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::extractTransferables):

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:

(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::send):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpArrayBufferView):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::readArrayBufferView):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::transferArrayBuffers):

  • bindings/js/StructuredClone.cpp:

(WebCore::structuredCloneArrayBuffer):
(WebCore::structuredCloneArrayBufferView):

  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):

  • css/FontFace.cpp:

(WebCore::FontFace::create):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::bufferData):
(WebCore::WebGL2RenderingContext::bufferSubData):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::extractKeyURIKeyIDAndCertificateFromInitData):

Source/WebKit/mac:


Support the RuntimeFlag.

  • WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

Support the RuntimeFlag.

  • Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:


Adds some small things we need for SharedArrayBuffer.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::createWebDataFromUint8Array):

Source/WTF:


Adds some small things we need for SharedArrayBuffer.

  • wtf/Atomics.h:

(WTF::Atomic::compareExchangeWeakRelaxed):
(WTF::Atomic::exchangeAdd):
(WTF::Atomic::exchangeAnd):
(WTF::Atomic::exchangeOr):
(WTF::Atomic::exchangeSub):
(WTF::Atomic::exchangeXor):
(WTF::atomicLoad):
(WTF::atomicStore):
(WTF::atomicCompareExchangeWeak):
(WTF::atomicCompareExchangeWeakRelaxed):
(WTF::atomicCompareExchangeStrong):
(WTF::atomicExchangeAdd):
(WTF::atomicExchangeAnd):
(WTF::atomicExchangeOr):
(WTF::atomicExchangeSub):
(WTF::atomicExchangeXor):
(WTF::atomicExchange):
(WTF::Atomic::exchangeAndAdd): Deleted.
(WTF::weakCompareAndSwap): Deleted.
We need to be able to do atomics operations on naked pointers. We also need to be able to do
all of the things that std::atomic does. This adds those things and renames
weakCompareAndSwap to atomicCompareExchangeWeakRelaxed so that we're using consistent
terminology.

  • wtf/Bitmap.h:

(WTF::WordType>::concurrentTestAndSet): Renamed weakCompareAndSwap.
(WTF::WordType>::concurrentTestAndClear): Renamed weakCompareAndSwap.

  • wtf/FastBitVector.h:

(WTF::FastBitVector::atomicSetAndCheck): Renamed weakCompareAndSwap.

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkCount):

  • wtf/ParkingLot.h:

Added unparkCount(), which lets you unpark some bounded number of threads and returns the
number of threads unparked. This is just a modest extension of unparkAll(). unparkAll() now
just calls unparkCount(ptr, UINT_MAX).

Tools:


Use the right kind of typed array API.

  • DumpRenderTree/TestRunner.cpp:

(setAudioResultCallback):

LayoutTests:


Adding tests. This is a work in progress.

  • workers/sab: Added.
  • workers/sab/simple-worker-1.js: Added.

(onmessage):

  • workers/sab/simple-worker-2.js: Added.

(onmessage):

  • workers/sab/simple.html: Added.
7:56 PM Changeset in webkit [208208] by sbarati@apple.com
  • 28 edits
    1 add in trunk

We should be able to eliminate rest parameter allocations
https://bugs.webkit.org/show_bug.cgi?id=163925

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/rest-parameter-allocation-elimination.js: Added.

(assert):
(test1.bar):
(test1):
(test2.jaz):
(test2.jaz2.kaz):
(test2.jaz2):
(test2):
(test3.foo):
(test3.baz):
(test3.jaz):
(test3):
(test4.baz):
(test4.jaz):
(test4):
(test5.baz):
(test5.jaz):
(test5):
(test6.baz):
(test6.jaz):
(test6):
(test7.baz):
(test7.jaz):
(test7.check):
(test7):
(test8.baz):
(test8.jaz):
(test8.check):
(test8):
(test9.baz):
(test9.jaz):
(test9.check):
(test9):
(test10.baz):
(test10.jaz):
(test10):
(test11.bar):
(test11.foo):
(test11.makeArguments):
(test11.):
(test12):
(test12.bar):
(test12.foo):
(test12.makeArguments):
(test12.):
(test13.bar):
(test13.top):
(test13.foo):
(test13.makeArguments):
(test13.):
(test13):
(test14.bar):
(test14.top):
(test14.foo):
(test14.makeArguments):
(test14.):
(test14):
(test15.bar):
(test15.top):
(test15.foo):
(test15.makeArguments):
(test15.):
(test15):

Source/JavaScriptCore:

This is the first step towards eliminating rest parameter
allocations when they're spread to other function calls:
function foo(...args) { bar(...args); }

This patch simply removes the allocation for rest parameter
allocations using the same escape analysis that is performed
in the argument elimination phase. I've added a new rule to
the phase to make sure that CheckStructure doesn't count as
an escape for an allocation since this often shows up in code
like this:

`
function foo(...args) {

let r = [];
for (let i = 0; i < args.length; i++)

r.push(args[i]);

return r;

}
`

The above program now entirely eliminates the allocation for args
compiled in the FTL. Programs like this also eliminate the allocation
for args:

`
function foo(...args) { return [args.length, args[0]]; }

function bar(...args) { return someOtherFunction.apply(null, args); }
`

This patch extends the arguments elimination phase to understand
the concept that we may want to forward arguments, or get from
the arguments region, starting at some offset. The offset is the
number of names parameter before the rest parameter. For example:

`
function foo(a, b, ...args) { return bar.apply(null, args); }
`

Will forward arguments starting at the *third* argument.
Our arguments forwarding code already had the notion of starting
from some offset, however, I found bugs in that code. I extended
it to work properly for rest parameters with arbitrary skip offsets.

And this program:
`
function foo(...args) {

let r = [];
for (let i = 0; i < args.length; i++)

r.push(args[i]);

return r;

}
`

Knows to perform the GetMyArgumentByVal* with an offset of 3
inside the loop. To make this work, I taught GetMyArgumentByVal
and GetMyArgumentByValOutOfBounds to take an offset representing
the number of arguments to skip.

This patch is a ~20% speedup on microbenchmarks.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasConstant):
(JSC::DFG::Node::constant):
(JSC::DFG::Node::isPhantomAllocation):
(JSC::DFG::Node::numberOfArgumentsToSkip):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateRest):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run):

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsStart):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetVarargsFrame):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::restParameterStructure):

7:43 PM Changeset in webkit [208207] by Simon Fraser
  • 10 edits
    2 adds in trunk

Make UIScriptController::zoomToScale() work on Mac WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=164238

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/zooming/uiscript-zooming.html

Expose pageScaleFactor() for tests.

  • testing/Internals.cpp:

(WebCore::Internals::pageScaleFactor):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:

Implement UIScriptController::zoomToScale() for WTR and DRT on Mac.

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::zoomToScale):

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::zoomToScale):

LayoutTests:

  • fast/zooming/uiscript-zooming-expected.txt: Added.
  • fast/zooming/uiscript-zooming.html: Added.
  • platform/ios-simulator-wk1/TestExpectations:
6:36 PM Changeset in webkit [208206] by mmaxfield@apple.com
  • 11 edits in trunk/Source/WebCore

Migrate CanvasRenderingContext's internal canvas pointer to a reference
https://bugs.webkit.org/show_bug.cgi?id=164259

Reviewed by Dean Jackson.

It is never nullptr.

No new tests because there is no behavior change.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::CanvasRenderingContext):
(WebCore::CanvasRenderingContext::wouldTaintOrigin):
(WebCore::CanvasRenderingContext::checkOrigin):

  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::ref):
(WebCore::CanvasRenderingContext::deref):
(WebCore::CanvasRenderingContext::canvas):
(WebCore::CanvasRenderingContext::checkOrigin):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
(WebCore::CanvasRenderingContext2D::unwindStateStack):
(WebCore::CanvasRenderingContext2D::isAccelerated):
(WebCore::CanvasRenderingContext2D::realizeSaves):
(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::CanvasRenderingContext2D::setShadowColor):
(WebCore::CanvasRenderingContext2D::resetTransform):
(WebCore::CanvasRenderingContext2D::setStrokeColor):
(WebCore::CanvasRenderingContext2D::setFillColor):
(WebCore::CanvasRenderingContext2D::setShadow):
(WebCore::CanvasRenderingContext2D::clearCanvas):
(WebCore::CanvasRenderingContext2D::transformAreaToDevice):
(WebCore::CanvasRenderingContext2D::rectContainsCanvas):
(WebCore::CanvasRenderingContext2D::calculateCompositingBufferRect):
(WebCore::CanvasRenderingContext2D::compositeBuffer):
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::didDrawEntireCanvas):
(WebCore::CanvasRenderingContext2D::didDraw):
(WebCore::CanvasRenderingContext2D::paintRenderingResultsToCanvas):
(WebCore::CanvasRenderingContext2D::drawingContext):
(WebCore::CanvasRenderingContext2D::getImageData):
(WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::setFont):
(WebCore::CanvasRenderingContext2D::toTextDirection):
(WebCore::CanvasRenderingContext2D::direction):
(WebCore::CanvasRenderingContext2D::platformLayer):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::WebGL2RenderingContext):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::WebGLRenderingContext):

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::setupFlags):
(WebCore::WebGLRenderingContextBase::markContextChanged):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContextBase::reshape):
(WebCore::WebGLRenderingContextBase::isContextLostOrPending):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::printWarningToConsole):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::clampedCanvasSize):

  • html/canvas/WebGLRenderingContextBase.h:
6:17 PM Changeset in webkit [208205] by Dewei Zhu
  • 4 edits in trunk/Tools

Update twisted version in webkitpy.thirdparty.autoinstalled module.
https://bugs.webkit.org/show_bug.cgi?id=154667

Reviewed by Ryosuke Niwa.

Use twisted_15_5_0 for the twisted module used by run-benchmark because there is a bug in twisted 12.1.0 which sometimes stops the test.
Installing twisted was introduced in https://bugs.webkit.org/show_bug.cgi?id=147082 for run-benchmark script.
Since buildbot relies on twisted 12.1.0 and has not been verified the compatibility on twisted 15.5.0, it would be more secure to use an individual version for run-benchmark script.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module):
(AutoinstallImportHook._install_twisted_15_5_0):
(AutoinstallImportHook._install_twisted): Deleted.

5:47 PM Changeset in webkit [208204] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove test workaround now that original issue is fixed
https://bugs.webkit.org/show_bug.cgi?id=164255

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-31
Reviewed by Saam Barati.

  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
(TestPage.registerInitializer.window.logLinesWithContext):
(TestPage.registerInitializer.String.prototype.myPadStart): Deleted.
Use the real String.prototype.padStart now that it is fixed.

5:46 PM Changeset in webkit [208203] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

Address style feedback in https://bugs.webkit.org/show_bug.cgi?id=164097
https://bugs.webkit.org/show_bug.cgi?id=164248

Unreviewed. Addressing review feedback (and then some) from Darin Adler on earlier patch.

No new tests (No behavior change).

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::commit):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::renameObjectStore):
(WebCore::IDBTransaction::createIndex):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::iterateCursor):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::deleteIndex):

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::createObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::renameObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::renameIndex):
(WebCore::IDBClient::IDBConnectionProxy::deleteObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::clearObjectStore):
(WebCore::IDBClient::IDBConnectionProxy::createIndex):
(WebCore::IDBClient::IDBConnectionProxy::deleteIndex):
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
(WebCore::IDBClient::IDBConnectionProxy::getRecord):
(WebCore::IDBClient::IDBConnectionProxy::getAllRecords):
(WebCore::IDBClient::IDBConnectionProxy::getCount):
(WebCore::IDBClient::IDBConnectionProxy::deleteRecord):
(WebCore::IDBClient::IDBConnectionProxy::openCursor):
(WebCore::IDBClient::IDBConnectionProxy::iterateCursor):

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::renameIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteRange):
(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getAllRecords):
(WebCore::IDBServer::MemoryIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getCount):
(WebCore::IDBServer::MemoryIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::openCursor):
(WebCore::IDBServer::MemoryIDBBackingStore::iterateCursor):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::error):
(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):
(WebCore::IDBResultData::deleteDatabaseSuccess):
(WebCore::IDBResultData::putOrAddSuccess):
(WebCore::IDBResultData::getRecordSuccess):
(WebCore::IDBResultData::getAllRecordsSuccess):
(WebCore::IDBResultData::getCountSuccess):
(WebCore::IDBResultData::openCursorSuccess):
(WebCore::IDBResultData::iterateCursorSuccess):

5:42 PM Changeset in webkit [208202] by matthew_hanson@apple.com
  • 9 edits in branches/safari-602-branch/Source/WebCore

Merge r208151. rdar://problem/29032335

5:32 PM Changeset in webkit [208201] by rniwa@webkit.org
  • 10 edits in trunk

Enable custom elements by default everywhere
https://bugs.webkit.org/show_bug.cgi?id=164242

Reviewed by Antti Koivisto.

Source/WebCore:

Set the status of Custom Elements API to "Done".

  • features.json:

Tools:

Enable custom elements API on every port by default.

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Enable tests for custom elements everywhere. Also removed the superfluous expectations for shadow DOM tests.

  • TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
5:27 PM Changeset in webkit [208200] by Ryan Haddad
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r207967.

This change seems to be the cause of at least one LayoutTest
becoming flaky.

Reverted changeset:

"REGRESSION(r207753-207755): ASSERTION FAILED:
m_parsedStyleSheetCache->isInMemoryCache()"
https://bugs.webkit.org/show_bug.cgi?id=163905
http://trac.webkit.org/changeset/207967

5:23 PM Changeset in webkit [208199] by Joseph Pecoraro
  • 8 edits
    2 adds in trunk

Web Inspector: Shadow DOM scoped styles are missing
https://bugs.webkit.org/show_bug.cgi?id=164247
<rdar://problem/29035061>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: inspector/css/shadow-scoped-style.html

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchAuthorRules):
Only match :host pseudo class for NOPSEUDO. It doesn't make sense
with a pseudo element request (:host::before does not make sense).

  • css/InspectorCSSOMWrappers.h:
  • css/InspectorCSSOMWrappers.cpp:

(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents):
(WebCore::InspectorCSSOMWrappers::collectDocumentWrappers):
(WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
Simplify existing "once per document" wrapper collection.

(WebCore::InspectorCSSOMWrappers::maybeCollectFromStyleSheets):
(WebCore::InspectorCSSOMWrappers::collectScopeWrappers):
Include a path to add style sheets that weren't already collected.
This will be useful when trying the StyleScope stylesheets which
are different for different nodes.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::containingStyleScopeForElement):
(WebCore::InspectorCSSAgent::buildObjectForRule):
Collect rules for document and StyleScope sheets separately.
For elements with a shadow root, add the root's sheets as
well in case there are :host rules that affect the element.

Source/WebInspectorUI:

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.refresh.fetchedInlineStyles):
Fix incorrect WrapperPromise usage.

LayoutTests:

  • inspector/css/shadow-scoped-style-expected.txt: Added.
  • inspector/css/shadow-scoped-style.html: Added.
5:10 PM Changeset in webkit [208198] by Ryan Haddad
  • 10 edits in trunk/Source/WebCore

Unreviewed, rolling out r208180.

This change caused fast/shadow-dom/slotted-pseudo-element-css-
text.html to crash on macOS and iOS on every test run.

Reverted changeset:

"[CSS Parser] Support the shadow DOM"
https://bugs.webkit.org/show_bug.cgi?id=164240
http://trac.webkit.org/changeset/208180

5:03 PM Changeset in webkit [208197] by n_wang@apple.com
  • 6 edits
    2 adds in trunk

AX: aria-sort is not exposed on iOS
https://bugs.webkit.org/show_bug.cgi?id=164245

Reviewed by Chris Fleizach.

Source/WebCore:

Exposed the aria-sort attribute value in accessibilitySortDirection.

Test: accessibility/ios-simulator/aria-sort-ios.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilitySortDirection]):

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::stringAttributeValue):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::stringAttributeValue):

LayoutTests:

  • accessibility/ios-simulator/aria-sort-ios-expected.txt: Added.
  • accessibility/ios-simulator/aria-sort-ios.html: Added.
4:57 PM Changeset in webkit [208196] by Ryan Haddad
  • 32 edits
    2 deletes in trunk

Unreviewed, rolling out r208178.

The test added with this change fails or times out on macOS
and iOS.

Reverted changeset:

"[Modern Media Controls] Media Controller: Airplay support"
https://bugs.webkit.org/show_bug.cgi?id=163729
http://trac.webkit.org/changeset/208178

4:53 PM Changeset in webkit [208195] by Ryan Haddad
  • 32 edits
    2 deletes in trunk

Unreviewed, rolling out r208182.

Both of the tests added with this change time out on macOS
Release.

Reverted changeset:

"[Modern Media Controls] Media Controller: Placard support"
https://bugs.webkit.org/show_bug.cgi?id=163731
http://trac.webkit.org/changeset/208182

4:43 PM Changeset in webkit [208194] by beidson@apple.com
  • 51 edits
    14 adds in trunk

IndexedDB 2.0: Support IDBObjectStore getAll/getAllKeys.
<rdar://problem/28806934> and https://bugs.webkit.org/show_bug.cgi?id=164097

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbobjectstore_getAll-expected.txt:
  • web-platform-tests/IndexedDB/idbobjectstore_getAllKeys-expected.txt:

Source/WebCore:

Tests: storage/indexeddb/modern/idbobjectstore-getall-1-private.html

storage/indexeddb/modern/idbobjectstore-getall-1.html
storage/indexeddb/modern/idbobjectstore-getallkeys-1-private.html
storage/indexeddb/modern/idbobjectstore-getallkeys-1.html
Existing imported W3C tests.

  • Add new objects for "IDBGetAllRequestData" and "IDBGetAllResult" to represent these new requests and responses.
  • Add lots of boilerplate code to move these new objects around in the IDB machinery.
  • Update "GetRecord" code to be shared with "GetAll" code where necessary.
  • Other tweaks here and there.
  • WebCore.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • Modules/indexeddb/IDBGetAllResult.cpp: Added.

(WebCore::isolatedCopyOfVariant):
(WebCore::IDBGetAllResult::isolatedCopy):
(WebCore::IDBGetAllResult::addKey):
(WebCore::IDBGetAllResult::addValue):
(WebCore::IDBGetAllResult::keys):
(WebCore::IDBGetAllResult::values):
(WebCore::IDBGetAllResult::allBlobFilePaths):

  • Modules/indexeddb/IDBGetAllResult.h: Added.

(WebCore::IDBGetAllResult::IDBGetAllResult):
(WebCore::IDBGetAllResult::type):
(WebCore::IDBGetAllResult::encode):
(WebCore::IDBGetAllResult::decode):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::getAll):
(WebCore::IDBObjectStore::getAllKeys):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::getAllRecordsOnServer):
(WebCore::IDBTransaction::didGetAllRecordsOnServer):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::getAllRecords):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllRecords):
(WebCore::IDBClient::IDBConnectionToServer::didGetAllRecords):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didGetAllRecords):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllRecords):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::getAllRecords):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::getAllRecords):

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::queryForGetAllRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllRecords):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::hasAnyPendingCallbacks):
(WebCore::IDBServer::UniqueIDBDatabase::storeCallbackOrFireError):
(WebCore::IDBServer::UniqueIDBDatabase::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformGetAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllResultsCallback):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/IDBGetAllRecordsData.cpp: Added.

(WebCore::IDBGetAllRecordsData::isolatedCopy):

  • Modules/indexeddb/shared/IDBGetAllRecordsData.h: Added.

(WebCore::IDBGetAllRecordsData::encode):
(WebCore::IDBGetAllRecordsData::decode):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::IDBResultData):
(WebCore::IDBResultData::getAllRecordsSuccess):
(WebCore::IDBResultData::getAllResult):

  • Modules/indexeddb/shared/IDBResultData.h:

(WebCore::IDBResultData::encode):
(WebCore::IDBResultData::decode):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::didGetAllRecords):
(WebCore::InProcessIDBServer::getAllRecords):

  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::deserializeIDBValueToJSValue):
(WebCore::toJS):

  • bindings/js/IDBBindingUtilities.h:

Source/WebKit2:

  • Handle moving "Get All" requests to and from the DatabaseProcess.
  • Handle the additional task of creating/passing Sandbox Extensions for referenced files when necessary.
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::handleGetResult):
(WebKit::WebIDBConnectionToClient::didGetAllRecords):
(WebKit::WebIDBConnectionToClient::getAllRecords):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getAllRecords):
(WebKit::preregisterSandboxExtensionsIfNecessary):
(WebKit::WebIDBConnectionToServer::didGetAllRecords):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

LayoutTests:

  • storage/indexeddb/modern/idbobjectstore-getall-1-expected.txt: Added.
  • storage/indexeddb/modern/idbobjectstore-getall-1-private-expected.txt: Added.
  • storage/indexeddb/modern/idbobjectstore-getall-1-private.html: Added.
  • storage/indexeddb/modern/idbobjectstore-getall-1.html: Added.
  • storage/indexeddb/modern/idbobjectstore-getallkeys-1-expected.txt: Added.
  • storage/indexeddb/modern/idbobjectstore-getallkeys-1-private-expected.txt: Added.
  • storage/indexeddb/modern/idbobjectstore-getallkeys-1-private.html: Added.
  • storage/indexeddb/modern/idbobjectstore-getallkeys-1.html: Added.
  • storage/indexeddb/modern/resources/idbobjectstore-getall-1.js: Added.
4:37 PM Changeset in webkit [208193] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

GTK+ and EFL build fixes after r208176.

  • css/PropertySetCSSStyleDeclaration.cpp:
4:27 PM Changeset in webkit [208192] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix #include case.

  • page/IntersectionObserverEntry.h:
4:19 PM Changeset in webkit [208191] by Wenson Hsieh
  • 9 edits in trunk/Source

[WK1] Candidate visibility should not update as a result of selection during a dictionary lookup
https://bugs.webkit.org/show_bug.cgi?id=164236
<rdar://problem/28747712>

Reviewed by Beth Dakin.

Source/WebCore:

Moves state that keeps track of whether or not a dictionary lookup is active from the WebPage to the Editor, so
that when clicking a text field or contenteditable in WK1 or WK2, we are able to avoid notifying the
WebEditorClient of the selection change.

Changes to WK2 are covered by existing unit tests in WKWebViewCandidateTests which verify that clicking does not
thrash candidate list visibility. A similar test will be added in the future for the WK1 case in CandidateTests.

  • editing/Editor.h:

(WebCore::Editor::setIsGettingDictionaryPopupInfo):
(WebCore::Editor::isGettingDictionaryPopupInfo):

Source/WebKit/mac:

See WebCore ChangeLog for more detail. Sets the Editor's isGettingDictionaryPopupInfo state to true during a
dictionary lookup.

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::respondToChangedSelection):

  • WebView/WebImmediateActionController.mm:

(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):

Source/WebKit2:

See WebCore ChangeLog for more detail. Removes m_isGettingDictionaryPopupInfo from the WebPage in favor of
keeping track of the same state in Editor, so that both the WK1 and WK2 cases can share the same codepath.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeSelection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

4:18 PM Changeset in webkit [208190] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Arrows for Styles scope bar item are misaligned
https://bugs.webkit.org/show_bug.cgi?id=164159

Patch by Devin Rousso <Devin Rousso> on 2016-10-31
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ScopeRadioButtonNavigationItem.css:

(.scope-radio-button-navigation-item > .scope-radio-button-item-select:focus):
(.scope-radio-button-navigation-item > .arrows):

4:18 PM Changeset in webkit [208189] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add $vm.codeBlockFor() debugging utility.
https://bugs.webkit.org/show_bug.cgi?id=164192

Reviewed by Saam Barati.

Sometimes, while debugging, it would be nice if we can get the codeBlock info for
a function. Amongst other uses, this is useful for checking what optimization
level the function is currently at. With $vm.codeBlockFor(), we can now do this.
For example, when JS_useDollarVM=true:

print("test's codeBlock = " + $vm.codeBlockFor(test)); prints function test's codeBlock.

Also added some comments to clarify some pre-existing code.

  • tools/JSDollarVMPrototype.cpp:

(JSC::functionCodeBlockForFrame):
(JSC::codeBlockFromArg):
(JSC::functionCodeBlockFor):
(JSC::JSDollarVMPrototype::finishCreation):

4:17 PM Changeset in webkit [208188] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Entering ":n" in Open Resource Dialog, where n > number of lines, should jump to the last line
https://bugs.webkit.org/show_bug.cgi?id=160840

Patch by Devin Rousso <Devin Rousso> on 2016-10-31
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.revealPosition):
Since it is possible for the given position to be outside the bounds of the CodeMirror
instance, wait to get the line handler for the highlight animation until we have constrained
the position value.

4:06 PM Changeset in webkit [208187] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two http/tests/websocket/tests/hybi tests as flaky.
https://bugs.webkit.org/show_bug.cgi?id=164080

Unreviewed test gardening.

4:00 PM Changeset in webkit [208186] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping media/modern-media-controls/volume-support/volume-support-media-api.html on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=164250

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:51 PM Changeset in webkit [208185] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

GetByOffset rule is has incorrect assumptions inside arguments elimination phase
https://bugs.webkit.org/show_bug.cgi?id=164239
<rdar://problem/29032041>

Reviewed by Keith Miller.

The rule for GetByOffset assumes that a child will always be transformed before
the user of a child is by assuming its child will already be a phantom allocation.
This will almost certainly be true because of how we generate bytecode for
arguments allocation and how traversal of the graph works using blocksInNaturalOrder.
However, there is no guarantee that blocksInNaturalOrder must first traverse a
block's dominator before the block being dominated. Since it's unlikely that this
bug will ever be seen by real code, this fix is mostly for maintaining good hygiene.

  • dfg/DFGArgumentsEliminationPhase.cpp:
3:45 PM Changeset in webkit [208184] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Changing expectation from Failure to Skip for two insertReplacementText tests on ios-simulator.

Unreviewed test gardening.

These tests will always time out on ios-simulator due to reliance upon
testRunner.waitUntilDone().

  • platform/ios-simulator/TestExpectations:
3:24 PM Changeset in webkit [208183] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking three modern-media-controls tests as flaky.

Unreviewed test gardening.

3:13 PM Changeset in webkit [208182] by graouts@webkit.org
  • 32 edits
    3 copies
    3 adds in trunk

[Modern Media Controls] Media Controller: Placard support
https://bugs.webkit.org/show_bug.cgi?id=163731
<rdar://problem/28869598>

Reviewed by Dean Jackson.

We introduce the PlacardSupport class which brings support for showing the
appropriate placard when the media is played via AirPlay or in picture-in-picture.

Tests: media/modern-media-controls/placard-support/placard-support-airplay.html

media/modern-media-controls/placard-support/placard-support-pip.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/placard-support.js: Added.

(PlacardSupport):
(PlacardSupport.prototype.get mediaEvents):
(PlacardSupport.prototype.handleEvent):
(PlacardSupport.prototype._updatePlacard):

  • WebCore.xcodeproj/project.pbxproj:
3:12 PM Changeset in webkit [208181] by Simon Fraser
  • 18 edits
    13 adds in trunk

Implement IntersectionObserver
https://bugs.webkit.org/show_bug.cgi?id=159475

Reviewed by Ryosuke Niwa.
Source/JavaScriptCore:

Add ENABLE_INTERSECTION_OBSERVER, enabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Add bindings support for Intersection Observer
<https://wicg.github.io/IntersectionObserver/>

Code is wrapped in ENABLE(INTERSECTION_OBSERVER), and controlled by a runtime
Setting (off by default for now).

A minor bindings change was required to fix the callback code.

IntersectionObserver is just a shell for now.

Tests: intersection-observer/intersection-observer-entry-interface.html

intersection-observer/intersection-observer-interface.html

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldPassWrapperByReference):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::construct):

  • page/IntersectionObserver.cpp: Added.

(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::unobserve):
(WebCore::IntersectionObserver::disconnect):
(WebCore::IntersectionObserver::takeRecords):

  • page/IntersectionObserver.h: Added.

(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::root):
(WebCore::IntersectionObserver::rootMargin):
(WebCore::IntersectionObserver::thresholds):

  • page/IntersectionObserver.idl: Added.
  • page/IntersectionObserverCallback.h: Added.

(WebCore::IntersectionObserverCallback::~IntersectionObserverCallback):

  • page/IntersectionObserverCallback.idl: Added.
  • page/IntersectionObserverEntry.cpp: Added.

(WebCore::IntersectionObserverEntry::IntersectionObserverEntry):

  • page/IntersectionObserverEntry.h: Added.

(WebCore::IntersectionObserverEntry::create):
(WebCore::IntersectionObserverEntry::time):
(WebCore::IntersectionObserverEntry::rootBounds):
(WebCore::IntersectionObserverEntry::boundingClientRect):
(WebCore::IntersectionObserverEntry::intersectionRect):
(WebCore::IntersectionObserverEntry::target):
(WebCore::IntersectionObserverEntry::intersectionRatio):

  • page/IntersectionObserverEntry.idl: Added.
  • page/Settings.in:

Source/WebKit2:

Add ENABLE_INTERSECTION_OBSERVER, enabled by default.

  • Configurations/FeatureDefines.xcconfig:

Tools:

Add ENABLE_INTERSECTION_OBSERVER, enabled by default.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Basic interface tests.

  • intersection-observer/intersection-observer-entry-interface-expected.txt: Added.
  • intersection-observer/intersection-observer-entry-interface.html: Added.
  • intersection-observer/intersection-observer-interface-expected.txt: Added.
  • intersection-observer/intersection-observer-interface.html: Added.
3:08 PM Changeset in webkit [208180] by hyatt@apple.com
  • 10 edits in trunk/Source/WebCore

[CSS Parser] Support the shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=164240

Reviewed by Dean Jackson.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::collectIdentifierHashes):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

  • css/SelectorPseudoElementTypeMap.in:

Add support for slotted.

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::appendTagHistory):

  • css/parser/CSSParserValues.h:

(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator. Take :slotted out of
needsImplicitShadowCombinatorForMatching(), since our code doesn't do
this for :slotted.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isPseudoClassFunction):
:host can be both an id and a function, so don't restrict it.

(WebCore::CSSSelectorParser::consumePseudo):
Put in a hack for :host (inside the hack we already plan on removing
once we turn on).

(WebCore::CSSSelectorParser::consumeCombinator):
Remove deep shadow combinator support, as we don't support matching
on it.

(WebCore::CSSSelectorParser::prependTypeSelectorIfNeeded):
(WebCore::CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator):
Make the split use our combinator, ShadowDescendant, and no longer do anything
special with :slotted.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
Remove ShadowDeep, ShadowSlot and ShadowPseudo in favor of our
ShadowDescendant combinator.

3:07 PM Changeset in webkit [208179] by commit-queue@webkit.org
  • 617 edits in trunk/Source

Use #pragma once in WebCore
https://bugs.webkit.org/show_bug.cgi?id=164194

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-31
Rubber-stamped by Sam Weinig.

Source/WebCore:

  • accessibility/*.h:
  • bindings/*.h:
  • contentextensions/*.h:
  • dom/*.h:
  • html/*.h:
  • page/*.h:

Use #pragma once in headers.

  • html/parser/ParsingUtilities.h:

Add missing namespace.

  • html/track/VTTScanner.h:

(WebCore::VTTScanner::skipWhile):
(WebCore::VTTScanner::skipUntil):
(WebCore::VTTScanner::collectWhile):
(WebCore::VTTScanner::collectUntil):
Include namespace.

Source/WebKit/win:

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::isSpeaking):
(WebContextMenuClient::shareMenuItem): Deleted.

  • WebCoreSupport/WebContextMenuClient.h:

Remove this dead code since r192333.

3:05 PM Changeset in webkit [208178] by graouts@webkit.org
  • 32 edits
    2 copies
    2 adds in trunk

[Modern Media Controls] Media Controller: Airplay support
https://bugs.webkit.org/show_bug.cgi?id=163729

Reviewed by Dean Jackson.

We introduce the AirplaySupport class which brings support for playing the media
via Airplay by clicking on the Airplay button in the media controls and correctly
reflecting when the media is played through Airplay via the media API. The enabled
state of the Airplay button is also tied to Airplay sources being available.

Test: media/modern-media-controls/airplay-support/airplay-support.html

  • Modules/modern-media-controls/controls/airplay-button.js:

(AirplayButton.prototype.get on):

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/airplay-support.js: Added.

(AirplaySupport.prototype.get control):
(AirplaySupport.prototype.get mediaEvents):
(AirplaySupport.prototype.buttonWasClicked):
(AirplaySupport.prototype.handleEvent):
(AirplaySupport.prototype.syncControl):
(AirplaySupport):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • WebCore.xcodeproj/project.pbxproj:
2:51 PM Changeset in webkit [208177] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Web Inspector: Provide an opportunity to clear ScriptValues associated with debugged target
https://bugs.webkit.org/show_bug.cgi?id=164167
<rdar://problem/29010148>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-31
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • inspector/InspectorAgentBase.h:

(Inspector::InspectorAgentBase::discardValues):

  • inspector/InspectorAgentRegistry.cpp:

(Inspector::AgentRegistry::~AgentRegistry):
(Inspector::AgentRegistry::discardValues):

  • inspector/InspectorAgentRegistry.h:

New standard agent method to allow the agent to discard values.

  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::discardValues):
Discard ScriptValues in ConsoleMessages.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::globalObjectDestroyed):
Global object is going away, discard values.

Source/WebCore:

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::inspectedPageDestroyed):
Page is going away, discard values.

  • inspector/WorkerInspectorController.h:
  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::workerTerminating):
Worker is going away, discard values.

2:47 PM Changeset in webkit [208176] by rniwa@webkit.org
  • 9 edits
    2 adds in trunk

CSSStyleDeclaration should be annotated with CEReactions
https://bugs.webkit.org/show_bug.cgi?id=163968

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases pass.

  • web-platform-tests/custom-elements/attribute-changed-callback-expected.txt:

Source/WebCore:

Added CEReactions to CSSStyleDeclaration.idl.

Test: fast/custom-elements/reactions/CSSStyleDeclaration.html

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):

  • css/CSSStyleDeclaration.idl:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::StyleAttributeMutationScope::StyleAttributeMutationScope): Remember the old value when this is
an inline style declaration for a custom element. Also store m_oldValue and m_customElement instead of
a mutation record so that we don't create a superfluous mutation record for custom elements.
(WebCore::StyleAttributeMutationScope::~StyleAttributeMutationScope): Enqueue attributeChangedCallback
when m_customElement is not null.

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::observesStyleAttribute):

  • dom/CustomElementReactionQueue.h:

LayoutTests:

Added a W3C style testharness.js test.

  • fast/custom-elements/reactions/CSSStyleDeclaration-expected.txt: Added.
  • fast/custom-elements/reactions/CSSStyleDeclaration.html: Added.
2:37 PM Changeset in webkit [208175] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for the build fix; AVStreamDataParser not defined on iOS.

  • platform/spi/mac/AVFoundationSPI.h:
2:31 PM Changeset in webkit [208174] by Ryan Haddad
  • 4 edits in trunk

Unreviewed, rolling out r208154.

This change caused an assertion failure during API tests on
macOS.

Reverted changeset:

"NetworkSession: Network process crash when converting main
resource to download"
https://bugs.webkit.org/show_bug.cgi?id=164220
http://trac.webkit.org/changeset/208154

2:03 PM Changeset in webkit [208173] by matthew_hanson@apple.com
  • 15 edits in branches/safari-602-branch/Source

Merge r208168. rdar://problem/28962886

1:18 PM Changeset in webkit [208172] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

LayoutTests/fast/frames/invalid-frameset.html is not clean by the end of FrameView::layout().
https://bugs.webkit.org/show_bug.cgi?id=164230

Reviewed by Simon Fraser.

When a <frameset> has invalid children, in addition to clear the needs layout flag on the children
we also need to do clear the descendants too.

Covered by LayoutTests/fast/frames/invalid-frameset.html.

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::positionFrames):

1:17 PM Changeset in webkit [208171] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r208151; outputMIMECodecParameterForInputMIMECodecParameter not
defined pre-Sierra.

  • platform/spi/mac/AVFoundationSPI.h:
1:16 PM Changeset in webkit [208170] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: !m_trailingWhitespaceWidth in WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace
https://bugs.webkit.org/show_bug.cgi?id=164076

Reviewed by Antti Koivisto.

Source/WebCore:

FontCascade's text measure methods return NaN for zero sized fonts. We could actually early return and not
measure text with zero font size at all.

Test: fast/text/simple-line-layout-with-zero-sized-font.html

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):
(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

LayoutTests:

  • fast/text/simple-line-layout-with-zero-sized-font-expected.txt: Added.
  • fast/text/simple-line-layout-with-zero-sized-font.html: Added.
12:38 PM Changeset in webkit [208169] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Support -webkit-named-image
https://bugs.webkit.org/show_bug.cgi?id=164235

Reviewed by Dean Jackson.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeWebkitNamedImage):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::isGeneratedImage):

12:15 PM Changeset in webkit [208168] by Brent Fulgham
  • 15 edits in trunk/Source

Do a better job of protecting Frame objects in the context of JavaScript calls
https://bugs.webkit.org/show_bug.cgi?id=164163
<rdar://problem/28955249>

Reviewed by Darin Adler.

Source/WebCore:

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection): Protected the Frame.

  • editing/Editor.cpp:

(WebCore::Editor::setTextAsChildOfElement): Ditto.

  • editing/EditorCommand.cpp:

(WebCore::executeSwapWithMark): Ditto.

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::deleteKeyPressed): Ditto.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::replaceNodeFromPasteboard): Ditto.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected): Ditto.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::collapse): Ditto.
(WebCore::DOMSelection::collapseToEnd): Ditto.
(WebCore::DOMSelection::collapseToStart): Ditto.
(WebCore::DOMSelection::setBaseAndExtent): Ditto.
(WebCore::DOMSelection::setPosition): Ditto.
(WebCore::DOMSelection::modify): Ditto.
(WebCore::DOMSelection::extend): Ditto.
(WebCore::DOMSelection::addRange): Ditto.
(WebCore::DOMSelection::deleteFromDocument): Ditto.

  • page/DragController.cpp:

(WebCore::setSelectionToDragCaret): Ditto.
(WebCore::DragController::startDrag): Ditto.

  • page/Frame.cpp:

(WebCore::Frame::checkOverflowScroll): Ditto.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::renderedImage): Protected the Frame.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::insertTextAsync): Ditto.
(WebKit::WebPage::setComposition): Ditto.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::insertDictatedTextAsync): Ditto.

12:13 PM Changeset in webkit [208167] by matthew_hanson@apple.com
  • 10 edits
    6 adds in branches/safari-602-branch

Merge r208025. rdar://problem/28216240

12:09 PM Changeset in webkit [208166] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Make sure to fail on :role(a,b) and :dir(a,b)
https://bugs.webkit.org/show_bug.cgi?id=164233

Reviewed by Dean Jackson.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

11:59 AM Changeset in webkit [208165] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Allow unitless values on background-size in quirks mode
https://bugs.webkit.org/show_bug.cgi?id=164232

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundSize):

11:43 AM Changeset in webkit [208164] by matthew_hanson@apple.com
  • 11 edits
    2 adds in branches/safari-602-branch

Merge r208003. rdar://problem/28811878

11:43 AM Changeset in webkit [208163] by matthew_hanson@apple.com
  • 9 edits in branches/safari-602-branch/Source/WebCore

Merge r206635 and r206637. rdar://problem/28718754

11:43 AM Changeset in webkit [208162] by matthew_hanson@apple.com
  • 18 edits in branches/safari-602-branch/Source

Merge r206802. rdar://problem/28409525

10:46 AM Changeset in webkit [208161] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r208151; _setPreventsSleepDuringVideoPlayback: only defined in non-simulator SDKs.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):

  • platform/spi/mac/AVFoundationSPI.h:
10:26 AM Changeset in webkit [208160] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out
https://bugs.webkit.org/show_bug.cgi?id=164227

Unreviewed timeout fix.

  • microbenchmarks/pure-get-by-id-cse-2.js:
10:18 AM Changeset in webkit [208159] by n_wang@apple.com
  • 8 edits in trunk

AX: iOS Voiceover does not announce previously selected value from input type="date" form field
https://bugs.webkit.org/show_bug.cgi?id=164176

Reviewed by Chris Fleizach.

Source/WebCore:

Input type date is a popup button on iOS and its value was not exposed in stringValue() since
it's not considered a text control. Instead, the value was exposed in AXTitle. Fixed this by adding
the case in stringValue() and removing the AXTitle exposure.

Changes are covered in modified test.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::stringValue):

  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::isInputTypePopupButton):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityLabel]):

LayoutTests:

  • accessibility/ios-simulator/input-type-time-expected.txt:
  • accessibility/ios-simulator/input-type-time.html:
10:16 AM Changeset in webkit [208158] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add requestIdleCallback to features.json.

  • features.json:
10:09 AM Changeset in webkit [208157] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Fully support prefixed background-size and box-shadows
https://bugs.webkit.org/show_bug.cgi?id=164228

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

10:07 AM Changeset in webkit [208156] by Said Abou-Hallawa
  • 2 edits in trunk/Tools

Unreviewed, change my status to be a WebKit reviewer

  • Scripts/webkitpy/common/config/contributors.json:
9:58 AM Changeset in webkit [208155] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r207639. rdar://problem/29007088

9:57 AM Changeset in webkit [208154] by Carlos Garcia Campos
  • 4 edits in trunk

NetworkSession: Network process crash when converting main resource to download
https://bugs.webkit.org/show_bug.cgi?id=164220

Reviewed by Alex Christensen.

Source/WebKit2:

Right after the main resource load is converted to a download, the web process deletes the ResourceLoader which
sends the RemoveLoadIdentifier to the network process and the load is aborted. Sometimes it happens that
NetworkResourceLoader::abort() is called while the NetworkLoad is still deciding the destination of the
download. In such case, NetworkResourceLoader::didConvertToDownload() has already been called, but not
NetworkResourceLoader::didBecomeDownload(). In NetworkResourceLoader::abort() we already handle the case of
having a NetworkLoad after NetworkResourceLoader::didConvertToDownload() has been called, to avoid canceling the
load in such case, however cleanup() is always called unconditionally and the NetworkLoad is deleted before
NetworkResourceLoader::didBecomeDownload() is called. When the NetworkLoad is destroyed the NetworkDataTask
client becomes nullptr, leaving it in a state where both the client is nullptr and the download hasn't been
created yet. That's not expected to happen and when the response completion handler is called in the
NetworkDataTask it tries to use either the client or the download and it crashes.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didBecomeDownload): Call cleanup() instead of just deleting the network load.
(WebKit::NetworkResourceLoader::abort): If we still have a network load that was converted to a download, do not
call cleanup() because it will be called by didBecomeDownload() later.

Tools:

Split /webkit2/Downloads/policy-decision-download in two, one to test the full load when main resource is
converted to a download and another one to test the cancellation as the test was doing before. When doing the
full load, delay a bit the decide destination to ensure the load is aborted before the data task has became a
download.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp:

(testPolicyResponseDownload):
(testPolicyResponseDownloadCancel):
(beforeAll):

9:51 AM Changeset in webkit [208153] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix watchlist regexp for wasm.

  • Scripts/webkitpy/common/config/watchlist:
9:46 AM Changeset in webkit [208152] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Get rid of CSSCustomIdentValue::creates
https://bugs.webkit.org/show_bug.cgi?id=164225

Reviewed by Zalan Bujtas.

Get rid of all instances of CSSCustomIdent::create, since our style
resolution code isn't prepared to handle that value type yet.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationName):
(WebCore::consumeTransitionProperty):
(WebCore::consumeAttr):

9:37 AM Changeset in webkit [208151] by jer.noble@apple.com
  • 9 edits in trunk/Source/WebCore

Opt-out of AVPlayer automatic sleep disabling
https://bugs.webkit.org/show_bug.cgi?id=163983

Reviewed by Eric Carlson.

In addition to the DisplaySleepDisabler, notify the MediaPlayerPrivateAVFoundationObjC object whether
it should disable display sleep. Provide all the necessary boilerplate to allow the media player private
to query the HTMLMediaPlayer so that the correct value can be set on AVPlayer upon creation.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateSleepDisabling):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setShouldDisableSleep):
(WebCore::MediaPlayer::shouldDisableSleep):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerShouldDisableSleep):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setShouldDisableSleep):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):

Drive-by fix: Re-organize the contents of AVFoundationSPI.h so that there's a single top-level
#if USE(APPLE_INTERNAL_SDK) statement, rather than that conditional being sprinkled about the
file.

  • platform/spi/mac/AVFoundationSPI.h:
9:36 AM Changeset in webkit [208150] by jer.noble@apple.com
  • 4 edits in trunk

REGRESSION (r206300): LayoutTest media/media-source/media-source-duplicate-seeked.html timing out
https://bugs.webkit.org/show_bug.cgi?id=162496

Reviewed by Darin Adler.

Source/WebCore:

The change to MockMediaSourcePrivate in r206300 revealed a true bug: seeks to the MediaSource's duration
will always fail. We should discard out of hand seeks which are greater than the duration, but allow seeks
directly to the duration.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::hasBufferedTime):

LayoutTests:

  • platform/mac/TestExpectations:
9:36 AM Changeset in webkit [208149] by jer.noble@apple.com
  • 20 edits
    5 adds in trunk

Allow multiple playing videos on a page with 'autoplay' and 'playsinline' attributes
https://bugs.webkit.org/show_bug.cgi?id=162366
<rdar://problem/28639600>

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/video-concurrent-visible-playback.html

media/video-multiple-concurrent-playback.html

Separate out the concept of "video-only" from "video-with-audio" in PlatformMediaSession::MediaType,
and only set the ConcurrentPlaybackNotPermitted restriction for "video-with-audio". This allows multiple
silent video elements to play back simultaneously.

However, the bug in question also shows bad behavior when both concurrent playback and invisible playback
are not allowed. Namely, an invisible element will attempt to autoplay, interrupt visible elements, and
then fail to play due to it's non-visibility. Add an extra check to canTransitionFromAutoplayToPlay()
which asks the session if autoplay is allowed (which will return false if the element is not visible).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay):
(WebCore::HTMLMediaElement::mediaType):
(WebCore::HTMLMediaElement::presentationType):
(WebCore::HTMLMediaElement::updateShouldAutoplay):
(WebCore::mediaElementIsAllowedToAutoplay): Deleted.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::autoplayPermitted):

  • html/MediaElementSession.h:
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::resetRestrictions):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaSessionRestrictions):

LayoutTests:

  • media/content/test-video-only.mp4: Added.
  • media/non-existent-video-playback-interrupted-expected.txt:
  • media/non-existent-video-playback-interrupted.html:
  • media/video-background-playback-expected.txt:
  • media/video-background-playback.html:
  • media/video-background-tab-playback-expected.txt:
  • media/video-background-tab-playback.html:
  • media/video-concurrent-playback-expected.txt:
  • media/video-concurrent-playback.html:
  • media/video-concurrent-visible-playback-expected.txt: Added.
  • media/video-concurrent-visible-playback.html: Added.
  • media/video-multiple-concurrent-playback-expected.txt: Added.
  • media/video-multiple-concurrent-playback.html: Added.
  • media/video-playback-interrupted-expected.txt:
  • media/video-playback-interrupted.html:
  • media/video-restricted-invisible-autoplay-not-allowed.html:
9:24 AM Changeset in webkit [208148] by keith_miller@apple.com
  • 5 edits
    3 adds
    2 deletes in trunk

autogenerated files from wasm.json should be in derived sources.
https://bugs.webkit.org/show_bug.cgi?id=164152

Reviewed by Filip Pizlo.

JSTests:

Delete generation script since it is no longer used.

  • wasm/generate-wasmops-header.js: Removed.

Source/JavaScriptCore:

Add two new python scripts to the build. These scripts do what the
old js script in JSTests did. Previously, changes to wasm.json needed
to be manually reflected in WasmOps.h. This patch will auto-build from
the json file. That system was unsustainable, especially as future patches
will likely add more autogenerated files. The generated header files are
identical other than the comment at the top and the order of the opcodes.
I believe ordering difference just has to do with the iteration order for
sets.

  • DerivedSources.make:
  • wasm/WasmOps.h: Removed.
  • wasm/generateWasm.py: Added.

(Wasm):
(Wasm.init):
(opcodeIterator):
(toCpp):
(isNormal):
(isUnary):
(isBinary):

  • wasm/generateWasmOpsHeader.py: Added.

(cppMacro):
(opcodeMacroizer):
(ceilDiv):
(bitSet):
(BinaryOpType):
(UnaryOpType):
(LoadOpType):
(StoreOpType):

  • wasm/wasm.json: Added.

Tools:

Add message to make sure that people keep the wasm.jsons up to date.

  • Scripts/webkitpy/common/config/watchlist:
9:17 AM Changeset in webkit [208147] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Support unprefixed cross-fade
https://bugs.webkit.org/show_bug.cgi?id=164224

Reviewed by Zalan Bujtas.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):

9:10 AM Changeset in webkit [208146] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Simplify background-position-x/y style mapping
https://bugs.webkit.org/show_bug.cgi?id=164223

Reviewed by Zalan Bujtas.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertFontSynthesis):

8:54 AM Changeset in webkit [208145] by Darin Adler
  • 42 edits in trunk/Source

Move ChildNode and ParentNode from ExceptionCode to Exception, add support for ExceptionOr<T&>
https://bugs.webkit.org/show_bug.cgi?id=164214

Reviewed by Alex Christensen.

Source/WebCore:

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::initializeOptions): Use FetchHeaders& instead of
Ref<FetchHeaders> for return value.
(WebCore::FetchRequest::initializeWith): Ditto.

  • Modules/fetch/FetchRequest.h: Updated for above.
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::addSourceBuffer): Use SourceBuffer& instead of
SourceBuffer* for return value.

  • Modules/mediasource/MediaSource.h: Updated for above.
  • bindings/js/JSDOMBinding.h: Added overloads of checkSecurityForNode so

it works with a function returning a reference.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::getCounterValue): Use Counter& instead of
Counter* for return value.
(WebCore::CSSPrimitiveValue::getRectValue): Use Rect& instead of
Rect* for return value.

  • css/CSSPrimitiveValue.h: Updated for above.
  • dom/ChildNode.idl: Use non-legacy exceptions.
  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::querySelector): Use ExceptionOr.
(WebCore::ContainerNode::querySelectorAll): Ditto.
(WebCore::ContainerNode::append): Ditto.
(WebCore::ContainerNode::prepend): Ditto.

  • dom/ContainerNode.h: Updated for above.
  • dom/Document.cpp:

(WebCore::Document::selectorQueryForString): Use ExceptionOr.

  • dom/Document.h: Updated for above.
  • dom/Element.cpp:

(WebCore::Element::attachShadow): Return ShadowRoot& instead of
Ref<ShadowRoot> since the shadow root is owned by the element, not
the caller.
(WebCore::Element::matches): Updated for change to make the
selectorQueryForString function use ExceptionOr.
(WebCore::Element::closest): Ditto.
(WebCore::contextNodeForInsertion): Return ContainerNode& instead of
ContainerNode*.
(WebCore::contextElementForInsertion): Updated for above.

  • dom/Element.h: Updated for above.
  • dom/Element.idl: Changed return type for closest and for

insertAdjacentElement to be nullable since both can return null.

  • dom/ExceptionOr.h: Added a specialization for ExceptionOr<T&>.
  • dom/Node.cpp:

(WebCore::Node::convertNodesOrStringsIntoNode): Use ExceptionOr.
(WebCore::Node::before): Ditto.
(WebCore::Node::after): Ditto.
(WebCore::Node::replaceWith): Ditto.

  • dom/Node.h: Updated for above changes.
  • dom/ParentNode.idl: Use non-legacy exceptions.
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::queryAll): Changed return type to Ref.
(WebCore::SelectorQueryCache::add): Use ExceptionOr.

  • dom/SelectorQuery.h: Updated for above changes.
  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::getSVGDocument): Return
Document& instead of Document*.

  • html/HTMLFrameOwnerElement.h: Updated for above change.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::addTextTrack): Return TextTrack&
instead of Ref<TextTrack>.

  • html/HTMLMediaElement.h: Updated for above.
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay):
Updated for new exceptions.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::querySelector): Ditto.
(WebCore::InspectorDOMAgent::querySelectorAll): Ditto.
(WebCore::InspectorDOMAgent::performSearch): Ditto.
(WebCore::InspectorDOMAgent::highlightSelector): Ditto.

  • inspector/InspectorNodeFinder.cpp:

(WebCore::InspectorNodeFinder::performSearch): Put a null check
here so callers don't have to do it. Pass references to the
individual functions since the pointer can't be null.
(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
Updated to use reference and streamlined code a bit, using
containsIgnoringASCIICase instead of findIgnoringCase.
(WebCore::InspectorNodeFinder::matchesAttribute): Ditto.
(WebCore::InspectorNodeFinder::matchesElement): Ditto.
(WebCore::InspectorNodeFinder::searchUsingXPath): Ditto.
(WebCore::InspectorNodeFinder::searchUsingCSSSelectors): Ditto.
Also updated for new exceptions in querySelectorAll.

  • inspector/InspectorNodeFinder.h: Updated for above.
  • page/Crypto.cpp:

(WebCore::Crypto::webkitSubtle): Return WebKitSubtleCrypto&
insetad of WebKitSubtleCrypto*.

  • page/Crypto.h: Updated for above.
  • testing/Internals.h: Removed declarations for functions already

removed: ensureShadowRoot and createShadowRoot.

Source/WebKit/mac:

  • DOM/DOMCSSPrimitiveValue.mm:

(-[DOMCSSPrimitiveValue getCounterValue]): Updated since return value
is a reference now.
(-[DOMCSSPrimitiveValue getRectValue]): Ditto.

  • DOM/DOMDocument.mm:

(-[DOMDocument querySelector:]): Updated exception handling.
(-[DOMDocument querySelectorAll:]): Ditto.

  • DOM/DOMDocumentFragment.mm:

(-[DOMDocumentFragment querySelector:]): Ditto.
(-[DOMDocumentFragment querySelectorAll:]): Ditto.

  • DOM/DOMElement.mm:

(-[DOMElement querySelector:]): Ditto.
(-[DOMElement querySelectorAll:]): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:

(webkit_dom_document_query_selector): Updated exception handling.
(webkit_dom_document_query_selector_all): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp:

(webkit_dom_document_fragment_query_selector): Ditto.
(webkit_dom_document_fragment_query_selector_all): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:

(webkit_dom_element_query_selector): Ditto.
(webkit_dom_element_query_selector_all): Ditto.

8:49 AM Changeset in webkit [208144] by Darin Adler
  • 22 edits in trunk/Source

Convert Document from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=164212

Reviewed by Alex Christensen.

Source/WebCore:

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processBuffer): Removed IGNORE_EXCEPTION.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::takeAllChildrenFrom): Use releaseReturnValue
instead of ASSERT_NO_EXCEPTION.
(WebCore::ContainerNode::parserInsertBefore): Removed ASSERT_NO_EXCEPTION.
(WebCore::ContainerNode::parserAppendChild): Ditto.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocumentType): Updated for new
exception handling.
(WebCore::DOMImplementation::createDocument): Ditto.

  • dom/Document.cpp:

(WebCore::createHTMLElementWithNameValidation): Return ExceptionOr.
(WebCore::Document::createElementForBindings): Ditto.
(WebCore::Document::createCDATASection): Ditto.
(WebCore::Document::createProcessingInstruction): Ditto.
(WebCore::Document::importNode): Ditto.
(WebCore::Document::adoptNode): Ditto.
(WebCore::Document::createElementNS): Ditto.
(WebCore::Document::setXMLVersion): Ditto.
(WebCore::Document::setBodyOrFrameset): Ditto.
(WebCore::Document::processHttpEquiv): Ditto.
(WebCore::Document::createEvent): Ditto.
(WebCore::Document::cookie): Ditto.
(WebCore::Document::setCookie): Ditto.
(WebCore::Document::setDomain): Ditto.
(WebCore::Document::parseQualifiedName): Ditto. Also added an overload
that constructs a QualifiedName directly that most call sites can use.
(WebCore::Document::createAttribute): Return ExceptionOr.
(WebCore::Document::createAttributeNS): Ditto.
(WebCore::Document::createTouch): Removed unneeded ExceptionCode&.

  • dom/Document.h: Updated for above.
  • dom/Document.idl: Use non-legacy exceptions. Removed exception

entirely from createTouch.

  • dom/Element.cpp:

(WebCore::Element::parseAttributeName): Updated to use the new
Document::parseQualifiedName.

  • editing/EditorCommand.cpp:

(WebCore::executeFormatBlock): Ditto.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setNodeName): Updated for the new
exception handling.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCookies): Ditto.

  • page/ios/FrameIOS.mm:

(WebCore::Frame::initWithSimpleHTMLDocument): Use the
HTMLHtmlElement::create and HTMLBodyElement::create instead of using
createElementNS to make the simple document.

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::constructAttributeName): Renamed, made this
a member function, updated to use the new Document::parseQualifiedName,
and also moved the code to get the attribute in here.
(WebCore::SVGSMILElement::constructAttributeName): Added. Helper function
for the two places we update the attribute name from attributeNameAttr.
(WebCore::SVGSMILElement::insertedInto): Use updateAttributeName.
(WebCore::SVGSMILElement::svgAttributeChanged): Ditto.

  • svg/animation/SVGSMILElement.h: Updated for the above.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::processingInstruction): Updated to understand
ExceptionOr rather than an out argument.
(WebCore::XMLDocumentParser::startDocument): Removed ASSERT_NO_EXCEPTION.

Source/WebKit/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument setXmlVersion:]): Updated exception handling.
(-[DOMDocument cookie]): Ditto.
(-[DOMDocument setCookie:]): Ditto.
(-[DOMDocument setBody:]): Ditto.
(-[DOMDocument createElement:]): Ditto.
(-[DOMDocument createCDATASection:]): Ditto.
(-[DOMDocument createProcessingInstruction:data:]): Ditto.
(-[DOMDocument createAttribute:]): Ditto.
(-[DOMDocument createEntityReference:]): Ditto.
(-[DOMDocument importNode:deep:]): Ditto.
(-[DOMDocument createElementNS:qualifiedName:]): Ditto.
(-[DOMDocument createAttributeNS:qualifiedName:]): Ditto.
(-[DOMDocument getElementsByTagNameNS:localName:]): Ditto.
(-[DOMDocument adoptNode:]): Ditto.
(-[DOMDocument createEvent:]): Ditto.

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMDocument::createElement): Updated exception handling.
(DOMDocument::createEvent): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:

(webkit_dom_document_create_element): Updated exception handling.
(webkit_dom_document_create_cdata_section): Ditto.
(webkit_dom_document_create_processing_instruction): Ditto.
(webkit_dom_document_create_attribute): Ditto.
(webkit_dom_document_import_node): Ditto.
(webkit_dom_document_create_element_ns): Ditto.
(webkit_dom_document_create_attribute_ns): Ditto.
(webkit_dom_document_adopt_node): Ditto.
(webkit_dom_document_create_event): Ditto.
(webkit_dom_document_set_xml_version): Ditto.
(webkit_dom_document_get_cookie): Ditto.
(webkit_dom_document_set_cookie): Ditto.
(webkit_dom_document_set_body): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:

(-[WKDOMDocument createElement:]): Ditto.

8:12 AM Changeset in webkit [208143] by Wenson Hsieh
  • 16 edits
    4 adds in trunk

Holding down a key to choose an accented character should fire "insertReplacementText" input events
https://bugs.webkit.org/show_bug.cgi?id=164209
<rdar://problem/29019305>

Reviewed by Darin Adler.

Source/WebCore:

For TypingCommands that correspond to "insertReplacementText" inputTypes, vend dataTransfers for resulting
beforeinput and input events if the edited area is not an input field or textarea. To do this, convert the plain
text representation of the content to be inserted to HTML text using a helper function,
MarkupAccumulator::appendCharactersReplacingEntities, that is used when creating markup for Text nodes.

Tests: fast/events/before-input-prevent-insert-replacement.html

fast/events/input-event-insert-replacement.html

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::inputEventData):
(WebCore::TypingCommand::inputEventDataTransfer):

  • editing/TypingCommand.h:

Source/WebKit2:

When replacing text, call Editor::insertText with the correct TextEventInputType so that WebCore will know to
use EditActionInsertReplacement when creating and applying the corresponding TypingCommand. Additional minor
changes in order to support testing replacement text insertion.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _insertText:replacementRange:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::insertTextAsync):

Tools:

Adds test support for inserting replacement text on Mac. This is equivalent to holding down a vowel key (e.g.
'a') to bring up the menu containing accented version of the character, then selecting an accented character to
insert in place of the typed character. This is exposed via UIScriptController.insertText, which takes a string
and an insertion range.

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::insertText):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:

Note that there is no callback argument to insertText, since UIScriptController::insertText is synchronous in
the UI process. The tests end when corresponding input events fired as a result of insertText have been received
in the web process. Please see the new layout tests for more detail.

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::insertText):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::nsStringFromJSString):
(WTR::UIScriptController::insertText):

LayoutTests:

Adds 2 new layout tests to verify that inserting replacement text fires input events of inputType
"insertReplacementText" instead of the generic "insertText", and that calling preventDefault() on the
beforeinput event prevents text from being inserted. Also checks that inserting replacement text in
contenteditable areas causes the dataTransfer attribute to be populated, and that the data attribute is null.

  • fast/events/before-input-prevent-insert-replacement-expected.txt: Added.
  • fast/events/before-input-prevent-insert-replacement.html: Added.
  • fast/events/input-event-insert-replacement-expected.txt: Added.
  • fast/events/input-event-insert-replacement.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/TestExpectations:
8:01 AM Changeset in webkit [208142] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Miscellaneous bug fixes
https://bugs.webkit.org/show_bug.cgi?id=164211

Reviewed by Darin Adler.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):
Make sure to properly reject invalid transform-origin-z values.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeAttribute):
Make attribute selector parsing strict about requiring a ] to end
the selector.

(WebCore::CSSSelectorParser::consumePseudo):
Force the nth-child "of" syntax to have whitespace after "of" but
before the selector. It is unclear if this should be a requirement
or not (spec is ambiguous), but for now we match the old parser.

(WebCore::CSSSelectorParser::consumeCombinator):
Fix a bug that caused the double child combinator to match even
when there was whitespace between the two > symbols.

6:42 AM Changeset in webkit [208141] by commit-queue@webkit.org
  • 10 edits
    1 delete in trunk/Source/WebCore

RTCOfferAnswerOptions does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=164216

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-31
Reviewed by Darin Adler.

Covered by existing tests.

Making RTCOffer/Answer options dictionaries as per specification.
Removing code that handles RTCOffer/Answer options dictionary since this is done by the binding generator.
Updated users of the options accordingly.

  • CMakeLists.txt:
  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOffer):
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createAnswer):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCOfferAnswerOptions.cpp: Removed.
  • Modules/mediastream/RTCOfferAnswerOptions.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::queuedCreateOffer):
(WebCore::RTCPeerConnection::queuedCreateAnswer):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • WebCore.xcodeproj/project.pbxproj:
1:32 AM Changeset in webkit [208140] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

fast/mediastream/RTCPeerConnection-* tests crashing under ASan
https://bugs.webkit.org/show_bug.cgi?id=164215

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-31
Reviewed by Philippe Normand.

Covered by ASAN bot tests.

  • platform/mediastream/SDPProcessorScriptResource.cpp:

(WebCore::SDPProcessorScriptResource::scriptString):

12:53 AM Changeset in webkit [208139] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[OpenWebRTC] Initialize library one time only
https://bugs.webkit.org/show_bug.cgi?id=164118

Reviewed by Darin Adler.

  • platform/mediastream/openwebrtc/OpenWebRTCUtilities.cpp:

(WebCore::initializeOpenWebRTC): Prevent multiple initialisations of the library.

Oct 30, 2016:

10:22 PM Changeset in webkit [208138] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip media tests because timeout happens on many media tests.

Unreviewed EFL gardening.

Treat the media folder to *Skip* temporarily.

  • platform/efl/TestExpectations:
5:48 PM Changeset in webkit [208137] by Brent Fulgham
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed fix: Correct ChangeLog after my bad merge.

  • ChangeLog
4:27 PM Changeset in webkit [208136] by Michael Catanzaro
  • 11 edits in trunk/Source/ThirdParty/ANGLE

-Wpragmas warning spam from angleutils.h
https://bugs.webkit.org/show_bug.cgi?id=164207

Reviewed by Darin Adler.

Use #pragma clang instead of #pragma GCC since all of the warnings we need to suppress are
Clang-specific warnings. GCC ignores unknown pragmas and does not warn, but it does warn if
any GCC pragma is invalid.

Note that this might still be broken for MSVCC, as MSVCC warns when it sees unknown pragmas.

  • changes.diff:
  • src/common/angleutils.cpp:

(FormatString):

  • src/common/angleutils.h:

(MakeStaticString):

  • src/common/debug.cpp:
  • src/common/mathutil.cpp:
  • src/libANGLE/Caps.cpp:

(gl::TextureCapsMap::get):
(gl::GetExtensionInfoMap):

  • src/libANGLE/Device.cpp:

(egl::GetDeviceSet):

  • src/libANGLE/Display.cpp:

(egl::Display::getClientExtensionString):

  • src/libANGLE/formatutils.cpp:

(gl::GetInternalFormatMap):
(gl::GetAllSizedInternalFormats):

  • src/libANGLE/validationES3.cpp:

(gl::IsValidES3CopyTexImageCombination):

3:36 PM Changeset in webkit [208135] by Darin Adler
  • 33 edits
    1 delete in trunk

Move Element, NamedNodeMap, and DOMStringMap from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=164206

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertyNames): Use modern for loop, and
updates since the names function now returns a vector.
(WebCore::JSDOMStringMap::putDelegate): Use propagateException. Also return
true any time an exception is raised. Since true tells the caller to return
without doing any work, we always want to return that on an exception.

  • dom/DatasetDOMStringMap.cpp:

(WebCore::DatasetDOMStringMap::names): Renamed from getNames and made this
return a Vector instead of populating a passed-in vector.
(WebCore::DatasetDOMStringMap::setItem): Use ExceptionOr.

  • dom/DatasetDOMStringMap.h: Updated for above.
  • dom/Document.cpp:

(WebCore::Document::adoptNode): Updated to use ExceptionOr for
removeAttributeNode. Changed to use remove rather than removeChild for
better clarity.

  • dom/Element.cpp:

(WebCore::Element::setAttribute): Use ExceptionOr.
(WebCore::Element::createShadowRoot): Deleted. Unused.
(WebCore::Element::attachShadow): Use ExceptionOr.
(WebCore::Element::shadowRootForBindings): Tweaked a bit.
(WebCore::Element::userAgentShadowRoot): Removed unneeded if statemment.
(WebCore::Element::ensureUserAgentShadowRoot): Tweaked a bit.
(WebCore::Element::setAttributeNode): Use ExceptionOr.
(WebCore::Element::setAttributeNodeNS): Ditto.
(WebCore::Element::removeAttributeNode): Ditto.
(WebCore::Element::parseAttributeName): Ditto. Also changed return result
to be a QualifiedName instead of using an out argument.
(WebCore::Element::setAttributeNS): Ditto.
(WebCore::Element::mergeWithNextTextNode): Ditto.
(WebCore::Element::setOuterHTML): Ditto.
(WebCore::Element::setInnerHTML): Ditto.
(WebCore::Element::matches): Ditto.
(WebCore::Element::closest): Ditto.
(WebCore::Element::insertAdjacent): Ditto.
(WebCore::Element::insertAdjacentElement): Ditto.
(WebCore::contextNodeForInsertion): Ditto.
(WebCore::contextElementForInsertion): Added. Helper for the
insertAdjacentHTML function to eliminate a local variable.
(WebCore::Element::insertAdjacentHTML): Use ExceptionOr.
(WebCore::Element::insertAdjacentText): Ditto.

  • dom/Element.h: Updated for above.
  • dom/Element.idl: Use non-legacy exceptions.
  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::removeNamedItem): Use ExceptionOr.
(WebCore::NamedNodeMap::supportedPropertyNames): Updated to check
which strings should be removed without copying the strings.
(WebCore::NamedNodeMap::removeNamedItemNS): Use ExceptionOr.
(WebCore::NamedNodeMap::setNamedItem): Ditto. Removed overload for
legacy bindings; move that to the bindings themselves.

  • dom/NamedNodeMap.h: Updated for above.
  • dom/NamedNodeMap.idl: Use non-legacy exceptions.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setOuterText): Updated since mergeWithNextTextNode
now uses ExceptionOr.

  • inspector/DOMEditor.cpp: Updated to use ExceptionOr.
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::toErrorString): Added an overload for
Exception.
(WebCore::InspectorDOMAgent::setAttributesAsText): Updated to use ExceptionOr.

  • inspector/InspectorDOMAgent.h: Updated for above.
  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Updated to
use the correct version of setAttribute; there was never a risk that there
would be an exception, but now that's clearer.

  • testing/Internals.cpp:

(WebCore::Internals::ensureShadowRoot): Deleted. Was unused.
(WebCore::Internals::createShadowRoot): Ditto.

  • testing/Internals.idl: Updated for above.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::handleNamespaceAttributes): Use updated parseAttributeName,
which uses ExceptionOr and a return value instead of an out argument.
(WebCore::handleElementAttributes): Ditto.

Source/WebKit/mac:

  • DOM/DOMElement.mm:

(-[DOMElement setInnerHTML:]): Updated exception handling.
(-[DOMElement setOuterHTML:]): Ditto.
(-[DOMElement setAttribute:value:]): Ditto.
(-[DOMElement setAttributeNode:]): Ditto.
(-[DOMElement removeAttributeNode:]): Ditto.
(-[DOMElement setAttributeNS:qualifiedName:value:]): Ditto.
(-[DOMElement setAttributeNodeNS:]): Ditto.
(-[DOMElement matches:]): Ditto.
(-[DOMElement closest:]): Ditto.
(-[DOMElement webkitMatchesSelector:]): Ditto.

  • DOM/DOMHTMLElement.mm:

(-[DOMHTMLElement insertAdjacentElement:element:]): Ditto.
(-[DOMHTMLElement insertAdjacentHTML:html:]): Ditto.
(-[DOMHTMLElement insertAdjacentText:text:]): Ditto.

  • DOM/DOMNamedNodeMap.mm:

(-[DOMNamedNodeMap setNamedItem:]): Ditto.
(-[DOMNamedNodeMap removeNamedItem:]): Ditto.
(-[DOMNamedNodeMap setNamedItemNS:]): Ditto.
(-[DOMNamedNodeMap removeNamedItemNS:localName:]): Ditto.

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMElement::setAttribute): Updated exception handling.

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::setInnerHTML): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp:

(webkit_dom_named_node_map_set_named_item): Updated exception handling.
(webkit_dom_named_node_map_remove_named_item): Ditto.
(webkit_dom_named_node_map_set_named_item_ns): Ditto.
(webkit_dom_named_node_map_remove_named_item_ns): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:

(webkit_dom_element_set_attribute): Ditto.
(webkit_dom_element_set_attribute_node): Ditto.
(webkit_dom_element_remove_attribute_node): Ditto.
(webkit_dom_element_set_attribute_ns): Ditto.
(webkit_dom_element_set_attribute_node_ns): Ditto.
(webkit_dom_element_matches): Ditto.
(webkit_dom_element_closest): Ditto.
(webkit_dom_element_webkit_matches_selector): Ditto.
(webkit_dom_element_insert_adjacent_element): Ditto.
(webkit_dom_element_insert_adjacent_html): Ditto.
(webkit_dom_element_insert_adjacent_text): Ditto.
(webkit_dom_element_set_inner_html): Ditto.
(webkit_dom_element_set_outer_html): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:

(-[WKDOMElement setAttribute:value:]): Ditto.

LayoutTests:

  • fast/dom/resources/shadow-test-driver.js: Deleted. Unused.
3:35 PM Changeset in webkit [208134] by weinig@apple.com
  • 11 edits in trunk

[WebIDL] Restructure IDLParser structs to better match modern WebIDL concepts
https://bugs.webkit.org/show_bug.cgi?id=164208

Reviewed by Darin Adler.

Source/WebCore:

Restructure IDLParsers structs to match modern WebIDL conventions:

  • Rename structs to have more WebCore like naming, consistently using the prefix IDL.
  • Remove domSignature. Sinking it's properties into the structs that contained it.
  • Add IDLArgument, replacing the use of domSignatures for arguments. IDLArgument is the subset of domSignatures needed for arguments.
  • Rename domFunction to IDLOperation (matching WebILD nomenclature), replace signature with its own name, type (for returnType), specials, and extended attributes properties.
  • Give IDLAttribute it's own name, type and extended attributes properties.
  • Add IDLDictionaryMember, replacing the use of domSignature as the type of members in IDLDictionary. Give it name, type, isRequired, default and extendedAttributes properties.
  • Renamed Typedef to be IDLTypedef. Remove the extended attributes property as those are not allowed in typedefs per-PebIDL.

Also fix some parsing issues:

  • Stop parsing 'in' directives in function arguments.
  • Stop parsing extended attributes in typedefs.
  • Support applying typedefs to types deep in aggregate types (e.g. (sequence<(LONG or STRING)> or DOMString)?).
  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/IDLParser.pm:
  • bindings/scripts/generate-bindings.pl:

Update for new struct types.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/TestTypedefs.idl:

Remove test which tested extended attributes in typedefs,
and add a test which tests typedefs used in deep type structures.

  • page/make_settings.pl:

Don't generate the 'in' prefix for arguments in IDL files.

Tools:

  • DumpRenderTree/Bindings/CodeGeneratorDumpRenderTree.pm:
  • WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:

Update for new struct types.

3:33 PM Changeset in webkit [208133] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Fix nth-child serialization
https://bugs.webkit.org/show_bug.cgi?id=164210

Reviewed by Darin Adler.

Our nth-child serialization preserves what the author originally
typed. Even though this is not spec-compliant (the latest CSS Syntax
spec has a dumbed down serialization process that doesn't preserve what
the author originally typed), I think it's better behavior to preserve
this text.

  • css/parser/CSSParserToken.cpp:

(WebCore::CSSParserToken::serialize):
Fix a bug in the serialization of number tokens that started with
a plus sign. Make sure the plus sign is preserved.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):
Grab the range of tokens from after the ( and up to the ) or the "of"
and then serialize them. Strip whitepsace from the ends and set that
as the selector argument.

1:48 PM Changeset in webkit [208132] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit/win

Unreviewed build fix (Direct2D)

  • WebView.cpp:

(WebView::paintWithDirect2D): Update for revised GraphicsContext
begin/end draw behavior.

1:47 PM Changeset in webkit [208131] by Brent Fulgham
  • 9 edits
    1 delete in trunk/Source/WebCore

[Win][Direct2D] Correct bookkeeping for begin/end draw pairs
https://bugs.webkit.org/show_bug.cgi?id=163898

Reviewed by Darin Adler.

Simon pointed out that GraphicsContext objects are generally only created at
the time we intend to do drawing, so calling 'BeginDraw' as part of object
construction, and 'EndDraw' at time of destruction should be sufficient.

As usual, he was correct.

This patch gets rid of unneeded code and greatly simplifies the Direct2D
drawing path.

Tested by existing layout tests.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::fill):Remove unneeded use
of 'RenderTargetScopedDrawing.h'.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::releaseWindowsContext): Remove unneeded use
of RenderTargetScopedDrawing class.
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Enter
the 'BeginDraw' state at object creation.
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate): End
draw state at object destruction.
(WebCore::GraphicsContextPlatformPrivate::clip): Remove unneeded call to 'beginDraw'.
(WebCore::GraphicsContextPlatformPrivate::beginDraw): Renamed from 'beginDrawIfNeeded'.
(WebCore::GraphicsContextPlatformPrivate::endDraw): Get rid of draw state flags.
(WebCore::GraphicsContext::beginDraw): Renamed from 'beginDrawIfNeeded'.
(WebCore::GraphicsContext::flush): Added.
(WebCore::GraphicsContext::drawWithoutShadow): Remove unneeded use of
RenderTargetScopedDrawing class.
(WebCore::GraphicsContext::drawWithShadow): Ditto.
(WebCore::GraphicsContext::platformFillRoundedRect): Ditto.
(WebCore::GraphicsContext::fillRectWithRoundedHole): Ditto.
(WebCore::GraphicsContext::didBeginDraw): Deleted.
(WebCore::GraphicsContextPlatformPrivate::beginDrawIfNeeded): Deleted.
(WebCore::GraphicsContext::beginDrawIfNeeded): Deleted.

  • platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:

(WebCore::GraphicsContextPlatformPrivate::didBeginDraw): Deleted.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData): Remove unneeded use of RenderTargetScopedDrawing class.
(WebCore::ImageBufferData::putData):

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::flushContext): Call new GraphicsContext 'flush' command.
(WebCore::ImageBuffer::draw): Remove unneeded use of RenderTargetScopedDrawing class.

  • platform/graphics/win/NativeImageDirect2D.cpp: Ditto.
  • platform/graphics/win/RenderTargetScopedDrawing.h: Removed.
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage): Remove unneeded use of RenderTargetScopedDrawing class.

11:48 AM Changeset in webkit [208130] by hyatt@apple.com
  • 10 edits in trunk/Source/WebCore

[CSS Parser] Clean up the two types of descendant relations in CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=164203

Reviewed by Zalan Bujtas.

This patch gets rid of the separate boolean for double child and allows it
to be a unique relation type. Rename Descendant to DescendantSpace and
name the new relation DescendantDoubleChild.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:

(WebCore::CSSSelector::hasDescendantRelation):
(WebCore::CSSSelector::hasDescendantOrChildRelation):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setDescendantUseDoubleChildSyntax): Deleted.

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::determineLinkMatchType):

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::collectIdentifierHashes):

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::appendTagHistory):

  • css/parser/CSSParserValues.h:

(WebCore::CSSParserSelector::setDescendantUseDoubleChildSyntax): Deleted.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isDescendantCombinator):
(WebCore::CSSSelectorParser::consumeComplexSelector):
(WebCore::CSSSelectorParser::consumeCombinator):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):

9:35 AM Changeset in webkit [208129] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Unreviewed gardening

Fix build error on WinCairo.

Patch by Frederic Wang <fwang@igalia.com> on 2016-10-30

  • platform/graphics/opentype/OpenTypeMathData.cpp:
9:18 AM Changeset in webkit [208128] by commit-queue@webkit.org
  • 10 edits in trunk

Use HarfBuzz ot-math API to parse the OpenType MATH table
https://bugs.webkit.org/show_bug.cgi?id=162671

Patch by Frederic Wang <fwang@igalia.com> on 2016-10-30
Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsGTK.cmake: Enable internal OpenType MATH parsing for HarfBuzz < 1.3.3.

Source/WebCore:

No new tests, already covered by existing tests.

  • platform/graphics/opentype/OpenTypeMathData.cpp: Add alternative implementation relying on

HarfBuzz's new OpenType MATH API.

  • platform/graphics/opentype/OpenTypeMathData.h: Ditto.

(WebCore::OpenTypeMathData::hasMathData):
(WebCore::OpenTypeMathData::HbFontDeleter::operator()):

Source/WTF:

  • wtf/Platform.h: By default, do not enable internal OpenType MATH parsing on GTK.

LayoutTests:

Rebaseline one test for large operators due to small rendering changes.

  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
8:56 AM Changeset in webkit [208127] by hw1008.kim@samsung.com
  • 2 edits in trunk

[GTK] Build break by missing geoclue-2.0.
https://bugs.webkit.org/show_bug.cgi?id=164170

Reviewed by Michael Catanzaro.

Revise the module name for pkg_check_modules() in FindGeoClue2.cmake.

  • Source/cmake/FindGeoClue2.cmake: replace geoclue-2.0 with libgeoclue-2.0.
8:15 AM Changeset in webkit [208126] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Remove duplicated media/media-source tests in TestExpectations

Unreviewed EFL gardening.

Tests of media/media-source have caused timeout on EFL layout test. However
it hasn't been marked to *Skip* because some tests are multiple marked.
So this patch cleans up it, and skip media/media-source for a while.

  • platform/efl/TestExpectations:
6:42 AM Changeset in webkit [208125] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Support unprefixed image-sets
https://bugs.webkit.org/show_bug.cgi?id=164198

Reviewed by Dean Jackson.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeImage):

3:03 AM Changeset in webkit [208124] by Yusuke Suzuki
  • 58 edits
    1 add in trunk/Source

[DOM] Introduce WebCore::jsDynamicDowncast
https://bugs.webkit.org/show_bug.cgi?id=164137

Reviewed by Darin Adler.

Source/WebCore:

In WebCore, we have several extended JSTypes, like JSElementType.
For these types, WebCore offers the faster casting function compared
to JSC::jsDynamicCast. For example, for JSElementType, we have
jsElementCast.

The problem is that we may fall into the slow code if we choose
JSC::jsDynamicCast by accident. Selecting the appropriate function
requires special care in the IDL code generator when we would like
to use faster casting functions.

This patch implements a new casting function, WebCore::jsDynamicDowncast.
It is a thin wrapper to the JSC::jsDynamicCast. But it selects the
faster casting functions correctly by template specialization.

We do not choose the way specializing JSC::jsDynamicCast directly.
If we forget to include the header that specializes JSC::jsDyanmicCast,
it does not cause any compile errors, but it causes performance regression.
This bug is hard to figure out. To avoid this problem, we add a new function.

Outside JSC, only Tools' DumpRenderTree uses JSC::jsDynamicCast.
This code has FIXME that we should use JSC APIs instead of directly calling
JSC thingy. So this should be solved in the layer of JSC APIs and changing
this jsDynamicCast to WebCore's jsDynamicDowncast and exposing WebCore's thingy
are not good change. So we leave the code as is.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSApplePaySessionCustom.cpp:

(WebCore::JSApplePaySession::completeShippingMethodSelection):
(WebCore::JSApplePaySession::completeShippingContactSelection):
(WebCore::JSApplePaySession::completePaymentMethodSelection):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • bindings/js/JSDOMBinding.h:

(WebCore::castThisValue):
(WebCore::toArrayBufferView):

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorTraits>::next):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::toWrapped):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDocumentCustom.h:

(WebCore::jsDocumentCast):

  • bindings/js/JSDynamicDowncast.h: Added.

(WebCore::JSDynamicCastTrait::cast):
(WebCore::JSDynamicCastTrait<JSNode>::cast):
(WebCore::JSDynamicCastTrait<JSElement>::cast):
(WebCore::JSDynamicCastTrait<JSDocument>::cast):
(WebCore::JSDynamicCastTrait<JSEvent>::cast):
(WebCore::jsDynamicDowncast):

  • bindings/js/JSElementCustom.h:

(WebCore::jsElementCast):

  • bindings/js/JSEventCustom.h:

(WebCore::jsEventCast):

  • bindings/js/JSEventListener.cpp:

(WebCore::setDocumentEventHandlerAttribute):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::jsEventTargetCast):

  • bindings/js/JSMediaStreamTrackCustom.cpp:

(WebCore::JSMediaStreamTrack::getSettings):
(WebCore::JSMediaStreamTrack::getCapabilities):

  • bindings/js/JSNodeCustom.h:

(WebCore::jsNodeCast):

  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginElementPropertyGetter):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamDefaultReader):

  • bindings/js/JSReadableStreamSourceCustom.cpp:

(WebCore::startReadableStream):
(WebCore::JSReadableStreamSource::start):
(WebCore::pullReadableStream):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::toJSDedicatedWorkerGlobalScope):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

  • bindings/js/StructuredClone.cpp:

(WebCore::structuredCloneArrayBufferView):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetCastingHelperForThisObject):
(GenerateImplementation):

  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::jsInterfaceNameConstructor):
(WebCore::setJSInterfaceNameConstructor):
(WebCore::JSInterfaceName::toWrapped):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::BindingCaller<JSTestActiveDOMObject>::castForAttribute):
(WebCore::BindingCaller<JSTestActiveDOMObject>::castForOperation):
(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::setJSTestActiveDOMObjectConstructor):
(WebCore::JSTestActiveDOMObject::toWrapped):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::BindingCaller<JSTestCEReactions>::castForAttribute):
(WebCore::BindingCaller<JSTestCEReactions>::castForOperation):
(WebCore::jsTestCEReactionsConstructor):
(WebCore::setJSTestCEReactionsConstructor):
(WebCore::JSTestCEReactions::toWrapped):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::BindingCaller<JSTestCEReactionsStringifier>::castForAttribute):
(WebCore::BindingCaller<JSTestCEReactionsStringifier>::castForOperation):
(WebCore::jsTestCEReactionsStringifierConstructor):
(WebCore::setJSTestCEReactionsStringifierConstructor):
(WebCore::JSTestCEReactionsStringifier::toWrapped):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
(WebCore::setJSTestClassWithJSBuiltinConstructorConstructor):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::setJSTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::BindingCaller<JSTestCustomNamedGetter>::castForOperation):
(WebCore::jsTestCustomNamedGetterConstructor):
(WebCore::setJSTestCustomNamedGetterConstructor):
(WebCore::JSTestCustomNamedGetter::toWrapped):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::BindingCaller<JSTestDOMJIT>::castForAttribute):
(WebCore::jsTestDOMJITConstructor):
(WebCore::setJSTestDOMJITConstructor):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::BindingCaller<JSTestEventConstructor>::castForAttribute):
(WebCore::jsTestEventConstructorConstructor):
(WebCore::setJSTestEventConstructorConstructor):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::BindingCaller<JSTestEventTarget>::castForOperation):
(WebCore::jsTestEventTargetConstructor):
(WebCore::setJSTestEventTargetConstructor):
(WebCore::JSTestEventTarget::toWrapped):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::BindingCaller<JSTestException>::castForAttribute):
(WebCore::jsTestExceptionConstructor):
(WebCore::setJSTestExceptionConstructor):
(WebCore::JSTestException::toWrapped):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::jsTestGenerateIsReachableConstructor):
(WebCore::setJSTestGenerateIsReachableConstructor):
(WebCore::JSTestGenerateIsReachable::toWrapped):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::BindingCaller<JSTestGlobalObject>::castForAttribute):
(WebCore::BindingCaller<JSTestGlobalObject>::castForOperation):
(WebCore::jsTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectConstructor):
(WebCore::JSTestGlobalObject::toWrapped):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::BindingCaller<JSTestInterface>::castForAttribute):
(WebCore::BindingCaller<JSTestInterface>::castForOperation):
(WebCore::jsTestInterfaceConstructor):
(WebCore::setJSTestInterfaceConstructor):
(WebCore::JSTestInterface::toWrapped):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::BindingCaller<JSTestInterfaceLeadingUnderscore>::castForAttribute):
(WebCore::jsTestInterfaceLeadingUnderscoreConstructor):
(WebCore::setJSTestInterfaceLeadingUnderscoreConstructor):
(WebCore::JSTestInterfaceLeadingUnderscore::toWrapped):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::BindingCaller<JSTestIterable>::castForOperation):
(WebCore::jsTestIterableConstructor):
(WebCore::setJSTestIterableConstructor):
(WebCore::JSTestIterable::toWrapped):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::BindingCaller<JSTestJSBuiltinConstructor>::castForAttribute):
(WebCore::BindingCaller<JSTestJSBuiltinConstructor>::castForOperation):
(WebCore::jsTestJSBuiltinConstructorConstructor):
(WebCore::setJSTestJSBuiltinConstructorConstructor):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::BindingCaller<JSTestMediaQueryListListener>::castForOperation):
(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::setJSTestMediaQueryListListenerConstructor):
(WebCore::JSTestMediaQueryListListener::toWrapped):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::jsTestNamedConstructorConstructor):
(WebCore::setJSTestNamedConstructorConstructor):
(WebCore::JSTestNamedConstructor::toWrapped):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::BindingCaller<JSTestNode>::castForAttribute):
(WebCore::BindingCaller<JSTestNode>::castForOperation):
(WebCore::jsTestNodeConstructor):
(WebCore::setJSTestNodeConstructor):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::BindingCaller<JSTestNondeterministic>::castForAttribute):
(WebCore::BindingCaller<JSTestNondeterministic>::castForOperation):
(WebCore::jsTestNondeterministicConstructor):
(WebCore::setJSTestNondeterministicConstructor):
(WebCore::JSTestNondeterministic::toWrapped):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::BindingCaller<JSTestObj>::castForAttribute):
(WebCore::BindingCaller<JSTestObj>::castForOperation):
(WebCore::jsTestObjConstructor):
(WebCore::setJSTestObjConstructor):
(WebCore::JSTestObj::toWrapped):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::jsTestOverloadedConstructorsConstructor):
(WebCore::setJSTestOverloadedConstructorsConstructor):
(WebCore::JSTestOverloadedConstructors::toWrapped):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::jsTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::setJSTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::JSTestOverloadedConstructorsWithSequence::toWrapped):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::BindingCaller<JSTestOverrideBuiltins>::castForOperation):
(WebCore::jsTestOverrideBuiltinsConstructor):
(WebCore::setJSTestOverrideBuiltinsConstructor):
(WebCore::JSTestOverrideBuiltins::toWrapped):

  • bindings/scripts/test/JS/JSTestSerialization.cpp:

(WebCore::BindingCaller<JSTestSerialization>::castForAttribute):
(WebCore::BindingCaller<JSTestSerialization>::castForOperation):
(WebCore::jsTestSerializationConstructor):
(WebCore::setJSTestSerializationConstructor):
(WebCore::JSTestSerialization::toWrapped):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::BindingCaller<JSTestSerializedScriptValueInterface>::castForAttribute):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
(WebCore::setJSTestSerializedScriptValueInterfaceConstructor):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::BindingCaller<JSTestTypedefs>::castForAttribute):
(WebCore::BindingCaller<JSTestTypedefs>::castForOperation):
(WebCore::jsTestTypedefsConstructor):
(WebCore::setJSTestTypedefsConstructor):
(WebCore::JSTestTypedefs::toWrapped):

  • bridge/objc/WebScriptObject.mm:

(-[WebScriptObject setValue:forKey:]):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::lengthGetter):

  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::lengthGetter):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

Source/WebKit2:

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::elementForNodeHandle):

2:14 AM Changeset in webkit [208123] by Yusuke Suzuki
  • 3 edits
    1 add in trunk

[JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true
https://bugs.webkit.org/show_bug.cgi?id=164123

Reviewed by Mark Lam.

JSTests:

  • stress/json-stringify-with-non-jsarray-array.js: Added.

(shouldBe):
(shouldBe.JSON.stringify.new.Proxy):

Source/JavaScriptCore:

When JSON.stringify encounter the undefined value, the result depends
on the context. If it is produced under the object property context, we ignore
that property. On the other hand, if it is produced under the array element
context, we produce "null".

For example,

https://tc39.github.io/ecma262/#sec-serializejsonobject section 8.b.
Skip the property that value is undefined.
JSON.stringify({ value: undefined }); => "{}"

https://tc39.github.io/ecma262/#sec-serializejsonarray section 8.b.
Write "null" when the element is undefined.
JSON.stringify([undefined]); => "[null]"

At that time, we decide the context based on the holder->inherits(JSArray::info()).
But it is not correct since we have a holder that creates the array element context
but it is not JSArray subtype. ES6 Proxy to an array is one example. In that case,
isArray(exec, proxy) returns true, but inherits(JSArray::info()) returns false.
Since we already have this isArray() value in Stringifier::Holder, we should reuse
this here. And this is the correct behavior in the ES6 spec.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::isArray):
(JSC::Stringifier::stringify):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::Holder):
(JSC::Stringifier::Holder::appendNextProperty):

2:14 AM Changeset in webkit [208122] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Mark some tests to Timeout.

  • platform/efl/TestExpectations: Urgent fix to run layout test.

Oct 29, 2016:

11:44 PM Changeset in webkit [208121] by Darin Adler
  • 2 edits in trunk/Tools

Fix failing ExtendedColor tests.

  • TestWebKitAPI/Tests/WebCore/ExtendedColor.cpp:

Changed the tests in two ways: First, use EXPECT_EQ instead of EXPECT_TRUE
for the string equality comparisons. This required including WTFStringUtilities.h.
Second, change expected results to match what the code is currently generating,
so alpha channels are "0.25" rather than "0.25 / 1". I'll let Dean fix both these
tests and the code if these results are incorrect.

8:53 PM Changeset in webkit [208120] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Add font-variant-* keyword property support
https://bugs.webkit.org/show_bug.cgi?id=164195

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

8:48 PM Changeset in webkit [208119] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Fix text-emphasis-position parsing
https://bugs.webkit.org/show_bug.cgi?id=164197

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTextEmphasisPosition):
(WebCore::CSSPropertyParser::parseSingleValue):

7:56 PM Changeset in webkit [208118] by Darin Adler
  • 62 edits in trunk/Source

Convert more of DOM from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=164173

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia): Use ExceptionOr.
(WebCore::MediaDevices::enumerateDevices): Ditto.

  • Modules/mediastream/MediaDevices.h: Updated for above.
  • Modules/mediastream/MediaDevices.idl: Use non-legacy exceptions.
  • Modules/mediastream/MediaEndpointSessionDescription.cpp:

Added now-needed include of ExceptionCode.h.

  • Modules/mediastream/RTCConfiguration.cpp:

(WebCore::parseIceServer): Use ExceptionOr.
(WebCore::RTCConfiguration::create): Ditto.
(WebCore::RTCConfiguration::initialize): Ditto.

  • Modules/mediastream/RTCConfiguration.h: Updated for above.
  • Modules/mediastream/RTCConfiguration.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create): Use ExceptionOr.
(WebCore::RTCDTMFSender::insertDTMF): Ditto.

  • Modules/mediastream/RTCDTMFSender.h: Updated for above.
  • Modules/mediastream/RTCDTMFSender.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create): Use ExceptionOr.
(WebCore::RTCDataChannel::setBinaryType): Ditto.
(WebCore::RTCDataChannel::send): Ditto.
(WebCore::RTCDataChannel::didReceiveRawData): Ditto.

  • Modules/mediastream/RTCDataChannel.h: Updated for above.

Also fhcanged resturn values to use const AtomicString& and
unsigned instead of unsigned long. Also made more private.
Also changed BinaryType into an enum class.

  • Modules/mediastream/RTCDataChannel.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCIceCandidate.cpp:

(WebCore::RTCIceCandidate::create): Use ExceptionOr.

  • Modules/mediastream/RTCIceCandidate.h: Updated for above.
  • Modules/mediastream/RTCIceCandidate.idl: Use non-legacy exception.
  • Modules/mediastream/RTCOfferAnswerOptions.cpp:

(WebCore::RTCOfferOptions::create): Use ExceptionOr.
(WebCore::RTCAnswerOptions::create): Ditto.

  • Modules/mediastream/RTCOfferAnswerOptions.h: Updated for above.

Also removed all virtual functions since nothing here is polymorphic
and initalized data members in the header.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::initializeWith): Use ExceptionOr.
(WebCore::RTCPeerConnection::addTrack): Ditto.
(WebCore::RTCPeerConnection::removeTrack): Ditto.
(WebCore::RTCPeerConnection::addTransceiver): Ditto.
(WebCore::RTCPeerConnection::completeAddTransceiver): Ditto.
(WebCore::RTCPeerConnection::queuedCreateOffer): Ditto.
(WebCore::RTCPeerConnection::queuedCreateAnswer): Ditto.
(WebCore::RTCPeerConnection::setConfiguration): Ditto.
(WebCore::RTCPeerConnection::createDataChannel): Ditto.

  • Modules/mediastream/RTCPeerConnection.h: Updated for above.
  • Modules/mediastream/RTCPeerConnection.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack): Use ExceptionOr.

  • Modules/mediastream/RTCRtpSender.h: Updated for above.
  • Modules/mediastream/RTCRtpSender.idl: Use non-legacy exception.
  • Modules/mediastream/RTCSessionDescription.cpp:

(WebCore::RTCSessionDescription::create): Use ExceptoinOr.

  • Modules/mediastream/RTCSessionDescription.h: Updated for above.

(WebCore::RTCSessionDescription::~RTCSessionDescription):

  • Modules/mediastream/RTCSessionDescription.idl: Use non-legacy exceptions.
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::verifyCustomHandlerURL): Just return a boolean, no exception.
(WebCore::verifyProtocolHandlerScheme): Ditto.
(WebCore::NavigatorContentUtils::registerProtocolHandler): Use ExceptionOr.
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered): Ditto.
(WebCore::NavigatorContentUtils::unregisterProtocolHandler): Ditto.

  • Modules/navigatorcontentutils/NavigatorContentUtils.h: Updated for above.
  • Modules/navigatorcontentutils/NavigatorContentUtils.idl: Use non-legacy exceptions.
  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevicesGetUserMediaPromiseFunction): Use propagateException.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsExplicitPropagateExceptionCall): Added. Helper function to decide whether
we need to call propagateException explicitly, if return value processing is not
going to propagate the exception for us.
(GenerateParametersCheck): Moved the code from GenerateReturnParameters inline
because it's almost as short as the function call. Use the newly created
NeedsExplicitPropagateExceptionCall function, which properly handles the case
where the return value is a promise.
(GenerateReturnParameters): Deleted.

  • dom/CharacterData.cpp:

(WebCore::CharacterData::substringData): Use ExceptionOr.
(WebCore::CharacterData::insertData): Ditto.
(WebCore::CharacterData::deleteData): Ditto.
(WebCore::CharacterData::replaceData): Ditto.

  • dom/CharacterData.h: Updated for above.
  • dom/CharacterData.idl: Use non-legacy exceptions.
  • dom/DataTransferItemList.h: Tried to use ExceptionOr, but this seems

like dead code that doesn't compile.

  • dom/DataTransferItemList.idl: Use non-legacy exceptions.
  • dom/MessagePort.idl: Use non-legacy exceptions, except this has

already been converted and was a custom binding.

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::observe): Use ExceptionOr.

  • dom/MutationObserver.h: Updated for above.
  • dom/MutationObserver.idl: Use non-legacy exception.
  • dom/Range.cpp:

(WebCore::deleteCharacterData): Updated use of calls that now use
ExceptionOr.
(WebCore::Range::processContentsBetweenOffsets): Ditto.
(WebCore::Range::insertNode): Ditto.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::setInnerHTML): Use ExceptionOr.

  • dom/ShadowRoot.h: Updated for above.
  • dom/ShadowRoot.idl: Use non-legacy exception.
  • dom/Text.cpp:

(WebCore::Text::splitText): Use ExceptionOr.
(WebCore::Text::replaceWholeText): Removed unused ExceptionCode&.

  • dom/Text.h: Updated for above.
  • dom/Text.idl: Use non-legacy exception.
  • editing/ApplyBlockElementCommand.cpp:

(WebCore::isNewLineAtPosition): Rewrote to use data rather than
substringData; more efficient.

  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::doApply): Updated to work with
functions that return ExceptionOr.
(WebCore::DeleteFromTextNodeCommand::doUnapply): Removed IGNORE_EXCEPTION.

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
Use WTFMove to avoid a little bit of reference count churn.
(WebCore::InsertIntoTextNodeCommand::doApply): Removed IGNORE_EXCEPTION.
(WebCore::InsertIntoTextNodeCommand::doReapply): Removed ExceptionCode.
(WebCore::InsertIntoTextNodeCommand::doUnapply): Removed IGNORE_EXCEPTION.

  • editing/SplitTextNodeCommand.cpp:

(WebCore::SplitTextNodeCommand::doApply): Updated to work with functions
that return ExceptionCode.
(WebCore::SplitTextNodeCommand::doUnapply): Removed ASSERT_NO_EXCEPTION.
(WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Updated to work
with functions that return ExceptionCode.

  • html/HTMLTextFormControlElement.cpp:

Added now-needed include of ExceptionCode.h.

  • inspector/DOMEditor.cpp: Removed ExceptionCode out argument from calls

to replaceWholeText, which never throws an exception.

Source/WebKit/mac:

  • DOM/DOMCharacterData.mm:

(-[DOMCharacterData substringData:length:]): Updated since this
now uses ExceptionOr.
(-[DOMCharacterData insertData:data:]): Ditto.
(-[DOMCharacterData deleteData:length:]): Ditto.
(-[DOMCharacterData replaceData:length:data:]): Ditto.

  • DOM/DOMText.mm:

(-[DOMText splitText:]): Ditto.
(-[DOMText replaceWholeText:]): Removed unneeded exception code
handling from function that does not throw an exception.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp:

(webkit_dom_character_data_substring_data): Updated since this
now uses ExceptionOr.
(webkit_dom_character_data_insert_data): Ditto.
(webkit_dom_character_data_delete_data): Ditto.
(webkit_dom_character_data_replace_data): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp:

(webkit_dom_text_replace_whole_text): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp:

(webkit_dom_text_split_text): Ditto.

6:38 PM Changeset in webkit [208117] by sbarati@apple.com
  • 29 edits
    4 adds in trunk

We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=163305

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/pure-get-by-id-cse-2.js: Added.

(foo):

  • microbenchmarks/pure-get-by-id-cse.js: Added.

(foo):

  • stress/pure-get-by-id-cse-correctness.js: Added.

(assert):
(foo):

  • stress/pure-get-by-id-on-non-object.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

This creates a new GetById node in the DFG called PureGetById. We emit a
PureGetById when we profile that a get_by_id in the baseline never does
side effects. PureGetById speculates on the fact that it won't do side
effects. If it realizes that it must perform side effects, it will perform
the side effect, but also invalidate the CodeBlock that compiled it,
which will cause us to exit once we return back to the compiled code.
This allows us to have stricter clobberize rules for PureGetById which
model how getOwnPropertySlot(VMInquiry) behaves. This means that PureGetByIds
can be CSEd with each other, and that other things are more likely to
be CSEd around a PureGetById. To profile if a get_by_id does side
effects, I've added an extra bit into StructureStubInfo that we write
to when performing a get_by_id slow path call. If we notice that we
never do effects, inside the ByteCodeParser, we will emit a PureGetById
instead of a GetById.

To justify the performance benefit of this patch, I ran the suite of
benchmarks with useAccessInlining=false. This meant that we don't compile
any (Multi)GetByOffset/(Multi)PutByOffset. This was just to try to see if
this patch is worth anything at all in a world where we emit many
PureGetByIds. Running the benchmarks under this mode showed a 3.5% octane
improvement and a 15% kraken improvement. However, when running benchmarks
with useAccessInlining=true (the default JSC state), this patch is neutral.
I think the main reason for this is that the DFG is good at knowing when to
emit (Multi)GetByOffset, and most benchmarks that would benefit from
PureGetById are already emitting (Multi)GetByOffset. However, PureGetById can be
profitable when we encounter code that is too polymorphic for (Multi)GetByOffset.
It's reasonable to expect that JS code in the wild will fall into this use
case even though it might not be represented in some of the major JS benchmarks.
I wrote some microbenchmarks to demonstrate the benefits of PureGetById CSE,
and they were 30% (eliminating a few PureGetById from an add expression)
to 10x faster (eliminating a PureGetById in a loop).

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::canBecomeGetArrayLength):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileTryGetById):
(JSC::DFG::SpeculativeJIT::compilePureGetById):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JITOperations.cpp:

(JSC::pureGetByIdCommon):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_try_get_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_try_get_by_id):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):
(JSC::tryCacheGetByID):

  • jit/Repatch.h:
  • profiler/ProfilerJettisonReason.cpp:

(WTF::printInternal):

  • profiler/ProfilerJettisonReason.h:
3:34 PM Changeset in webkit [208116] by dino@apple.com
  • 11 edits
    5 adds in trunk

Parse color() function
https://bugs.webkit.org/show_bug.cgi?id=164146
<rdar://problems/29007218>

Reviewed by Darin Adler.

Source/WebCore:

Support the new CSS color() function:
https://drafts.csswg.org/css-color/#color-function

There are separate code paths for the old and new CSS parser.

Tests: css3/color/color-function-computed-style.html

css3/color/color-function-parsing.html

  • css/CSSComputedStyleDeclaration.cpp: Use Color directly, not via rgb().

(WebCore::ComputedStyleExtractor::currentColorOrValidColor):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSValueKeywords.in: Note that there is a color function, but the

keyword is already defined. Also add keywords for the color spaces.

  • css/SVGCSSValueKeywords.in: sRGB is used outside of SVG now.
  • css/parser/CSSParser.cpp: Old CSS parser code to handle color().

(WebCore::isPercent): Helper to tell if a ValueWithCalculation is a percentage or not.
(WebCore::CSSParser::parseColorInt): Renamed.
(WebCore::CSSParser::parseColorDouble): Helper to get a Number/Percentage into a double
(WebCore::CSSParser::parseRGBParameters):
(WebCore::CSSParser::parseColorFunctionParameters):
(WebCore::CSSParser::parseHSLParameters):
(WebCore::CSSParser::parseColorFromValue):
(WebCore::CSSParser::colorIntFromValue): Deleted.

  • css/parser/CSSParser.h:
  • css/parser/CSSPropertyParserHelpers.cpp: New CSS parser code to handle color().

(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):

  • platform/graphics/Color.h:

(WebCore::Color::isValid): An extended color is valid.
(WebCore::Color::rgb): Move the code to a standalone inline
so that I could add a longer comment.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::cssText): Alpha output is only needed if != 1.

  • platform/graphics/cg/ColorCG.cpp: Handle ExtendedColor -> CGColor.

(WebCore::leakCGColor):
(WebCore::cachedCGColor):

LayoutTests:

Test that exercises the new color() function in CSS. It checks
all valid and invalid input, with the exception of fallback content.

  • css3/color/color-function-computed-style-expected.txt: Added.
  • css3/color/color-function-computed-style.html: Added.
  • css3/color/color-function-parsing-expected.txt: Added.
  • css3/color/color-function-parsing.html: Added.
2:42 PM Changeset in webkit [208115] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Disable -webkit-text-size-adjust when the context says to.
https://bugs.webkit.org/show_bug.cgi?id=164191

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

2:25 PM Changeset in webkit [208114] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Match old parser's image-rendering values
https://bugs.webkit.org/show_bug.cgi?id=164190

Reviewed by Dean Jackson.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

2:18 PM Changeset in webkit [208113] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support -webkit-text value for background-clip and -webkit-background-clip
https://bugs.webkit.org/show_bug.cgi?id=164189

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundBox):
(WebCore::consumePrefixedBackgroundBox):

2:12 PM Changeset in webkit [208112] by commit-queue@webkit.org
  • 112 edits in trunk/Source/WebCore

Remove some unnecessary includes
https://bugs.webkit.org/show_bug.cgi?id=164174

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-29
Reviewed by Darin Adler.

12:14 PM Changeset in webkit [208111] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support -webkit-aspect-ratio
https://bugs.webkit.org/show_bug.cgi?id=164187

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitAspectRatio):
(WebCore::CSSPropertyParser::parseSingleValue):

11:59 AM Changeset in webkit [208110] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support the caps lock indicator appearance
https://bugs.webkit.org/show_bug.cgi?id=164186

Reviewed by Simon Fraser.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

11:54 AM Changeset in webkit [208109] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support the alt property
https://bugs.webkit.org/show_bug.cgi?id=164184

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAlt):
(WebCore::CSSPropertyParser::parseSingleValue):

11:37 AM Changeset in webkit [208108] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Add support for -webkit-hyphenate-limit-* properties
https://bugs.webkit.org/show_bug.cgi?id=164183

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeHyphenateLimit):
(WebCore::CSSPropertyParser::parseSingleValue):

10:46 AM Changeset in webkit [208107] by hyatt@apple.com
  • 5 edits in trunk/Source/WebCore

[CSS Parser] Fix transform-origin and perspective-origin to parse as shorthands
https://bugs.webkit.org/show_bug.cgi?id=164178

Reviewed by Zalan Bujtas.

  • css/CSSPropertyNames.in:

Patch the transform-origin-x/y and perspective-origin-x/y properties
to use new converters that can handle keywords.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertPositionComponentX):
(WebCore::StyleBuilderConverter::convertPositionComponentY):
Add the new converters. They just call convertPositionComponent method
that we already use for object-position and background-position.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::CSSPropertyParser::consumePerspectiveOrigin):
Changed to treat the properties as shorthands and add the longhand
properties once parsed.

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:

Move the parsing into the shorthand method, since we're still treating
these properties as shorthands.

9:32 AM Changeset in webkit [208106] by Wenson Hsieh
  • 2 edits in trunk/Tools

UIScriptControllerIOS.mm should not be soft-linking UIKit
https://bugs.webkit.org/show_bug.cgi?id=164171

Reviewed by Darin Adler.

Follow-up to r208090. Instead of soft-linking, we can simply grab UIKeyboardPredictionView by name instead.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

9:21 AM Changeset in webkit [208105] by commit-queue@webkit.org
  • 38 edits
    3 deletes in trunk/LayoutTests

Remove testharness.js/testharnessreport.js unnecessary copies
https://bugs.webkit.org/show_bug.cgi?id=164112

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-29
Reviewed by Darin Adler.

Removing http/tests/w3c directory.
Contained tests are skipped in Mac, EFL and mark as failing in GTK.
These tests have not been modified since more than 3 years and are probably out-of-date compared to W3C wpt.

Updated other http/tests tests using w3c/tests/resources files to use directly /resources/ URLs.
These /resources/ URLs are using an alias to remove the need to have redundant copies.

Removed imported/blink/http/tests/resources testharness and testharnessreport.js since they are not used.
A few test files in imported/blink/http/tests use /resources/... URLs but they will not point to any of the removed files since the tests are run as file based.

  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html:
  • http/tests/media/resources/media-source/generate-config-change-tests.py:
  • http/tests/preload/single_download_preload_runner.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-site.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-nested-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
  • http/tests/security/cross-origin-css-1.html:
  • http/tests/security/cross-origin-css-2.html:
  • http/tests/security/cross-origin-css-3.html:
  • http/tests/security/cross-origin-css-4.html:
  • http/tests/security/cross-origin-css-5.html:
  • http/tests/security/cross-origin-css-6.html:
  • http/tests/security/cross-origin-css-7.html:
  • http/tests/security/cross-origin-css-8.html:
  • http/tests/security/cross-origin-css-9.html:
  • http/tests/security/cross-origin-css-in-quirks-1.html:
  • http/tests/security/cross-origin-css-in-quirks-2.html:
  • http/tests/security/cross-origin-css-in-quirks-3.html:
  • http/tests/security/cross-origin-css-in-quirks-4.html:
  • http/tests/security/cross-origin-css-in-quirks-5.html:
  • http/tests/security/cross-origin-css-in-quirks-6.html:
  • http/tests/security/cross-origin-css-in-quirks-7.html:
  • http/tests/security/cross-origin-css-in-quirks-8.html:
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
  • http/tests/security/resources/post-origin-to-parent.html:
  • http/tests/security/same-origin-css-1.html:
  • http/tests/security/same-origin-css-2.html:
  • http/tests/security/same-origin-css-3.html:
  • http/tests/security/same-origin-css-4.html:
  • http/tests/security/same-origin-css-5.html:
  • http/tests/security/same-origin-css-6.html:
  • http/tests/security/same-origin-css-7.html:
  • http/tests/security/same-origin-css-8.html:
  • http/tests/security/same-origin-css-in-quirks.html:
  • http/tests/security/set-domain-remove-subdomain-for-ip-address.html:
  • http/tests/w3c/README: Removed.
  • http/tests/w3c/resources/WebIDLParser.js: Removed.
  • http/tests/w3c/resources/canvas-tests.css: Removed.
  • http/tests/w3c/resources/canvas-tests.js: Removed.
  • http/tests/w3c/resources/idlharness.js: Removed.
  • http/tests/w3c/resources/testharness.css: Removed.
  • http/tests/w3c/resources/testharness.js: Removed.
  • http/tests/w3c/resources/testharnessreport.js: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/basic-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/basic.html: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock.html: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/resources/now_frame.html: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html: Removed.
  • http/tests/w3c/webperf/resources/Ahem.ttf: Removed.
  • http/tests/w3c/webperf/resources/all_resource_types.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_image.png: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green_with_allow_timing.php: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_unload.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_yellow.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm: Removed.
  • http/tests/w3c/webperf/resources/empty_script.js: Removed.
  • http/tests/w3c/webperf/resources/generate_resource.php: Removed.
  • http/tests/w3c/webperf/resources/gray_bg.css: Removed.
  • http/tests/w3c/webperf/resources/green_frame.htm: Removed.
  • http/tests/w3c/webperf/resources/inject_resource_test.html: Removed.
  • http/tests/w3c/webperf/resources/nested.css: Removed.
  • http/tests/w3c/webperf/resources/pagevistestharness.js: Removed.
  • http/tests/w3c/webperf/resources/redirect.php: Removed.
  • http/tests/w3c/webperf/resources/webperftestharness.js: Removed.
  • http/tests/w3c/webperf/resources/webperftestharnessextension.js: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist.html: Removed.
  • http/tests/xmlhttprequest/readystatechange-and-abort.html:
  • http/tests/xmlhttprequest/response-json-and-readystate.html:
  • http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
  • http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
  • imported/blink/http/tests/resources/testharness.js: Removed.
  • imported/blink/http/tests/resources/testharnessreport.js: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
9:03 AM Changeset in webkit [208104] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake][Win] Visual Studio invokes make_settings.pl twice
https://bugs.webkit.org/show_bug.cgi?id=163774

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-29
Reviewed by Michael Catanzaro.

build-webkit recompiles some files just after finishing
build-webkit in case of using CMake VisualStudio generator because
both WebCoreDerivedSources.vcxproj and WebCoreTestSupport.vcxproj
triggers make_settings.pl.

make_settings.pl generates four files
InternalSettingsGenerated.{h,cpp,idl} and SettingsMacros.h.
WebCoreDerivedSources depends on SettingsMacros.h, and
WebCoreTestSupport depends on InternalSettingsGenerated.cpp.

This problem is described in CMake documentation:
<https://cmake.org/cmake/help/v3.0/command/add_custom_command.html>

Do not list the output in more than one independent target that may
build in parallel or the two instances of the rule may conflict

To solve this problem, only SettingsMacros.h is specified as
OUTPUT of add_custom_command, and other generated files are marked
as BYPRODUCTS. As the result, only WebCoreDerivedSources target
triggers make_settings.pl. And other targets already have a
dependency to WebCoreDerivedSources target.

To support earlier versions than CMake 3.2, it uses GENERATED
source file property instead of BYPRODUCTS option.

  • Source/cmake/WebKitMacros.cmake(GENERATE_SETTINGS_MACROS):

Removed extra output files from OUTPUT of add_custom_command and
added BYPRODUCTS option.

8:22 AM Changeset in webkit [208103] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support -webkit-background-composite
https://bugs.webkit.org/show_bug.cgi?id=164179

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):

6:46 AM Changeset in webkit [208102] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION (r207754): LayoutTest http/tests/security/svg-image-with-css-cross-domain.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=163922

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-29
Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/security/cached-svg-image-with-css-cross-domain.html

Raw data was not copied in cloned CachedCSSStyleSheet while it is used by some of its clients.
Updated CachedCSSStyleSheet and CachedImage cloning to copy its raw data.

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::setBodyDataFrom):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::setBodyDataFrom):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::mayTryReplaceEncodedData):

LayoutTests:

  • http/tests/security/cached-svg-image-with-css-cross-domain-expected.html: Added.
  • http/tests/security/cached-svg-image-with-css-cross-domain.html: Added.
  • platform/mac/TestExpectations:
6:44 AM Changeset in webkit [208101] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

REGRESSION (Safari 10 / r189445): WKWebView and WebView no longer allow async XMLHttpRequest timeout to exceed 60 seconds
https://bugs.webkit.org/show_bug.cgi?id=163814
<rdar://problem/28917420>

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-29
Reviewed by Darin Adler.

Source/WebCore:

Tests: http/tests/xmlhttprequest/resetting-timeout-to-zero.html

http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::setTimeout): If the XHR timeout is active, resetting the timeout to zero should lead to using the default network timeout.
Since it is difficult to update the timeout once the request is sent, we mimic the default network timeout with a 60 seconds XHR timeout.
(WebCore::XMLHttpRequest::createRequest): Setting network timeout to infinity if the XHR timeout is active.

LayoutTests:

  • http/tests/xmlhttprequest/resetting-timeout-to-zero-expected.txt: Added.
  • http/tests/xmlhttprequest/resetting-timeout-to-zero.html: Added.
  • http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html: Added.
  • tests-options.json:
6:43 AM Changeset in webkit [208100] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

MediaEndpoint::generateDtlsInfo is not needed
https://bugs.webkit.org/show_bug.cgi?id=164130

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-29
Reviewed by Eric Carlson.

No change of behavior.

Removing MediaEndpoint::generateDtlsInfo as it can be called directly from createMediaEndpointOwr.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::MediaEndpointPeerConnection):

  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::createMediaEndpointOwr):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::MockMediaEndpoint):
(WebCore::MockMediaEndpoint::generateDtlsInfo): Deleted.

  • platform/mock/MockMediaEndpoint.h:

Oct 28, 2016:

11:14 PM Changeset in webkit [208099] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, add Input Events to the features list.

  • features.json:
10:02 PM Changeset in webkit [208098] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix mismerge that broke a CEReactions test.

  • html/HTMLOptionsCollection.idl: Add back CEReactions to the remove function.
8:16 PM Changeset in webkit [208097] by Joseph Pecoraro
  • 7 edits
    1 add in trunk

Web Inspector: Breakpoints not working in scripts with unicode characters
https://bugs.webkit.org/show_bug.cgi?id=164172
<rdar://problem/28895862>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • parser/Parser.h:

(JSC::parse):
Ensure we pass the debuggerParseData struct to get populated in the
non 8bit string case!

LayoutTests:

  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html:
  • inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-each-line.html:
  • inspector/debugger/breakpoints/resources/dump-unicode.js: Added.

Ensure we can set breakpoints and resolve them in non-8bit source code.

7:32 PM Changeset in webkit [208096] by Darin Adler
  • 188 edits in trunk

Move all classes in the HTML directory from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=163876

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/url/url-setters-expected.txt: Updated for progressions that occurred

because setting the href attribute on a DOMURL object no longer modifies the URL as a side
effect in the cases where it throw an exception.

Source/WebCore:

  • bindings/js/JSDOMBinding.cpp:

(WebCore::shouldAllowAccessToNode): Deleted.
(WebCore::BindingSecurity::shouldAllowAccessToFrame): Moved function into the
BindingSecurity namespace. Also changed arguments to references.
(WebCore::BindingSecurity::shouldAllowAccessToDOMWindow): Ditto.
(WebCore::BindingSecurity::shouldAllowAccessToNode): Changed argument type
from pointer to reference.

  • bindings/js/JSDOMBinding.h: Removed top level shouldAllowAccessTo functions,

moving all of them into the BindingSecurity namespace. Changed BindingSecurity
from a class into a namespace. Added new checkSecurityForNode functions that
can be used directly to implement CheckSecurityForNode; they turn the node
into a null, which is no change in behavior from what bindings already did.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Changed argument
type for passed-in string to const String& instead of String&.
(WebCore::JSDOMWindow::getOwnPropertySlot): Updated for BindingSecurity changes.
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex): Ditto.
(WebCore::JSDOMWindow::put): Ditto.

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::attributesFor3DContext): Renamed from get3DContextAttributes and
changed to use a return value instead of an out argument.
(WebCore::JSHTMLCanvasElement::getContext): Updated for the above.
(WebCore::JSHTMLCanvasElement::toDataURL): Rewrote to handle ExceptionOr
and also to use Optional<double> instead of const double*.

  • bindings/js/JSHTMLFrameElementCustom.cpp:

(WebCore::JSHTMLFrameElement::setLocation): Moved the logic from
allowSettingJavascriptURL in here and updated for BindingSecurity changes.

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::setLength): Use propagateException.
Also streamlined the code a bit.
(WebCore::JSHTMLOptionsCollection::indexSetter): Updated for new name and
argument types for selectElementIndexSetter.

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::selectElementIndexSetter): Updated name and argument types and
to use propagateException.
(WebCore::JSHTMLSelectElement::indexSetter): Updated for above.

  • bindings/js/JSHTMLSelectElementCustom.h: Ditto.
  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::getOwnPropertySlotDelegate): Updated for changes to
BindingSecurity.
(WebCore::JSLocation::putDelegate): Ditto. Also rearranged logic a bit.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canAccessFromCurrentOrigin): Updated for
changes to BindingSecurity.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Removed old support for CheckSecurityForNode.
(NativeToJSValue): Added new support for CheckSecurityForNode, which uses
the new checkSecurityForNode function, and works properly with ExceptionOr.

  • bindings/scripts/test/JS/JSTestObj.cpp: Updated for change below.
  • dom/ChildNode.idl: Move the remove function to non-legacy exception.

Needed now because this needs to match the one in HTMLSelectElement.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseForceWillBegin): Refactored a little bit.
(WebCore::Element::mergeWithNextTextNode): Support ExceptionOr for remove.
(WebCore::Element::setOuterHTML): Support ExceptionOr for
createFragmentForInnerOuterHTML.
(WebCore::Element::setInnerHTML): Ditto.
(WebCore::Element::insertAdjacentHTML): Ditto.

  • dom/Node.cpp:

(WebCore::Node::remove): Use ExceptionOr.
(WebCore::Node::normalize): Remove use of IGNORE_EXCEPTION.

  • dom/Node.h: Use ExceptionOr for remove.
  • dom/Range.cpp:

(WebCore::Range::insertNode): Updated for change to remove.
(WebCore::Range::createContextualFragment): Updated for change
to WebCore::createContextualFragment.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::setInnerHTML): Use ExceptionOr for
createFragmentForInnerOuterHTML and replaceChildrenWithFragment.

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::doUnapply): Remove IGNORE_EXCEPTION.

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.

  • editing/MergeIdenticalElementsCommand.cpp:

(WebCore::MergeIdenticalElementsCommand::doApply): Ditto.

  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::doApply): Ditto.

  • editing/SplitElementCommand.cpp:

(WebCore::SplitElementCommand::doUnapply): Ditto.

  • editing/SplitTextNodeCommand.cpp:

(WebCore::SplitTextNodeCommand::doUnapply): Ditto.

  • editing/WrapContentsInDummySpanCommand.cpp:

(WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.

  • editing/Editor.cpp:

(WebCore::Editor::insertDictationPhrases): Deleted. Moved this
iOS-specific function to EditorIOS.mm.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
(WebCore::Editor::confirmMarkedText): Ditto.
(WebCore::Editor::setTextAsChildOfElement): Ditto.
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping): Ditto.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::fontForSelection): Remove ASSERT_NO_EXCEPTION.
(WebCore::Editor::fontAttributesForSelectionStart): Ditto.
(WebCore::Editor::insertDictationPhrases): Moved here from Editor.cpp.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto. Also
updated code that used remove to not pass an ExceptionCode.
(WebCore::Editor::confirmMarkedText): Ditto.
(WebCore::Editor::setTextAsChildOfElement): Ditto.
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping): Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::fontForSelection): Remove ASSERT_NO_EXCEPTION.
(WebCore::Editor::fontAttributesForSelectionStart): Ditto.

  • editing/markup.cpp:

(WebCore::createFragmentForInnerOuterHTML): Use ExceptionOr.
(WebCore::createContextualFragment): Ditto.
(WebCore::replaceChildrenWithFragment): Ditto.
(WebCore::replaceChildrenWithText): Ditto.

  • editing/markup.h: Updated for above changes.
  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
Removed ASSERT_NO_EXCEPTION.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::setValueAsDate): Use ExceptionOr.
(WebCore::BaseDateAndTimeInputType::setValueAsDecimal): Ditto.

  • html/BaseDateAndTimeInputType.h: Updated for above changes.
  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::setValueAsDate): Use ExceptionOr.

  • html/DateTimeLocalInputType.h: Updated for above changes.
  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::validateToken): Use ExceptionOr.
(WebCore::DOMTokenList::validateTokens): Ditto.
(WebCore::DOMTokenList::addInternal): Ditto.
(WebCore::DOMTokenList::add): Ditto.
(WebCore::DOMTokenList::removeInternal): Ditto.
(WebCore::DOMTokenList::remove): Ditto.
(WebCore::DOMTokenList::toggle): Ditto.
(WebCore::DOMTokenList::replace): Ditto.
(WebCore::DOMTokenList::supports): Ditto.

  • html/DOMTokenList.h: Updated for above changes.
  • html/DOMTokenList.idl: Use non-legacy exceptions.
  • html/DOMURL.cpp:

(WebCore::DOMURL::DOMURL): Just take the two URL objects and let
the create functions do all the processing.
(WebCore::DOMURL::create): Use ExceptionOr, and move the processing
of the URLs here out of the constructors.
(WebCore::DOMURL::setHref): Use ExceptionOr.

  • html/DOMURL.h: Updated for above changes.
  • html/DOMURL.idl: Use non-legacy exceptions.
  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry): Remove
IGNORE_EXCEPTION and use releaseReturnValue().

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toDataURL): Use ExceptionOr.

  • html/HTMLCanvasElement.h: Updated for above changes.
  • html/HTMLCanvasElement.idl: Use non-legacy exception.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::textToFragment): Use ExceptionOr.
(WebCore::HTMLElement::setInnerText): Ditto.
(WebCore::HTMLElement::setOuterText): Ditto.
(WebCore::HTMLElement::setContentEditable): Ditto.
(WebCore::HTMLElement::translateAttributeMode): Deleted.
(WebCore::HTMLElement::translate): Moved the logic from the
translateAttributeMode function in here.

  • html/HTMLElement.h: Updated for above changes.
  • html/HTMLElement.idl: Use non-legacy exceptions.
  • html/HTMLEmbedElement.idl: Use non-legacy exception.
  • html/HTMLFrameElement.idl: Ditto.
  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::getSVGDocument): Use ExceptionOr.

  • html/HTMLFrameOwnerElement.h: Updated for above.
  • html/HTMLIFrameElement.idl: Use non-legacy exception.
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::stepUp): Use ExceptionOr.
(WebCore::HTMLInputElement::stepDown): Ditto.
(WebCore::HTMLInputElement::setValue): Ditto.
(WebCore::HTMLInputElement::setValueAsDate): Ditto.
(WebCore::HTMLInputElement::setValueAsNumber): Ditto.
(WebCore::HTMLInputElement::setSize): Ditto.
(WebCore::HTMLInputElement::maxLengthAttributeChanged): Use the
new internalSetMaxLength function; old code relied on a setMaxLength
that was different from the one exposed to bindings.
(WebCore::HTMLInputElement::minLengthAttributeChanged): Ditto.
(WebCore::HTMLInputElement::setRangeText): Use ExceptionOr.

  • html/HTMLInputElement.h: Updated for above changes. Also use

data member initialization for InputElementClickState instead of
a constructor.

  • html/HTMLInputElement.idl: Use non-legacy exception.
  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::setLoop): Use ExceptionOr.
(WebCore::HTMLMarqueeElement::renderMarquee): Tweaked.

  • html/HTMLMarqueeElement.h: Updated for above changes.
  • html/HTMLMarqueeElement.idl: Ditto.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::TrackGroup::TrackGroup):
Initialize most data members in class definition rather than
the constructor.
(WebCore::HTMLMediaElement::HTMLMediaElement): Ditto.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Updated since
removeMediaElement now takes a reference.
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Use
a modern for loop to streamline code.
(WebCore::HTMLMediaElement::textTrackModeChanged): Updated since
track now returns a reference.
(WebCore::HTMLMediaElement::setCurrentTimeForBindings): Renamed
to prevent ambiguity with the other version that has slightly
different semantics and overloading and changed to use ExceptionOr.
(WebCore::HTMLMediaElement::playInternal): Updated to use reference.
(WebCore::HTMLMediaElement::setVolume): Use ExceptionOr.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Take a
reference instead of a PassRefPtr.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveAudioTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveTextTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack): Ditto.
(WebCore::HTMLMediaElement::addTextTrack): Use ExceptionOr.
(WebCore::HTMLMediaElement::didAddTextTrack): Use a reference.
(WebCore::HTMLMediaElement::didRemoveTextTrack): Ditto.
(WebCore::HTMLMediaElement::maxBufferedTime): Update to use different
interface to time ranges that does not need to deal with exceptions.
(WebCore::HTMLMediaElement::setController): Pass references.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Use reference.

  • html/HTMLMediaElement.h: Updated for above.
  • html/HTMLMediaElement.idl: Use non-legacy exceptions.
  • html/HTMLObjectElement.idl: Use non-legacy exception.
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor): Use ExceptionOr.

  • html/HTMLOptionElement.h: Updated for above change.
  • html/HTMLOptionElement.idl: Use non-legacy exception.
  • html/HTMLOptionsCollection.cpp:

(WebCore::HTMLOptionsCollection::setLength): Use ExceptionOr.

  • html/HTMLOptionsCollection.h: Updated for above change.
  • html/HTMLOptionsCollection.idl: Use non-legacy exception.
  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::setValue): Removed non-finite handling
because that is now handled by the bindings.
(WebCore::HTMLProgressElement::setMax): Ditto.

  • html/HTMLProgressElement.h: Updated for above.
  • html/HTMLProgressElement.idl: Changed attributes to be double instead

of unrestricted double, and this was able to remove exceptions.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::removeByIndex): Drop IGNORE_EXCEPTION.
(WebCore::HTMLSelectElement::remove): Use ExceptionOr.
(WebCore::HTMLSelectElement::setOption): Ditto.
(WebCore::HTMLSelectElement::setLength): Ditto.

  • html/HTMLSelectElement.h: Updated for above changes.
  • html/HTMLSelectElement.idl: Use non-legacy exceptions.
  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setCaption): Use ExceptionOr.
(WebCore::HTMLTableElement::setTHead): Ditto.
(WebCore::HTMLTableElement::setTFoot): Ditto.
(WebCore::HTMLTableElement::createTHead): Streamline a bit.
(WebCore::HTMLTableElement::deleteTHead): Ditto.
(WebCore::HTMLTableElement::createTFoot): Ditto.
(WebCore::HTMLTableElement::deleteTFoot): Ditto.
(WebCore::HTMLTableElement::createTBody): Ditto.
(WebCore::HTMLTableElement::createCaption): Ditto.
(WebCore::HTMLTableElement::insertRow): Use ExceptionOr.
(WebCore::HTMLTableElement::deleteRow): Ditto.

  • html/HTMLTableElement.h: Updated for above changes.
  • html/HTMLTableElement.idl: Use non-legacy exceptions.
  • html/HTMLTableRowElement.cpp:

(WebCore::findTable): Added.
(WebCore::HTMLTableRowElement::rowIndex): Streamline a bit using the
findTable function above.
(WebCore::findRows): Added.
(WebCore::HTMLTableRowElement::sectionRowIndex): Streamline a bit using
the findRows function above.
(WebCore::HTMLTableRowElement::insertCell): Use ExceptionOr.
(WebCore::HTMLTableRowElement::deleteCell): Ditto.
(WebCore::HTMLTableRowElement::setCells): Deleted.

  • html/HTMLTableRowElement.h: Updated for the above. The setCells function

was dead code.

  • html/HTMLTableRowElement.idl: Use non-legacy exceptions.
  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
Tweaked a bit to use early return.
(WebCore::HTMLTableSectionElement::insertRow): Use ExceptionOr.
(WebCore::HTMLTableSectionElement::deleteRow): Ditto.
(WebCore::HTMLTableSectionElement::numRows): Use childrenOfType.
(WebCore::HTMLTableSectionElement::align): Deleted.
(WebCore::HTMLTableSectionElement::setAlign): Deleted.
(WebCore::HTMLTableSectionElement::ch): Deleted.
(WebCore::HTMLTableSectionElement::setCh): Deleted.
(WebCore::HTMLTableSectionElement::chOff): Deleted.
(WebCore::HTMLTableSectionElement::setChOff): Deleted.
(WebCore::HTMLTableSectionElement::vAlign): Deleted.
(WebCore::HTMLTableSectionElement::setVAlign): Deleted.

  • html/HTMLTableSectionElement.h: Updated for the above.
  • html/HTMLTableSectionElement.idl: Use non-legacy exception.
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::maxLengthAttributeChanged): Use the new
internalSetMaxLength function; old code relied on a setMaxLength
that was different from the one exposed to bindings.
(WebCore::HTMLTextAreaElement::minLengthAttributeChanged): Ditto.
(WebCore::HTMLTextAreaElement::updatePlaceholderText): Removed
ASSERT_NO_EXCEPTION.

  • html/HTMLTextAreaElement.idl: Use non-legacy exceptions.
  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setRangeText): Use ExceptionOr.
(WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.
(WebCore::HTMLTextFormControlElement::setMaxLength): Ditto.
(WebCore::HTMLTextFormControlElement::setMinLength): Ditto.

  • html/HTMLTextFormControlElement.h: Updated for above changes.

Also renamed the setMin/MaxLength function overloads for internal use
to internSetMin/MaxLength and made them protected.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::~HTMLTrackElement): Call clearElement on the
track to break the connection. Before this was done as a side effect of
clearClient, but that is called in other cases where we do not want to
clear the link back to the track element.
(WebCore::HTMLTrackElement::insertedInto): Removed code that uses the
track function for its side effect of creating a track; no longer needed.
Rewrote this so it's more symmetric with removedFrom.
(WebCore::HTMLTrackElement::removedFrom): Pass reference. Also reordered
and removed an unnecessary check for null parent.
(WebCore::HTMLTrackElement::parseAttribute): Use track.
(WebCore::HTMLTrackElement::kind): Ditto.
(WebCore::HTMLTrackElement::track): Renamed ensureTrack to this. Also
removed the redundant code to call setTrackElement; we no longer change
the track element on a track until the track element is destroyed.
(WebCore::HTMLTrackElement::scheduleLoad): Use track.
(WebCore::HTMLTrackElement::loadTimerFired): Ditto.
(WebCore::HTMLTrackElement::setReadyState): Ditto.
(WebCore::HTMLTrackElement::readyState): Ditto.
(WebCore::HTMLTrackElement::mediaElement): Rearranged to use early return.

  • html/HTMLTrackElement.h: Updated for above changes.
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitEnterFullscreen): Use ExceptionOr.

  • html/HTMLVideoElement.h: Removed the functions used just for

capitalization reasons; that's now handled in the bindings.

  • html/HTMLVideoElement.idl: Use non-legacy bindings and ImplementedAs.
  • html/ImageData.cpp:

(WebCore::ImageData::create): Return ExceptionOr.

  • html/ImageData.h: Updated for above changes.
  • html/ImageData.idl: Use non-legacy exceptions.
  • html/InputType.cpp:

(WebCore::InputType::setValueAsDate): Use ExceptionOr.
(WebCore::InputType::setValueAsDouble): Ditto.
(WebCore::InputType::setValueAsDecimal): Ditto.
(WebCore::InputType::applyStep): Ditto.
(WebCore::InputType::stepUp): Ditto.
(WebCore::InputType::stepUpFromRenderer): Removed IGNORE_EXCEPTION.

  • html/InputType.h: Updated for the above.
  • html/MediaController.cpp:

(MediaController::addMediaElement): Take a reference instead of a pointer.
(MediaController::removeMediaElement): Ditto.
(MediaController::containsMediaElement): Ditto.
(MediaController::setVolume): Use ExceptionOr.
(MediaController::bringElementUpToSpeed): Take a reference.

  • html/MediaController.h: Updated for above changes. Also made lots of

function overrides private.

  • html/MediaController.idl: Use non-legacy exception.
  • html/MediaControllerInterface.h: Use ExceptionOr for setVolume.
  • html/NumberInputType.cpp:

(WebCore::RealNumberRenderSize::max): Use aggregate initialization instead
of a constructor.
(WebCore::calculateRenderSize): Ditto.
(WebCore::NumberInputType::setValueAsDouble): Use ExceptionOr.
(WebCore::NumberInputType::setValueAsDecimal): Ditto.

  • html/NumberInputType.h: Updated for above changes.
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::RangeInputType): Initialize scalar data member
in class definition instead of here.
(WebCore::RangeInputType::setValueAsDecimal): Use ExceptionOr.
(WebCore::RangeInputType::handleKeydownEvent): Removed IGNORE_EXCEPTION.

  • html/RangeInputType.h: Updated for above changes.
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::updatePlaceholderText): Removed
ASSERT_NO_EXCEPTION.

  • html/TimeRanges.cpp:

(WebCore::TimeRanges::start): Use ExceptionOr.
(WebCore::TimeRanges::end): Ditto.

  • html/TimeRanges.h: Updated for the above.
  • html/TimeRanges.idl: Use non-legacy exceptions.
  • html/URLUtils.idl: Use non-legacy exception.
  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::setMessageDOMAndStartTimer): Removed
ASSERT_NO_EXCEPTION, IGNORE_EXCEPTION, and other exception-ignoring idioms.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody): Ditto.

  • html/shadow/MediaControlElementTypes.cpp:

(WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Ditto.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::setPosition): Ditto.
(WebCore::MediaControlPanelElement::resetPosition): Ditto.
(WebCore::MediaControlStatusDisplayElement::update): Ditto.
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Ditto.
(WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler): Ditto.
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler): Ditto.

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::updateCurrentTimeDisplay): Ditto.

  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsApple::updateCurrentTimeDisplay): Ditto.

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack): Take reference.
(WebCore::LoadableTextTrack::~LoadableTextTrack): Deleted.
(WebCore::LoadableTextTrack::clearClient): Deleted override. We no longer
want to clear m_trackElement when clearing the client.
(WebCore::LoadableTextTrack::setTrackElement): Deleted.
(WebCore::LoadableTextTrack::id): Changed to use
attributeWithoutSynchronization for better performance and idAttr instead
of a string constant.

  • html/track/LoadableTextTrack.h: Updated for above changes. Added a new

clearElement function. Made the element and isDefault functions private.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::~VTTCue): Removed ASSERT_NO_EXCEPTION, IGNORE_EXCEPTION,
and other exception-ignoring idioms.
(WebCore::VTTCue::removeDisplayTree): Ditto.

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::displayLastTextTrackCueBox): Ditto.
(WebCore::VTTRegion::willRemoveTextTrackCueBox): Ditto.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend):
Rewrote to avoid multiplehash table lookups and added a FIXME about
the peculiar code here.
(WebCore::InspectorDOMAgent::resolveNode): Streamlined.
(WebCore::InspectorDOMAgent::nodeAsScriptValue): Use the new
checkSecurityForNode instead of the old shouldAllowAccessToNode.

  • platform/graphics/ImageBuffer.h: Take Optional<double> instead of

const double* in toDataURL. Renamed ImageDataToDataURL to just dataURL.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::addAudioTrack): Take a reference instead of PassRefPtr.
(WebCore::MediaPlayer::removeAudioTrack): Ditto.
(WebCore::MediaPlayer::addTextTrack): Ditto.
(WebCore::MediaPlayer::removeTextTrack): Ditto.
(WebCore::MediaPlayer::addVideoTrack): Ditto.
(WebCore::MediaPlayer::removeVideoTrack): Ditto.

  • platform/graphics/MediaPlayer.h: Updated for the above.
  • platform/graphics/PlatformTimeRanges.h: Exported a couple of functions

that are now used in WebKit.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::clearTextTracks): Use a modern for loop.
(WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
Fixed a bug that would cause this function to fail to process half the tracks.
Also updated for the change from PassRefPtr to references.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::determineChangedTracksFromNewTracksAndOldItems): Pass references.
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioSourceProvider): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): Ditto.
(WebCore::assetMetadataKeyNames): Tweaked formatting.
(WebCore::itemKVOProperties): Ditto.
(WebCore::playerKVOProperties): Ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::updateTracksOfType): Pass references.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::toDataURL): Use Optional<double>

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded): Use auto.
(WebCore::encodeImage): Ditto. Also renamed from CGImageEncodeToData.
(WebCore::dataURL): Ditto. Also renamed from CGImageToDataURL and from
ImageDataToDataURL.
(WebCore::ImageBuffer::toDataURL): Ditto.

  • platform/graphics/efl/ImageBufferEfl.cpp:

(WebCore::encodeImageJPEG): Use Optional<double>
(WebCore::ImageBuffer::toDataURL): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Pass
a reference instead of pointer.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Ditto.

  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::encodeImage): Use Optional<double>
(WebCore::ImageBuffer::toDataURL): Ditto.

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::toDataURL): Use Optional<double>

  • platform/image-encoders/JPEGImageEncoder.cpp:

(WebCore::compressRGBABigEndianToJPEG): Use Optional<double>

  • platform/image-encoders/JPEGImageEncoder.h: Ditto.
  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm:

(WebCore::WebPlaybackSessionInterfaceAVKit::seekableRangesChanged):
Updated for change to TimeRanges.

  • platform/mac/WebVideoFullscreenHUDWindowController.mm:

(-[WebVideoFullscreenHUDWindowController setVolume:]): Removed IGNORE_EXCEPTION.

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::endElementNs): Ditto.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::paintMediaSliderTrack): Updated for changes to
the TimeRanges class.

Source/WebKit/mac:

  • DOM/DOMCharacterData.mm:

(-[DOMCharacterData remove]): Updated exception handling.

  • DOM/DOMDOMTokenList.mm:

(-[DOMDOMTokenList toggle:force:]): Ditto.

  • DOM/DOMDocumentType.mm:

(-[DOMDocumentType remove]): Ditto.

  • DOM/DOMElement.mm:

(-[DOMElement remove]): Ditto.

  • DOM/DOMHTML.mm:

(-[DOMHTMLInputElement setValueAsNumberWithChangeEvent:]): Ditto.

  • DOM/DOMHTMLCanvasElement.mm:

(-[DOMHTMLCanvasElement toDataURL:]): Ditto.

  • DOM/DOMHTMLElement.mm:

(-[DOMHTMLElement setInnerText:]): Ditto.
(-[DOMHTMLElement setOuterText:]): Ditto.
(-[DOMHTMLElement setContentEditable:]): Ditto.

  • DOM/DOMHTMLInputElement.mm:

(-[DOMHTMLInputElement setMaxLength:]): Ditto.
(-[DOMHTMLInputElement setValueAsDate:]): Ditto.
(-[DOMHTMLInputElement setValueAsNumber:]): Ditto.
(-[DOMHTMLInputElement stepUp:]): Ditto.
(-[DOMHTMLInputElement stepDown:]): Ditto.
(-[DOMHTMLInputElement setRangeText:]): Ditto.
(-[DOMHTMLInputElement setRangeText:start:end:selectionMode:]): Ditto.

  • DOM/DOMHTMLMarqueeElement.mm:

(-[DOMHTMLMarqueeElement setLoop:]): Ditto.

  • DOM/DOMHTMLMediaElement.mm:

(-[DOMHTMLMediaElement setCurrentTime:]): Ditto.
(-[DOMHTMLMediaElement setVolume:]): Ditto.

  • DOM/DOMHTMLOptionsCollection.mm:

(-[DOMHTMLOptionsCollection setLength:]): Ditto.

  • DOM/DOMHTMLTableElement.mm:

(-[DOMHTMLTableElement setCaption:]): Ditto.
(-[DOMHTMLTableElement setTHead:]): Ditto.
(-[DOMHTMLTableElement setTFoot:]): Ditto.
(-[DOMHTMLTableElement insertRow:]): Ditto.
(-[DOMHTMLTableElement deleteRow:]): Ditto.

  • DOM/DOMHTMLTableRowElement.mm:

(-[DOMHTMLTableRowElement insertCell:]): Ditto.
(-[DOMHTMLTableRowElement deleteCell:]): Ditto.

  • DOM/DOMHTMLTableSectionElement.mm:

(-[DOMHTMLTableSectionElement insertRow:]): Ditto.
(-[DOMHTMLTableSectionElement deleteRow:]): Ditto.

  • DOM/DOMHTMLTextAreaElement.mm:

(-[DOMHTMLTextAreaElement setMaxLength:]): Ditto.
(-[DOMHTMLTextAreaElement setRangeText:]): Ditto.
(-[DOMHTMLTextAreaElement setRangeText:start:end:selectionMode:]): Ditto.

  • DOM/DOMHTMLVideoElement.mm:

(-[DOMHTMLVideoElement webkitEnterFullscreen]): Ditto.
(-[DOMHTMLVideoElement webkitEnterFullScreen]): Changed to call the other named
version (lowercase S) instead of repeating the logic from that method.
(-[DOMHTMLVideoElement webkitExitFullScreen]): Ditto.

  • DOM/DOMTimeRanges.mm:

(-[DOMTimeRanges start:]): Updated exception handling.
(-[DOMTimeRanges end:]): Ditto.

Source/WebKit/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::setInnerText): Update exception handling.

  • FullscreenVideoController.cpp:

(FullscreenVideoController::setVolume): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp:

(webkit_dom_dom_token_list_add): Updated exception handling.
(webkit_dom_dom_token_list_remove): Ditto.
(webkit_dom_dom_token_list_toggle): Ditto.
(webkit_dom_dom_token_list_replace): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:

(webkit_dom_element_remove): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp:

(webkit_dom_html_element_set_inner_text): Ditto.
(webkit_dom_html_element_set_outer_text): Ditto.
(webkit_dom_html_element_set_content_editable): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:

(webkit_dom_html_input_element_set_max_length): Ditto.
(webkit_dom_html_input_element_set_size): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:

(webkit_dom_html_select_element_set_length): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp:

(webkit_dom_html_table_element_insert_row): Ditto.
(webkit_dom_html_table_element_delete_row): Ditto.
(webkit_dom_html_table_element_set_caption): Ditto.
(webkit_dom_html_table_element_set_t_head): Ditto.
(webkit_dom_html_table_element_set_t_foot): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp:

(webkit_dom_html_table_row_element_insert_cell): Ditto.
(webkit_dom_html_table_row_element_delete_cell): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp:

(webkit_dom_html_table_section_element_insert_row): Ditto.
(webkit_dom_html_table_section_element_delete_row): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState): Removed ASSERT_NO_EXCEPTION.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setAssistedNodeValueAsNumber): Removed ASSERT_NO_EXCEPTION.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::seekableRangesChanged):
Changed the code to use a different interface to TimeRange that does
not involve exceptions.

Tools:

  • TestWebKitAPI/Tests/WebCore/TimeRanges.cpp:

(TestWebKitAPI::ToString): Updated for changes to the TimeRanges class.
(TestWebKitAPI::TEST): Ditto.

LayoutTests:

  • fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-hash.html:
  • fast/dom/DOMURL/set-href-attribute-hostname-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-hostname.html:
  • fast/dom/DOMURL/set-href-attribute-pathname-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-pathname.html:

Updated these tests to expect that if you set href and it raises an exception,
then the URL does not change. The old expected results showed the exception being
raised but the URL being changed to the invalid href.

  • fast/dom/HTMLProgressElement/script-tests/set-progress-properties.js:
  • fast/dom/HTMLProgressElement/set-progress-properties-expected.txt:

Updated to expect a different exception, TypeError rather than NotSupportedError,
for non-finite values.

7:12 PM Changeset in webkit [208095] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed, changed Devin Rousso's email and nick.

  • Scripts/webkitpy/common/config/contributors.json:
7:07 PM Changeset in webkit [208094] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the iOS build after r208090.

Use soft-linking as needed in UIScriptControllerIOS.mm.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

6:42 PM Changeset in webkit [208093] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Allow @font-face src descriptor's format function to contain identifiers
https://bugs.webkit.org/show_bug.cgi?id=164169

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontFaceSrcURI):

6:18 PM Changeset in webkit [208092] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

WebAudio does not resume when moving from background to foreground tab.
https://bugs.webkit.org/show_bug.cgi?id=164043

Reviewed by Darin Adler.

Source/WebCore:

Test: webaudio/page-canstartmedia.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::mediaCanStart):

LayoutTests:

  • webaudio/page-canstartmedia-expected.txt: Added.
  • webaudio/page-canstartmedia.html: Added.
6:17 PM Changeset in webkit [208091] by commit-queue@webkit.org
  • 38 edits
    2 copies
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Preferences for Text Editor behavior
https://bugs.webkit.org/show_bug.cgi?id=149120

Patch by Devin Rousso <Devin Rousso> on 2016-10-28
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.contentLoaded.setTabSize):
(WebInspector.contentLoaded.setInvalidCharacterClassName):
(WebInspector.contentLoaded.setWhitespaceCharacterClassName):
(WebInspector._tryToRestorePendingTabs):
(WebInspector.indentString):
(WebInspector._updateNewTabButtonState): Deleted.
(WebInspector._newTabItemClicked): Deleted.
Removed calls to the New Tab tab bar item on the Tab Bar instance.
Added listener to the indentUnit setting to change the tab-size value on <body>.
Created helper function to generate the indentString value from settings.

  • UserInterface/Base/Test.js:

(WebInspector.indentString):
Assume indent string is " " for tests.

  • UserInterface/Base/Setting.js:

Added global WebInspector.settings dictionary for holding settings with UI editors.

  • UserInterface/Main.html:

Added GeneralTabBarItem, PinnedTabBarItem, and SettingsTabContentView.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):

  • UserInterface/Views/VisualStylePropertyEditor.js:

(WebInspector.VisualStylePropertyEditor.generateFormattedTextForNewProperty):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Now uses WebInspector.indentUnit for indentation values

  • UserInterface/Views/CodeMirrorAdditions.js:

Added "showWhitespaceCharacter" option to CodeMirror. When enabled, it adds an overlay to
the editor that will use pseudo-elements to display whitespace characters (unicode 00B7).

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .cm-tab):
(.show-whitespace-characters .CodeMirror .cm-tab::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-1::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-2::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-3::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-4::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-5::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-6::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-7::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-8::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-9::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-10::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-11::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-12::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-13::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-14::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-15::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-16::before):
(.show-invalid-characters .CodeMirror .cm-invalidchar):
(.CodeMirror .cm-invalidchar): Deleted.
Use unicode character 00B7 (middle dot) to display a space. Also uses a grey border for
visualizing tab characters.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:
  • UserInterface/Views/ClusterContentView.js:
  • UserInterface/Views/DOMTreeContentView.js:
  • UserInterface/Views/DatabaseContentView.js:
  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
  • UserInterface/Views/NetworkGridContentView.js:
  • UserInterface/Views/ResourceContentView.js:
  • UserInterface/Views/ScriptContentView.js:
  • UserInterface/Views/TabContentView.js:
  • UserInterface/Views/TimelineRecordingContentView.js:

Add calls to super.shown(), super.hidden(), and super.closed().

  • UserInterface/Views/ConsoleTabContentView.js:
  • UserInterface/Views/DebuggerTabContentView.js:
  • UserInterface/Views/ElementsTabContentView.js:
  • UserInterface/Views/NetworkTabContentView.js:
  • UserInterface/Views/NewTabContentView.js:
  • UserInterface/Views/ResourcesTabContentView.js:
  • UserInterface/Views/SearchTabContentView.js:
  • UserInterface/Views/StorageTabContentView.js:
  • UserInterface/Views/TimelineTabContentView.js:

Now uses WebInspector.GeneralTabBarItem.

  • UserInterface/Views/GeneralTabBarItem.js: Added.

(WebInspector.GeneralTabBarItem):
(WebInspector.GeneralTabBarItem.prototype.set title):
(WebInspector.GeneralTabBarItem.prototype._handleContextMenuEvent):
Split from TabBarItem.js to make pinned tab bar items more distinct.

  • UserInterface/Views/Main.css:

(body):
Removed tab-size.

  • UserInterface/Views/PinnedTabBarItem.js: Added.

(WebInspector.PinnedTabBarItem):
Split from TabBarItem.js to make pinned tab bar items more distinct.

  • UserInterface/Views/SettingsTabContentView.css: Added.

(.content-view.settings):
(.content-view.settings > .header):
(.content-view.settings > .setting-container):
(.content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.tabInfo):
(WebInspector.SettingsTabContentView.isEphemeral):
(WebInspector.SettingsTabContentView.shouldSaveTab):
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView.isTabAllowed): Deleted.
(WebInspector.SettingsTabContentView.prototype.get type): Deleted.
Added logic to display an appropriate editor for each item in WebInspector.settings.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.close):
Add call to super.close().

  • UserInterface/Views/TabBar.css:

(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover):
(.tab-bar > .item:not(.pinned) > .flex-space:last-child):
(.tab-bar > .item.pinned > .icon):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,): Deleted.
(.tab-bar > .item > .flex-space:last-child): Deleted.
(.tab-bar > .item.new-tab-button > .icon): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon,): Deleted.
Removed rules specifically targeting .new-tab-button.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar):
(WebInspector.TabBar.prototype.get newTabTabBarItem):
(WebInspector.TabBar.prototype.updateNewTabTabBarItemState):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.removeTabBarItem):
(WebInspector.TabBar.prototype.selectPreviousTab):
(WebInspector.TabBar.prototype.selectNextTab):
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype.hasNormalTab):
(WebInspector.TabBar.prototype.layout):
(WebInspector.TabBar.prototype._hasMoreThanOneNormalTab):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseLeave):
(WebInspector.TabBar.prototype._handleNewTabClick):
(WebInspector.TabBar.prototype._handleNewTabMouseEnter):
(WebInspector.TabBar.prototype.get newTabItem): Deleted.
(WebInspector.TabBar.prototype.set newTabItem): Deleted.
Replaced the newTabItem setter by adding a saved pinned tab bar item (instead of relying
upon a different object to give it the pinned tab bar item) that changes modes depending on
whether a new tab is able to be created.

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype.get element):
(WebInspector.TabBarItem.prototype.get representedObject):
(WebInspector.TabBarItem.prototype.set representedObject):
(WebInspector.TabBarItem.prototype.get parentTabBar):
(WebInspector.TabBarItem.prototype.set parentTabBar):
(WebInspector.TabBarItem.prototype.get image):
(WebInspector.TabBarItem.prototype.set image):
(WebInspector.TabBarItem.prototype.get title):
(WebInspector.TabBarItem.prototype.set title):
(WebInspector.TabBarItem.prototype.get pinned): Deleted.
(WebInspector.TabBarItem.prototype._handleContextMenuEvent): Deleted.
Split into GeneralTabBarItem and PinnedTabBarItem to simplify the logic of the DOM and allow
for easier checking of whether a tab bar item is pinned or not.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
(WebInspector.TabBrowser.prototype._tabBarItemSelected):
(WebInspector.TabBrowser.prototype._tabBarItemRemoved):
Replaced references to newTabItem with a set number (since each TabBar has a specific number
of pinned tabs).

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.close):.
Remove settings update event listeners to allow garbage collection.

(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
(WebInspector.TextEditor.prototype._startCodeMirrorPrettyPrint):
Now uses the settings values in WebInspector.setting for settings on the CodeMirror
instance. Also updates the CodeMirror instance if any setting changes.

6:06 PM Changeset in webkit [208090] by Wenson Hsieh
  • 17 edits
    4 adds in trunk

iOS autocorrection does not trigger an input event of inputType "insertReplacementText"
https://bugs.webkit.org/show_bug.cgi?id=164077
<rdar://problem/28987810>

Reviewed by Simon Fraser.

Source/WebCore:

Fixes candidate insertion on iOS, so that it fires input events of type "insertReplacementText" and adds two
iOS unit tests covering this change as well as the test infrastructure needed to support these tests. See
comments below for more details.

Tests: fast/events/ios/before-input-events-prevent-candidate-insertion.html

fast/events/ios/input-events-insert-replacement-text.html

  • dom/TextEvent.h:

Adds isAutocompletion() to TextEvent, as well as the TextEventInputAutocompletion text input type. When the
Editor handles this TextEvent, it will use this information when creating or modifying the corresponding typing
command.

  • dom/TextEventInputType.h:
  • editing/Editor.cpp:

(WebCore::Editor::insertText):
(WebCore::Editor::insertTextWithoutSendingTextEvent):

  • editing/Editor.h:
  • editing/TypingCommand.cpp:

(WebCore::editActionForTypingCommand):

Now takes whether the command is autocorrection into account. If so, the corresponding edit action should be
EditActionInsertReplacement rather than EditActionTypingInsertText.

(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::inputEventData):
(WebCore::TypingCommand::willAddTypingToOpenCommand):

  • editing/TypingCommand.h:

Adds a new TypingCommand option, IsAutocompletion.

Source/WebKit2:

Small tweak to mark text insertion when autocorrecting as such, as opposed to regular keyboard input.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::syncApplyAutocorrection):

Tools:

Adds test support for inserting text candidates on iOS in the form of
UIScriptController.selectTextCandidateAtIndex(index, callback), which selects the text candidate at a given
index (this needs to be a value between 0-2 on iOS) and fires the callback when done.

To implement this, we wait for the text prediction view to have predictions (we determine this by polling at a
given interval) and then tap the center of the text prediction view at the given index.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::selectTextCandidateAtIndex):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::selectTextCandidateAtIndex):
(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIKitSPI.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::selectTextCandidateAtIndex):
(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

LayoutTests:

Adds 2 new unit tests verifying that candidate text insertion can be prevented via beforeinput events, and that
beforeinput and input events of type "insertReplacementText" are fired when inserting candidate text on iOS.

  • fast/events/ios/before-input-events-prevent-candidate-insertion-expected.txt: Added.
  • fast/events/ios/before-input-events-prevent-candidate-insertion.html: Added.
  • fast/events/ios/input-events-insert-replacement-text-expected.txt: Added.
  • fast/events/ios/input-events-insert-replacement-text.html: Added.
5:31 PM Changeset in webkit [208089] by achristensen@apple.com
  • 9 edits in trunk

Unreviewed, rolling out r207700.
https://bugs.webkit.org/show_bug.cgi?id=164168

We are ready after r208086 (Requested by alexchristensen on
#webkit).

Reverted changeset:

"Unreviewed, rolling out r207582."
https://bugs.webkit.org/show_bug.cgi?id=163819
http://trac.webkit.org/changeset/207700

Patch by Commit Queue <commit-queue@webkit.org> on 2016-10-28

5:28 PM Changeset in webkit [208088] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Allow unknown properties in will-change
https://bugs.webkit.org/show_bug.cgi?id=164165

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWillChange):

5:20 PM Changeset in webkit [208087] by achristensen@apple.com
  • 11 edits in trunk

Partially revert 207805 after resolution in URL spec issue 87
https://bugs.webkit.org/show_bug.cgi?id=164142

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

Covered by updated layout tests and API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::isSingleDotPathSegment):
(WebCore::URLParser::isDoubleDotPathSegment):
(WebCore::URLParser::consumeSingleDotPathSegment):
(WebCore::URLParser::consumeDoubleDotPathSegment):
Treat %2e%2e as .. and %2e as . but only if it is entirety of the path segment.
There are tests for URLs like http://host/abc%2edef which have not changed because
the %2e is not the entirety of the path segment.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • fast/url/path-expected.txt:
  • fetch/fetch-url-serialization-expected.txt:
5:17 PM Changeset in webkit [208086] by achristensen@apple.com
  • 4 edits in trunk

URLParser should not try to interpret host of URLs with unrecognized schemes as IPv4 address
https://bugs.webkit.org/show_bug.cgi?id=164154

Reviewed by Andy Estes.

Source/WebCore:

This is needed to match behavior of all browsers.
This is being discussed in the spec at https://github.com/whatwg/url/issues/148

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parseHostAndPort):
Only try to parse and canonicalize the host as an IPv4 address if the scheme is special (http, wss, etc.)

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

5:14 PM Changeset in webkit [208085] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

5:05 PM Changeset in webkit [208084] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.3.6

New tag.

4:53 PM Changeset in webkit [208083] by Chris Dumez
  • 5 edits in trunk

DOMStringMap reports properties as non-enumerable
https://bugs.webkit.org/show_bug.cgi?id=164114

Reviewed by Sam Weinig.

Source/WebCore:

DOMStringMap's named properties should be configurable, enumerable
and writable as per:

Firefox and Chrome agree with the specification. However, WebKit
was doing the complete opposite.

No new tests, updated existing test.

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/dataset-name-getter-properties-expected.txt:
  • fast/dom/dataset-name-getter-properties.html:
4:49 PM Changeset in webkit [208082] by rniwa@webkit.org
  • 24 edits
    1 copy
    25 adds in trunk

Add CEReactions to the remaining HTML DOM APIs
https://bugs.webkit.org/show_bug.cgi?id=163969

Reviewed by Chris Dumez.

Source/WebCore:

Added CEReactions to the remaining DOM and HTML APIs as needed.

Tests: fast/custom-elements/reactions-for-indieui.html

fast/custom-elements/reactions/Document.html
fast/custom-elements/reactions/HTMLAnchorElement.html
fast/custom-elements/reactions/HTMLOptionElement.html
fast/custom-elements/reactions/HTMLOptionsCollection.html
fast/custom-elements/reactions/HTMLOutputElement.html
fast/custom-elements/reactions/HTMLSelectElement.html
fast/custom-elements/reactions/HTMLTableElement.html
fast/custom-elements/reactions/HTMLTableRowElement.html
fast/custom-elements/reactions/HTMLTableSectionElement.html
fast/custom-elements/reactions/HTMLTitleElement.html
fast/custom-elements/reactions/ShadowRoot.html

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::setLength):
(WebCore::JSHTMLOptionsCollection::indexSetter):

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::JSHTMLSelectElement::indexSetter):

  • dom/CharacterData.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/ShadowRoot.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLDocument.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTitleElement.idl:

LayoutTests:

Added W3C style testharness.js tests for CEReactions to various HTMLElements under fast/custom-elements/reactions.
Also added some WebKit specific tests using the same harness outside that directory.

  • fast/custom-elements/reactions-for-indieui-expected.txt: Added.
  • fast/custom-elements/reactions-for-indieui.html: Added.
  • fast/custom-elements/reactions-for-webkit-extensions-expected.txt:
  • fast/custom-elements/reactions-for-webkit-extensions.html:
  • fast/custom-elements/reactions/Document-expected.txt: Added.
  • fast/custom-elements/reactions/Document.html: Added.
  • fast/custom-elements/reactions/HTMLAnchorElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLAnchorElement.html: Added.
  • fast/custom-elements/reactions/HTMLOptionElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLOptionElement.html: Added.
  • fast/custom-elements/reactions/HTMLOptionsCollection-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLOptionsCollection.html: Added.
  • fast/custom-elements/reactions/HTMLOutputElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLOutputElement.html: Added.
  • fast/custom-elements/reactions/HTMLSelectElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLSelectElement.html: Added.
  • fast/custom-elements/reactions/HTMLTableElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTableElement.html: Added.
  • fast/custom-elements/reactions/HTMLTableRowElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTableRowElement.html: Added.
  • fast/custom-elements/reactions/HTMLTableSectionElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTableSectionElement.html: Added.
  • fast/custom-elements/reactions/HTMLTitleElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTitleElement.html: Added.
  • fast/custom-elements/reactions/ShadowRoot-expected.txt: Added.
  • fast/custom-elements/reactions/ShadowRoot.html: Added.
  • fast/custom-elements/resources/additional-helpers.js: Added.
  • fast/custom-elements/upgrading-enqueue-reactions-expected.txt:
  • fast/custom-elements/upgrading-enqueue-reactions.html:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
4:39 PM Changeset in webkit [208081] by achristensen@apple.com
  • 2 edits
    1 move
    1 add in trunk/Source/WebKit2

Rename SharedMemoryMac to SharedMemoryCocoa
https://bugs.webkit.org/show_bug.cgi?id=164156

Patch by Megan Gardner <Megan Gardner> on 2016-10-28
Reviewed by Alex Christensen.

Renamed SharedMemoryMac to SharedMemoryCocoa, as it runs on all cocoa platforms, not exclusively just mac, and
thus should be named to reflect that reality.

  • Platform/cocoa: Added.
  • Platform/cocoa/SharedMemoryCocoa.cpp: Copied from Source/WebKit2/Platform/mac/SharedMemoryMac.cpp.
  • Platform/mac/SharedMemoryMac.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
4:35 PM Changeset in webkit [208080] by commit-queue@webkit.org
  • 27 edits
    5 copies
    5 adds in trunk

[Modern Media Controls] Media Controller: volume control support
https://bugs.webkit.org/show_bug.cgi?id=163727

Patch by Antoine Quint <Antoine Quint> on 2016-10-28
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the VolumeSupport class which brings support for modifying the media
volume by interacting with the mute volume slider in the media controls and correctly
reflecting the media's volume should it be changed via the media API.

Tests: media/modern-media-controls/volume-support/volume-support-click.html

media/modern-media-controls/volume-support/volume-support-drag.html
media/modern-media-controls/volume-support/volume-support-media-api-mute.html
media/modern-media-controls/volume-support/volume-support-media-api.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/volume-support.js: Added.

(VolumeSupport.prototype.get control):
(VolumeSupport.prototype.get mediaEvents):
(VolumeSupport.prototype.controlValueWillStartChanging):
(VolumeSupport.prototype.controlValueDidChange):
(VolumeSupport.prototype.syncControl):
(VolumeSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding new tests for VolumeSupport and adding the new resource to other MediaController tests.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/playback-support/playback-support-autoplay.html:
  • media/modern-media-controls/playback-support/playback-support-button-click.html:
  • media/modern-media-controls/playback-support/playback-support-media-api.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-click.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api.html:
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
  • media/modern-media-controls/volume-support/volume-support-click-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-click.html: Added.
  • media/modern-media-controls/volume-support/volume-support-drag-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-drag.html: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api-mute-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api-mute.html: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api.html: Added.
  • platform/ios-simulator/TestExpectations:
4:28 PM Changeset in webkit [208079] by Joseph Pecoraro
  • 2 edits in branches/safari-602-branch/LayoutTests

Fix merge r207229. rdar://problem/29007278

  • inspector/console/console-log-proxy.html:
4:19 PM Changeset in webkit [208078] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[DOMJIT] Include identifier name in CallDOMGetter to dump it
https://bugs.webkit.org/show_bug.cgi?id=164161

Reviewed by Mark Lam.

This patch adds an identifier number to CallDOMGetterData and use it when dumping the data.
CallDOMGetter did not include identifier. It made CallDOMGetter super hard to debug when dumping DFG graph.

The dump becomes like this.

CallDOMGetter(Cell:@21, JS|MustGen|UseAsOther, Nonboolint32, id0{customGetter}, domJIT = 0x42f8a0, R:World, W:Heap, Exits, ClobbersExit, bc#15) predicting Nonboolint32

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::handleGetById):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGNode.h:
3:57 PM Changeset in webkit [208077] by Yusuke Suzuki
  • 26 edits
    1 move in trunk/Source

[DOMJIT] Rename CallDOM to CallDOMGetter
https://bugs.webkit.org/show_bug.cgi?id=164157

Reviewed by Keith Miller.

Source/JavaScriptCore:

Rename CallDOM to CallDOMGetter to represent that
this is used for DOMJIT getter explicitly.
CallDOM will be used for DOM functions (like element.getAttribute()) later.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::emitDOMJITGetter):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::blessCallDOMGetter):
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::blessCallDOM): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasCallDOMGetterData):
(JSC::DFG::Node::callDOMGetterData):
(JSC::DFG::Node::hasCallDOMData): Deleted.
(JSC::DFG::Node::callDOMData): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
(JSC::DFG::SpeculativeJIT::compileCallDOM): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • domjit/DOMJITCallDOMGetterPatchpoint.h: Renamed from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(JSC::DOMJIT::CallDOMGetterPatchpoint::create):

  • domjit/DOMJITGetterSetter.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM): Deleted.

  • jsc.cpp:

Source/WebCore:

No behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:
  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::DocumentDocumentElementDOMJIT::callDOMGetter):
(WebCore::DocumentDocumentElementDOMJIT::callDOM): Deleted.

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMGetterForOffsetAccess):
(WebCore::NodeFirstChildDOMJIT::callDOMGetter):
(WebCore::NodeLastChildDOMJIT::callDOMGetter):
(WebCore::NodeNextSiblingDOMJIT::callDOMGetter):
(WebCore::NodePreviousSiblingDOMJIT::callDOMGetter):
(WebCore::NodeParentNodeDOMJIT::callDOMGetter):
(WebCore::NodeNodeTypeDOMJIT::callDOMGetter):
(WebCore::NodeOwnerDocumentDOMJIT::callDOMGetter):
(WebCore::createCallDOMForOffsetAccess): Deleted.
(WebCore::NodeFirstChildDOMJIT::callDOM): Deleted.
(WebCore::NodeLastChildDOMJIT::callDOM): Deleted.
(WebCore::NodeNextSiblingDOMJIT::callDOM): Deleted.
(WebCore::NodePreviousSiblingDOMJIT::callDOM): Deleted.
(WebCore::NodeParentNodeDOMJIT::callDOM): Deleted.
(WebCore::NodeNodeTypeDOMJIT::callDOM): Deleted.
(WebCore::NodeOwnerDocumentDOMJIT::callDOM): Deleted.

3:19 PM Changeset in webkit [208076] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Fix font-family parsing inside @font-face
https://bugs.webkit.org/show_bug.cgi?id=164155

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseFontFaceDescriptor):
Use the full font-family parsing that returns a CSSValueList,
since we can handle multiple families.

3:10 PM Changeset in webkit [208075] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win][Direct2D] Implement ImageBufferData::putData.
https://bugs.webkit.org/show_bug.cgi?id=164151

Reviewed by Brent Fulgham.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData):
(WebCore::ImageBufferData::putData):

2:57 PM Changeset in webkit [208074] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix in CLoop builds after r208063.

Include required headers.

  • parser/Parser.h:
  • runtime/Completion.cpp:
  • runtime/JSGlobalObjectFunctions.cpp:
2:52 PM Changeset in webkit [208073] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support hanging-punctuation
https://bugs.webkit.org/show_bug.cgi?id=164153

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeHangingPunctuation):
(WebCore::CSSPropertyParser::parseSingleValue):

2:37 PM Changeset in webkit [208072] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Include parameter strings for native CustomElementRegistry methods in the console
https://bugs.webkit.org/show_bug.cgi?id=164147

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-28
Reviewed by Brian Burg.

  • UserInterface/Models/NativeFunctionParameters.js:
2:35 PM Changeset in webkit [208071] by Ryan Haddad
  • 14 edits in trunk/Source/JavaScriptCore

Update reference files for builtins generator tests after r208063.

Unreviewed test gardening.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
2:33 PM Changeset in webkit [208070] by Yusuke Suzuki
  • 9 edits
    2 copies
    5 adds in trunk

[DOMJIT] Implement Document::documentElement
https://bugs.webkit.org/show_bug.cgi?id=164113

Reviewed by Sam Weinig.

Source/WebCore:

Test: js/dom/domjit-accessor-document-element.html

This patch implements document.documentElement DOMJIT accessor.
Similar to ownerDocument accessor, the way to access to document.documentElement
from JIT code is already prepared for CSSJIT. DOMJIT just utilizes the existing
functionality: using documentElementMemoryOffset().

document.documentElement is frequently called in jQuery. Especially, every time
we call jQuery.attr(), this is called.

To implement Document accessor, we clean up some code in DOMJITHelpers.
We create the cpp file for DOMJITHelpers and move some helpers to it.
And we also implement DOMJIT::checkDOM<DOMInterface> for convenience.
It returns appropriate CheckDOM patchpoint implementation.

This patch improves Dromaeo jslib-attr-jquery.html 10% (481.64 v.s. 532.54).

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot):

  • dom/Document.idl:
  • domjit/DOMJITAbstractHeapRepository.h:
  • domjit/DOMJITCheckDOM.h: Copied from Source/WebCore/domjit/DOMJITAbstractHeapRepository.h.

(WebCore::DOMJIT::TypeChecker<Node>::branchIfFail):
(WebCore::DOMJIT::TypeChecker<Document>::branchIfFail):
(WebCore::DOMJIT::TypeChecker<Event>::branchIfFail):
(WebCore::DOMJIT::TypeChecker<Element>::branchIfFail):
(WebCore::DOMJIT::checkDOM):

  • domjit/DOMJITHelpers.cpp: Copied from Source/WebCore/domjit/DOMJITAbstractHeapRepository.h.

(WebCore::DOMJIT::loadDocument):
(WebCore::DOMJIT::loadDocumentElement):

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::toWrapperSlow):
(WebCore::DOMJIT::loadDocument): Deleted.

  • domjit/JSDocumentDOMJIT.cpp: Added.

(WebCore::DocumentDocumentElementDOMJIT::checkDOM):
(WebCore::DocumentDocumentElementDOMJIT::callDOM):

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMForOffsetAccess):
(WebCore::NodeFirstChildDOMJIT::checkDOM):
(WebCore::NodeLastChildDOMJIT::checkDOM):
(WebCore::NodeNextSiblingDOMJIT::checkDOM):
(WebCore::NodePreviousSiblingDOMJIT::checkDOM):
(WebCore::NodeParentNodeDOMJIT::checkDOM):
(WebCore::NodeNodeTypeDOMJIT::checkDOM):
(WebCore::NodeOwnerDocumentDOMJIT::checkDOM):
(WebCore::NodeOwnerDocumentDOMJIT::callDOM):
(WebCore::toWrapperSlow): Deleted.
(WebCore::checkNode): Deleted.

LayoutTests:

  • js/dom/domjit-accessor-document-element-changed-expected.txt: Added.
  • js/dom/domjit-accessor-document-element-changed.html: Added.
  • js/dom/domjit-accessor-document-element-expected.txt: Added.
  • js/dom/domjit-accessor-document-element.html: Added.
2:12 PM Changeset in webkit [208069] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support initial-letter
https://bugs.webkit.org/show_bug.cgi?id=164150

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeInitialLetter):
(WebCore::CSSPropertyParser::parseSingleValue):

2:02 PM Changeset in webkit [208068] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Remove some unused code in RenderLayerCompositor::computeExtent()
https://bugs.webkit.org/show_bug.cgi?id=163934

Reviewed by Zalan Bujtas.

viewportRect was never used.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeExtent):

1:54 PM Changeset in webkit [208067] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Add wasm/js directory to JSC include directories in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=164145

Reviewed by Michael Catanzaro.

Attempt to fix CMake ports. We include a file under wasm/js.
But we didn't add it to JSC include directories.

  • CMakeLists.txt:
1:53 PM Changeset in webkit [208066] by weinig@apple.com
  • 8 edits in trunk

[WebIDL] Update parser and code generators to only access type information through the type property
https://bugs.webkit.org/show_bug.cgi?id=164141

Reviewed by Anders Carlsson.

Source/WebCore:

Update IDLParser structs:

  • domSignature: Rename idlType to type. Specify that type is a domType.
  • domInterface: Remove name and parent. Specify that type and parentType are a domTypes.
  • domFunction: Specify that signature is a domSignature.
  • domAttribute: Remove unused type. Specify that signature is a domSignature.
  • domIterable: Remove idlKeyType and valueKeyType. Specify that keyType and valueType are a domTypes
  • domConstant: Specify that type is a domType.
  • domEnum: Specify that type is a domType.
  • domDictionary: Remove name and parent. Specify that type and parentType are a domTypes.
  • Typedef: Rename idlType to type and specify that it is a domType.
  • bindings/scripts/IDLParser.pm:

Remove redundant properties and specify type info in structs where possible.

  • bindings/scripts/CodeGenerator.pm:

(IsSVGTypeNeedingTearOffForType): Renamed to remove ForType suffix.
(IsSVGTypeWithWritablePropertiesNeedingTearOffForType): Renamed to remove ForType suffix.
(GetSVGTypeNeedingTearOffForType): Renamed to remove ForType suffix.
(GetSVGWrappedTypeNeedingTearOffForType): Renamed to remove ForType suffix.

Update to always access type information through type accessors. Remove use of removed
properties.

  • bindings/scripts/CodeGeneratorJS.pm:

(IsNullableType): Deleted.
(StripNullable): Deleted.
Remove unused functions.

Update to always access type information through type accessors. Remove use of removed
properties.

  • bindings/scripts/generate-bindings.pl:

Update to always access type information through type accessors. Remove use of removed
properties.

Tools:

  • DumpRenderTree/Bindings/CodeGeneratorDumpRenderTree.pm:
  • WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:

Update to always access type information through type accessors. Remove use of removed
properties.

1:45 PM Changeset in webkit [208065] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support bopomofo Ruby
https://bugs.webkit.org/show_bug.cgi?id=164148

Reviewed by Simon Fraser.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

1:41 PM Changeset in webkit [208064] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Add support for -webkit-canvas images
https://bugs.webkit.org/show_bug.cgi?id=164144

Reviewed by Simon Fraser.

  • css/CSSValueKeywords.in:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeWebkitCanvas):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::isGeneratedImage):

1:04 PM Changeset in webkit [208063] by ggaren@apple.com
  • 40 edits
    14 copies
    3 moves in trunk/Source

One file per class for Executable.h/.cpp
https://bugs.webkit.org/show_bug.cgi?id=164099

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins_generate_combined_implementation.py:

(BuiltinsCombinedImplementationGenerator.generate_secondary_header_includes):

  • Scripts/builtins/builtins_generate_separate_implementation.py:

(BuiltinsSeparateImplementationGenerator.generate_secondary_header_includes):

  • builtins/BuiltinExecutables.cpp:
  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::prepareForExecution):

  • bytecode/CodeOrigin.cpp:
  • bytecode/EvalCodeCache.h:
  • bytecode/InlineCallFrame.cpp:
  • bytecode/UnlinkedCodeBlock.cpp:
  • bytecode/UnlinkedFunctionExecutable.cpp:
  • bytecompiler/StaticPropertyAnalysis.h:
  • debugger/DebuggerLocation.cpp:
  • dfg/DFGCapabilities.h:
  • dfg/DFGOSRExitPreparation.cpp:
  • dfg/DFGToFTLDeferredCompilationCallback.cpp:
  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
  • interpreter/StackVisitor.cpp:
  • jit/JITThunks.cpp:
  • jit/JITToDFGDeferredCompilationCallback.cpp:
  • jit/SpecializedThunkJIT.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • parser/Parser.h:
  • runtime/CallData.cpp:
  • runtime/ConstructData.cpp:
  • runtime/EvalExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/EvalExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/Executable.cpp: Removed.
  • runtime/Executable.h: Removed.
  • runtime/ExecutableBase.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/ExecutableBase.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/FunctionExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/FunctionExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/FunctionExecutableDump.h:
  • runtime/JSArray.cpp:
  • runtime/JSFunctionInlines.h:
  • runtime/JSModuleRecord.cpp:
  • runtime/JSObject.cpp:
  • runtime/Lookup.cpp:
  • runtime/ModuleProgramExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/ModuleProgramExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/NativeExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/NativeExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/ProgramExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/ProgramExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/SamplingProfiler.cpp:
  • runtime/ScriptExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.

  • runtime/ScriptExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(): Deleted.
(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/StringConstructor.cpp:
  • runtime/StringPrototype.cpp:
  • runtime/WebAssemblyExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/WebAssemblyExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

Source/WebCore:

  • ForwardingHeaders/runtime/Executable.h: Removed.
  • ForwardingHeaders/runtime/FunctionExecutable.h: Copied from Source/WebCore/ForwardingHeaders/runtime/Executable.h.
  • bindings/js/JSLazyEventListener.cpp:
  • bindings/js/JSMainThreadExecStateInstrumentation.h:
12:40 PM Changeset in webkit [208062] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Clean up gradient parsing
https://bugs.webkit.org/show_bug.cgi?id=164139

Reviewed by Dean Jackson.

  • css/CSSGradientValue.cpp:

(WebCore::positionFromValue):
(WebCore::CSSGradientValue::computeEndPoint):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):

11:58 AM Changeset in webkit [208061] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Upgrade HarfBuzz to version 1.3.3
https://bugs.webkit.org/show_bug.cgi?id=162719

Patch by Frederic Wang <fwang@igalia.com> on 2016-10-28
Reviewed by Michael Catanzaro.

  • gtk/jhbuild.modules:
11:53 AM Changeset in webkit [208060] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

New CSS Parser should use Colors not RGBA32s
https://bugs.webkit.org/show_bug.cgi?id=164124
<rdar://problem/29000373>

Reviewed by Darin Adler.

The old parser has moved from using RGBA32 values to using
Colors directly. This was so we could support ExtendedColors
via the new color() syntax.

Update the new CSS parser to do the same.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHexColor):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
(WebCore::CSSPropertyParserHelpers::consumeColor):

11:49 AM Changeset in webkit [208059] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Allow new CSS parser to handle insertRule, etc via parseRule
https://bugs.webkit.org/show_bug.cgi?id=164122
<rdar://problem/29000101>

Reviewed by Darin Adler.

Call the new CSS parser from CSSParser::parseRule if enabled. This
allows style added via the CSSOM insertRule to go through
the parser.

I tested this across our layout tests that use insertRule. It
works fine, but does cause some filter tests to fail. This is
because the new parser does not generate WebKitCSSFilterValues,
but I think the CSSFunctionValue is good enough. I'll remove
WebKitCSSFilterValue separately.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseRule): Call CSSParserImpl::parseRule.

11:34 AM Changeset in webkit [208058] by Simon Fraser
  • 3 edits
    4 adds in trunk

Wrong blur radius for filter: drop-shadow()
https://bugs.webkit.org/show_bug.cgi?id=163667

Reviewed by Darin Adler.

Source/WebCore:

The "stdDev" parameter to <feDropShadow> and <feGaussianBlur> represents the standard
deviation (σ) of the Gaussian blur function. CSS filters drop-shadow() and blur() follow
this with their radius parameter.

However, CSS box-shadow and text-shadow use 2σ to describe the blur radius, since this
is conveniently close to the number of pixels the effect of the blur extends out.

feDropShadow, which is used by non-accelerated filter: drop-shadow(), was using
the wrong blur radius because it passed its stdDev directly to ShadowBlur. ShadowBlur
was written for CSS box-shadow, so expected its input "blur radius" to be twice the
stdDev.

Tests: css3/filters/drop-shadow-blur-radius.html

svg/filters/feDropShadow-blur-radius.html

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

LayoutTests:

Mismatch tests to detect that the blurry area extends out from under a masking
element on top.

  • css3/filters/drop-shadow-blur-radius-expected-mismatch.html: Added.
  • css3/filters/drop-shadow-blur-radius.html: Added.
  • svg/filters/feDropShadow-blur-radius-expected-mismatch.html: Added.
  • svg/filters/feDropShadow-blur-radius.html: Added.
11:09 AM Changeset in webkit [208057] by commit-queue@webkit.org
  • 62 edits
    6 adds in trunk

Expose RTCPeerConnection unprefixed
https://bugs.webkit.org/show_bug.cgi?id=164060

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-28
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt: Added.
  • web-platform-tests/webrtc/no-media-call-expected.txt: Added.
  • web-platform-tests/webrtc/promises-call-expected.txt: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt: Added.
  • web-platform-tests/webrtc/simplecall-expected.txt: Added.

Source/WebCore:

Covered by rebased and activated tests.

  • Modules/mediastream/RTCPeerConnection.idl:

LayoutTests:

  • TestExpectations:
  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
  • fast/mediastream/RTCPeerConnection-add-removeTrack.html:
  • fast/mediastream/RTCPeerConnection-addIceCandidate.html:
  • fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html:
  • fast/mediastream/RTCPeerConnection-addTransceiver.html:
  • fast/mediastream/RTCPeerConnection-closed-state-expected.txt:
  • fast/mediastream/RTCPeerConnection-closed-state.html:
  • fast/mediastream/RTCPeerConnection-createAnswer.html:
  • fast/mediastream/RTCPeerConnection-createOffer.html:
  • fast/mediastream/RTCPeerConnection-datachannel.html:
  • fast/mediastream/RTCPeerConnection-dtmf.html:
  • fast/mediastream/RTCPeerConnection-events.html:
  • fast/mediastream/RTCPeerConnection-expected.txt:
  • fast/mediastream/RTCPeerConnection-getConfiguration.html:
  • fast/mediastream/RTCPeerConnection-have-local-offer.html:
  • fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
  • fast/mediastream/RTCPeerConnection-have-remote-offer.html:
  • fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
  • fast/mediastream/RTCPeerConnection-ice-expected.txt:
  • fast/mediastream/RTCPeerConnection-ice.html:
  • fast/mediastream/RTCPeerConnection-icecandidate-event.html:
  • fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html:
  • fast/mediastream/RTCPeerConnection-inspect-answer.html:
  • fast/mediastream/RTCPeerConnection-inspect-offer.html:
  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt:
  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:
  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html:
  • fast/mediastream/RTCPeerConnection-localDescription.html:
  • fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html:
  • fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
  • fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html:
  • fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html:
  • fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-expected.txt:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
  • fast/mediastream/RTCPeerConnection-overloaded-operations.html:
  • fast/mediastream/RTCPeerConnection-remoteDescription.html:
  • fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
  • fast/mediastream/RTCPeerConnection-stable.html:
  • fast/mediastream/RTCPeerConnection-stats-expected.txt:
  • fast/mediastream/RTCPeerConnection-stats.html:
  • fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
  • fast/mediastream/RTCPeerConnection-statsSelector.html:
  • fast/mediastream/RTCPeerConnection.html:
  • fast/mediastream/RTCRtpSender-replaceTrack.html:
  • fast/mediastream/RTCTrackEvent-constructor.html:
  • platform/efl/TestExpectations:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/TestExpectations:
10:52 AM Changeset in webkit [208056] by mark.lam@apple.com
  • 4 edits in branches/safari-602-branch/Source/JavaScriptCore

Merge r208018. rdar://problem/28962887, rdar://problem/28962912

2016-10-27 Mark Lam <mark.lam@apple.com>

JSFunction::put() should not allow caching of lazily reified properties.
https://bugs.webkit.org/show_bug.cgi?id=164081

Reviewed by Geoffrey Garen.

It is incorrect for JSFunction::put() to return PutPropertySlots that indicates
that its lazily reified properties (e.g. .caller, and .arguments) are cacheable.
The reason for this is:

  1. Currently, a cacheable put may only consist of the following types of put operations:
    1. putting a new property at an offset in the object storage.
    2. changing the value of an existing property at an offset in the object storage.
    3. invoking the setter for a property at an offset in the object storage.

Returning a PutPropertySlot that indicates the property is cacheable means that
the property put must be one of the above operations.

For lazily reified properties, JSFunction::put() implements complex conditional
behavior that is different than the set of cacheable put operations above.
Hence, it should not claim that the property put is cacheable.


  1. Cacheable puts are cached on the original structure of the object before the put operation.

Reifying a lazy property will trigger a structure transition. Even though
subsequent puts to such a property may be cacheable after the structure
transition, it is incorrect to indicate that the property put is cacheable
because the caching is on the original structure, not the new transitioned
structure.

Also fixed some missing exception checks.

  • jit/JITOperations.cpp:
  • runtime/JSFunction.cpp: (JSC::JSFunction::put): (JSC::JSFunction::reifyLazyPropertyIfNeeded): (JSC::JSFunction::reifyBoundNameIfNeeded):
  • runtime/JSFunction.h:
10:42 AM Changeset in webkit [208055] by hyatt@apple.com
  • 4 edits in trunk/Source/WebCore

[CSS Parser] Support the marquee properties
https://bugs.webkit.org/show_bug.cgi?id=164132

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitMarqueeIncrement):
(WebCore::consumeWebkitMarqueeRepetition):
(WebCore::consumeWebkitMarqueeSpeed):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

10:41 AM Changeset in webkit [208054] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

Fix busted layout test from previous check-in.

  • fast/multicol/column-box-alignment-rtl-expected.html:
10:15 AM Changeset in webkit [208053] by Csaba Osztrogonác
  • 2 edits in trunk/JSTests

Skip JSTests/microbenchmarks/dense-set.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=164128

Reviewed by Mark Lam.

  • microbenchmarks/dense-set.js:
9:37 AM Changeset in webkit [208052] by caitp@igalia.com
  • 29 edits
    16 adds in trunk

[JSC] implement runtime for async functions
https://bugs.webkit.org/show_bug.cgi?id=163760

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/async-await-basic.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(shouldThrowSyntaxError):
(let.AsyncFunction.async):
(async.asyncFunctionForProto):
(Object.getPrototypeOf.async):
(Object.getPrototypeOf.async.method):
(async):
(async.method):
(async.asyncNonConstructorDecl):
(shouldThrow.new.async):
(shouldThrow.new.async.nonConstructor):
(async.asyncDecl):
(async.f):
(MyError):
(async.asyncDeclThrower):
(shouldThrowAsync.async):
(resolveLater):
(rejectLater):
(async.resumeAfterNormal):
(O.async.resumeAfterNormal):
(resumeAfterNormalArrow.async):
(async.resumeAfterThrow):
(O.async.resumeAfterThrow):
(resumeAfterThrowArrow.async):
(catch):

  • stress/async-await-module-reserved-word.js: Added.

(shouldThrow):
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.async.await):
(SyntaxError.Cannot.declare.named):

  • stress/async-await-mozilla.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(assert):
(shouldThrowSyntaxError):
(mozSemantics.async.empty):
(mozSemantics.async.simpleReturn):
(mozSemantics.async.simpleAwait):
(mozSemantics.async.simpleAwaitAsync):
(mozSemantics.async.returnOtherAsync):
(mozSemantics.async.simpleThrower):
(mozSemantics.async.delegatedThrower):
(mozSemantics.async.tryCatch):
(mozSemantics.async.tryCatchThrow):
(mozSemantics.async.wellFinally):
(mozSemantics.async.finallyMayFail):
(mozSemantics.async.embedded.async.inner):
(mozSemantics.async.embedded):
(mozSemantics.async.fib):
(mozSemantics.async.isOdd.async.isEven):
(mozSemantics.async.isOdd):
(mozSemantics.hardcoreFib.async.fib2):
(mozSemantics.namedAsyncExpr.async.simple):
(mozSemantics.async.executionOrder.async.first):
(mozSemantics.async.executionOrder.async.second):
(mozSemantics.async.executionOrder.async.third):
(mozSemantics.async.executionOrder):
(mozSemantics.async.miscellaneous):
(mozSemantics.thrower):
(mozSemantics.async.defaultArgs):
(mozSemantics.shouldThrow):
(mozSemantics):
(mozMethods.X):
(mozMethods.X.prototype.async.getValue):
(mozMethods.X.prototype.setValue):
(mozMethods.X.prototype.async.increment):
(mozMethods.X.prototype.async.getBaseClassName):
(mozMethods.X.async.getStaticValue):
(mozMethods.Y.prototype.async.getBaseClassName):
(mozMethods.Y):
(mozFunctionNameInferrence.async.test):
(mozSyntaxErrors):

  • stress/async-await-reserved-word.js: Added.

(assert):
(shouldThrowSyntaxError):
(AsyncFunction.async):

  • stress/async_arrow_functions_lexical_arguments_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(noArgumentsArrow2.async):

  • stress/async_arrow_functions_lexical_new.target_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(C1):
(C2):
(shouldThrowAsync.async):

  • stress/async_arrow_functions_lexical_super_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(BaseClass.prototype.baseClassValue):
(BaseClass.prototype.get property):
(BaseClass):
(ChildClass.prototype.asyncSuperProp):
(ChildClass.prototype.asyncSuperProp2):
(ChildClass):
(ChildClass2):

  • stress/async_arrow_functions_lexical_this_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(d.y):

Source/JavaScriptCore:

Async functions generate bytecode equivalent to the following, which is
highly dependent on the Generator implementation:

`
Before translation:
async function asyncfn() {}

After translation:
function asyncfn() {

let generator = {

@generatorNext: function(@generator, @generatorState, @generatorValue, @generatorResumeMode, @generatorFrameState) {

Body of async function

},
@generatorState: 0,
@generatorThis: this,
@generatorFrameState: <frame state>,

};
return @asyncFunctionResume(generator, undefined, GeneratorResumeMode::NormalMode);

}
`

Await Expressions are equivalent to non-delegating Yield expressions, and emit identical bytecode.

There are some caveats to be addressed later:

1) the op_to_this is always performed, whether it's used or not, like normal generators. (https://bugs.webkit.org/show_bug.cgi?id=151586)

2) for async arrow functions, the home object is always stored on the "body" function, regardless of whether it's needed or
not, for the same reason as #1 (and should also be fixed as part of https://bugs.webkit.org/show_bug.cgi?id=151586)

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/AsyncFunctionPrototype.js: Added.

(asyncFunctionResume):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::isArrowFunction):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_async_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_async_func_exp):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionInfo):

  • parser/Parser.h:

(JSC::Scope::setSourceParseMode):

  • parser/ParserModes.h:

(JSC::isGeneratorOrAsyncFunctionBodyParseMode):
(JSC::isGeneratorOrAsyncFunctionWrapperParseMode):

  • runtime/AsyncFunctionConstructor.cpp: Added.

(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::finishCreation):
(JSC::callAsyncFunctionConstructor):
(JSC::constructAsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::getCallData):
(JSC::AsyncFunctionConstructor::getConstructData):

  • runtime/AsyncFunctionConstructor.h: Added.

(JSC::AsyncFunctionConstructor::create):
(JSC::AsyncFunctionConstructor::createStructure):

  • runtime/AsyncFunctionPrototype.cpp: Added.

(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype):
(JSC::AsyncFunctionPrototype::finishCreation):

  • runtime/AsyncFunctionPrototype.h: Added.

(JSC::AsyncFunctionPrototype::create):
(JSC::AsyncFunctionPrototype::createStructure):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/FunctionConstructor.h:
  • runtime/JSAsyncFunction.cpp: Added.

(JSC::JSAsyncFunction::JSAsyncFunction):
(JSC::JSAsyncFunction::createImpl):
(JSC::JSAsyncFunction::create):
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint):

  • runtime/JSAsyncFunction.h: Added.

(JSC::JSAsyncFunction::allocationSize):
(JSC::JSAsyncFunction::createStructure):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::lazyAsyncFunctionStructure):
(JSC::JSGlobalObject::asyncFunctionPrototype):
(JSC::JSGlobalObject::asyncFunctionPrototypeConcurrently):
(JSC::JSGlobalObject::asyncFunctionStructure):
(JSC::JSGlobalObject::asyncFunctionStructureConcurrently):

9:23 AM Changeset in webkit [208051] by hyatt@apple.com
  • 9 edits in trunk/Source/WebCore

[CSS Parser] Miscellaneous bug fixes
https://bugs.webkit.org/show_bug.cgi?id=164131

Reviewed by Zalan Bujtas.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSPropertyNames.in:

The prefix was incorrectly dropped from -webkit-column-progression.
Put it back.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertPositionComponent):
(WebCore::StyleBuilderConverter::convertObjectPosition):
Fix object-position parsing so that the position components can
be ids.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueContent):
The new parser doesn't make a list for content:none, since none can't be
a component of a list anyway. Add code to handle this case in the
apply function.

  • css/parser/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
Put the prefix back on -webkit-column-progression.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
Same.

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):
Make sure match type is checked, since our code asserts if it isn't.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::validWidthOrHeightKeyword):
(WebCore::consumeLineGrid):
(WebCore::CSSPropertyParser::parseSingleValue):
Add support for the line-grid properties and for -webkit-nbsp-mode.

9:14 AM Changeset in webkit [208050] by Matt Baker
  • 1 edit
    4 adds in trunk/Source/WebInspectorUI

Unreviewed, worker document images added

  • UserInterface/Images/WorkerDocument.png: Added.
  • UserInterface/Images/WorkerDocument@2x.png: Added.
  • UserInterface/Images/WorkerDocumentLarge.png: Added.
  • UserInterface/Images/WorkerDocumentLarge@2x.png: Added.
8:39 AM Changeset in webkit [208049] by Antti Koivisto
  • 7 edits in trunk

Always use iOS preload behavior
https://bugs.webkit.org/show_bug.cgi?id=164127

Reviewed by Andreas Kling.

Source/WebCore:

On non-iOS platforms we were delaying issuing lower priority preload (images mostly) until document has body.
This should be unnecessary as networking layer prioritization should ensure higher priority resources are
loaded earlier. Testing on iOS has showed that more aggressive behavior is a win.

This patch switches to iOS behavior on all platforms (and simplified the logic).

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::HTMLResourcePreloader::preload):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preloadIfNeeded):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::performPostLoadActions):
(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::isPreloaded):
(WebCore::CachedResourceLoader::checkForPendingPreloads): Deleted.
(WebCore::CachedResourceLoader::requestPreload): Deleted.
(WebCore::CachedResourceLoader::clearPendingPreloads): Deleted.

  • loader/cache/CachedResourceLoader.h:

LayoutTests:

  • http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt:
8:11 AM Changeset in webkit [208048] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Enable CFNetwork connection cache fast lane for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=164129

Reviewed by Andreas Kling.

The idea of this feature is keep a connection free for higher priority requests so low-priority
image loads can't take all the available connections.

We have this enabled on WK1 but not on WK2. See what enabling it does for performance in bots.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::initializeNetworkSettings):

Based on code inspection setting kHTTPMinimumFastLanePriority is not sufficient to enable this feature,
kHTTPNumFastLanes needs also be set to a non-zero value. Use the same constants as WK1.
Also enable this on Mac to unify behavior.

7:21 AM Changeset in webkit [208047] by Csaba Osztrogonác
  • 3 edits in trunk/JSTests

Skip 2 JS stress tests on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=164125

Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible.

  • stress/joined-strings-should-not-exceed-max-string-length.js:
  • stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
6:59 AM Changeset in webkit [208046] by commit-queue@webkit.org
  • 15 edits
    1 copy
    5 adds in trunk

[Fetch] Ensure redirection count is no more than 20 in case of cross origin requests
https://bugs.webkit.org/show_bug.cgi?id=164117

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-28
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Adding new tests.
Split redirect.py in two different scripts.
redirect.py is to be used when simple redirections are needed.
redirect-count.py is to be used when the number of redirections is tested.

redirect.py no longer needs the count parameter.
This explains rebasing of the existing tests.

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin.js: Added.

(redirectCount):

  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count.js:

(redirectCount):

  • web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt:
  • web-platform-tests/fetch/api/resources/redirect-count.py: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect.py.

(main):

  • web-platform-tests/fetch/api/resources/redirect.py:

(main):

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker.html

imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-cross-origin.html

Introducing a ResourceLoaderOptions that defines the maximum redirection count.
By default, it is set to 20 as per fetch specification.

This option is used by SubresourceLoader to cancel load if its redirection count is above that maximum.
DocumentThreadableLoader stopping redirections to make preflight if needed, it now uses the maxRedirectCount loader option to ensure
that the total number of redirections is 20.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):

  • loader/ResourceLoaderOptions.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/SubresourceLoader.h:
5:36 AM Changeset in webkit [208045] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

generate-bindings-all.pl should recompile supplemented IDL if its supplemental IDL are added or removed
https://bugs.webkit.org/show_bug.cgi?id=164054

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-28
Reviewed by Michael Catanzaro.

generate-bindings-all.pl determines which IDL to recompile by
comparing timestamps of generated files, source IDL and its
dependencies. But this is not enough. If a new supplemental IDL
is added, its supplemented IDL needs to be recompiled even though
the timestamp of the supplemental IDL is older than the
generated files.

  • bindings/scripts/generate-bindings-all.pl: Read supplemental

dependency file both before and after invoking preprocess-idls.pl.
Recompile IDL files if its supplemental dependencies are added or
removed.

5:24 AM Changeset in webkit [208044] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake] Changing enabled features should trigger recompiling all IDL
https://bugs.webkit.org/show_bug.cgi?id=164121

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-28
Reviewed by Michael Catanzaro.

Changing enabled features should trigger recompiling all IDL
because some of them use #if. generate-bindings-all.pl was
introduced in <http://trac.webkit.org/changeset/207617>. Before
this change, updating supplemental_dependency.tmp triggered
recompiling all IDL. Changing enabled features usually involves
adding or removing IDL files. As the result, all IDL would be
recompiled. After the change, adding or removing IDL does not
trigger recompiling all IDL. So, we need to explicitly trigger
recompiling all IDL if enabled features are changed.

  • Source/cmake/WebKitMacros.cmake(GENERATE_BINDINGS): Added

cmakeconfig.h to extra dependencies.

4:14 AM Changeset in webkit [208043] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

PeerMediaDescription does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=164059

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-28
Reviewed by Darin Adler.

No change of behavior.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):
(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
(WebCore::MediaEndpointPeerConnection::gotIceCandidate):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/SDPProcessor.cpp:

(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):
(WebCore::SDPProcessor::generateCandidateLine):
(WebCore::SDPProcessor::parseCandidateLine):

  • platform/mediastream/IceCandidate.h:
  • platform/mediastream/MediaEndpointSessionConfiguration.h:

(WebCore::MediaEndpointSessionConfiguration::mediaDescriptions):
(WebCore::MediaEndpointSessionConfiguration::addMediaDescription):
(WebCore::MediaEndpointSessionConfiguration::clone):

  • platform/mediastream/PeerMediaDescription.h:

(WebCore::PeerMediaDescription::addPayload):
(WebCore::PeerMediaDescription::addSsrc):
(WebCore::PeerMediaDescription::clearSsrcs):
(WebCore::PeerMediaDescription::addIceCandidate):
(WebCore::PeerMediaDescription::create): Deleted.
(WebCore::PeerMediaDescription::~PeerMediaDescription): Deleted.
(WebCore::PeerMediaDescription::type): Deleted.
(WebCore::PeerMediaDescription::setType): Deleted.
(WebCore::PeerMediaDescription::port): Deleted.
(WebCore::PeerMediaDescription::setPort): Deleted.
(WebCore::PeerMediaDescription::address): Deleted.
(WebCore::PeerMediaDescription::setAddress): Deleted.
(WebCore::PeerMediaDescription::mode): Deleted.
(WebCore::PeerMediaDescription::setMode): Deleted.
(WebCore::PeerMediaDescription::mid): Deleted.
(WebCore::PeerMediaDescription::setMid): Deleted.
(WebCore::PeerMediaDescription::payloads): Deleted.
(WebCore::PeerMediaDescription::setPayloads): Deleted.
(WebCore::PeerMediaDescription::rtcpMux): Deleted.
(WebCore::PeerMediaDescription::setRtcpMux): Deleted.
(WebCore::PeerMediaDescription::rtcpAddress): Deleted.
(WebCore::PeerMediaDescription::setRtcpAddress): Deleted.
(WebCore::PeerMediaDescription::rtcpPort): Deleted.
(WebCore::PeerMediaDescription::setRtcpPort): Deleted.
(WebCore::PeerMediaDescription::mediaStreamId): Deleted.
(WebCore::PeerMediaDescription::setMediaStreamId): Deleted.
(WebCore::PeerMediaDescription::mediaStreamTrackId): Deleted.
(WebCore::PeerMediaDescription::setMediaStreamTrackId): Deleted.
(WebCore::PeerMediaDescription::dtlsSetup): Deleted.
(WebCore::PeerMediaDescription::setDtlsSetup): Deleted.
(WebCore::PeerMediaDescription::dtlsFingerprintHashFunction): Deleted.
(WebCore::PeerMediaDescription::setDtlsFingerprintHashFunction): Deleted.
(WebCore::PeerMediaDescription::dtlsFingerprint): Deleted.
(WebCore::PeerMediaDescription::setDtlsFingerprint): Deleted.
(WebCore::PeerMediaDescription::cname): Deleted.
(WebCore::PeerMediaDescription::setCname): Deleted.
(WebCore::PeerMediaDescription::ssrcs): Deleted.
(WebCore::PeerMediaDescription::iceUfrag): Deleted.
(WebCore::PeerMediaDescription::setIceUfrag): Deleted.
(WebCore::PeerMediaDescription::icePassword): Deleted.
(WebCore::PeerMediaDescription::setIcePassword): Deleted.
(WebCore::PeerMediaDescription::iceCandidates): Deleted.
(WebCore::PeerMediaDescription::clone): Deleted.
(WebCore::PeerMediaDescription::PeerMediaDescription): Deleted.

  • platform/mediastream/mac/MediaEndpointMac.cpp:

(WebCore::MediaEndpointMac::addRemoteCandidate):
(WebCore::MediaEndpointMac::OnIceCandidate):

  • platform/mediastream/mac/MediaEndpointMac.h:
  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::updateSendConfiguration):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::updateConfigurationMids):

2:40 AM Changeset in webkit [208042] by commit-queue@webkit.org
  • 25 edits
    4 copies
    4 adds in trunk

[Modern Media Controls] Media Controller: scrubbing support
https://bugs.webkit.org/show_bug.cgi?id=163726
<rdar://problem/27989481>

Patch by Antoine Quint <Antoine Quint> on 2016-10-28
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the ScrubberSupport class which brings support for scrubbing the media
by interacting with the scrubber in the media controls and correctly reflecting
the media's current time as set via the media API.

Tests: media/modern-media-controls/scrubber-support/scrubber-support-click.html

media/modern-media-controls/scrubber-support/scrubber-support-drag.html
media/modern-media-controls/scrubber-support/scrubber-support-media-api.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/scrubbing-support.js: Added.

(ScrubbingSupport.prototype.get control):
(ScrubbingSupport.prototype.get mediaEvents):
(ScrubbingSupport.prototype.controlValueWillStartChanging):
(ScrubbingSupport.prototype.controlValueDidChange):
(ScrubbingSupport.prototype.controlValueDidStopChanging):
(ScrubbingSupport.prototype.syncControl):
(ScrubbingSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding new tests for ScrubberSupport that test clicking in the scrubber,
dragging the scrubber and setting the media currentTime via the media API.
Also adding the new resource to other MediaController tests.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/playback-support/playback-support-autoplay.html:
  • media/modern-media-controls/playback-support/playback-support-button-click.html:
  • media/modern-media-controls/playback-support/playback-support-media-api.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-click.html: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api.html: Added.
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
12:17 AM Changeset in webkit [208041] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Another build fix.

  • CMakeLists.txt:
12:08 AM Changeset in webkit [208040] by achristensen@apple.com
  • 7 edits in trunk/Source

Source/ThirdParty/ANGLE:
Fix Windows WebGL build after r208036
https://bugs.webkit.org/show_bug.cgi?id=164101

  • CMakeLists.txt:

Source/WebCore:
Fix Windows WebGL build after r208022
https://bugs.webkit.org/show_bug.cgi?id=164091

  • platform/graphics/opengl/Extensions3DOpenGLCommon.h:
  • platform/graphics/opengl/Extensions3DOpenGLES.cpp:

(WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):

  • platform/graphics/opengl/Extensions3DOpenGLES.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::getExtensions):

Note: See TracTimeline for information about the timeline view.