Timeline



May 22, 2017:

11:50 PM Changeset in webkit [217268] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

  • platform/win/TestExpectations:
11:03 PM Changeset in webkit [217267] by mmaxfield@apple.com
  • 3 edits
    4 adds in trunk

Support calc() in font-variation-settings and font-feature-settings
https://bugs.webkit.org/show_bug.cgi?id=171032

Reviewed by David Hyatt.

Source/WebCore:

Tests: css3/font-feature-settings-calc.html

fast/text/variations/calc.html

We can use the convenience functions in CSSPropertyParserHelpers.cpp.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontFeatureTag):
(WebCore::consumeFontVariationTag):

LayoutTests:

  • css3/font-feature-settings-calc-expected.html: Added.
  • css3/font-feature-settings-calc.html: Added.
  • fast/text/variations/calc-expected.html: Added.
  • fast/text/variations/calc.html: Added.
9:59 PM Changeset in webkit [217266] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Changes are not applied in CSS sidebar when switching to Resources tab without blurring editor
https://bugs.webkit.org/show_bug.cgi?id=172388

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.refreshEditor):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused):
(WebInspector.RulesStyleDetailsPanel.prototype.shown):
When showing the StyleDetailsPanel, if there is an active editor, which is now saved each
time one becomes focused, force an update of that editor's content.

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

Web Inspector: New Tab contents not centered vertically
https://bugs.webkit.org/show_bug.cgi?id=172486

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-22
Reviewed by Devin Rousso.

  • UserInterface/Views/NewTabContentView.css:

(.new-tab.tab.content-view):
Use align-items instead of align-content.

7:15 PM Changeset in webkit [217264] by jmarcell@apple.com
  • 1 edit in branches/safari-603-branch/Source/WebCore/rendering/RenderElement.cpp

Build fix for rdar://problem/32278660

  • rendering/RenderElement.cpp:
6:57 PM Changeset in webkit [217263] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix test runner by removing Unicode character from stderr output
https://bugs.webkit.org/show_bug.cgi?id=168409

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):

6:51 PM Changeset in webkit [217262] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Avoid moving to the second frame of an animated image before the first frame has finished decoding
https://bugs.webkit.org/show_bug.cgi?id=172461

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-22
Reviewed by Simon Fraser.

Sometimes the frameCount of an animated image gets changed when more data
is received. The problem is we may start decoding the image as if it were
a static large image and the decoding of this first frame finishes after
the image starts animating.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::imageFrameAvailableAtIndex):

6:44 PM Changeset in webkit [217261] by jmarcell@apple.com
  • 5 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216992. rdar://problem/32258716

5:50 PM Changeset in webkit [217260] by achristensen@apple.com
  • 17 edits in trunk

REGRESSION(r215686): O(n2) algorithm in CachedRawResource::addDataBuffer
https://bugs.webkit.org/show_bug.cgi?id=172406
<rdar://32109532>

Reviewed by Brady Eidson.

Source/WebCore:

CachedRawResource::calculateIncrementalDataChunk was calling SharedBuffer::data each time the data
was appended to the SharedBuffer. This causes the data to be copied from two segments to one segment,
which causes the O(n2) behavior I was worried about in r215686. These append/data/append/data calls
used to cause O(1) copies per byte which was amortized because of the exponential growth of the buffer.
After this change, there should be 0 copies per byte here, and instead a O(log(n)) binary search in the
call to std::upper_bound to find the next segment of data with a given starting location in the SharedBuffer.
We need to store the additional information of the offsets of the beginnings of the segments in a
SharedBuffer. This doesn't asymptotically increase our memory usage, but it does allow us to asymptotically
decrease the amount of time it takes to find data at a given offset in a SharedBuffer from O(n) to O(log(n)).

This allows us to complete http://speedtest.xfinity.com and new functionality in SharedBuffer is covered by API tests.

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::calculateIncrementalDataChunk):
(WebCore::CachedRawResource::addDataBuffer):
(WebCore::CachedRawResource::finishLoading):

  • loader/cache/CachedRawResource.h:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::combineIntoOneSegment):
(WebCore::SharedBuffer::data):
(WebCore::SharedBuffer::getSomeData):
(WebCore::SharedBuffer::tryCreateArrayBuffer):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::internallyConsistent):
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):
(WebCore::SharedBufferDataView::SharedBufferDataView):
(WebCore::SharedBufferDataView::size):
(WebCore::SharedBufferDataView::data):

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):
(WebCore::SharedBuffer::append):

  • platform/cocoa/SharedBufferCocoa.mm:

(WebCore::SharedBuffer::createNSData):
(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::createNSDataArray):

Source/WebKit2:

  • Platform/IPC/DataReference.cpp:

(IPC::SharedBufferDataReference::encode):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::redeliverManualStream):

Tools:

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::checkBuffer):
(TestWebKitAPI::TEST_F):

5:29 PM Changeset in webkit [217259] by jmarcell@apple.com
  • 2 edits in trunk/Tools

Do not enter Subversion-specific logic when parsing Git-based Trac data.
https://bugs.webkit.org/show_bug.cgi?id=172433
<rdar://problem/32234188>

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

(Trac.prototype._convertCommitInfoElementToObject):

4:44 PM Changeset in webkit [217258] by Devin Rousso
  • 18 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: New CSS Rules should go into a new Stylesheet Resource that can be viewed/edited/saved
https://bugs.webkit.org/show_bug.cgi?id=138810

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/CSSStyleManager.js:

(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame):
(WebInspector.CSSStyleManager.prototype._updateResourceContent.fetchedStyleSheetContent):
Manually dispatch a change event for modifications to CSSStyleSheet objects since they are
not covered by the listener for Resource changes.

  • UserInterface/Main.html:

Include WebInspector.CSSStyleSheetTreeElement.

  • UserInterface/Models/Collection.js:

(WebInspector.Collection.TypeVerifier):

  • UserInterface/Models/ResourceCollection.js:

(WebInspector.ResourceCollection.TypeVerifier.Stylesheet):
Add TypeVerifier for CSSStyleSheet.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Manually create a SourceCodeLocation object for Inspector Style Sheets.

  • UserInterface/Views/CSSStyleSheetTreeElement.js: Added.

(WebInspector.CSSStyleSheetTreeElement):

  • UserInterface/Views/ResourceIcons.css:

(:matches(.resource-icon.resource-type-stylesheet, .stylessheet-icon) .icon):

  • UserInterface/Views/FrameTreeElement.js:

(WebInspector.FrameTreeElement.forwardingConstructor):
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._styleSheetAdded):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._styleSheetAdded):
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
Listen for the creation of CSSStyleSheet objects and add them to the sidebar if they are an
Inspector Style Sheet. Regular style sheets are added via their respective resources.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
Prevent CSSStyleSheetTreeElement instances from attempting to save state to a cookie.

  • UserInterface/Base/Main.js:

(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector.createSourceCodeLocationLink):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.refresh):

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._prepareEditorForInitialContent):
(WebInspector.SourceCodeTextEditor.prototype._looselyMatchesSourceCodeLocation):
(WebInspector.SourceCodeTextEditor.prototype._matchesSourceCodeLocation):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get supportsSave):
(WebInspector.TextResourceContentView.prototype.get saveData):
(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
(WebInspector.TextResourceContentView.prototype._shouldBeEditable):
Support editing and saving an Inspector Style Sheet via its CSSStyleSheet object.

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

Mark to imported/w3c/web-platform-tests/webrtc tests as failing on ios-wk2.
https://bugs.webkit.org/show_bug.cgi?id=171605

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:27 PM Changeset in webkit [217256] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Resources in cached parsed stylesheets may bypass content blockers
https://bugs.webkit.org/show_bug.cgi?id=172468
<rdar://problem/31972693>

Reviewed by Geoffrey Garen.

Resources in cached parsed stylesheets could bypass content blockers when they were in the memory cache and
they did not need revalidation.

To address the issue, I made StyleSheetContents::subresourcesAllowReuse() to check content blockers.
If a subresource in the cached stylesheet is blocked, then we return false in subresourcesAllowReuse() and
the cached parsed stylesheet will not be used.

No new tests, not currently testable.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::subresourcesAllowReuse):

  • css/StyleSheetContents.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):

  • loader/cache/CachedCSSStyleSheet.h:
4:00 PM Changeset in webkit [217255] by Chris Dumez
  • 4 edits in trunk

ASSERTION FAILED: tokens.find(item) == notFound in WebCore::DOMTokenList::replace
https://bugs.webkit.org/show_bug.cgi?id=172473

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix bad assertion in DOMTokenList::replace(). If item == replacement, then the
assertion was wrong.

No new tests, unskipped existing test.

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::replace):

LayoutTests:

Unskip test.

3:52 PM Changeset in webkit [217254] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/loading/resourceLoadStatistics/grandfathering.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=172452

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
3:47 PM Changeset in webkit [217253] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for two new WPT LayoutTests.
https://bugs.webkit.org/show_bug.cgi?id=172472

Unreviewed test gardening.

3:41 PM Changeset in webkit [217252] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Need a way to allow WKWebView to load request with ShouldOpenExternalURLsPolicy::ShouldAllow.
https://bugs.webkit.org/show_bug.cgi?id=172460

Add an new method [WKWebView _loadRequest:shouldOpenExternalURLs:] to WKWebView; a WebKit client
can use this to load request that allows opening external URLs.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-05-22
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _loadRequest:shouldOpenExternalURLs:]): When calling WebPageProxy::loadRequest, also

set ShouldOpenExternalURLsPolicy based on the value of shouldOpenExternalURLs.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add [WKWebView _loadRequest:shouldOpenExternalURLs:].
3:19 PM Changeset in webkit [217251] by commit-queue@webkit.org
  • 19 edits
    2 deletes in trunk/Source

Remove AVAudioCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=172360

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-22
Reviewed by Sam Weinig.

Source/WebCore:

No change of behavior, this class is no longer used by default as it does not support echo cancellation.

  • WebCore.xcodeproj/project.pbxproj:
  • page/Settings.cpp:

(WebCore::Settings::setMediaCaptureRequiresSecureConnection):
(WebCore::Settings::useAVFoundationAudioCapture): Deleted.
(WebCore::Settings::setUseAVFoundationAudioCapture): Deleted.

  • page/Settings.h:
  • platform/mediastream/mac/AVAudioCaptureSource.h: Removed.
  • platform/mediastream/mac/AVAudioCaptureSource.mm: Removed.
  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory):
(WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): Deleted.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:

Source/WebKit/mac:

Removing the handling of AVAudio/CoreAudio capture source dynamic switch.

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

(+[WebPreferences initialize]):
(-[WebPreferences useAVFoundationAudioCapture]): Deleted.
(-[WebPreferences setUseAVFoundationAudioCapture:]): Deleted.

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Removing the handling of AVAudio/CoreAudio capture source dynamic switch.

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

(WKPreferencesSetUseAVFoundationAudioCapture): Deleted.
(WKPreferencesGetUseAVFoundationAudioCapture): Deleted.

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

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

3:09 PM Changeset in webkit [217250] by ap@apple.com
  • 7 edits
    1 delete in trunk/LayoutTests

Remove Java tests.

Rubber-stamped by Tim Horton.

These tests were disabled on all platforms for a long long time now.

  • TestExpectations:
  • java: Removed.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
  • platform/wpe/TestExpectations:
3:08 PM Changeset in webkit [217249] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

ExplicitSnapshotsChangeUponNavigation API test often fails
https://bugs.webkit.org/show_bug.cgi?id=172475
<rdar://problem/31688322>

Reviewed by Simon Fraser.

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView _setUpTestWindow:]):
Make TestWKWebView's window layer-backed. This is now the default,
and it's also easy to accidentally write a test that depends on it
(for example, ExplicitSnapshotsChangeUponNavigation adds an NSBox,
which becomes layer backed, just like the WKWebView, but with no
common layer-backed ancestor).

3:06 PM Changeset in webkit [217248] by BJ Burg
  • 14 edits
    2 copies in trunk

Web Inspector: webkit reload policy should match default behavior
https://bugs.webkit.org/show_bug.cgi?id=171385
<rdar://problem/31871515>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Add a new option to Page.reload that allows the test harness
to reload its test page using the old reload behavior.

The new behavior of revalidating expired cached subresources only
is the current default, since only the test harness needs the old behavior.

  • inspector/protocol/Page.json:

Source/WebCore:

Add an option to PageAgent.reload that tells the backend to use the old
behavior that revalidates unexpired cached subresources. This used by tests.

Covered by existing network/memory/disk cache tests.

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

(WebCore::InspectorPageAgent::reload):

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

Use PageAgent.reload.invoke to make the reload options more explicit.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.reloadPage):
Convert this method to take an options dictionary rather than positional
boolean arguments. Update call sites to pass correct options.

When running tests, we want to revalidate unexpired resources, as there
does not seem to be another reliable way to trigger revalidated cached
resources from a Web Inspector layout test. Make this behavior the default.

LayoutTests:

  • http/tests/inspector/replay/replay-test.js:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:

Update tests to match new API.

  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:

Added. This is a copy of the above test but uses the option to do a "legacy" reload.
With this reload type, the resource returned with HTTP 200.

3:03 PM Changeset in webkit [217247] by yoav@yoav.ws
  • 17 edits
    10 adds in trunk

[preload] Add media and type attribute support.
https://bugs.webkit.org/show_bug.cgi?id=171720

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/wpt/preload/media-attribute.html

http/wpt/preload/type-attribute.html
http/tests/preload/viewport/meta-viewport-link-headers.php

  • css/MediaQueryEvaluator.cpp: Move the mediaAttributeMatches code from HTMLResourcePreloader to a central location.

(WebCore::MediaQueryEvaluator::mediaAttributeMatches):

  • css/MediaQueryEvaluator.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Use isSupportedImageOrSVGMIMEType() instead of checking SVG MIME type specifically.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process): Call loadLink() with the media and type attributes.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizer): Trigger Link header based preload for links that have the media attribute.

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest): Avoid preloading link resources with non-matching type.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Collect the type attribute for link resources.

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::HTMLResourcePreloader::preload): Use MediaQueryEvaluator::mediaAttributeMatches instead of the local one.
(WebCore::mediaAttributeMatches): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::receivedFirstData): Indicate that only link preloads with no media attribute should be loaded here.

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Load only links with or without media attributes, according to mode. Also send media and
type attributes to preloadIfNeeded().
(WebCore::LinkLoader::isSupportedType): Check if the MIME type is supported for the CachedResource::Type.
(WebCore::LinkLoader::preloadIfNeeded): Get the media and type attributes and only trigger a preload if media matches and type is supported.
(WebCore::LinkLoader::loadLink): Pass along the media and type attributes.

  • loader/LinkLoader.h:
  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedImageOrSVGMIMEType): Check if MIME type is supported for an image, or is an SVG mime type.
(WebCore::MIMETypeRegistry::isSupportedStyleSheetMIMEType): Check if MIME type is supported for a stylesheet.
(WebCore::MIMETypeRegistry::isSupportedFontMIMEType): Check if MIME type is supported for a font.
(WebCore::MIMETypeRegistry::isSupportedTextTrackMIMEType): Check if MIME type is supported for a text track.

  • platform/MIMETypeRegistry.h:

LayoutTests:

  • TestExpectations: Skip http/tests/preload/viewport as meta viewport is turned off in most platforms.
  • http/wpt/preload/media-attribute-expected.txt: Added.
  • http/wpt/preload/media-attribute.html: Added.
  • http/wpt/preload/type-attribute-expected.txt: Added.
  • http/wpt/preload/type-attribute.html: Added.
  • http/wpt/preload/resources/square.png: Added.
  • http/wpt/preload/resources/dummy.js: Added.
  • http/tests/preload/viewport/meta-viewport-link-headers-expected.txt: Added.
  • http/tests/preload/viewport/meta-viewport-link-headers.php: Added.
  • platform/ios-simulator/TestExpectations: Turn on http/tests/preload/viewport for ios-simulator.
  • platform/ios/TestExpectations: Turn on http/tests/preload/viewport for ios.
2:23 PM Changeset in webkit [217246] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

[CG] Use the SPI CGImageSourceGetTypeWithData() to get the typeIdentifierHint of an image
https://bugs.webkit.org/show_bug.cgi?id=172405

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-22
Reviewed by Simon Fraser.

Use CGImageSourceGetTypeWithData() to get the typeIdentifierHint which will
be passed to CGImageSourceCreateIncremental(). If data is insufficient to
guess typeIdentifierHint, that means the image size is still not available.
In this case, CachedImage::addIncrementalDataBuffer() will call error()
which will call clear() which will call Image::destroyDecodedData()
which will delete the current ImageDecoder and creates a new one. So we
don't need to check the return value insufficientData.

  • platform/graphics/DecodingOptions.h: Fix the header file dependencies.
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ensureDecoderAvailable): No need for the URL parameter.

  • platform/graphics/ImageTypes.h: Move a typedef from ImageDecoderCG.h to ImageTypes.h.
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::ImageDecoder): Pass the SharedBuffer data to the constructor.

  • platform/graphics/cg/ImageDecoderCG.h:

(WebCore::ImageDecoder::create): No need for the URL argument.

  • platform/graphics/win/ImageDecoderDirect2D.h:

(WebCore::ImageDecoder::create): Remove the URL argument from the function signature.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::create): Remove the URL argument from the function signature.

  • platform/image-decoders/ImageDecoder.h:
  • platform/spi/cg/ImageIOSPI.h: Add the prototype of CGImageSourceGetTypeWithData().
2:13 PM Changeset in webkit [217245] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https.html as a timeout on El Capitan.
https://bugs.webkit.org/show_bug.cgi?id=172469

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:56 PM Changeset in webkit [217244] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: characters produced with shift modifier on QWERTY keyboard should be delivered as shift-down, char-down, char-up, shift-up events
https://bugs.webkit.org/show_bug.cgi?id=172299
<rdar://problem/32277988>

Reviewed by Joseph Pecoraro.

WebDriver tests expect some ASCII characters to be produced using the shift key,
regardless of the actual keyboard layout. Emit extra events when simulating these
keystrokes if the shift key is not already pressed.

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::characterIsProducedUsingShift):
(WebKit::WebAutomationSession::platformSimulateKeySequence):

1:49 PM Changeset in webkit [217243] by ap@apple.com
  • 81 edits in trunk/LayoutTests

Many WebAudio js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172398

Reviewed by Sam Weinig.

Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.

  • resources/js-test.js: (shouldReject): Copied some funcitonality form js-test-pre.js

that wasn't present here.

  • webaudio/analyser-exception.html:
  • webaudio/audiobuffer-neuter-expected.txt:
  • webaudio/audiobuffer-neuter.html:
  • webaudio/audiobuffersource-channels.html:
  • webaudio/audiobuffersource-ended-expected.txt:
  • webaudio/audiobuffersource-ended.html:
  • webaudio/audiobuffersource-exception.html:
  • webaudio/audiobuffersource-loop-comprehensive-expected.txt:
  • webaudio/audiobuffersource-loop-comprehensive.html:
  • webaudio/audiobuffersource-negative-playbackrate-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-loop-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-loop.html:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated.html:
  • webaudio/audiobuffersource-negative-playbackrate-loop-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-loop.html:
  • webaudio/audiobuffersource-negative-playbackrate.html:
  • webaudio/audiobuffersource-playbackState.html:
  • webaudio/audiobuffersource-start-expected.txt:
  • webaudio/audiobuffersource-start.html:
  • webaudio/audiochannelmerger-basic.html:
  • webaudio/audiochannelmerger-stereo.html:
  • webaudio/audiochannelsplitter.html:
  • webaudio/audiocontext-promise-throwing.html:
  • webaudio/audiocontext-promise.html:
  • webaudio/audiocontext-restriction-audiobuffersourcenode-start.html:
  • webaudio/audiocontext-restriction.html:
  • webaudio/audiocontext-state-interrupted.html:
  • webaudio/audiocontext-state.html:
  • webaudio/audionode-channel-rules.html:
  • webaudio/audionode-connect-order.html:
  • webaudio/audionode.html:
  • webaudio/audioparam-connect-audioratesignal.html:
  • webaudio/audioparam-summingjunction.html:
  • webaudio/audioprocessingevent.html:
  • webaudio/automatic-pull-node.html:
  • webaudio/biquad-allpass.html:
  • webaudio/biquad-bandpass.html:
  • webaudio/biquad-getFrequencyResponse.html:
  • webaudio/biquad-highpass.html:
  • webaudio/biquad-highshelf.html:
  • webaudio/biquad-lowpass.html:
  • webaudio/biquad-lowshelf.html:
  • webaudio/biquad-notch.html:
  • webaudio/biquad-peaking.html:
  • webaudio/biquadfilternode-basic.html:
  • webaudio/convolution-mono-mono.html:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/decode-audio-data-too-short.html:
  • webaudio/delaynode-max-default-delay.html:
  • webaudio/delaynode-max-nondefault-delay.html:
  • webaudio/delaynode-maxdelay.html:
  • webaudio/delaynode-maxdelaylimit.html:
  • webaudio/delaynode-scheduling.html:
  • webaudio/delaynode.html:
  • webaudio/distance-exponential.html:
  • webaudio/distance-inverse.html:
  • webaudio/distance-linear.html:
  • webaudio/dynamicscompressor-basic.html:
  • webaudio/javascriptaudionode-downmix8-2channel-input.html:
  • webaudio/javascriptaudionode-upmix2-8channel-input.html:
  • webaudio/javascriptaudionode-zero-input-channels.html:
  • webaudio/javascriptaudionode.html:
  • webaudio/mediaelementaudiosourcenode.html:
  • webaudio/oscillator-basic.html:
  • webaudio/oscillator-ended-expected.txt:
  • webaudio/oscillator-ended.html:
  • webaudio/page-canstartmedia.html:
  • webaudio/panner-equalpower-stereo.html:
  • webaudio/panner-equalpower.html:
  • webaudio/panner-loop.html:
  • webaudio/pannernode-basic.html:
  • webaudio/realtimeanalyser-fft-scaling.html:
  • webaudio/realtimeanalyser-fft-sizing.html:
  • webaudio/resources/audiobuffersource-testing.js:

(checkAllTests):

  • webaudio/sample-accurate-scheduling.html:
  • webaudio/stereo2mono-down-mixing.html:
  • webaudio/test-basic.html:
  • webaudio/waveshaper.html:
1:28 PM Changeset in webkit [217242] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

SameSizeAsInlineBox mismatch on ARMV7.
https://bugs.webkit.org/show_bug.cgi?id=172459

Reviewed by Simon Fraser.

Due to the ARMV7/i386 padding behaviour mismatch, forcing m_bitfields to be 32bits does not always
produce the desired padding.
Move the bool to the end of the member list and let m_deletionSentinel (4bytes) force
padding.

  • rendering/InlineBox.cpp:
  • rendering/InlineBox.h:
1:12 PM Changeset in webkit [217241] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Enable the woff2-variations @font-face format identifier
https://bugs.webkit.org/show_bug.cgi?id=172425

Reviewed by Andreas Kling.

Source/WebCore:

We support woff2, and woff-variations, but not woff2-variations.
https://github.com/w3c/csswg-drafts/commit/5c914a8a0382734bd420090a89bc19b32e6c302d

Test: fast/text/variations/font-face-format-woff2.html

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

LayoutTests:

  • fast/text/variations/font-face-format-woff2-expected.html: Added.
  • fast/text/variations/font-face-format-woff2.html: Added.
  • platform/mac/TestExpectations:
12:48 PM Changeset in webkit [217240] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[Cocoa] An exported Objective C class’s prototype and constructor don't persist across JSContext deallocation
https://bugs.webkit.org/show_bug.cgi?id=167708

Reviewed by Geoffrey Garen.

This patch moves the Objective C wrapper map to the global object. In order to make this work the JSWrapperMap
class no longer holds a reference to the JSContext. Instead, the context must be provided when getting a wrapper.

Also, this patch fixes a "bug" where we would observe changes to the Object property on the global object when
creating a wrapper for NSObject.

  • API/APICast.h:

(toJSGlobalObject):

  • API/JSContext.mm:

(-[JSContext ensureWrapperMap]):
(-[JSContext initWithVirtualMachine:]):
(-[JSContext dealloc]):
(-[JSContext wrapperMap]):
(-[JSContext initWithGlobalContextRef:]):
(-[JSContext wrapperForObjCObject:]):
(-[JSContext wrapperForJSObject:]):

  • API/JSWrapperMap.h:
  • API/JSWrapperMap.mm:

(-[JSObjCClassInfo initForClass:]):
(-[JSObjCClassInfo allocateConstructorAndPrototypeInContext:]):
(-[JSObjCClassInfo wrapperForObject:inContext:]):
(-[JSObjCClassInfo constructorInContext:]):
(-[JSObjCClassInfo prototypeInContext:]):
(-[JSWrapperMap initWithGlobalContextRef:]):
(-[JSWrapperMap classInfoForClass:]):
(-[JSWrapperMap jsWrapperForObject:inContext:]):
(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]):
(-[JSObjCClassInfo initWithContext:forClass:]): Deleted.
(-[JSObjCClassInfo allocateConstructorAndPrototype]): Deleted.
(-[JSObjCClassInfo wrapperForObject:]): Deleted.
(-[JSObjCClassInfo constructor]): Deleted.
(-[JSObjCClassInfo prototype]): Deleted.
(-[JSWrapperMap initWithContext:]): Deleted.
(-[JSWrapperMap jsWrapperForObject:]): Deleted.
(-[JSWrapperMap objcWrapperForJSValueRef:]): Deleted.

  • API/tests/JSExportTests.mm:

(wrapperLifetimeIsTiedToGlobalObject):
(runJSExportTests):

  • API/tests/testapi.mm:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::wrapperMap):
(JSC::JSGlobalObject::setWrapperMap):

12:44 PM Changeset in webkit [217239] by commit-queue@webkit.org
  • 12 edits in trunk

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409

Patch by Antoine Quint <Antoine Quint> on 2017-05-22
Reviewed by Simon Fraser.

Remove all the custom logging code we wrote to diagnose why this specific test failed and instead
log the backtrace when the ScriptedAnimationController gets suspended, which should allow us to
identify which test actually leads to suspension and affects this particular test.

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

(const.scheduler.new.prototype.scheduleLayout):
(const.scheduler.new.prototype.unscheduleLayout):
(const.scheduler.new.prototype._requestFrameIfNeeded):
(const.scheduler.new.prototype._frameDidFire):
(const.scheduler.new.prototype._layout):

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::suspend):
(WebCore::ScriptedAnimationController::resume):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::dispatchLoggingEventIfRequired): Deleted.

  • dom/ScriptedAnimationController.h:
  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):

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

(WebCore::InternalSettings::resetToConsistentState):
(WebCore::InternalSettings::shouldDispatchRequestAnimationFrameEvents): Deleted.
(WebCore::InternalSettings::setShouldDispatchRequestAnimationFrameEvents): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:
12:43 PM Changeset in webkit [217238] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't unconditionally reset TextIterator::m_handledChildren for display: contents nodes.
https://bugs.webkit.org/show_bug.cgi?id=172443

This avoids an infinite hang when enabling display: contents in bug 171984.

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-22
Reviewed by Antti Koivisto.

No new tests. Relanding bug 171984 will add test coverage for this.

  • editing/TextIterator.cpp:

(WebCore::hasDisplayContents):
(WebCore::fullyClipsContents):
(WebCore::TextIterator::advance):

12:27 PM Changeset in webkit [217237] by commit-queue@webkit.org
  • 61 edits
    6 copies
    1 add
    2 deletes in trunk/Source

[WebIDL] Support callbacks with arbitrary return types
https://bugs.webkit.org/show_bug.cgi?id=172407

Patch by Sam Weinig <sam@webkit.org> on 2017-05-22
Reviewed by Chris Dumez.

Source/WebCore:

  • Adds and adopts CallbackResult<> template class that encapsulates a return value and status from a javascript callback.
  • Updates NodeIterator/TreeWalker to explicitly propagate exceptions thrown from a JSNodeFilter, rather than relying on the JSNodeFilter to catch them (seemingly accidentally).
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Update file lists.

  • Modules/geolocation/PositionCallback.h:
  • Modules/geolocation/PositionErrorCallback.h:
  • Modules/notifications/NotificationPermissionCallback.h:
  • Modules/webaudio/AudioBufferCallback.h:
  • Modules/webdatabase/DatabaseCallback.h:
  • dom/RequestAnimationFrameCallback.h:
  • dom/StringCallback.h:
  • dom/Traversal.cpp:
  • fileapi/BlobCallback.h:
  • html/VoidCallback.h:
  • page/IntersectionObserverCallback.h:
  • page/PerformanceObserverCallback.h:
  • css/MediaQueryListListener.h:
  • Modules/webdatabase/SQLStatement.h:
  • Modules/webdatabase/SQLStatementCallback.h:
  • Modules/webdatabase/SQLStatementErrorCallback.h:
  • Modules/webdatabase/SQLTransaction.cpp:
  • Modules/webdatabase/SQLTransactionCallback.h:
  • Modules/webdatabase/SQLTransactionErrorCallback.h:
  • inspector/InspectorDatabaseAgent.cpp:

Adopt CallbackResult.

  • Modules/webdatabase/SQLStatementErrorCallback.idl:

Remove Custom extended attribute annotation.

  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::performCallback):
Adopt CallbackResult, migrating logic from JSSQLStatementErrorCallbackCustom
into the implementation, by way of the status enum.

  • bindings/IDLTypes.h:

Add IDLVoid type.

  • bindings/js/JSNodeFilterCustom.cpp: Removed.
  • bindings/js/JSSQLStatementErrorCallbackCustom.cpp: Removed.

Remove now unneeded custom bindings.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateIndexedGetter):
(GenerateNamedGetter):
(GenerateImplementation):
(GenerateImplementationFunctionCall):
Update for new NativeToJSValue arguments.

(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
Remove requirement of only void return types and update return type to use CallbackFunction.
Also adds necessary conversion of return value.

(GetBaseIDLType):
Add void IDL type mapping.

(IsValidContextForJSValueToNative):
Add operation as valid context, as that is what the callback return type's context is.

(NativeToJSValueUsingReferences):
(NativeToJSValueUsingPointers):
(NativeToJSValue):
Rework NativeToJSValueUsingReferences/NativeToJSValueUsingPointers to take a global object reference
accessor rather than a thisObject accessor, as a thisObject is not always available, and what the function
actually wants is the global object.

  • bindings/scripts/IDLAttributes.json:

Add new RethrowException attribute to instruct the callback function to re-throw, rather than
just report, exceptions thrown in the callback and SkipCallbackInvokeCheck which instructs the
callback function to not check canInvokeCallback() before calling. These will both be needed to retain
the behavior of NodeFilter, and should be investigated further.

  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.h:
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp: Added.
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h: Added.
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.h:
  • bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp: Added.
  • bindings/scripts/test/JS/JSTestVoidCallbackFunction.h: Added.
  • bindings/scripts/test/TestCallbackFunction.idl:
  • bindings/scripts/test/TestCallbackInterface.idl:
  • bindings/scripts/test/TestVoidCallbackFunction.idl: Copied from Source/WebCore/bindings/scripts/test/TestCallbackFunction.idl.

Update test results and add some additional test cases for callback functions and callback interface functions that return
non-void and use the RethrowExceptions.

  • dom/CallbackResult.h: Added.

(WebCore::CallbackResult<ReturnType>::CallbackResult):
(WebCore::CallbackResult<ReturnType>::type):
(WebCore::CallbackResult<void>::CallbackResult):
(WebCore::CallbackResult<void>::type):
New class to encapsulate the return value and status of a callback function. Modeled loosely on
ExceptionOr, but is simpler since it does not need to handle complex exception objects.

  • dom/NativeNodeFilter.cpp:
  • dom/NativeNodeFilter.h:

Adopt CallbackResult, matching other NodeFiltering code by using
unsigned short rather than short, remove unused functions, and convert
condition member to a Ref, allowing us to get rid of the branch acceptNode.

  • dom/NodeFilter.h:

Adopt CallbackResult.

  • dom/NodeFilter.idl:

Replace Custom extended attribute with SkipCallbackInvokeCheck and RethrowException.

  • dom/NodeFilterCondition.cpp:
  • dom/NodeFilterCondition.h:

Modernize to take a Node reference and match other filtering code
by returning an unsigned short.

  • dom/Traversal.cpp:
  • dom/Traversal.h:

Adopt CallbackResult and match other node filtering code by using unsigned short
rather than short.

  • dom/NodeIterator.cpp:
  • dom/NodeIterator.h:
  • dom/NodeIterator.idl:
  • dom/TreeWalker.cpp:
  • dom/TreeWalker.h:
  • dom/TreeWalker.idl:

Change functions that callout to javascript via the NodeFilter to
return ExceptionOr<Node>. Check the result of CallbackResult for a
thrown exception, and bail, returning Exception { ExistingExceptionError }
which acts as an indicator to the bindings that an exception was thrown.
(In actuality, the specific exception code does not matter. All that matters
is that an ExceptionOr<> is returned, which triggers, via overload, a path
in toJS() that calls propagateException(), which in turn, checks to see if
an exception is on the stack. But, having an explicit code here helps debugging).

Source/WebKit/mac:

  • DOM/DOM.mm:

(-[DOMNodeFilter acceptNode:]):
Update for CallbackResult adoption in the base class.

  • DOM/DOMNodeIterator.mm:
  • DOM/DOMTreeWalker.mm:

Update to account for new WebCore implementation return types. We return nil
if there was an exception, since retains the existing behavior if a javascript
NodeFilter had been used (an exception would cause all nodes to be rejected,
thus returning nullptr).

  • DOM/ObjCNodeFilterCondition.h:
  • DOM/ObjCNodeFilterCondition.mm:

Update to match new interface of NodeFilterCondition.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.h:

Update to match new interface of NodeFilterCondition.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp:

Update to account for new WebCore implementation return types.

12:19 PM Changeset in webkit [217236] by Simon Fraser
  • 22 edits
    4 adds in trunk

Support transform-box to switch sizing box in SVG
https://bugs.webkit.org/show_bug.cgi?id=145783

Reviewed by Dean Jackson.

Source/WebCore:

Add support for the CSS "transform-box" property, as described at
<https://drafts.csswg.org/css-transforms/#transform-box>.

This changes the behavior of percentage values in transform-origin in SVG.
When these were added in r110532, percentage values in transform-origin were made
relative to the bounding box, but absolute values relative to the view box.
<https://github.com/w3c/csswg-drafts/issues/895> has concluded that this behavior
is confusing. The new behavior is that, for SVG elements, both absolute and
percentage values are relative to the reference box, which is specified by the
new transform-box property.

The initial value for transform-box is border-box, with the svg.css UA stylesheet
supplying a default of view-box for the relevant SVG elements per
<https://www.w3.org/TR/SVG2/styling.html#UAStyleSheet>.

For non-SVG elements, the used value is always border-box, so there is no change
in behavior.

Tests: fast/css/transform-box-parsing.html

svg/transforms/svg-transform-box.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TransformBox):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • css/svg.css:

(*:not(svg),):
(*): Deleted.
(html|* > svg): Deleted.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::computeTransformedExtentViaTransformList):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::applyTransform): The transformOriginX().isPercent() tests
were added to support the weird "% values are relative to bounding box" in SVG. Now
it's up to the caller to pass a non-zero origin when that matters, and
SVGGraphicsElement::animatedLocalTransform() is the only caller that does so.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasTransform):
(WebCore::RenderStyle::transformBox):
(WebCore::RenderStyle::setTransformBox):
(WebCore::RenderStyle::initialTransformBox):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleTransformData.cpp:

(WebCore::StyleTransformData::StyleTransformData):
(WebCore::StyleTransformData::operator==):

  • rendering/style/StyleTransformData.h:
  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform): Consult the transform-box
style to compute the reference box as the bounding box, or the view box.

Source/WebInspectorUI:

Add transform-box to the list of autocompletions.

  • UserInterface/External/CodeMirror/css.js:

LayoutTests:

Modify tests that relied on the old "% values relative to the bounding box" behavior,
and new tests for parsing and rendering with transform-box.

  • fast/css/transform-box-parsing.html: Added.
  • svg/transforms/change-transform-origin-css.xhtml:
  • svg/transforms/change-transform-origin-presentation-attribute.xhtml:
  • svg/transforms/percent-transform-values.xhtml:
  • svg/transforms/svg-transform-box-expected.html: Added.
  • svg/transforms/svg-transform-box.html: Added.
  • svg/transforms/transform-origin-css-property.xhtml:
  • transforms/svg-vs-css.xhtml:
12:14 PM Changeset in webkit [217235] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Add support for [LegacyWindowAlias] IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=172451

Reviewed by Sam Weinig.

Add support for [LegacyWindowAlias] IDL extended attribute as per:

Use it for our legacy window aliases, such as webKitURL.

No new tests, there should be no Web-exposed behavior change.

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • css/DOMMatrix.idl:
  • dom/MutationObserver.idl:
  • dom/XMLDocument.idl:
  • html/DOMURL.idl:
  • page/DOMWindow.idl:
12:02 PM Changeset in webkit [217234] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

ASSERTION FAILED: m_boundThread == currentThread() in WTF::WeakReference<WebCore::WebCoreDecompressionSession>::clear()
https://bugs.webkit.org/show_bug.cgi?id=172457
<rdar://problem/32329436>

Reviewed by Eric Carlson.

Remove vestigal WeakPtrFactory that was entirely unused.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h:

(WebCore::WebCoreDecompressionSession::createWeakPtr): Deleted.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession):

11:49 AM Changeset in webkit [217233] by BJ Burg
  • 3 edits
    1 add in trunk/Source/WTF

Add a debugging macro that sleeps a thread until a debugger attaches
https://bugs.webkit.org/show_bug.cgi?id=171575

Reviewed by Mark Lam.

This is really useful for debugging early errors if for some reason you can't
launch a process directly from the debugger easily, such as Web Content processes.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.h:

Always define the WTFBreakpointTrap() macro. Still make it an error if the CPU
type isn't supported for OS(DARWIN); if used on other platforms, cause a WTFCrash()
with a comment that indicates this is not implemented.

  • wtf/DebugUtilities.h: Added.
11:38 AM Changeset in webkit [217232] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: In Timelines > JavaScript & Events, digits for sample count are not localized
https://bugs.webkit.org/show_bug.cgi?id=171819

Reviewed by Matt Baker.

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):

11:36 AM Changeset in webkit [217231] by Ryan Haddad
  • 3 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
11:29 AM Changeset in webkit [217230] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Fix the bug that sometimes analysis task results pane is missing.
https://bugs.webkit.org/show_bug.cgi?id=172404

Reviewed by Ryosuke Niwa.

AnalysisTaskPage._didFetchTask and AnalaysisTaskPage._fetchRelatedInfoForTaskId should be called in order.
The race between those two functions causes the analysis task results pane sometimes missing.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer.prototype.render): Fix the bug in r217173 that commitSet can be undefined.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage.prototype.updateFromSerializedState): Use arrow function to get rid of self variable.
Use const instead of var for constant variable. And call _didFetchTask before calling _fetchRelatedInfoForTaskId.
(AnalysisTaskPage.prototype._renderTaskNameAndStatus):
(AnalysisTaskPage.cssTemplate):

11:27 AM Changeset in webkit [217229] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Text in autocomplete popover should be aligned left
https://bugs.webkit.org/show_bug.cgi?id=171998

Patch by Nikita Vasilyev <Nikita Vasilyev> on 2017-05-22
Reviewed by Brian Burg.

Autocomplete popover is only used for CSS and JavaScript, and
these should always be shown as LTR text.

  • UserInterface/Views/CompletionSuggestionsView.css:

(.completion-suggestions):

11:17 AM Changeset in webkit [217228] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

-Wreturn-type warning triggered by WKPage.cpp:2277
https://bugs.webkit.org/show_bug.cgi?id=171866

Reviewed by Žan Doberšek.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

11:16 AM Changeset in webkit [217227] by Antti Koivisto
  • 7 edits in trunk

Crash in WebCore::StyleRuleKeyframes::findKeyframeIndex
https://bugs.webkit.org/show_bug.cgi?id=170756
<rdar://problem/31573157>

Reviewed by Andreas Kling.

Source/WebCore:

Using a malformed key with CSSKeyframesRule.findRule crashes because
CSSParser::parseKeyframeKeyList returns null which is then dereferenced.

  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::findKeyframeIndex): Null test.

LayoutTests:

Expand the tests to cover the malformed key case.

  • animations/keyframes-rule.html:
  • animations/unprefixed-keyframes-rule.html:
11:11 AM Changeset in webkit [217226] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

-Wreturn-type warning triggered by WebAutomationSession.cpp:851
https://bugs.webkit.org/show_bug.cgi?id=171867

Reviewed by Žan Doberšek.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::protocolModifierToWebEventModifier):

11:07 AM Changeset in webkit [217225] by commit-queue@webkit.org
  • 521 edits
    38 moves
    298 adds
    17 deletes in trunk

Resync web-platform-tests up to 8df7c9c215678328212f232ce0b5270c505a8563
https://bugs.webkit.org/show_bug.cgi?id=172426

Patch by youenn fablet <youenn@apple.com> on 2017-05-22
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/TestRepositories:
  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/FileAPI/BlobURL/support/file_test2.txt: Added.
  • web-platform-tests/FileAPI/FileReader/support/file_test1.txt: Added.
  • web-platform-tests/IndexedDB/idb_webworkers.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance-continue-async.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance-invalid.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance.htm:
  • web-platform-tests/IndexedDB/idbcursor-continue.htm:
  • web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm:
  • web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exceptions.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-index-keyrange.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-index.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-objectstore-keyrange.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction.htm:
  • web-platform-tests/IndexedDB/idbcursor-source.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbdatabase_close.htm:
  • web-platform-tests/IndexedDB/idbfactory-deleteDatabase-request-success.html: Added.
  • web-platform-tests/IndexedDB/idbfactory-open-request-error.html: Added.
  • web-platform-tests/IndexedDB/idbfactory-open-request-success.html: Added.
  • web-platform-tests/IndexedDB/idbfactory_open10.htm:
  • web-platform-tests/IndexedDB/idbfactory_open11.htm:
  • web-platform-tests/IndexedDB/idbfactory_open3.htm:
  • web-platform-tests/IndexedDB/idbfactory_open6.htm:
  • web-platform-tests/IndexedDB/idbfactory_open7.htm:
  • web-platform-tests/IndexedDB/idbindex_getAll.html:
  • web-platform-tests/IndexedDB/idbindex_getAllKeys.html:
  • web-platform-tests/IndexedDB/idbobjectstore-index-finished.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_deleteIndex.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_getAll.html:
  • web-platform-tests/IndexedDB/idbobjectstore_getAllKeys.html:
  • web-platform-tests/IndexedDB/idbobjectstore_getKey.html:
  • web-platform-tests/IndexedDB/idbobjectstore_openCursor_invalid.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm:
  • web-platform-tests/IndexedDB/idbrequest-onupgradeneeded.htm:
  • web-platform-tests/IndexedDB/idbtransaction-objectStore-finished.html: Added.
  • web-platform-tests/IndexedDB/idbtransaction.htm:
  • web-platform-tests/IndexedDB/idbtransaction_objectStoreNames.html:
  • web-platform-tests/IndexedDB/request-abort-ordering.html: Added.
  • web-platform-tests/IndexedDB/support.js:

(indexeddb_test):

  • web-platform-tests/IndexedDB/w3c-import.log:
  • web-platform-tests/README.md:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/digest/test_digest.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/digest/test_digest.html.
  • web-platform-tests/WebCryptoAPI/digest/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/generateKey/successes.js:

(run_test):

  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html.
  • web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/getRandomValues.any.html: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues.any.js: Added.

(test):
(string_appeared_here.test):

  • web-platform-tests/WebCryptoAPI/getRandomValues.any.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/idlharness.https.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.html.
  • web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.html.
  • web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey.html.
  • web-platform-tests/WebCryptoAPI/import_export/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html: Added.
  • web-platform-tests/WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html: Added.
  • web-platform-tests/WebCryptoAPI/secure_context/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/util/w3c-import.log.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_hmac.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_hmac.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/util/helpers.js:

(allNameVariants):

  • web-platform-tests/WebCryptoAPI/util/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/util/worker-report-crypto-subtle-presence.js: Added.
  • web-platform-tests/WebCryptoAPI/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/w3c-import.log:
  • web-platform-tests/WebIDL/OWNERS: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance.html:
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-object.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/legacy-callback-interface-object.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/put-forwards.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/sequence-conversion.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log:
  • web-platform-tests/WebIDL/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/formdata-foreach.html:
  • web-platform-tests/XMLHttpRequest/getresponseheader-chunked-trailer.htm:
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/XMLHttpRequest/interfaces.html:
  • web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm:
  • web-platform-tests/XMLHttpRequest/resources/base.xml: Added.
  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-data-arraybufferview.htm: Added.
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/beacon/headers/header-content-type.html: Added.
  • web-platform-tests/beacon/headers/w3c-import.log:
  • web-platform-tests/beacon/resources/content-type.py: Added.

(main):

  • web-platform-tests/beacon/resources/w3c-import.log:
  • web-platform-tests/check_stability.ini: Added.
  • web-platform-tests/check_stability.py:

(Browser.prepare_environment):
(Firefox.init):
(Chrome.init):
(Chrome.prepare_environment):
(Sauce):
(Sauce.init):
(Sauce.install):
(Sauce.install_webdriver):
(Sauce.version):
(Sauce.wptrunner_args):
(install_wptrunner):
(get_files_changed):
(_in_repo_root):
(get_affected_testfiles):
(get_affected_testfiles.affected_by_wdspec):
(format_comment_title):
(markdown_adjust):
(table):
(get_parser):
(main):

  • web-platform-tests/ci_unittest.sh: Added.
  • web-platform-tests/common/object-association.js: Added.

(window.testIsPerWindow.propertyName.async_test.t.iframe.onload.t.step_func):
(window.testIsPerWindow.propertyName.async_test.t.iframe.onload.t.step_func_done):

  • web-platform-tests/common/performance-timeline-utils.js: Added.

(wp_test):
(test_true):
(test_equals):
(test_entries):

  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/cors/access-control-expose-headers-parsing.window.js: Added.

(exposeTest):

  • web-platform-tests/cors/preflight-failure.htm:
  • web-platform-tests/cors/resources/access-control-expose-headers-parsing-2.asis: Added.
  • web-platform-tests/cors/resources/access-control-expose-headers-parsing.asis: Added.
  • web-platform-tests/cors/resources/w3c-import.log:
  • web-platform-tests/cors/w3c-import.log:
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-001-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-001.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-002-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-002.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-003-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-003.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-004-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-004.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-005-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-005.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-006-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-006.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-007-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-007.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-008-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-008.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-009-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-009.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-010-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-010.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-011-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-011.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-012-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-012.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-013-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-013.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-014-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-014.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-015-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-015.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-016-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-016.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-017-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-017.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/w3c-import.log: Added.
  • web-platform-tests/css/geometry-1/support/interfaces.js: Added.

(doTest):
(promise_test):

  • web-platform-tests/css/geometry-1/support/w3c-import.log:
  • web-platform-tests/cssom-view/cssom-view-window-screen-interface.html:
  • web-platform-tests/cssom/MediaList-expected.txt:
  • web-platform-tests/cssom/w3c-import.log:
  • web-platform-tests/custom-elements/custom-element-registry/per-global.html: Added.
  • web-platform-tests/custom-elements/custom-element-registry/w3c-import.log:
  • web-platform-tests/custom-elements/microtasks-and-constructors.html: Added.
  • web-platform-tests/custom-elements/w3c-import.log:
  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws.html:
  • web-platform-tests/dom/collections/HTMLCollection-empty-name.html:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html:
  • web-platform-tests/dom/collections/domstringmap-supported-property-names.html:
  • web-platform-tests/dom/collections/namednodemap-supported-property-names.html:
  • web-platform-tests/dom/events/AddEventListenerOptions-once.html:
  • web-platform-tests/dom/events/AddEventListenerOptions-passive.html:
  • web-platform-tests/dom/events/CustomEvent.html:
  • web-platform-tests/dom/events/Event-cancelBubble.html:
  • web-platform-tests/dom/events/Event-constants.html:
  • web-platform-tests/dom/events/Event-constructors.html:
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch.html:
  • web-platform-tests/dom/events/Event-defaultPrevented.html:
  • web-platform-tests/dom/events/Event-dispatch-bubble-canceled.html:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-false.html:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true.html:
  • web-platform-tests/dom/events/Event-dispatch-click.html:
  • web-platform-tests/dom/events/Event-dispatch-detached-click.html:
  • web-platform-tests/dom/events/Event-dispatch-handlers-changed.html:
  • web-platform-tests/dom/events/Event-dispatch-multiple-cancelBubble.html:
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html:
  • web-platform-tests/dom/events/Event-dispatch-omitted-capture.html:
  • web-platform-tests/dom/events/Event-dispatch-order.html:
  • web-platform-tests/dom/events/Event-dispatch-other-document.html:
  • web-platform-tests/dom/events/Event-dispatch-propagation-stopped.html:
  • web-platform-tests/dom/events/Event-dispatch-redispatch.html:
  • web-platform-tests/dom/events/Event-dispatch-reenter.html:
  • web-platform-tests/dom/events/Event-dispatch-target-moved.html:
  • web-platform-tests/dom/events/Event-dispatch-target-removed.html:
  • web-platform-tests/dom/events/Event-dispatch-throwing.html:
  • web-platform-tests/dom/events/Event-init-while-dispatching.html:
  • web-platform-tests/dom/events/Event-initEvent.html:
  • web-platform-tests/dom/events/Event-propagation.html:
  • web-platform-tests/dom/events/Event-subclasses-constructors.html:
  • web-platform-tests/dom/events/Event-type-empty.html:
  • web-platform-tests/dom/events/Event-type.html:
  • web-platform-tests/dom/events/EventListener-handleEvent.html:
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html:
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub.html:
  • web-platform-tests/dom/events/EventListener-invoke-legacy.html:
  • web-platform-tests/dom/events/EventListenerOptions-capture.html:
  • web-platform-tests/dom/events/EventTarget-addEventListener.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent.html:
  • web-platform-tests/dom/events/EventTarget-removeEventListener.html:
  • web-platform-tests/dom/historical.html:
  • web-platform-tests/dom/interface-objects.html:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces.html:
  • web-platform-tests/dom/lists/DOMTokenList-Iterable.html:
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
  • web-platform-tests/dom/lists/DOMTokenList-iteration.html:
  • web-platform-tests/dom/lists/DOMTokenList-stringifier.html:
  • web-platform-tests/dom/lists/DOMTokenList-value.html:
  • web-platform-tests/dom/nodes/CharacterData-appendChild.html:
  • web-platform-tests/dom/nodes/CharacterData-appendData.html:
  • web-platform-tests/dom/nodes/CharacterData-data.html:
  • web-platform-tests/dom/nodes/CharacterData-deleteData.html:
  • web-platform-tests/dom/nodes/CharacterData-insertData.html:
  • web-platform-tests/dom/nodes/CharacterData-remove.html:
  • web-platform-tests/dom/nodes/CharacterData-replaceData.html:
  • web-platform-tests/dom/nodes/CharacterData-substringData.html:
  • web-platform-tests/dom/nodes/CharacterData-surrogates.html:
  • web-platform-tests/dom/nodes/ChildNode-after.html:
  • web-platform-tests/dom/nodes/ChildNode-before.html:
  • web-platform-tests/dom/nodes/ChildNode-replaceWith.html:
  • web-platform-tests/dom/nodes/Comment-constructor.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocumentType.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
  • web-platform-tests/dom/nodes/DOMImplementation-hasFeature.html:
  • web-platform-tests/dom/nodes/Document-URL.sub.html:
  • web-platform-tests/dom/nodes/Document-adoptNode.html:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
  • web-platform-tests/dom/nodes/Document-constructor.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createHTMLDocument.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/xhr_responseType_document.html:
  • web-platform-tests/dom/nodes/Document-createAttribute.html:
  • web-platform-tests/dom/nodes/Document-createComment.html:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Document-createElement.html:
  • web-platform-tests/dom/nodes/Document-createElementNS.html:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.html:
  • web-platform-tests/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Document-createProcessingInstruction.html:
  • web-platform-tests/dom/nodes/Document-createTextNode.html:
  • web-platform-tests/dom/nodes/Document-createTreeWalker.html:
  • web-platform-tests/dom/nodes/Document-doctype.html:
  • web-platform-tests/dom/nodes/Document-getElementById.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagNameNS.html:
  • web-platform-tests/dom/nodes/Document-implementation.html:
  • web-platform-tests/dom/nodes/Document-importNode.html:
  • web-platform-tests/dom/nodes/DocumentType-literal-xhtml.xhtml:
  • web-platform-tests/dom/nodes/DocumentType-literal.html:
  • web-platform-tests/dom/nodes/DocumentType-remove.html:
  • web-platform-tests/dom/nodes/Element-childElement-null-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElement-null.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount.html:
  • web-platform-tests/dom/nodes/Element-children.html:
  • web-platform-tests/dom/nodes/Element-classlist-expected.txt:
  • web-platform-tests/dom/nodes/Element-classlist.html:
  • web-platform-tests/dom/nodes/Element-closest.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild.html:
  • web-platform-tests/dom/nodes/Element-getElementsByClassName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagNameNS.html:
  • web-platform-tests/dom/nodes/Element-hasAttributes.html:
  • web-platform-tests/dom/nodes/Element-insertAdjacentElement.html:
  • web-platform-tests/dom/nodes/Element-insertAdjacentText.html:
  • web-platform-tests/dom/nodes/Element-lastElementChild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-lastElementChild.html:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-matches.html:
  • web-platform-tests/dom/nodes/Element-nextElementSibling-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-nextElementSibling.html:
  • web-platform-tests/dom/nodes/Element-previousElementSibling-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-previousElementSibling.html:
  • web-platform-tests/dom/nodes/Element-remove.html:
  • web-platform-tests/dom/nodes/Element-removeAttributeNS.html:
  • web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-siblingElement-null.html:
  • web-platform-tests/dom/nodes/Element-tagName.html:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html:
  • web-platform-tests/dom/nodes/MutationObserver-attributes.html:
  • web-platform-tests/dom/nodes/MutationObserver-characterData.html:
  • web-platform-tests/dom/nodes/MutationObserver-childList.html:
  • web-platform-tests/dom/nodes/MutationObserver-disconnect.html:
  • web-platform-tests/dom/nodes/MutationObserver-document.html:
  • web-platform-tests/dom/nodes/MutationObserver-inner-outer.html:
  • web-platform-tests/dom/nodes/MutationObserver-takeRecords.html:
  • web-platform-tests/dom/nodes/Node-appendChild.html:
  • web-platform-tests/dom/nodes/Node-baseURI.html:
  • web-platform-tests/dom/nodes/Node-childNodes.html:
  • web-platform-tests/dom/nodes/Node-cloneNode.html:
  • web-platform-tests/dom/nodes/Node-compareDocumentPosition.html:
  • web-platform-tests/dom/nodes/Node-constants.html:
  • web-platform-tests/dom/nodes/Node-contains-xml.xml:
  • web-platform-tests/dom/nodes/Node-contains.html:
  • web-platform-tests/dom/nodes/Node-insertBefore.html:
  • web-platform-tests/dom/nodes/Node-isConnected.html:
  • web-platform-tests/dom/nodes/Node-isEqualNode-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Node-isEqualNode.html:
  • web-platform-tests/dom/nodes/Node-isSameNode.html:
  • web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html:
  • web-platform-tests/dom/nodes/Node-lookupPrefix.xhtml:
  • web-platform-tests/dom/nodes/Node-nodeName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Node-nodeName.html:
  • web-platform-tests/dom/nodes/Node-nodeValue.html:
  • web-platform-tests/dom/nodes/Node-normalize.html:
  • web-platform-tests/dom/nodes/Node-parentElement.html:
  • web-platform-tests/dom/nodes/Node-parentNode.html:
  • web-platform-tests/dom/nodes/Node-properties.html:
  • web-platform-tests/dom/nodes/Node-removeChild.html:
  • web-platform-tests/dom/nodes/Node-replaceChild.html:
  • web-platform-tests/dom/nodes/Node-textContent.html:
  • web-platform-tests/dom/nodes/NodeList-Iterable.html:
  • web-platform-tests/dom/nodes/ParentNode-append.html:
  • web-platform-tests/dom/nodes/ParentNode-prepend.html:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All.html:
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1.xhtml:
  • web-platform-tests/dom/nodes/ProcessingInstruction-literal-1.xhtml:
  • web-platform-tests/dom/nodes/ProcessingInstruction-literal-2.xhtml:
  • web-platform-tests/dom/nodes/Text-constructor.html:
  • web-platform-tests/dom/nodes/Text-splitText.html:
  • web-platform-tests/dom/nodes/append-on-Document.html:
  • web-platform-tests/dom/nodes/attributes.html:
  • web-platform-tests/dom/nodes/case.html:
  • web-platform-tests/dom/nodes/getElementsByClassName-01.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-02.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-03.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-04.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-05.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-06.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-07.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-08.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-09.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-10.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-11.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-12.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-13.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-14.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-15.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-16.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-17.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-18.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-19.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-20.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-21.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-22.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-23.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-24.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-25.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-26.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-27.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-28.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-29.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-30.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-31.htm:
  • web-platform-tests/dom/nodes/insert-adjacent.html:
  • web-platform-tests/dom/nodes/mutationobservers.js:
  • web-platform-tests/dom/nodes/prepend-on-Document.html:
  • web-platform-tests/dom/nodes/remove-unscopable.html:
  • web-platform-tests/dom/nodes/rootNode.html:
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/Range-attributes.html:
  • web-platform-tests/dom/ranges/Range-cloneContents.html:
  • web-platform-tests/dom/ranges/Range-cloneRange.html:
  • web-platform-tests/dom/ranges/Range-collapse.html:
  • web-platform-tests/dom/ranges/Range-commonAncestorContainer-2.html:
  • web-platform-tests/dom/ranges/Range-commonAncestorContainer.html:
  • web-platform-tests/dom/ranges/Range-compareBoundaryPoints.html:
  • web-platform-tests/dom/ranges/Range-comparePoint-2.html:
  • web-platform-tests/dom/ranges/Range-comparePoint.html:
  • web-platform-tests/dom/ranges/Range-constructor.html:
  • web-platform-tests/dom/ranges/Range-deleteContents.html:
  • web-platform-tests/dom/ranges/Range-detach.html:
  • web-platform-tests/dom/ranges/Range-extractContents.html:
  • web-platform-tests/dom/ranges/Range-insertNode.html:
  • web-platform-tests/dom/ranges/Range-intersectsNode-binding.html:
  • web-platform-tests/dom/ranges/Range-intersectsNode.html:
  • web-platform-tests/dom/ranges/Range-isPointInRange.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendData.html:
  • web-platform-tests/dom/ranges/Range-mutations-dataChange.html:
  • web-platform-tests/dom/ranges/Range-mutations-deleteData.html:
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore.html:
  • web-platform-tests/dom/ranges/Range-mutations-insertData.html:
  • web-platform-tests/dom/ranges/Range-mutations-removeChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-replaceData.html:
  • web-platform-tests/dom/ranges/Range-mutations-splitText.html:
  • web-platform-tests/dom/ranges/Range-selectNode.html:
  • web-platform-tests/dom/ranges/Range-set.html:
  • web-platform-tests/dom/ranges/Range-stringifier.html:
  • web-platform-tests/dom/ranges/Range-surroundContents.html:
  • web-platform-tests/dom/traversal/NodeFilter-constants.html:
  • web-platform-tests/dom/traversal/NodeIterator-removal.html:
  • web-platform-tests/dom/traversal/NodeIterator.html:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html:
  • web-platform-tests/dom/traversal/TreeWalker-basic.html:
  • web-platform-tests/dom/traversal/TreeWalker-currentNode.html:
  • web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject.html:
  • web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-reject.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip.html:
  • web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree.html:
  • web-platform-tests/dom/traversal/TreeWalker.html:
  • web-platform-tests/domparsing/DOMParser-parseFromString-xml-internal-subset.html: Added.
  • web-platform-tests/domparsing/w3c-import.log:
  • web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html:
  • web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js:

(runTest):

  • web-platform-tests/fetch/api/basic/block-mime-as-script.html: Added.
  • web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/headers/header-values-normalize-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.js:

(redirectLocation):

  • web-platform-tests/fetch/api/request/request-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume-empty.html:
  • web-platform-tests/fetch/api/request/request-error-expected.txt:
  • web-platform-tests/fetch/api/request/request-error.html:
  • web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-001.sub.html:
  • web-platform-tests/fetch/api/resources/script-with-header.py: Added.

(main):

  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-empty.html:
  • web-platform-tests/fonts/CanvasTest.sfd: Removed.
  • web-platform-tests/fonts/w3c-import.log:
  • web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html:
  • web-platform-tests/html/browsers/history/the-location-interface/per-global.window.js: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html: Added.
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_iframe.html: Added.
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/historical.window.js: Added.

(test):

  • web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.html:
  • web-platform-tests/html/browsers/the-window-object/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/window-properties-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/window-properties.html:
  • web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:
  • web-platform-tests/html/browsers/windows/noreferrer-window-name.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-07.html: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-08.html: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/dom/elements-metadata.js:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/resources/interfaces.idl: Removed.
  • web-platform-tests/html/dom/resources/untested-interfaces.idl: Removed.
  • web-platform-tests/html/dom/resources/w3c-import.log:
  • web-platform-tests/html/dom/self-origin.sub.html:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/bad.css: Added.

(p):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/good.css: Added.

(p):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet-change-href-expected.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet-change-href.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/imagedata.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_harness.js:

(get_test_results.):
(get_test_results):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/document-adopt-base-url-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/document-adopt-base-url.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form_attribute.html: Added.
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form_owner_and_table.html: Added.
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form_owner_and_table_2.html: Added.
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/w3c-import.log:
  • web-platform-tests/html/semantics/forms/resetting-a-form/reset-form-2.html: Added.
  • web-platform-tests/html/semantics/forms/resetting-a-form/w3c-import.log:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change.html:
  • web-platform-tests/html/semantics/forms/the-button-element/button-click-submits.html: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/button-type.html: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection-with-base-url.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-submission-with-base-url.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-submission.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-url-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-url.html: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete.html:
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-action-url-iframe.html: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-no-action-with-base.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-no-action.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-with-action-and-base.sub.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-with-action.sub.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/target/form-action-url-target.html:
  • web-platform-tests/html/semantics/forms/the-form-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-click-events.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-input-cancel.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/radio.html:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html: Added.
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-select-element/select-multiple.html: Added.
  • web-platform-tests/html/semantics/forms/the-select-element/select-selectedOptions.html: Added.
  • web-platform-tests/html/semantics/forms/the-select-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html: Added.
  • web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-menu-element/menuitem-label.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-menu-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html:
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-getter-01.html: Added.
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html: Added.
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/w3c-import.log:
  • web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
  • web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/w3c-import.log:
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/w3c-import.log: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js: Added.

(test):

  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-success.js: Added.

(test):

  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.html: Removed.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.js: Removed.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator.any.html: Added.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js.

(async_test):

  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator.any.worker.html: Added.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/w3c-import.log:
  • web-platform-tests/images/apng.png: Added.
  • web-platform-tests/images/w3c-import.log:
  • web-platform-tests/lint:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/media/CanvasTest.ttf: Removed.
  • web-platform-tests/media/OWNERS:
  • web-platform-tests/media/w3c-import.log:
  • web-platform-tests/notifications/shownotification-resolve-manual.https.html: Added.
  • web-platform-tests/notifications/w3c-import.log:
  • web-platform-tests/resource-timing/resource-timing.js:

(assertResourceEntryInvariants):

  • web-platform-tests/resource-timing/resource_TAO_match_origin.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_match_wildcard.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_multi.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_null.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_origin.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_origin_uppercase.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_space.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_wildcard.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_zero.htm: Added.
  • web-platform-tests/resource-timing/resources/TAOResponse.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/iframe_TAO_match_origin.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_match_wildcard.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_multi.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_null.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_origin.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_origin_uppercase.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_space.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_wildcard.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_zero.html: Added.
  • web-platform-tests/resource-timing/resources/w3c-import.log:
  • web-platform-tests/resource-timing/w3c-import.log:
  • web-platform-tests/resources/examples/apisample18.html: Added.
  • web-platform-tests/resources/examples/apisample19.html: Added.
  • web-platform-tests/resources/examples/w3c-import.log:
  • web-platform-tests/resources/idlharness.js:

(IdlArray.prototype.assert_type_is):
(IdlInterface.prototype.test_self):

  • web-platform-tests/resources/readme.md:
  • web-platform-tests/resources/w3c-import.log:
  • web-platform-tests/resources/webidl2/lib/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/invalid/idl/record-key.widl: Added.
  • web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/invalid/json/record-key.json: Added.
  • web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/syntax/idl/map.widl: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/idl/namespace.widl: Added.
  • web-platform-tests/resources/webidl2/test/syntax/idl/record.widl: Added.
  • web-platform-tests/resources/webidl2/test/syntax/idl/typedef-nested.widl: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl: Added.
  • web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/syntax/json/map.json: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/json/namespace.json: Added.
  • web-platform-tests/resources/webidl2/test/syntax/json/record.json: Added.
  • web-platform-tests/resources/webidl2/test/syntax/json/typedef-nested.json: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json: Added.
  • web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/syntax/opt/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/web/w3c-import.log:
  • web-platform-tests/resources/webidl2/w3c-import.log:
  • web-platform-tests/shadow-dom/slots-fallback-in-document.html: Added.
  • web-platform-tests/shadow-dom/w3c-import.log:
  • web-platform-tests/streams/piping/close-propagation-forward-expected.txt:
  • web-platform-tests/streams/piping/flow-control-expected.txt:
  • web-platform-tests/streams/piping/flow-control.js:

(StepTracker):
(StepTracker.prototype.waitThenAdvance):
(promise_test):

  • web-platform-tests/streams/piping/general-expected.txt:
  • web-platform-tests/streams/piping/pipe-through-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.dedicatedworker-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.js:

(test):

  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.js:

(promise_test):

  • web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js:
  • web-platform-tests/streams/resources/recording-streams.js:

(self.recordingWritableStream):

  • web-platform-tests/tools/html5lib/html5lib/serializer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treebuilders/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treewalkers/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/trie/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/w3c-import.log:
  • web-platform-tests/tools/manifest/w3c-import.log:
  • web-platform-tests/tools/pytest/.github/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/handshake/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/w3c-import.log:
  • web-platform-tests/tools/serve/w3c-import.log:
  • web-platform-tests/tools/six/w3c-import.log:
  • web-platform-tests/tools/sslutils/w3c-import.log:
  • web-platform-tests/tools/w3c-import.log:
  • web-platform-tests/tools/webdriver/webdriver/client.py:

(ActionSequence.pause):
(ActionSequence.pointer_up):
(ActionSequence.pointer_down):
(ActionSequence.click):

  • web-platform-tests/tools/webdriver/webdriver/transport.py:

(Response.from_http_response):

  • web-platform-tests/tools/wptrunner/requirements_firefox.txt:
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/base.py:

(Browser.settings):
(Browser.start):
(NullBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome.py:

(browser_kwargs):
(ChromeBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py:

(EdgeBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py:

(get_timeout_multiplier):
(browser_kwargs):
(executor_kwargs):
(FirefoxBrowser.init):
(FirefoxBrowser):
(FirefoxBrowser.settings):
(FirefoxBrowser.start):
(FirefoxBrowser.stop):
(FirefoxBrowser.process_leaks):
(FirefoxBrowser.cleanup):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce.py:

(browser_kwargs):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/servo.py:

(browser_kwargs):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/servodriver.py:

(browser_kwargs):
(ServoWebDriverBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py:

(MarionetteProtocol.init):
(MarionetteProtocol.setup):
(MarionetteTestharnessExecutor.init):

  • web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py:

(ExpectedManifest.leaks):
(ExpectedManifest):
(DirectoryManifest.leaks):
(DirectoryManifest):
(TestNode.leaks):
(TestNode):

  • web-platform-tests/tools/wptrunner/wptrunner/testloader.py:

(EqualTimeChunker._group_by_directory):
(PathGroupedSource.get_queue):

  • web-platform-tests/tools/wptrunner/wptrunner/testrunner.py:

(BrowserManager.init):
(BrowserManager.update_settings):
(BrowserManager.init):
(TestRunnerManager.init):
(TestRunnerManager.get_next_test):
(TestRunnerManager.run_test):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/test_chunker.py:

(MockTest):

  • web-platform-tests/tools/wptrunner/wptrunner/update/sync.py:

(copy_wpt_tree):
(add_license):
(CopyWorkTree.create):

  • web-platform-tests/tools/wptrunner/wptrunner/update/tree.py:

(GitTree.paths):

  • web-platform-tests/tools/wptrunner/wptrunner/update/update.py:

(SyncFromUpstream.create):

  • web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py:

(create_parser_update):

  • web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py:

(run_tests):

  • web-platform-tests/tools/wptrunner/wptrunner/wpttest.py:

(Test):
(Test.init):
(Test.from_manifest):
(Test.leaks):
(ReftestTest.init):
(ReftestTest.from_manifest):
(WdspecTest):

  • web-platform-tests/tools/wptserve/wptserve/w3c-import.log:
  • web-platform-tests/user-timing/measure.html:
  • web-platform-tests/user-timing/measure_navigation_timing.html:
  • web-platform-tests/user-timing/resources/webperftestharness.js:
  • web-platform-tests/user-timing/test_user_timing_clear_marks-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_clear_measures-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_entry_type-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_exists-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_without_parameter-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_exceptions-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_with_name_of_navigation_timing_optional_attribute-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure_exceptions-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure_navigation_timing-expected.txt:
  • web-platform-tests/w3c-import.log:
  • web-platform-tests/webrtc/OWNERS:
  • web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt:
  • web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html:
  • web-platform-tests/webrtc/RTCIceCandidate-constructor.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate.html: Added.
  • web-platform-tests/webrtc/getstats-expected.txt:
  • web-platform-tests/webrtc/getstats.html:
  • web-platform-tests/webrtc/w3c-import.log:
  • web-platform-tests/wptrun: Added.

Tools:

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.remove_deleted_files): Outputting warning when trying to delete a file that no longer exists.

LayoutTests:

11:02 AM Changeset in webkit [217224] by Wenson Hsieh
  • 7 edits in trunk/Source

Remove unused documentIsHandlingNonDefaultDrag plumbing for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=172453

Reviewed by Tim Horton.

Source/WebCore:

Removes unused plumbing that was originally added to support file uploads. No new tests, since there is no
change in behavior.

  • page/DragController.h:

(WebCore::DragController::documentIsHandlingNonDefaultDrag): Deleted.

Source/WebKit2:

Removes unused plumbing that was originally added to support file uploads.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didPerformDragControllerAction):
(WebKit::WebPageProxy::resetCurrentDragInformation):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::currentDragCaretRect):
(WebKit::WebPageProxy::documentIsHandlingNonDefaultDrag): Deleted.

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

10:38 AM Changeset in webkit [217223] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Media element thinks its hidden when in PiP mode and tab is backgrounded.
https://bugs.webkit.org/show_bug.cgi?id=172221

Reviewed by Eric Carlson.

The element should not be considered hidden when in legacy fullscreen mode or PiP mode.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::visibilityStateChanged):
(WebCore::HTMLMediaElement::fullscreenModeChanged):

10:15 AM Changeset in webkit [217222] by Konstantin Tokarev
  • 2 edits in trunk/Tools

Unreviewed, change my status to reviewer and fill "expertise" field

  • Scripts/webkitpy/common/config/contributors.json:
10:14 AM Changeset in webkit [217221] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

FTL stack overflow handling should not assume that B3 never selects callee-saves in the prologue
https://bugs.webkit.org/show_bug.cgi?id=172455

Reviewed by Mark Lam.

The FTL needs to run B3's callee-save register restoration before it runs the exception
handler's callee-save register restoration. This exposes B3's callee-save register
algorithm in AssemblyHelpers so that the FTL can call it.

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower): Fix the bug.

  • heap/Subspace.cpp: Added some debugging support.

(JSC::Subspace::allocate):
(JSC::Subspace::tryAllocate):
(JSC::Subspace::didAllocate):

  • heap/Subspace.h:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::addressFor):
(JSC::AssemblyHelpers::emitSave):
(JSC::AssemblyHelpers::emitRestore):

9:58 AM Changeset in webkit [217220] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

NavigatorEME: null RefPtr<> dereference due to different calling conventions
https://bugs.webkit.org/show_bug.cgi?id=172352

Reviewed by Carlos Garcia Campos.

  • Modules/encryptedmedia/NavigatorEME.cpp:

(WebCore::tryNextSupportedConfiguration): Avoid crashes when constructing
the MediaKeySystemAccess::create() arguments that can occur for targets with
calling conventions that might release the implementation RefPtr<> before it's
dereferenced to retrieve the key system string. Simply acquire the reference
to the key system String object before the MediaKeySystem::create() call
expression that releases the problematic RefPtr<>.

7:28 AM Changeset in webkit [217219] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

Add even more input validation in Connection::processMessage()
https://bugs.webkit.org/show_bug.cgi?id=171682

Reviewed by Carlos Garcia Campos.

Verify that the size of the out-of-line message body matches the size of the AttachmentInfo
that is containing it.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

6:46 AM Changeset in webkit [217218] by yoon@igalia.com
  • 2 edits in trunk

[CMake] Do not use a --no-keep-memory linker flag in 64bit system
https://bugs.webkit.org/show_bug.cgi?id=172429

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsCommon.cmake:

In x86_64, cmake accidentally applies --no-keep-memory since MATCHES
uses the given value as a regex. It reduces linking performance
due to the frequent disk operations in x86_64.

6:17 AM Changeset in webkit [217217] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[macOS Sierra Wk1] LayoutTest/animations/animation-initial-inheritance.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=172177
<rdar://problem/32239583>

Unreviewed.

  • animations/animation-initial-inheritance.html: Try to unflake.
5:18 AM Changeset in webkit [217216] by tpopela@redhat.com
  • 14 edits
    2 deletes in trunk

Remove some of the EFL port leftovers
https://bugs.webkit.org/show_bug.cgi?id=172440

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • Scripts/generate-forwarding-headers.pl:

Tools:

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):
(extractBuiltProduct):

  • BuildSlaveSupport/test-result-archive:

(archiveTestResults):

  • ImageDiff/PlatformEfl.cmake: Removed.
  • Scripts/run-efl-tests: Removed.
  • Scripts/webkit-build-directory:
  • Scripts/webkitpy/common/config/contributionareas.py:
  • Scripts/webkitpy/common/config/watchlist:
  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):
(_set_up_derived_options):

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner.init):

  • Scripts/webkitpy/style/checker.py:
  • Scripts/webkitpy/style/checker_unittest.py:

(GlobalVariablesTest.test_path_rules_specifier):

  • gtk/manifest.txt.in:
  • jhbuild/jhbuild-wrapper:
5:17 AM Changeset in webkit [217215] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add active call frame indicator image
https://bugs.webkit.org/show_bug.cgi?id=161987
<rdar://problem/28307419>

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-22
Reviewed by Carlos Garcia Campos.

Add a free icon for the Web Inspector of GTK port.

  • UserInterface/Images/gtk/ActiveCallFrame.svg: Added.
3:54 AM Changeset in webkit [217214] by yoon@igalia.com
  • 17 edits in trunk/Source

[CoordinatedGraphics] Clear UpdateAtlases for each tests
https://bugs.webkit.org/show_bug.cgi?id=172119

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Clears update atlases
while resetting states of the test runner.

Source/WebKit2:

In Coordinated Graphics, we reuses at least one update atlas to
render root compositing layer for several tests. So if one of the
test cases breaks the internal states of Cairo's states, other
followed test cases runs on same instance of WebKitTestRunner will
be effected by broken states of Cairo. Because it increases test
flaknesses, we should drop update atlases after each tests.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp: Remove a redundant

include statement for Coordinated graphics
(WebKit::WebChromeClient::resetUpdateAtlasForTesting): Added.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Added.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::clearUpdateAtlases): Added.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Added.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/wpe/DrawingAreaWPE.cpp:

(WebKit::DrawingAreaWPE::resetUpdateAtlasForTesting):

  • WebProcess/WebPage/wpe/DrawingAreaWPE.h:
3:19 AM Changeset in webkit [217213] by yoon@igalia.com
  • 3 edits in trunk/Source/WebCore

[CoordinatedGraphics] BitmapTexturePool does not release textures properly
https://bugs.webkit.org/show_bug.cgi?id=172428

Reviewed by Žan Doberšek.

No new tests because no behavior change.

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::BitmapTexturePool):
Use the RunLoopTimer instead of Timer, because BitmapTexturePool would
run on the compositing thread in Coordinated Graphics case.
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
We should check not only the last used time but also the refcounts of the
texture when selecting textures to remove.

  • platform/graphics/texmap/BitmapTexturePool.h:

(WebCore::BitmapTexturePool::Entry::canBeReleased): Added.

1:50 AM Changeset in webkit [217212] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.17.3

WebKitGTK+ 2.17.3

1:49 AM Changeset in webkit [217211] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.17.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.17.3.
1:03 AM Changeset in webkit [217210] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Do not include WPE files in GTK+ tarballs.

  • gtk/manifest.txt.in:
12:50 AM Changeset in webkit [217209] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK] Add webkit_context_menu_item_new_from_gaction
https://bugs.webkit.org/show_bug.cgi?id=159631

Reviewed by Michael Catanzaro.

Source/WebKit2:

Add new API to create a WebKitContextMenuItem from a GAction and also to get the associated GAction.

  • Shared/gtk/WebContextMenuItemGtk.cpp:

(WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): Add constructor that receives a GAction.
(WebKit::isGActionChecked): Helper to check if a stateful GAction is checked or not.
(WebKit::WebContextMenuItemGtk::createActionIfNeeded): When creating a GAction from a GtkAtion, use the
GtkAction name instead of adding a new one. Do not create the GAction if we already have one.

  • Shared/gtk/WebContextMenuItemGtk.h:

(WebKit::WebContextMenuItemGtk::gAction):
(WebKit::WebContextMenuItemGtk::gActionTarget):

  • UIProcess/API/gtk/WebKitContextMenuItem.cpp:

(webkit_context_menu_item_new_from_gaction):
(webkit_context_menu_item_get_gaction):

  • UIProcess/API/gtk/WebKitContextMenuItem.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::contextMenuItemActivatedCallback): Update the state of the internal GAction in case of toggle menu items.
(WebKit::WebContextMenuProxyGtk::append): Pass the GAction target to g_menu_item_set_action_and_target_value. Do
not connect to activate signal of actions provided by the user.

Tools:

Update context menu tests to check the new GAction API.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:

(testContextMenuPopulateMenu):

12:30 AM Changeset in webkit [217208] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[WPE] Use surfaceless context for sharing and offscreen context if available
https://bugs.webkit.org/show_bug.cgi?id=172268

Reviewed by Žan Doberšek.

Like GTK+ port does, WPE should use surfaceless contexts when possible, and only create a native offscreen
context as a fallback. We don't need to do anything special in WPE port, just to make it consistent with the
Wayland and X11 implementations. We should also avoid including EGL.h in headers, we added
GLContextEGLWayland.cpp and GLContextEGLX11.cpp to avoid that. PlatformDisplayWPE::EGLOffscreenTarget is quite
simple and only used by GLContextEGLWPE, so we could move it there like we do for Wayland and X11.

  • platform/graphics/GLContext.h: Remove EGL header includes.
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createWindowContext): Use createWindowSurfaceWPE() in WPE.
(WebCore::GLContextEGL::createContext): Use createWPEContext in WPE.
(WebCore::GLContextEGL::createSharingContext): Move the WPE code below to ensure we try
createSurfacelessContext() first.

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/egl/GLContextEGLWPE.cpp:

(WebCore::GLContextEGL::GLContextEGL): Add constructor for WPE that receives a struct wpe_renderer_backend_egl_offscreen_target*
(WebCore::GLContextEGL::createWindowSurfaceWPE): Added implementation here because eglCreateWindowSurface needs
the platform specific EGL includes and definitions.
(WebCore::GLContextEGL::createWPEContext): Create a GLContext using WPE backend API directly here.
(WebCore::GLContextEGL::destroyWPETarget): Add null check.

  • platform/graphics/wpe/PlatformDisplayWPE.cpp: Remove EGLOffscreenTarget.
  • platform/graphics/wpe/PlatformDisplayWPE.h:
12:15 AM Changeset in webkit [217207] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[Win][CMake] Move MSVC compiler options to a common location
https://bugs.webkit.org/show_bug.cgi?id=172230

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-22
Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsMSVC.cmake: Added.
  • Source/cmake/OptionsWin.cmake:

Source/WebKit:

  • PlatformWin.cmake:

May 21, 2017:

11:57 PM Changeset in webkit [217206] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Add more input validation in Connection::readBytesFromSocket()
https://bugs.webkit.org/show_bug.cgi?id=171871

Reviewed by Michael Catanzaro.

Check the control message length is in the limits. Credit to Nathan Crandall for reporting this issue and
submitting an equivalent fix.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket):

11:55 PM Changeset in webkit [217205] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed Windows test gardening, skip tests which are timing out.

  • platform/win/TestExpectations:
11:30 PM Changeset in webkit [217204] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

  • platform/win/TestExpectations:
11:27 PM Changeset in webkit [217203] by Michael Catanzaro
  • 6 edits in trunk

[GTK] Remove Firefox user agent quirk for Google domains
https://bugs.webkit.org/show_bug.cgi?id=171941

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresFirefoxBrowser): Deleted.
(WebCore::UserAgentQuirks::firefoxRevisionString): Deleted.

  • platform/UserAgentQuirks.h:
  • platform/gtk/UserAgentGtk.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk): Deleted.

11:24 PM Changeset in webkit [217202] by Yusuke Suzuki
  • 27 edits
    1 add in trunk

[FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=172216

Reviewed by Saam Barati.

JSTests:

  • stress/array-storage-get-by-val.js: Added.

(shouldBe):
(testOutOfBound):
(testInBound):
(testSlowPutOutOfBound):
(testSlowPutInBound):

Source/JavaScriptCore:

This patch adds GetByVal support for ArrayStorage and SlowPutArrayStorage.
To lower CheckInBounds in FTL, we add a new GetVectorLength op. It only accepts
ArrayStorage and SlowPutArrayStorage, then it produces vector length.
CheckInBounds uses this vector length to perform bound checking for ArrayStorage
and SlowPutArrayStorage.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::permitsBoundsCheckLowering):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasArrayMode):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSSALoweringPhase.cpp:

(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.h:

(JSC::FTL::AbstractHeapRepository::forIndexingType):
(JSC::FTL::AbstractHeapRepository::forArrayType):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetVectorLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitArrayStoragePutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitArrayStoragePutByVal):

11:00 PM Changeset in webkit [217201] by Yusuke Suzuki
  • 2 edits in trunk/JSTests

Unreviewed, fix commented out tests
https://bugs.webkit.org/show_bug.cgi?id=172225

  • stress/get-by-val-string.js:

(object.43):
(Hello):
(Hello.prototype.get 42):
(Hello.prototype.43):
(Derived):
(shouldBe):
(throw.new.Error): Deleted.

10:47 PM Changeset in webkit [217200] by sbarati@apple.com
  • 6 edits
    1 add in trunk

We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=171041
<rdar://problem/32082516>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/lexical-scoping-for-loop.js: Added.

(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(let.test7):
(let.test8):
(let.test9):
(let.test10):
(let.test11):
(let.test12):

Source/JavaScriptCore:

We were treating a for-loop variable declaration potentially as a top
level statement, e.g, in a program like this:
`
function foo() {

for (let variable of expr) { }

}
`
But we should not be. This had the consequence of making this type of program
throw a syntax error:
`
function foo(arg) {

for (let arg of expr) { }

}
`
even though it should not. The fix is simple, we just need to increment the
statement depth before parsing anything inside the for loop.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseForStatement):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
10:33 PM Changeset in webkit [217199] by Yusuke Suzuki
  • 4 edits
    1 add in trunk

[JSC] Make get_by_val & string "499" to number 499
https://bugs.webkit.org/show_bug.cgi?id=172225

Reviewed by Saam Barati.

JSTests:

  • stress/get-by-val-string.js: Added.

(shouldBe):
(shouldThrow):
(object.43):
(Hello):
(Hello.prototype.get 42):
(Hello.prototype.43):
(Derived):

Source/JavaScriptCore:

Property subscript will be converted by ToString. So JS code is not aware of
the original type of the subscript value. But our get_by_val can leverage
information if the given subscript is number. Thus, passing number instead of
string can improve the performance of get_by_val in all the tiers.

In this patch, we add BytecodeGenerator::emitNodeForProperty. It attempts to
convert the given value to Int32 index constant if the given value is a string
that can be converted to Int32.

This patch improves SixSpeed map-string.es5 by 9.8x. This accessing form can
appear in some code like accessing the result of JSON.

map-string.es5 1640.6738+-110.9182 167.4121+-23.8328 definitely 9.8002x faster

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNodeForProperty):
(JSC::BytecodeGenerator::emitNodeForLeftHandSideForProperty):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TaggedTemplateNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByValDirect):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::PostfixNode::emitBracket):
(JSC::PrefixNode::emitBracket):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ObjectPatternNode::bindValue):
(JSC::AssignmentElementNode::bindValue):

2:29 PM Changeset in webkit [217198] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We overwrite the callee save space on the stack when throwing stack overflow from wasm
https://bugs.webkit.org/show_bug.cgi?id=172316

Reviewed by Mark Lam.

When throwing a stack overflow exception, the overflow
thunk would do the following:

move fp, sp
populate argument registers
call C code

However, the C function is allowed to clobber our spilled
callee saves that live below fp. The reason I did this move is that
when we jump to this code, we've proven that sp is out of bounds on
the stack. So we're not allowed to just use its value or keep growing
the stack from that point. However, this patch revises this approach
to be the same in spirit, but actually correct. We conservatively assume
the B3 function we're coming from could have saved all callee saves.
So we emit code like this now:

add -maxNumCalleeSaveSpace, fp, sp
populate argument registers
call C code

This ensures our callee saves will not be overwritten. Note
that fp is still in a valid stack range here, since the thing
calling the wasm code did a stack check. Also note that maxNumCalleeSaveSpace
is less than our redzone size, so it's safe to decrement sp by
this amount.

The previously added wasm stack overflow test is an instance crash
without this change on arm64. It also appears that this test crashed
on some other x86 devices.

  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):

8:08 AM Changeset in webkit [217197] by Antti Koivisto
  • 6 edits
    2 adds in trunk

matchMedia('print').addListener() fires in WK1 but never in WK2 when printing (breaks printing Google maps, QuickLooks)
https://bugs.webkit.org/show_bug.cgi?id=172361
<rdar://problem/28777408>

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/media/matchMedia-print.html

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

Evaluate matchMedia queries unconditionally. No idea why it wasn't like that.

  • testing/Internals.cpp:

(WebCore::Internals::setPrinting):

Add testing support. The existing ways to do printing testing were unable to hit this bug as
they had too much additional gunk.

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

LayoutTests:

  • fast/media/matchMedia-print-expected.txt: Added.
  • fast/media/matchMedia-print.html: Added.
7:40 AM Changeset in webkit [217196] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Remove redundant FrameView ref in FrameView::performPostLayoutTasks
https://bugs.webkit.org/show_bug.cgi?id=172422

Reviewed by Antti Koivisto.

This was added to protect FrameView from getting destroyed in updateEmbeddedObjects(), but r169475 changed
the embedded object update to be asynchronous.

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

May 20, 2017:

11:01 PM Changeset in webkit [217195] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Correct line endings in a couple files.

  • fast/canvas/script-tests/canvas-gradient-without-path.js:
  • fast/dom/Geolocation/page-reload-cancel-permission-requests.html:
7:10 PM Changeset in webkit [217194] by Chris Dumez
  • 10 edits
    3 deletes in trunk

Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport
https://bugs.webkit.org/show_bug.cgi?id=172418

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

Add CommonIdentifiers that are now needed.

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport to match the specification:

Firefox exposes both RTCDTMFSender and RTCStatsReport. Chrome exposes RTCStatsReport only.
RTCDTMFSender seems to be currently disabled at build time currently so the change to
its interface does not currently impact Web-exposed behavior, only the change to the
RTCStatsReport interface currently does.

No new tests, rebaselined existing test.

  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCStatsReport.idl:

Drop [NoInterfaceObject].

  • Modules/mediastream/RTCIceCandidateEvent.cpp: Removed.
  • Modules/mediastream/RTCIceCandidateEvent.h: Removed.
  • Modules/mediastream/RTCIceCandidateEvent.idl: Removed.

Drop class and IDL that are no longer used. They were not even part of any project files.
RTCIceCandidateEvent has been renamed to RTCPeerConnectionIceEvent, which we support.

LayoutTests:

Rebaseline existing test to reflect change.

  • platform/mac-elcapitan/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:
3:40 PM Changeset in webkit [217193] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, add scope.release() to propertyIsEnumerable functions.
https://bugs.webkit.org/show_bug.cgi?id=172411

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncPropertyIsEnumerable):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncPropertyIsEnumerable):

1:07 PM Changeset in webkit [217192] by Yusuke Suzuki
  • 16 edits
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Drop MapBase
https://bugs.webkit.org/show_bug.cgi?id=172417

Reviewed by Sam Weinig.

MapBase is a purely additional indirection. JSMap and JSSet can directly inherit HashMapImpl.
Thus MapBase is unnecessary. This patch drops it.
It is good because we can eliminate one indirection when accessing to map implementation.
Moreover, we can drop one unnecessary allocation per Map and Set.

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

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

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):

  • runtime/HashMapImpl.cpp:

(JSC::HashMapImpl<HashMapBucket>::estimatedSize):
(JSC::getHashMapImplKeyClassInfo): Deleted.
(JSC::getHashMapImplKeyValueClassInfo): Deleted.

  • runtime/HashMapImpl.h:

(JSC::HashMapImpl::finishCreation):
(JSC::HashMapImpl::get):
(JSC::HashMapImpl::info): Deleted.
(JSC::HashMapImpl::createStructure): Deleted.
(JSC::HashMapImpl::create): Deleted.

  • runtime/JSMap.h:

(JSC::JSMap::set):
(JSC::JSMap::get): Deleted.

  • runtime/JSMapIterator.cpp:

(JSC::JSMapIterator::finishCreation):

  • runtime/JSSet.h:

(JSC::JSSet::add): Deleted.

  • runtime/JSSetIterator.cpp:

(JSC::JSSetIterator::finishCreation):

  • runtime/MapBase.cpp: Removed.
  • runtime/MapBase.h: Removed.
  • runtime/MapPrototype.cpp:

(JSC::mapProtoFuncSize):

  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • runtime/SetPrototype.cpp:

(JSC::setProtoFuncSize):

  • runtime/VM.cpp:

(JSC::VM::VM):

1:02 PM Changeset in webkit [217191] by Yusuke Suzuki
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Speedup Object.assign for slow case by using propertyIsEnumerable
https://bugs.webkit.org/show_bug.cgi?id=172411

Reviewed by Sam Weinig.

We use @Reflect.@getOwnPropertyDescriptor() to check

  1. the descriptor exists,
  2. and the descriptor.enumrable is true

But Object::propertyIsEnumerable does the completely same thing without
allocating a new object for property descriptor.

In this patch, we add a new private function @propertyIsEnumerable, and
use it in Object.assign implementation. It does not allocate unnecessary
objects. It is good for GC-pressure and performance.

This patch improves SixSpeed object-assign.es6 by 1.7x. While this patch
does not introduce a fast path for objects that do not have accessors,
and it could speed up things further, this patch can speed up the common
slow path cases that is the current implementation of Object.assign.

object-assign.es6 1103.2487+-21.5602 621.8478+-34.9875 definitely 1.7741x faster

  • builtins/BuiltinNames.h:
  • builtins/ObjectConstructor.js:

(globalPrivate.enumerableOwnProperties):
(assign):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncPropertyIsEnumerable):

  • runtime/JSGlobalObjectFunctions.h:
12:56 PM Changeset in webkit [217190] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] gtkdoc-fixxref needs --module argument to work
https://bugs.webkit.org/show_bug.cgi?id=172415

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-05-20
Reviewed by Michael Catanzaro.

  • gtk/gtkdoc.py:

(GTKDoc._run_gtkdoc_fixxref):

12:25 PM Changeset in webkit [217189] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

-Wreturn-type warning triggered by WKNotification.cpp:77
https://bugs.webkit.org/show_bug.cgi?id=172414

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKNotification.cpp:

(WKNotificationCopyDir):

12:14 PM Changeset in webkit [217188] by Chris Dumez
  • 7 edits in trunk

Value for iterator property is wrong for maplike interfaces
https://bugs.webkit.org/show_bug.cgi?id=172410

Reviewed by Sam Weinig.

Source/WebCore:

Value for iterator property was wrong for maplike interfaces. The iterator property is
supposed to have the same value as the 'entries' property but we were using the value
of the 'values' property.

Specification:

This impacts the iterator of the RTCStatsReport interface.

No new tests, updated existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::JSMapLikePrototype::finishCreation):

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

(WebCore::JSReadOnlyMapLikePrototype::finishCreation):

LayoutTests:

Extend test coverage to test the RTCStatsReport iterator.

  • webrtc/video-stats.html:
11:58 AM Changeset in webkit [217187] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop superfluous iterator property setting in addValueIterableMethods()
https://bugs.webkit.org/show_bug.cgi?id=172409

Reviewed by Youenn Fablet.

Drop superfluous iterator setting in addValueIterableMethods(). The bindings already take care of
adding the iterator property before calling addValueIterableMethods().

No new tests, no Web-facing behavior change.

  • bindings/js/JSDOMIterator.cpp:

(WebCore::addValueIterableMethods):

11:15 AM Changeset in webkit [217186] by ap@apple.com
  • 2 edits in trunk/Tools

make-new-script-test should create tests that use js-test.js, not js-test-pre.js
https://bugs.webkit.org/show_bug.cgi?id=172416

Reviewed by Daniel Bates.

  • Scripts/make-new-script-test:
9:55 AM Changeset in webkit [217185] by jer.noble@apple.com
  • 19 edits
    6 adds in trunk

[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-paint-to-canvas.html

In order to have access to decoded video data for painting, decode the encoded samples manually
instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new
utility class WebCoreDecompressionSession, which can decode samples and store them.

For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication
of our sample delivery pipeline, we will only support painting of decoded video samples when the video is
not displayed in the DOM.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added.

  • Modules/mediasource/SourceBuffer.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros.
  • platform/cf/CoreMediaSoftLink.h: Ditto.
  • platform/cocoa/CoreVideoSoftLink.cpp: Ditto.
  • platform/cocoa/CoreVideoSoftLink.h: Ditto.
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session..
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted.

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

(WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo().
(WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer.
(WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session.
(WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected

buffer and add the decompression session or layer to the newly selected buffer.

(WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted.

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

(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession.
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes.
(WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added.
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h: Added.

(WebCore::WebCoreDecompressionSession::create):
(WebCore::WebCoreDecompressionSession::isInvalidated):
(WebCore::WebCoreDecompressionSession::createWeakPtr):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added.

(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests.
(WebCore::WebCoreDecompressionSession::invalidate): Unregister for same.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts.
(WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue.
(WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample.
(WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput.
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread.
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame).
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count.
(WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady):
(WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same.
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued.
(WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time.
(WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues.
(WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method.
(WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto.
(WebCore::WebCoreDecompressionSession::getDuration): Ditto.
(WebCore::WebCoreDecompressionSession::compareBuffers): Ditto.

  • platform/cocoa/VideoToolboxSoftLink.cpp: Added.
  • platform/cocoa/VideoToolboxSoftLink.h: Added.

LayoutTests:

  • media/media-source/content/test-fragmented.mp4: Add a 'edts' atom to move the presentation time for the

first sample to 0:00.

  • media/media-source/content/test-fragmented-manifest.json:
  • media/media-source/media-source-paint-to-canvas-expected.txt: Added.
  • media/media-source/media-source-paint-to-canvas.html: Added.

May 19, 2017:

11:55 PM Changeset in webkit [217184] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools

[Win] error LNK2005: WebCore::JSNode::checkSubClassPatchpoint() already defined in WebKit.lib
https://bugs.webkit.org/show_bug.cgi?id=172267

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-19
Reviewed by Per Arne Vollan.

TestWebCoreLib and TestWebKitLib have linked both WebCore and WebKit.
TestWebCoreLib should link only with WebCore. And, TestWebKitLib
should link only with WebKit.

Unfortunately, there is a layer violation at the moment.
WebCore::Image::loadPlatformResource needs loadResourceIntoBuffer
in WebKit. This change contains a stub of loadResourceIntoBuffer
in TestWebCoreLib for the workaround.

  • TestWebKitAPI/PlatformWin.cmake: Do not link WebKit to

TestWebCoreLib. Do not link WebCore to TestWebKitLib.

  • TestWebKitAPI/win/TestWebCoreStubs.cpp: Added.

(loadResourceIntoBuffer): Added a stub.

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

WebAVStreamDataParserListener String leak
https://bugs.webkit.org/show_bug.cgi?id=172395

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-19
Reviewed by Chris Dumez.

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

(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]):
Use an isolated String in a lambda used across threads.

8:31 PM Changeset in webkit [217182] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Enable testapi on Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=172354

Reviewed by Alex Christensen.

This patch makes testapi buildable and runnable for Mac CMake port.

  • API/tests/DateTests.mm:

(+[DateTests JSDateToNSDateTest]):
(+[DateTests roundTripThroughJSDateTest]):
This test only works with the en_US locale.

  • shell/CMakeLists.txt:
  • shell/PlatformMac.cmake:

Some of tests rely on ARC. We enable ARC for those files.

  • shell/PlatformWin.cmake:

Clean up.

7:30 PM Changeset in webkit [217181] by Chris Dumez
  • 4 edits in trunk

Consider not exposing webkitURL in workers
https://bugs.webkit.org/show_bug.cgi?id=172166

Reviewed by Geoffrey Garen.

Source/WebCore:

Drop webkitURL alias for URL in workers, to match other browsers. The risk should
be low given that this only impacts workers, we expose URL to workers and Blink
does not have this alias. We still support the webkitURL alias for URL on Window.

No new tests, rebaselined existing test.

  • workers/WorkerGlobalScope.idl:

LayoutTests:

Rebaseline existing test to reflect behavior change.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
6:59 PM Changeset in webkit [217180] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add RTCPeerConnection connection state change logging
https://bugs.webkit.org/show_bug.cgi?id=172314

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-19
Reviewed by Eric Carlson.

No change of behavior.
Adding some release logging of connection state changes.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::rtcIceGatheringStateToString):
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::rtcIceConnectionStateToString):
(WebCore::RTCPeerConnection::updateIceConnectionState):

5:59 PM Changeset in webkit [217179] by mark.lam@apple.com
  • 12 edits
    1 add in trunk

[Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
https://bugs.webkit.org/show_bug.cgi?id=172383
<rdar://problem/31418651>

Reviewed by Filip Pizlo.

JSTests:

  • stress/regress-172383.js: Added.

Source/JavaScriptCore:

pickCanTrample() is wrongly assuming that one of regT0 and regT1 is always
available as a scratch register. This assumption is wrong if this canTrample
register is used for a silentFill() after an operation that returns a result in
regT0 or regT1.

Turns out the only reason we need the canTrample register is for
SetDoubleConstant. We can remove the need for this canTrample register by
introducing a moveDouble() pseudo instruction in the MacroAssembler to do the
job using the scratchRegister() on X86_64 or the dataMemoryTempRegister() on
ARM64. In so doing, we can simplify the silentFill() code and eliminate the bug.

Update for re-landing: Changed ARM64 to use scratchRegister() as well.
scratchRegister() is the proper way to get the underlying dataMemoryTempRegister()
as a scratch register.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::moveDouble):

  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:

(JSC::DFG::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator):

  • dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
  • dfg/DFGSaneStringGetByValSlowPathGenerator.h:
  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::CallSlowPathGenerator::tearDown):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::silentSpillAllRegisters):
(JSC::DFG::SpeculativeJIT::silentFillAllRegisters):
(JSC::DFG::SpeculativeJIT::pickCanTrample): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertAnyInt):

5:58 PM Changeset in webkit [217178] by jmarcell@apple.com
  • 28 edits
    5 adds in branches/safari-603-branch

Cherry-pick r216541. rdar://problem/31971362

5:43 PM Changeset in webkit [217177] by Ryan Haddad
  • 4 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/TestExpectations:
5:27 PM Changeset in webkit [217176] by commit-queue@webkit.org
  • 6 edits
    2 copies in trunk

webkitSupportsFullscreen and webkitSupportsPresentationMode('fullscreen') disagree.
https://bugs.webkit.org/show_bug.cgi?id=172329
rdar://problem/32260891

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Darin Adler.

Source/WebCore:

Updated tests:

  • media/media-fullscreen-inline-expected.txt:
  • media/media-fullscreen-not-in-document-expected.txt:
  • media/media-fullscreen.js:

webkitSupportsPresentationMode('fullscreen') should delegate to webkitSupportsFullscreen.
The additional mediaSession().fullscreenPermitted() check causes it to return false when
not handling a user gesture, which isn't helpful to deciding to show a button in controls
or not.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitSupportsPresentationMode):

LayoutTests:

webkitSupportsPresentationMode('fullscreen') should delegate to webkitSupportsFullscreen.
The additional mediaSession().fullscreenPermitted() check causes it to return false when
not handling a user gesture, which isn't helpful to deciding to show a button in controls
or not.

  • media/media-fullscreen-inline-expected.txt:
  • media/media-fullscreen-not-in-document-expected.txt:
  • media/media-fullscreen.js:

(canplaythrough):

  • platform/mac-elcapitan/media/media-fullscreen-inline-expected.txt:
  • platform/mac-elcapitan/media/media-fullscreen-not-in-document-expected.txt:
5:25 PM Changeset in webkit [217175] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Prevent javascript interface from activating picture-in-picture for video elements that are showing capture camera on ios.
https://bugs.webkit.org/show_bug.cgi?id=172328

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Eric Carlson.

This change allows MediaPlayers to decide if they support pictureInPicture.
And check this from supportsFullscreen().

In MediaPlayerPrivateMediaStreamAVFObjC disable pip if there is a capture video track.
Elsewhere, leave it enabled.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::supportsFullscreen): Added Check.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::supportsPictureInPicture): Added.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::supportsPictureInPicture): Added.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsPictureInPicture): Added

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::supportsFullscreen): Deleted. Moved inline.

5:18 PM Changeset in webkit [217174] by Matt Lewis
  • 4 edits in trunk/LayoutTests

Marked webrtc/datachannel/filter-ice-candidate.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171061

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:03 PM Changeset in webkit [217173] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

Add a commit log viewer next to the analysis results viewer
https://bugs.webkit.org/show_bug.cgi?id=172399

Reviewed by Chris Dumez.

Add a commit log viewer next to the analysis results viewer, which visualizes the A/B testing results.

Also linkify the revisions in the table that shows the status of each A/B testing job,
and allow the prefix of "r" when associating a Subversion revision.

Finally, Fixed a bug that the list of commits associated with the analysis task were not re-rendered
when the list was updated by the user.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer): Added _selectorRadioButtonList as an instance variable. It's a list of radio
buttons to select a configuration (A/B) with a commit set. It's added to update the checked status of
radio buttons upon changing the currently selected test group.
(AnalysisResultsViewer.prototype.setTestGroups): Update the selected range to that of the currently
selected group.
(AnalysisResultsViewer.prototype.render): Fill _selectorRadioButtonList with radio buttons.

  • public/v3/components/commit-log-viewer.js:

(CommitLogViewer): Added _showRepositoryName as an instance variable.
(CommitLogViewer.prototype.setShowRepositoryName): Added.
(CommitLogViewer.prototype.render): Hide the repository name when _showRepositoryName is false. This
is used in the newly added commit log viewer for the analysis results since we're showing a select
element with all the names of repositories above this component.

  • public/v3/components/test-group-revision-table.js:

(TestGroupRevisionTable.prototype._buildCommitCell): Linkify the revisions if possible.

  • public/v3/models/analysis-task.js:

(AnalysisTask.prototype.associateCommit): Strip "r" at the beginning for a Subversion like r12345
since that's the format we use to show to the user. This makes copy & paste easier.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskResultsPane): Added a bunch of new instance variables to show and update the commit log
viewer next to the analysis results viewer.
(AnalysisTaskResultsPane.prototype.setPoints): Create the list of repositories to show details.
(AnalysisTaskResultsPane.prototype.didConstructShadowTree): Re-render when the current selected test
group changes since that may have updated the selected range for A/B testing. Also re-render when
a new repository is selected to show details.
(AnalysisTaskResultsPane.prototype.render): Update the list of repositories and the commit log viewer.
(AnalysisTaskResultsPane.prototype._renderRepositoryList): Renders the list of repositories.
(AnalysisTaskResultsPane.prototype._updateCommitViewer): Updates the commit log viewer given the range
selected in the analysis results viewer.
(AnalysisTaskResultsPane.htmlTemplate): Updated the template.
(AnalysisTaskResultsPane.cssTemplate): Ditto.
(AnalysisTaskTestGroupPane.cssTemplate): Add a little space between the list of results and the table
of A/B testing jobs with revisions.
(AnalysisTaskPage.prototype.render): Fixed the bug that the list of commits associated with the task
is not updated when the list changes the task or the start point never changed when the list of commits
associated with the task changed. Make the lazily evaluated function compare the actual list of commits
so that it will invoke _renderCauseAndFixes when the list changes.
(AnalysisTaskPage.prototype._renderCauseAndFixes): Now renders a specific list.

5:00 PM Changeset in webkit [217172] by Chris Dumez
  • 3 edits
    2 adds in trunk

Do not fire load event for SVGElements that are detached or in frameless documents
https://bugs.webkit.org/show_bug.cgi?id=172289
<rdar://problem/32275689>

Reviewed by Ryosuke Niwa.

Source/WebCore:

We should not fire load event for SVGElements that are detached or in frameless
documents.

Test: svg/load-event-detached.html

  • svg/SVGElement.cpp:

(WebCore::SVGElement::sendSVGLoadEventIfPossible):

LayoutTests:

Add layout test coverage.

  • svg/load-event-detached-expected.txt: Added.
  • svg/load-event-detached.html: Added.
4:37 PM Changeset in webkit [217171] by ap@apple.com
  • 91 edits in trunk/LayoutTests

Many accessibility js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172372

Reviewed by Tim Horton.

Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.

  • accessibility/anonymous-render-block-in-continuation-causes-crash-expected.txt:
  • accessibility/anonymous-render-block-in-continuation-causes-crash.html:
  • accessibility/aria-checkbox-sends-notification.html:
  • accessibility/aria-invalid.html:
  • accessibility/aria-switch-sends-notification.html:
  • accessibility/deleting-iframe-destroys-axcache.html:
  • accessibility/file-upload-button-with-axpress.html:
  • accessibility/frame-disconnect-textmarker-cache-crash-expected.txt:
  • accessibility/frame-disconnect-textmarker-cache-crash.html:
  • accessibility/gtk/aria-listbox-crash.html:
  • accessibility/heading-title-includes-links-expected.txt:
  • accessibility/heading-title-includes-links.html:
  • accessibility/image-map-update-parent-crash-expected.txt:
  • accessibility/image-map-update-parent-crash.html:
  • accessibility/insert-children-assert-expected.txt:
  • accessibility/insert-children-assert.html:
  • accessibility/ios-simulator/focus-change-notifications.html:
  • accessibility/label-element-press.html:
  • accessibility/loading-iframe-updates-axtree.html:
  • accessibility/mac/aria-expanded-notifications.html:
  • accessibility/mac/aria-listbox-selectedchildren-change.html:
  • accessibility/mac/aria-liveregion-on-image.html:
  • accessibility/mac/aria-liveregions-addedelement.html:
  • accessibility/mac/aria-liveregions-changedalt.html:
  • accessibility/mac/aria-liveregions-changedtext.html:
  • accessibility/mac/aria-liveregions-removedelement.html:
  • accessibility/mac/combobox-activedescendant-notifications-expected.txt:
  • accessibility/mac/combobox-activedescendant-notifications.html:
  • accessibility/mac/focus-setting-selection-syncronizing-not-clearing-expected.txt:
  • accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html:
  • accessibility/mac/html-slider-indicator.html:
  • accessibility/mac/input-replacevalue-userinfo-expected.txt:
  • accessibility/mac/input-replacevalue-userinfo.html:
  • accessibility/mac/ordered-textmarker-crash-expected.txt:
  • accessibility/mac/ordered-textmarker-crash.html:
  • accessibility/mac/search-with-frames-expected.txt:
  • accessibility/mac/search-with-frames.html:
  • accessibility/mac/selection-boundary-userinfo.html:
  • accessibility/mac/selection-change-userinfo.html:
  • accessibility/mac/selection-element-tabbing-to-link.html:
  • accessibility/mac/selection-value-changes-for-aria-textbox.html:
  • accessibility/mac/stale-textmarker-crash-expected.txt:
  • accessibility/mac/stale-textmarker-crash.html:
  • accessibility/mac/textbox-role-reports-notifications-expected.txt:
  • accessibility/mac/textbox-role-reports-notifications.html:
  • accessibility/mac/value-change/value-change-user-info-contenteditable.html:
  • accessibility/mac/value-change/value-change-user-info-textarea.html:
  • accessibility/mac/value-change/value-change-user-info-textfield.html:
  • accessibility/media-element.html:
  • accessibility/menu-list-sends-change-notification.html:
  • accessibility/multiselect-list-reports-active-option.html:
  • accessibility/paragraph-with-linebreaks.html:
  • accessibility/platform-name.html:
  • accessibility/radio-button-group-members.html:
  • accessibility/radio-button-title-label.html:
  • accessibility/selection-states-expected.txt:
  • accessibility/selection-states.html:
  • accessibility/spinbutton-value.html:
  • accessibility/svg-bounds.html:
  • accessibility/table-cell-for-column-and-row-crash.html:
  • accessibility/table-cells-roles.html:
  • accessibility/table-roles-hierarchy.html:
  • accessibility/table-with-aria-role.html:
  • accessibility/textarea-insertion-point-line-number.html:
  • accessibility/textbox-role-reports-selection.html:
  • accessibility/title-ui-element-correctness.html:
  • accessibility/unknown-roles-not-exposed-expected.txt:
  • accessibility/unknown-roles-not-exposed.html:
  • accessibility/win/bstr-elements-role.html:
  • accessibility/win/detached-object-notification-crash.html:
  • accessibility/win/heading-elements.html:
  • accessibility/win/img-alt-attribute.html:
  • accessibility/win/linked-elements.html:
  • accessibility/win/list-item-role.html:
  • accessibility/win/list-marker-role.html:
  • accessibility/win/list-role.html:
  • accessibility/win/multiple-select-element-role.html:
  • accessibility/win/option-element-position-and-size.html:
  • accessibility/win/parent-element.html:
  • accessibility/win/select-element-role.html:
  • accessibility/win/selection-and-focus.html:
  • accessibility/win/single-select-children-changed.html:
  • accessibility/win/single-select-children.html:
  • accessibility/win/text-role.html:
  • platform/mac-wk1/accessibility/loading-iframe-updates-axtree-expected.txt:
  • platform/mac-wk2/accessibility/deleting-iframe-destroys-axcache-expected.txt:
  • platform/mac/accessibility/deleting-iframe-destroys-axcache-expected.txt:
  • platform/mac/accessibility/media-element-expected.txt:
  • platform/mac/accessibility/table-cells-roles-expected.txt:
  • platform/mac/accessibility/table-roles-hierarchy-expected.txt:
4:30 PM Changeset in webkit [217170] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Rebaselined js/dom/global-constructors-attributes.html after revision 217129

Unreviewed test gardening.

  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
4:25 PM Changeset in webkit [217169] by Ryan Haddad
  • 12 edits
    1 delete in trunk

Unreviewed, rolling out r217156.

This change broke the iOS build.

Reverted changeset:

"DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
result registers."
https://bugs.webkit.org/show_bug.cgi?id=172383
http://trac.webkit.org/changeset/217156

4:20 PM Changeset in webkit [217168] by Chris Dumez
  • 6 edits
    4 adds in trunk

Option() named constructor is not per spec
https://bugs.webkit.org/show_bug.cgi?id=172185

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import test coverage from upstream web-platform-tests at 8b69df3a68.

  • web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor.html: Added.
  • web-platform-tests/html/semantics/forms/the-option-element/option-index-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-option-element/option-index.html: Added.
  • web-platform-tests/html/semantics/forms/the-option-element/w3c-import.log:

Source/WebCore:

Align the behavior of the Option() named constructor with the HTML specification:

In particular, we no longer create an empty Text child node if the input text is the empty string.
This also aligns our behavior with Firefox.

Test: imported/w3c/web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor.html

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor):

  • html/HTMLOptionElement.h:
  • html/HTMLOptionElement.idl:
4:14 PM Changeset in webkit [217167] by Simon Fraser
  • 2 edits in trunk/Tools

Fix dump-class-layout to handle different file architectures
https://bugs.webkit.org/show_bug.cgi?id=172392

Reviewed by Zalan Bujtas.

Instead of using lldb.LLDB_ARCH_DEFAULT by default, run 'file' on the binary
and use the first architecture reported. Also add a "--architecture" argument
to allow the user to specify an architecture.

  • Scripts/dump-class-layout:

(import_lldb):
(verify_type_recursive):
(get_first_file_architecture):
(dump_class):
(main):
(find_build_directory): Deleted.

4:07 PM Changeset in webkit [217166] by Chris Dumez
  • 13 edits in trunk

URLSearchParams / Headers objects @@iterator is not as per Web IDL spec
https://bugs.webkit.org/show_bug.cgi?id=172218

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests that are now passing.

  • web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
  • web-platform-tests/url/interfaces.any-expected.txt:
  • web-platform-tests/url/interfaces.any.worker-expected.txt:

Source/WebCore:

Both URLSearchParams and Headers interfaces are iterable as per their
respective specification, and they both have a pair iterator:

As per the WebIDL specification for 'entries'[1], "If the interface has a pair
iterator, then the Function object is the value of the @@iterator property",
the value of @@iterator being defined at [2]. In WebKit, we were using
different values/functions for 'entries' and @@iterator, although those
functions were doing the same thing (and the right thing).

Also, as per [2], the name of the @@iterator function should be "entries",
which I also implemented in this patch. Previously, we were using
"[Symbol.Iterator]" as function name.

[1] https://heycam.github.io/webidl/#es-iterable-entries
[2] https://heycam.github.io/webidl/#es-iterator

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateImplementationIterableFunctions):

  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::JSTestIterablePrototype::finishCreation):
(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):

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

(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::jsTestNodePrototypeFunctionEntriesCaller):

LayoutTests:

  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:

Fix FontFaceSet test which wrong expected FontFaceSet's entries() to return
a pair iterator. It does not make sense to return a pair iterator here given
that this is not a key-value structure. FontFaceSet should not even have an
entries() method but this is an artifact of us using iterable<FontFace> instead of
setlike<FontFace> until we support setlike<> (Bug 159140).

4:02 PM Changeset in webkit [217165] by Jonathan Bedard
  • 2 edits in trunk/Tools

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort._create_devices): Ignore failure to open Simulator.app.

3:54 PM Changeset in webkit [217164] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent().
https://bugs.webkit.org/show_bug.cgi?id=172309
<rdar://problem/32262357>

Reviewed by Simon Fraser.

Source/WebCore:

This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION.

In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which
keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we
re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function.
In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it
later, while accessing the children list. However this redundant ellipsis box was never added to the line,
so the assertion hits incorrectly.

Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::EllipsisBox):

  • rendering/InlineBox.cpp: This needs 32bits padding.

(WebCore::InlineBox::invalidateParentChildList):

  • rendering/InlineBox.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::placeEllipsis):

LayoutTests:

  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly-expected.txt: Added.
  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html: Added.
3:51 PM Changeset in webkit [217163] by jmarcell@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Cherry-pick r215091. rdar://problem/32279160

3:51 PM Changeset in webkit [217162] by jmarcell@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebCore

Build Fix: Disabling WritableStream and ReadableByteStream.
<rdar://problem/32057089> Grizzly: Outdated WritableStream API shipped in Safari 10.1

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-19

  • Modules/streams/ReadableStream.js:

(initializeReadableStream): Throwing in case the source type is bytes.

  • Modules/streams/WritableStream.idl: Making it dependent on writable stream API flag.
3:42 PM Changeset in webkit [217161] by rniwa@webkit.org
  • 4 edits in trunk

REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
https://bugs.webkit.org/show_bug.cgi?id=172394

Reviewed by Chris Dumez.

PerformanceTests:

Fixed the bug that we were never clearing window.checkLoadedTimeoutId.

  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:

(newContext.checkLoaded):

Websites/browserbench.org:

Merge the fix.

  • Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:

(newContext.checkLoaded):

3:38 PM Changeset in webkit [217160] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.21-branch/Source

Versioning.

3:36 PM Changeset in webkit [217159] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.21.7

Tag Safari-604.1.21.7.

3:31 PM Changeset in webkit [217158] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit2

Resource Load Statistics: Use WebProcessPool::allProcessPools() when sending message to network process about partitioning
https://bugs.webkit.org/show_bug.cgi?id=172370
<rdar://problem/32288012>

Reviewed by Alex Christensen.

The existing test case
http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html
is currently failing and should start passing again with this patch.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::shouldPartitionCookiesForTopPrivatelyOwnedDomains):

3:28 PM Changeset in webkit [217157] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Add missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=172346
<rdar://problem/32289640>

Reviewed by Geoffrey Garen.

JSTests:

  • stress/regress-172346.js: Added.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::hasInstance):

3:25 PM Changeset in webkit [217156] by mark.lam@apple.com
  • 12 edits
    1 add in trunk

DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
https://bugs.webkit.org/show_bug.cgi?id=172383
<rdar://problem/31418651>

Reviewed by Filip Pizlo.

JSTests:

  • stress/regress-172383.js: Added.

Source/JavaScriptCore:

pickCanTrample() is wrongly assuming that one of regT0 and regT1 is always
available as a scratch register. This assumption is wrong if this canTrample
register is used for a silentFill() after an operation that returns a result in
regT0 or regT1.

Turns out the only reason we need the canTrample register is for
SetDoubleConstant. We can remove the need for this canTrample register by
introducing a moveDouble() pseudo instruction in the MacroAssembler to do the
job using the scratchRegister() on X86_64 or the dataMemoryTempRegister() on
ARM64. In so doing, we can simplify the silentFill() code and eliminate the bug.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::moveDouble):

  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:

(JSC::DFG::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator):

  • dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
  • dfg/DFGSaneStringGetByValSlowPathGenerator.h:
  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::CallSlowPathGenerator::tearDown):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::silentSpillAllRegisters):
(JSC::DFG::SpeculativeJIT::silentFillAllRegisters):
(JSC::DFG::SpeculativeJIT::pickCanTrample): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertAnyInt):

3:24 PM Changeset in webkit [217155] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

LayoutTest js/Promise-types.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=171739

Unreviewed follow-up fix for JSC tests.

  • js/script-tests/Promise-types.js:
3:17 PM Changeset in webkit [217154] by rniwa@webkit.org
  • 8 edits in trunk/Websites/browserbench.org

Merge Speedometer 2.0 fixes up to r217121 to browserbench.org
https://bugs.webkit.org/show_bug.cgi?id=172389

Rubber-stamped by Chris Dumez.

Merged the various fixes for Speedometer 2.0 starting from r217107 through r217121.

  • Speedometer2.0/InteractiveRunner.html:
  • Speedometer2.0/resources/benchmark-runner.js:
  • Speedometer2.0/resources/tests.js:
  • Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/main.js:
  • Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
  • Speedometer2.0/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
  • Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
3:11 PM Changeset in webkit [217153] by Chris Dumez
  • 16 edits in trunk/Source/WebKit2

[WK2] Notify client when a process exceeds background CPU limit while in the foreground
https://bugs.webkit.org/show_bug.cgi?id=172246
<rdar://problem/32235411>

Reviewed by Geoffrey Garen.

When there is a background CPU limit set by the client, we now monitor the CPU
usages of all WebContent processes, not just the non-visible ones. This way, we
are now able to notify the client a process has exceeded the background CPU
limit while in the foreground, via the UIClient's didExceedBackgroundResourceLimitWhileInForeground
function, passing kWKResourceLimitCPU.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::cpuLimit):
(API::PageConfiguration::setCPULimit):

  • UIProcess/API/C/WKPageConfigurationRef.cpp:

(WKPageConfigurationSetBackgroundCPULimit):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::didExceedInactiveMemoryLimitWhileActive):
(WebKit::WebPageProxy::didExceedBackgroundCPULimitWhileInForeground):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didExceedCPULimit):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_cpuLimit):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::cpuLimit):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::updateCPULimit):
(WebKit::WebProcess::updateCPUMonitorState):
(WebKit::WebProcess::pageActivityStateDidChange):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateCPULimit):
(WebKit::WebProcess::updateCPUMonitorState):

2:56 PM Changeset in webkit [217152] by mrajca@apple.com
  • 4 edits
    1 add in trunk

Inherit media user gestures from the top document when autoplay quirks are allowed.
https://bugs.webkit.org/show_bug.cgi?id=172375

Reviewed by Eric Carlson.

Added API test.

  • dom/Document.cpp:

(WebCore::Document::processingUserGestureForMedia):

2:41 PM Changeset in webkit [217151] by commit-queue@webkit.org
  • 10 edits in trunk

Align MockRealtimeMediaSourceCenter with RealtimeMediaSourceCenter
https://bugs.webkit.org/show_bug.cgi?id=172324

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-19
Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.
Remove most of MockRealtimeMediaSourceCenter implementation.
Next step should be to remove it entirely and use the factory setters instead.

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
(WebCore::RealtimeMediaSourceCenter::createMediaStream):
(WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices):
(WebCore::RealtimeMediaSourceCenter::setDeviceEnabled):

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::supportedConstraints):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::MockCaptureDeviceManager::captureDevices):

  • platform/mock/MockRealtimeMediaSourceCenter.h:

LayoutTests:

  • fast/mediastream/mock-media-source-webaudio.html:
2:19 PM Changeset in webkit [217150] by ap@apple.com
  • 42 edits in trunk/LayoutTests

Many CSS js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172379

Reviewed by Tim Horton.

Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.

  • css3/filters/should-not-have-compositing-layer-expected.txt:
  • css3/filters/should-not-have-compositing-layer.html:
  • css3/scroll-snap/nested-elements-expected.txt:
  • css3/scroll-snap/nested-elements.html:
  • css3/scroll-snap/scroll-snap-2d-change-axis-type-expected.txt:
  • css3/scroll-snap/scroll-snap-2d-change-axis-type.html:
  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently-expected.txt:
  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html:
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children-expected.txt:
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html:
  • css3/scroll-snap/scroll-snap-mismatch-expected.txt:
  • css3/scroll-snap/scroll-snap-mismatch.html:
  • css3/scroll-snap/scroll-snap-offsets-expected.txt:
  • css3/scroll-snap/scroll-snap-offsets.html:
  • css3/scroll-snap/scroll-snap-positions-expected.txt:
  • css3/scroll-snap/scroll-snap-positions-mainframe-expected.txt:
  • css3/scroll-snap/scroll-snap-positions-mainframe.html:
  • css3/scroll-snap/scroll-snap-positions-overflow-resize-expected.txt:
  • css3/scroll-snap/scroll-snap-positions-overflow-resize.html:
  • css3/scroll-snap/scroll-snap-positions.html:
  • css3/scroll-snap/scroll-snap-style-changed-align-expected.txt:
  • css3/scroll-snap/scroll-snap-style-changed-align.html:
  • css3/touch-action/touch-action-manipulation-fast-clicks.html:
  • fast/css/counters/2displays-expected.txt:
  • fast/css/counters/2displays.html:
  • fast/css/counters/after-continuation-expected.txt:
  • fast/css/counters/after-continuation.html:
  • fast/css/counters/counter-increment-inherit-expected.txt:
  • fast/css/counters/counter-increment-inherit.htm:
  • fast/css/counters/counter-increment-tests-expected.txt:
  • fast/css/counters/counter-increment-tests.htm:
  • fast/css/device-aspect-ratio.html:
  • fast/css/hover-display-block-inline-expected.txt:
  • fast/css/hover-display-block-inline.html:
  • fast/css/hover-display-block-none-expected.txt:
  • fast/css/hover-display-block-none.html:
  • fast/css/image-resolution/image-resolution.html:
  • fast/css/max-device-aspect-ratio.html:
  • fast/css/min-device-aspect-ratio.html:
  • fast/css/pseudo-target-indirect-sibling-001.html:
  • fast/css/pseudo-target-indirect-sibling-002.html:
2:08 PM Changeset in webkit [217149] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Deduplicate some code in arrayProtoPrivateFuncConcatMemcpy
https://bugs.webkit.org/show_bug.cgi?id=172382

Reviewed by Saam Barati.

This is just a small clean-up - my last patch here created some unnecessary code duplication.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoPrivateFuncConcatMemcpy):

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

Update SameSizeAsInlineBox with the correct InlineBoxBitfields bits.
https://bugs.webkit.org/show_bug.cgi?id=172377

Reviewed by Tim Horton.

  • rendering/InlineBox.cpp:
1:47 PM Changeset in webkit [217147] by Jonathan Bedard
  • 4 edits in trunk/Tools

webkitpy: Use simctl boot to run multiple simulators at once
https://bugs.webkit.org/show_bug.cgi?id=172374

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo.xcode_version): Return the current version of Xcode.

  • Scripts/webkitpy/common/system/platforminfo_mock.py:

(MockPlatformInfo.xcode_version): Return version 8.0 for testing.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort.use_multiple_simulator_apps): Return true if we need to
run multiple Simulator.app instances.
(IOSSimulatorPort._create_simulators): Only copy the simulator app for older
versions of Xcode.
(IOSSimulatorPort._create_devices): Use 'simctl boot' directly unless using
an older version of Xcode.

1:13 PM Changeset in webkit [217146] by dbates@webkit.org
  • 6 edits in trunk/Source/WebCore

Bindings: Support runtime-enabled features in specific worlds
https://bugs.webkit.org/show_bug.cgi?id=172235

Reviewed by Chris Dumez.

Currently a function, attribute, or interface can be annotated with either EnabledAtRuntime
or EnabledForWorld (not both) to expose/conceal it depending on the state of a runtime
feature flag or the DOM world associated with the running JavaScript code, respectively.
Even though we do not have any functions, attributes, or interfaces that are annotated
with both EnabledAtRuntime and EnabledForWorld at the time of writing, it seems reasonable
to support such a combination of annotations. This also has the benefit of making it
straightforward to support the extended attribute SecureContext by generalizing the logic
that generates the code to expose/conceal a function, attribute, or interface.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateRuntimeEnableConditionalString): Use an array to build up all the conjuncts in
the conditional expression.
(GenerateImplementation): Substitute GenerateRuntimeEnableConditionalString() and $runtimeEnableConditionalString
for GetRuntimeEnableFunctionName() and $enable_function_result, respectively.
(GetRuntimeEnableFunctionName): Deleted.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp: (WebCore::JSTestGlobalObject::finishCreation): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabled): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledCaller): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabled): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledCaller): Update expected results.
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjPrototype::finishCreation): (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabled): (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledCaller): Ditto.
  • bindings/scripts/test/TestGlobalObject.idl: Added test cases.
  • bindings/scripts/test/TestObj.idl: Added test case.
1:12 PM Changeset in webkit [217145] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Fix macos build after r217143
https://bugs.webkit.org/show_bug.cgi?id=172380

unreviewed.

Remove reference to WebVideoFullscreenInterface for mac build.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19

  • html/HTMLMediaElement.cpp:
  • platform/mac/WebVideoFullscreenInterfaceMac.h:
1:12 PM Changeset in webkit [217144] by Ryan Haddad
  • 5 edits in trunk/LayoutTests

Skip tests that are reporting FailureNotTested.
https://bugs.webkit.org/show_bug.cgi?id=172378

Unreviewed test gardening.

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
12:39 PM Changeset in webkit [217143] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk/Source

Remove defunct WebVideoFullscreenInterface
https://bugs.webkit.org/show_bug.cgi?id=172254

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Jon Lee.

Source/WebCore:

No new tests because no behavior change.

WebVideoFullscreenInterface has long since been replaced by WebVideoFullscreenModelClient.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:
  • html/HTMLVideoElement.cpp:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
  • platform/cocoa/WebVideoFullscreenInterface.h: Removed.
  • platform/cocoa/WebVideoFullscreenModel.h:
  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.h:

Source/WebKit2:

Remove reference to WebVideoFullscreenInterface. It has long since been replaced by
WebVideoFullscreenModelClient.

  • WebProcess/cocoa/WebVideoFullscreenManager.h:
12:31 PM Changeset in webkit [217142] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r217138. rdar://problem/32182167

12:25 PM Changeset in webkit [217141] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

HTMLVideoElement::webkitSupportsPresentationMode allowsPictureInPicture() check is redundant.
https://bugs.webkit.org/show_bug.cgi?id=172330
rdar://problem/32285443

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Eric Carlson.

No new tests because no behavior change.

This removes a redundant call to allowsPictureInPicture() to make it
more clear that webkitSupportsPresentationMode gives the same result as
webkitSupportsFullscreen(pipMode)

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitSupportsPresentationMode):

12:09 PM Changeset in webkit [217140] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

LayoutTest js/Promise-types.html is a flaky failure (Unhandled Promise Rejection messages)
https://bugs.webkit.org/show_bug.cgi?id=171739

Reviewed by Joseph Pecoraro.

Silence the console messages for unhandled rejections in this LayoutTest.

  • js/script-tests/Promise-types.js:
12:06 PM Changeset in webkit [217139] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[WebRTC] Remove PiP support for video elements that are showing camera capture
https://bugs.webkit.org/show_bug.cgi?id=172336

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Eric Carlson.

Source/WebCore:

No new tests because no effect on the DOM. This just changes a value sent to the platform interface layer.

Ask video element if it supports picture-in-picture instead of asking the mediaSession directly.
This allows the video element to give a more robust answer.

  • html/HTMLVideoElement.h:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen):

Source/WebKit2:

Ask video element if it supports picture-in-picture instead of asking the mediaSession directly.
This allows the video element to give a more robust answer.

  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):

11:47 AM Changeset in webkit [217138] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

LayoutTests/accessibility/mac/aria-multiple-liveregions-notification.html should force layout after r216726.
https://bugs.webkit.org/show_bug.cgi?id=172363
<rdar://problem/32182167>

Reviewed by Simon Fraser.

10ms timer is too short to securely ensure a layout. Let's force it instead.

  • accessibility/mac/aria-multiple-liveregions-notification.html:
11:44 AM Changeset in webkit [217137] by Chris Dumez
  • 3 edits
    1 copy in trunk/Source/WebKit2

Make sure implementation of InitializeWebKit2() always run on the main thread
https://bugs.webkit.org/show_bug.cgi?id=172362
<rdar://problem/32295678>

Reviewed by Geoffrey Garen.

Add logic in InitializeWebKit2() for Cocoa ports to always run the initialization code
is only called once, and on the main thread. If we are called from a non-main thread,
we will dispatch synchronously to the main thread to run the initialization code.

This is needed because WebKit2Initialize() is called from the API::Object constructor.
API::Object is thread-safe RefCounted and those objects are sometimes initialized on
non-main thread. If the first of such objects happened to be initialized on a non-main
thread, then we would run the initialization code for the first time on a non-main
thread. This would lead to hard to debug issues because code such as
RunLoop::initializeMainRunLoop() is only safe to call on the main thread because it
stores a pointer to the current thread's RunLoop in a static variable for later use
(i.e. for RunLoop::main()).

  • Shared/Cocoa/WebKit2InitializeCocoa.mm: Copied from Source/WebKit2/Shared/WebKit2Initialize.cpp.

(WebKit::runInitializationCode):
(WebKit::InitializeWebKit2):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • WebKit2.xcodeproj/project.pbxproj:
11:41 AM Changeset in webkit [217136] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the build on the latest internal SDK.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

11:36 AM Changeset in webkit [217135] by fpizlo@apple.com
  • 7 edits
    1 add in trunk

arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
https://bugs.webkit.org/show_bug.cgi?id=172369

Reviewed by Mark Lam.
JSTests:

  • stress/undecided-concat.js: Added.

Source/JavaScriptCore:

  • heap/Subspace.cpp: Reshaped the code a bit to aid debugging.

(JSC::Subspace::allocate):
(JSC::Subspace::tryAllocate):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoPrivateFuncConcatMemcpy): Fix the bug!

  • runtime/ObjectInitializationScope.cpp: Provide even better feedback.

(JSC::ObjectInitializationScope::verifyPropertiesAreInitialized):

Tools:


Because I wrote a test that relies on the NoCJIT config scribbling free cells, I thought it
would be a good idea to write this down.

  • Scripts/run-jsc-stress-tests:
11:07 AM Changeset in webkit [217134] by weinig@apple.com
  • 49 edits in trunk/Source

[WebIDL] Remove the need for the generator to know about native type mapping
https://bugs.webkit.org/show_bug.cgi?id=172310

Reviewed by Darin Adler.

Source/WebCore:

Replace the use of explicit typename to native type mappings in CodeGeneratorJS.pm
with use of IDLTypes and Converter, which already need the mapping. This allows us
to have the information in only one spot.

Also, callback generation to account for nullability and update the IDLs to correctly
annotate only the types that need to be nullable.

  • Modules/geolocation/GeoNotifier.cpp:
  • Modules/geolocation/GeoNotifier.h:
  • Modules/geolocation/Geolocation.cpp:
  • Modules/geolocation/Geolocation.h:
  • Modules/geolocation/PositionCallback.idl:
  • Modules/geolocation/PositionErrorCallback.h:

Use references where possible in the Geolocation code. It was almost possible
to make PositionCallback take a non-nullable position, but some odd logic in
Geolocation::makeCachedPositionCallbacks() implies that there is a path where
passing null is possible, though it would assert. Added FIXME's to return to
this in a follow up.

  • Modules/webaudio/AudioBufferCallback.idl:

Add nullable annotation and FIXME explaining that the latest spec splits the callback
into two separate ones.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::runTransaction):

  • Modules/webdatabase/DatabaseCallback.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabase):

  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::performCallback):

  • Modules/webdatabase/SQLStatementCallback.h:
  • Modules/webdatabase/SQLStatementErrorCallback.h:
  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):

  • Modules/webdatabase/SQLTransactionCallback.h:
  • Modules/webdatabase/SQLTransactionErrorCallback.h:
  • inspector/InspectorDatabaseAgent.cpp:
  • bindings/js/JSSQLStatementErrorCallbackCustom.cpp:

(WebCore::JSSQLStatementErrorCallback::handleEvent):
Update to pass callback parameters as references, since they are never null.

  • bindings/IDLTypes.h:

Add NullableParameterType to allow customization of nullable parameters (in much
the same way we allow customization of the nullable implementation type).

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):
Use Converter<>::ReturnType{ } for default values rather than ${GetNativeType..}().

(GenerateHeader):
Remove use of GetNativeType for toWrapped by using the impl type, since this will never
be a complex type.

(GenerateImplementation):
Simplify DOMJIT UnsafeToNative by merging two identical paths and using auto.

(GenerateParametersCheck):
Rework parameter checks to use more specific variable names, make branches more clear,
and use Converter<>::ReturnType rather than GetNativeType.

(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
Switch to using typename ${IDLType}::ParameterType as the parameters for callback functions. Also
add final and override to make sure the generated function matches the user provided base class.
(GetNativeType): Deleted.
(GetNativeInnerType): Deleted.
(GetNativeTypeForCallbacks): Deleted.
Remove native type mappings.

  • css/MediaQueryListListener.h:
  • css/MediaQueryListListener.idl:
  • css/MediaQueryMatcher.cpp:

Update MediaQueryListListener to take a non-nullable MediaQueryList.

  • dom/NativeNodeFilter.cpp:
  • dom/NativeNodeFilter.h:
  • dom/NodeFilter.h:
  • dom/NodeFilter.idl:
  • dom/NodeIterator.cpp:
  • dom/Traversal.cpp:
  • dom/Traversal.h:
  • dom/TreeWalker.cpp:
  • bindings/js/JSNodeFilterCustom.cpp:

Update acceptNode to be non-nullable and pass the Node by reference.

  • dom/StringCallback.cpp:
  • dom/StringCallback.h:

Pass the ScriptExecutionContext by reference.

  • page/IntersectionObserverCallback.h:

Update to match new parameter types and pass IntersectionObserver by reference.

  • page/PerformanceObserver.cpp:
  • page/PerformanceObserverCallback.h:

Update to pass PerformanceObserverEntryList and PerformanceObserver by reference.

  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.h:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Update test results.

  • bindings/scripts/test/TestCallbackInterface.idl:

Update test to refer to actual interfaces as we now do lookup on these parameter
types rather than blindly assuming they are interfaces.

Source/WebKit/mac:

  • DOM/DOM.mm:

(-[DOMNodeFilter acceptNode:]):
Update to pass Node by reference.

11:06 AM Changeset in webkit [217133] by Ryan Haddad
  • 18 edits
    6 deletes in trunk

Unreviewed, rolling out r217098, r217111, r217113, and
r217114.
https://bugs.webkit.org/show_bug.cgi?id=172367

These changes broke the Windows build and introduced
LayoutTest failures (Requested by ryanhaddad on #webkit).

Reverted changesets:

"[MSE][Mac] Support painting MSE video-element to canvas"
https://bugs.webkit.org/show_bug.cgi?id=125157
http://trac.webkit.org/changeset/217098

"[MSE][Mac] Support painting MSE video-element to canvas"
https://bugs.webkit.org/show_bug.cgi?id=125157
http://trac.webkit.org/changeset/217111

"Unreviewed build fix; add undefined functions and constants
to the CoreMediaSoftLink.h, and use the"
http://trac.webkit.org/changeset/217113

"[MSE][Mac] Support painting MSE video-element to canvas"
https://bugs.webkit.org/show_bug.cgi?id=125157
http://trac.webkit.org/changeset/217114

Patch by Commit Queue <commit-queue@webkit.org> on 2017-05-19

11:02 AM Changeset in webkit [217132] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Use initialLayout for Settings tab
https://bugs.webkit.org/show_bug.cgi?id=172304

Reviewed by Matt Baker.

  • UserInterface/Views/GeneralSettingsView.js:

(WebInspector.GeneralSettingsView.prototype.initialLayout):
Move listener for zoom factor to only update that editor.

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.initialLayout): Added.
It is not necessary to create the UI for editing settings until the Settings tab is shown.
Use initialLayout to ensure UI gets created exactly once, after the tab is selected.

9:37 AM Changeset in webkit [217131] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r217096. rdar://problem/32243153

9:23 AM Changeset in webkit [217130] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Layout tests which have no output will succeed
https://bugs.webkit.org/show_bug.cgi?id=172322
<rdar://problem/32258350>

Reviewed by David Kilzer.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_text): Add FailreNotTested to failures if test has no output.

  • Scripts/webkitpy/layout_tests/models/test_failures.py:

(determine_result_type): FailureNotTested means that the test could not be loaded. This
is classified as a MISSING failure.
(FailureNotTested): Added.
(FailureNotTested.message):

9:16 AM Changeset in webkit [217129] by aestes@apple.com
  • 4 edits in trunk

REGRESSION (r217078): window.ApplePaySession is undefined on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=172344

Reviewed by Tim Horton.

Source/WebCore:

r213673 mistakenly changed the ApplePaySession interface from being conditional on
APPLE_PAY to being conditional on APPLE_PAY_DELEGATE, so when r217078 disabled
APPLE_PAY_DELEGATE on Sierra and earlier it disabled ApplePaySession.

Fix this by reverting ApplePaySession to being conditional on APPLE_PAY.

Fixes http/tests/ssl/applepay/ApplePaySession.html

  • Modules/applepay/ApplePaySession.idl:

LayoutTests:

9:11 AM Changeset in webkit [217128] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r216977): [GTK] Ephemeral sessions broken after r216977
https://bugs.webkit.org/show_bug.cgi?id=172345

Reviewed by Michael Catanzaro.

Since r216977, WebProcessPool sends the page session ID to the web process, but the WebsiteDataStoreParameters
session ID to the network process. WebsiteDataStoreParameters is only implemented for Cocoa, so we are sending 0
session ID to the network process, while using the right session ID everywhere else.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pageAddedToProcess): Add an ASSERT to ensure we are sending the same session ID to Web
and Network processes.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters): Add minimal implementation for non-Cocoa ports to at least set the
session ID.

8:48 AM Changeset in webkit [217127] by fpizlo@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

B3::Value::effects() says that having a fence range implies the fence bit, but on x86_64 we lower loadAcq/storeRel to load/store so the store-before-load fence bit orderings won't be honored
https://bugs.webkit.org/show_bug.cgi?id=172306

Reviewed by Michael Saboff.

This changes B3 to emit xchg and its variants for fenced stores on x86. This ensures that
fenced stores cannot be reordered around other fenced instructions. Previously, B3 emitted
normal store instructions for fenced stores. That's wrong because then you get reorderings
that are possible in TSO but impossible in SC. Fenced instructions are supposed to be SC
with respect for each other.

This is imprecise. If you really just wanted a store-release, then every X86 store does this.
But, in B3, fenced stores are ARM-style store-release, meaning that they are fenced with
respect to all other fences. If we ever did want to say that something is a store release in
the traditional sense, then we'd want MemoryValue to have a fence flag. Then, having a fence
range without the fence flag would mean the traditional store-release, which lowers to a
normal store on x86. But to my knowledge, that traditional store-release is only useful for
unlocking spinlocks. We don't use spinlocks in JSC. Adaptive locks require CAS for unlock,
and B3 CAS is plenty fast. I think it's OK to have this small imprecision of giving clients
an ARM-style store-release on x86 using xchg.

The implication of this change is that the FTL no longer violates the SAB memory model.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::xchg8):
(JSC::MacroAssemblerX86Common::xchg16):
(JSC::MacroAssemblerX86Common::xchg32):
(JSC::MacroAssemblerX86Common::loadAcq8): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq8SignedExtendTo32): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq16): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq16SignedExtendTo32): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq32): Deleted.
(JSC::MacroAssemblerX86Common::storeRel8): Deleted.
(JSC::MacroAssemblerX86Common::storeRel16): Deleted.
(JSC::MacroAssemblerX86Common::storeRel32): Deleted.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::xchg64):
(JSC::MacroAssemblerX86_64::loadAcq64): Deleted.
(JSC::MacroAssemblerX86_64::storeRel64): Deleted.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::ArgPromise::inst):
(JSC::B3::Air::LowerToAir::trappingInst):
(JSC::B3::Air::LowerToAir::tryAppendStoreBinOp):
(JSC::B3::Air::LowerToAir::createStore):
(JSC::B3::Air::LowerToAir::storeOpcode):
(JSC::B3::Air::LowerToAir::appendStore):
(JSC::B3::Air::LowerToAir::append):
(JSC::B3::Air::LowerToAir::appendTrapping):
(JSC::B3::Air::LowerToAir::fillStackmap):
(JSC::B3::Air::LowerToAir::lower):

  • b3/air/AirKind.cpp:

(JSC::B3::Air::Kind::dump):

  • b3/air/AirKind.h:

(JSC::B3::Air::Kind::Kind):
(JSC::B3::Air::Kind::operator==):
(JSC::B3::Air::Kind::hash):

  • b3/air/AirLowerAfterRegAlloc.cpp:

(JSC::B3::Air::lowerAfterRegAlloc):

  • b3/air/AirLowerMacros.cpp:

(JSC::B3::Air::lowerMacros):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.cpp:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::correctSqrt):
(JSC::B3::testSqrtArg):
(JSC::B3::testSqrtImm):
(JSC::B3::testSqrtMem):
(JSC::B3::testSqrtArgWithUselessDoubleConversion):
(JSC::B3::testSqrtArgWithEffectfulDoubleConversion):
(JSC::B3::testStoreRelAddLoadAcq32):
(JSC::B3::testTrappingLoad):
(JSC::B3::testTrappingStore):
(JSC::B3::testTrappingLoadAddStore):
(JSC::B3::testTrappingLoadDCE):

7:45 AM Changeset in webkit [217126] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Add more input validation in Connection::processMessage()
https://bugs.webkit.org/show_bug.cgi?id=171682

Reviewed by Michael Catanzaro.

Check limits of attachments and message size. Credit to Nathan Crandall for reporting this issue and submitting
an equivalent fix.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

7:11 AM Changeset in webkit [217125] by Chris Dumez
  • 13 edits
    153 adds in trunk

CSSOM insertRule() index argument is optional with default 0
https://bugs.webkit.org/show_bug.cgi?id=172219

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import cssom web-platform-tests. The insertRule* tests include coverage
for this change.

  • resources/import-expectations.json:
  • web-platform-tests/cssom/CSS-expected.txt: Added.
  • web-platform-tests/cssom/CSS.html: Added.
  • web-platform-tests/cssom/CSSKeyframeRule-expected.txt: Added.
  • web-platform-tests/cssom/CSSKeyframeRule.html: Added.
  • web-platform-tests/cssom/CSSKeyframesRule-expected.txt: Added.
  • web-platform-tests/cssom/CSSKeyframesRule.html: Added.
  • web-platform-tests/cssom/CSSNamespaceRule-expected.txt: Added.
  • web-platform-tests/cssom/CSSNamespaceRule.html: Added.
  • web-platform-tests/cssom/CSSRuleList-expected.txt: Added.
  • web-platform-tests/cssom/CSSRuleList.html: Added.
  • web-platform-tests/cssom/CSSStyleRule-expected.txt: Added.
  • web-platform-tests/cssom/CSSStyleRule.html: Added.
  • web-platform-tests/cssom/CSSStyleSheet-expected.txt: Added.
  • web-platform-tests/cssom/CSSStyleSheet.html: Added.
  • web-platform-tests/cssom/MediaList-expected.txt: Added.
  • web-platform-tests/cssom/MediaList.html: Added.
  • web-platform-tests/cssom/MediaList.xhtml: Added.
  • web-platform-tests/cssom/OWNERS: Added.
  • web-platform-tests/cssom/StyleSheetList-expected.txt: Added.
  • web-platform-tests/cssom/StyleSheetList.html: Added.
  • web-platform-tests/cssom/computed-style-001-expected.txt: Added.
  • web-platform-tests/cssom/computed-style-001.html: Added.
  • web-platform-tests/cssom/css-style-attribute-modifications-expected.txt: Added.
  • web-platform-tests/cssom/css-style-attribute-modifications.html: Added.
  • web-platform-tests/cssom/css-style-declaration-modifications-expected.txt: Added.
  • web-platform-tests/cssom/css-style-declaration-modifications.html: Added.
  • web-platform-tests/cssom/cssimportrule-expected.txt: Added.
  • web-platform-tests/cssom/cssimportrule.html: Added.
  • web-platform-tests/cssom/cssom-cssText-serialize-expected.txt: Added.
  • web-platform-tests/cssom/cssom-cssText-serialize.html: Added.
  • web-platform-tests/cssom/cssom-cssstyledeclaration-set-expected.txt: Added.
  • web-platform-tests/cssom/cssom-cssstyledeclaration-set.html: Added.
  • web-platform-tests/cssom/cssom-fontfacerule-constructors-expected.txt: Added.
  • web-platform-tests/cssom/cssom-fontfacerule-constructors.html: Added.
  • web-platform-tests/cssom/cssom-fontfacerule-expected.txt: Added.
  • web-platform-tests/cssom/cssom-fontfacerule.html: Added.
  • web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt: Added.
  • web-platform-tests/cssom/cssom-setProperty-shorthand.html: Added.
  • web-platform-tests/cssom/cssstyledeclaration-csstext-expected.txt: Added.
  • web-platform-tests/cssom/cssstyledeclaration-csstext.html: Added.
  • web-platform-tests/cssom/cssstyledeclaration-mutability-expected.txt: Added.
  • web-platform-tests/cssom/cssstyledeclaration-mutability.html: Added.
  • web-platform-tests/cssom/escape-expected.txt: Added.
  • web-platform-tests/cssom/escape.html: Added.
  • web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt: Added.
  • web-platform-tests/cssom/getComputedStyle-pseudo.html: Added.
  • web-platform-tests/cssom/historical-expected.txt: Added.
  • web-platform-tests/cssom/historical.html: Added.
  • web-platform-tests/cssom/index-001-expected.txt: Added.
  • web-platform-tests/cssom/index-001.html: Added.
  • web-platform-tests/cssom/index-002-expected.txt: Added.
  • web-platform-tests/cssom/index-002.html: Added.
  • web-platform-tests/cssom/index-003-expected.txt: Added.
  • web-platform-tests/cssom/index-003.html: Added.
  • web-platform-tests/cssom/inline-style-001-expected.txt: Added.
  • web-platform-tests/cssom/inline-style-001.html: Added.
  • web-platform-tests/cssom/insertRule-charset-no-index-expected.txt: Added.
  • web-platform-tests/cssom/insertRule-charset-no-index.html: Added.
  • web-platform-tests/cssom/insertRule-import-no-index-expected.txt: Added.
  • web-platform-tests/cssom/insertRule-import-no-index.html: Added.
  • web-platform-tests/cssom/insertRule-namespace-no-index-expected.txt: Added.
  • web-platform-tests/cssom/insertRule-namespace-no-index.html: Added.
  • web-platform-tests/cssom/insertRule-no-index-expected.txt: Added.
  • web-platform-tests/cssom/insertRule-no-index.html: Added.
  • web-platform-tests/cssom/interfaces-expected.txt: Added.
  • web-platform-tests/cssom/interfaces.html: Added.
  • web-platform-tests/cssom/medialist-interfaces-001-expected.txt: Added.
  • web-platform-tests/cssom/medialist-interfaces-001.html: Added.
  • web-platform-tests/cssom/medialist-interfaces-002-expected.txt: Added.
  • web-platform-tests/cssom/medialist-interfaces-002.html: Added.
  • web-platform-tests/cssom/medialist-interfaces-003-expected.txt: Added.
  • web-platform-tests/cssom/medialist-interfaces-003.html: Added.
  • web-platform-tests/cssom/medialist-interfaces-004-expected.txt: Added.
  • web-platform-tests/cssom/medialist-interfaces-004.html: Added.
  • web-platform-tests/cssom/overflow-serialization-expected.txt: Added.
  • web-platform-tests/cssom/overflow-serialization.html: Added.
  • web-platform-tests/cssom/selectorSerialize-expected.txt: Added.
  • web-platform-tests/cssom/selectorSerialize.html: Added.
  • web-platform-tests/cssom/serialization-CSSDeclaration-with-important-expected.txt: Added.
  • web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html: Added.
  • web-platform-tests/cssom/serialize-namespaced-type-selectors-expected.txt: Added.
  • web-platform-tests/cssom/serialize-namespaced-type-selectors.html: Added.
  • web-platform-tests/cssom/serialize-values-expected.txt: Added.
  • web-platform-tests/cssom/serialize-values.html: Added.
  • web-platform-tests/cssom/serialize-variable-reference-expected.txt: Added.
  • web-platform-tests/cssom/serialize-variable-reference.html: Added.
  • web-platform-tests/cssom/shorthand-serialization-expected.txt: Added.
  • web-platform-tests/cssom/shorthand-serialization.html: Added.
  • web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt: Added.
  • web-platform-tests/cssom/style-sheet-interfaces-001.html: Added.
  • web-platform-tests/cssom/style-sheet-interfaces-002-expected.txt: Added.
  • web-platform-tests/cssom/style-sheet-interfaces-002.html: Added.
  • web-platform-tests/cssom/stylesheet-same-origin.css: Added.

(body):

  • web-platform-tests/cssom/stylesheet-same-origin.sub-expected.txt: Added.
  • web-platform-tests/cssom/stylesheet-same-origin.sub.html: Added.
  • web-platform-tests/cssom/support/1x1-green.png: Added.
  • web-platform-tests/cssom/support/1x1-lime.png: Added.
  • web-platform-tests/cssom/support/1x1-maroon.png: Added.
  • web-platform-tests/cssom/support/1x1-navy.png: Added.
  • web-platform-tests/cssom/support/1x1-red.png: Added.
  • web-platform-tests/cssom/support/1x1-white.png: Added.
  • web-platform-tests/cssom/support/60x60-gg-rr.png: Added.
  • web-platform-tests/cssom/support/60x60-green.png: Added.
  • web-platform-tests/cssom/support/60x60-red.png: Added.
  • web-platform-tests/cssom/support/README: Added.
  • web-platform-tests/cssom/support/a-green.css: Added.

(.a):

  • web-platform-tests/cssom/support/b-green.css: Added.

(.b):

  • web-platform-tests/cssom/support/c-red.css: Added.

(.c):

  • web-platform-tests/cssom/support/cat.png: Added.
  • web-platform-tests/cssom/support/import-charset.css: Added.
  • web-platform-tests/cssom/support/import-green.css: Added.

(.import):

  • web-platform-tests/cssom/support/import-red.css: Added.

(.import):

  • web-platform-tests/cssom/support/pattern-grg-rgr-grg.png: Added.
  • web-platform-tests/cssom/support/pattern-grg-rrg-rgg.png: Added.
  • web-platform-tests/cssom/support/pattern-rgr-grg-rgr.png: Added.
  • web-platform-tests/cssom/support/pattern-tr.png: Added.
  • web-platform-tests/cssom/support/ruler-h-50%.png: Added.
  • web-platform-tests/cssom/support/ruler-h-50px.png: Added.
  • web-platform-tests/cssom/support/ruler-v-100px.png: Added.
  • web-platform-tests/cssom/support/ruler-v-50px.png: Added.
  • web-platform-tests/cssom/support/square-purple.png: Added.
  • web-platform-tests/cssom/support/square-teal.png: Added.
  • web-platform-tests/cssom/support/square-white.png: Added.
  • web-platform-tests/cssom/support/support/README: Added.
  • web-platform-tests/cssom/support/support/swatch-green.png: Added.
  • web-platform-tests/cssom/support/support/swatch-red.png: Added.
  • web-platform-tests/cssom/support/support/w3c-import.log: Added.
  • web-platform-tests/cssom/support/swatch-blue.png: Added.
  • web-platform-tests/cssom/support/swatch-green.png: Added.
  • web-platform-tests/cssom/support/swatch-lime.png: Added.
  • web-platform-tests/cssom/support/swatch-orange.png: Added.
  • web-platform-tests/cssom/support/swatch-red.png: Added.
  • web-platform-tests/cssom/support/swatch-teal.png: Added.
  • web-platform-tests/cssom/support/swatch-white.png: Added.
  • web-platform-tests/cssom/support/swatch-yellow.png: Added.
  • web-platform-tests/cssom/support/test-bl.png: Added.
  • web-platform-tests/cssom/support/test-br.png: Added.
  • web-platform-tests/cssom/support/test-inner-half-size.png: Added.
  • web-platform-tests/cssom/support/test-outer.png: Added.
  • web-platform-tests/cssom/support/test-tl.png: Added.
  • web-platform-tests/cssom/support/test-tr.png: Added.
  • web-platform-tests/cssom/support/w3c-import.log: Added.
  • web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count-expected.txt: Added.
  • web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html: Added.
  • web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt: Added.
  • web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html: Added.
  • web-platform-tests/cssom/ttwf-cssom-document-extension-expected.txt: Added.
  • web-platform-tests/cssom/ttwf-cssom-document-extension.html: Added.
  • web-platform-tests/cssom/variable-names-expected.txt: Added.
  • web-platform-tests/cssom/variable-names.html: Added.
  • web-platform-tests/cssom/w3c-import.log: Added.

Source/WebCore:

Index parameter to CSSSupportsRule.insertRule() and CSSStyleSheet.insertRule() should
be optional with a default value of 0, as per the latest specification:

Tests: imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html

imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html
imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html
imported/w3c/web-platform-tests/cssom/insertRule-no-index.html

  • css/CSSStyleSheet.cpp:
  • css/CSSStyleSheet.h:
  • css/CSSStyleSheet.idl:
  • css/CSSSupportsRule.idl:

LayoutTests:

Update / Rebaseline existing tests to reflect behavior change.

  • fast/css/CSSSupportsRule-parameters-expected.txt:
  • fast/css/CSSSupportsRule-parameters.html:
  • fast/css/stylesheet-parameters-expected.txt:
  • fast/css/stylesheet-parameters.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
6:59 AM Changeset in webkit [217124] by Yusuke Suzuki
  • 4 edits
    86 adds in trunk

Add SixSpeed benchmark to PerformanceTests
https://bugs.webkit.org/show_bug.cgi?id=172326

Reviewed by Sam Weinig.

PerformanceTests:

This patch imports SixSpeed benchmark into WebKit tree.
It is a collection of ES6 microbenchmarks. While the scripts are very tiny,
it sometimes hits our missing care for optimization. So including it is useful.

The benchmark is released under MIT license.

  • SixSpeed/LICENSE: Added.
  • SixSpeed/REVISION: Added.
  • SixSpeed/ReadMe.md: Added.
  • SixSpeed/tests/.eslintrc: Added.
  • SixSpeed/tests/arrow-args/arrow-args.es5: Added.
  • SixSpeed/tests/arrow-args/arrow-args.es6: Added.
  • SixSpeed/tests/arrow-declare/arrow-declare.es5: Added.
  • SixSpeed/tests/arrow-declare/arrow-declare.es6: Added.
  • SixSpeed/tests/arrow/arrow.es5: Added.
  • SixSpeed/tests/arrow/arrow.es6: Added.
  • SixSpeed/tests/bindings-compound/bindings-compound.es5: Added.
  • SixSpeed/tests/bindings-compound/bindings-compound.es6: Added.
  • SixSpeed/tests/bindings/bindings.es5: Added.
  • SixSpeed/tests/bindings/bindings.es6: Added.
  • SixSpeed/tests/classes/classes.es5: Added.
  • SixSpeed/tests/classes/classes.es6: Added.
  • SixSpeed/tests/defaults/defaults.es5: Added.
  • SixSpeed/tests/defaults/defaults.es6: Added.
  • SixSpeed/tests/destructuring-simple/destructuring-simple.es5: Added.
  • SixSpeed/tests/destructuring-simple/destructuring-simple.es6: Added.
  • SixSpeed/tests/destructuring/destructuring.es5: Added.
  • SixSpeed/tests/destructuring/destructuring.es6: Added.
  • SixSpeed/tests/for-of-array/for-of-array.es5: Added.
  • SixSpeed/tests/for-of-array/for-of-array.es6: Added.
  • SixSpeed/tests/for-of-object/for-of-object.es5: Added.
  • SixSpeed/tests/for-of-object/for-of-object.es6: Added.
  • SixSpeed/tests/generator/generator.es5: Added.
  • SixSpeed/tests/generator/generator.es6: Added.
  • SixSpeed/tests/map-set-lookup/map-set-lookup.es5: Added.
  • SixSpeed/tests/map-set-lookup/map-set-lookup.es6: Added.
  • SixSpeed/tests/map-set-object/map-set-object.es5: Added.
  • SixSpeed/tests/map-set-object/map-set-object.es6: Added.
  • SixSpeed/tests/map-set/map-set.es5: Added.
  • SixSpeed/tests/map-set/map-set.es6: Added.
  • SixSpeed/tests/map-string/map-string.es5: Added.
  • SixSpeed/tests/map-string/map-string.es6: Added.
  • SixSpeed/tests/new-target/defaults.es5: Added.
  • SixSpeed/tests/new-target/defaults.es6: Added.
  • SixSpeed/tests/object-assign/object-assign.es5: Added.
  • SixSpeed/tests/object-assign/object-assign.es6: Added.
  • SixSpeed/tests/object-literal-ext/object-literal-ext.es5: Added.
  • SixSpeed/tests/object-literal-ext/object-literal-ext.es6: Added.
  • SixSpeed/tests/regex-u/regex-u.es5: Added.
  • SixSpeed/tests/regex-u/regex-u.es6: Added.
  • SixSpeed/tests/rest/rest.es5: Added.
  • SixSpeed/tests/rest/rest.es6: Added.
  • SixSpeed/tests/spread-generator/spread-generator.es5: Added.
  • SixSpeed/tests/spread-generator/spread-generator.es6: Added.
  • SixSpeed/tests/spread-literal/spread-literal.es5: Added.
  • SixSpeed/tests/spread-literal/spread-literal.es6: Added.
  • SixSpeed/tests/spread/spread.es5: Added.
  • SixSpeed/tests/spread/spread.es6: Added.
  • SixSpeed/tests/super/super.es5: Added.
  • SixSpeed/tests/super/super.es6: Added.
  • SixSpeed/tests/template_string/template_string.es5: Added.
  • SixSpeed/tests/template_string/template_string.es6: Added.
  • SixSpeed/tests/template_string_tag/template_string_tag.es5: Added.
  • SixSpeed/tests/template_string_tag/template_string_tag.es6: Added.
  • SixSpeed/wrappers/wrapper.js:

(test):

Tools:

  • Scripts/run-jsc-benchmarks:
5:32 AM Changeset in webkit [217123] by Carlos Garcia Campos
  • 15 edits
    1 copy
    1 add in trunk/Source

[Threaded Compositor] Remove platform ifdefs from threaded compositor implementation
https://bugs.webkit.org/show_bug.cgi?id=172265

Reviewed by Žan Doberšek.

Source/WebCore:

Remove PlatformDisplayWPE::EGLTarget.

  • platform/graphics/wpe/PlatformDisplayWPE.cpp:
  • platform/graphics/wpe/PlatformDisplayWPE.h:

Source/WebKit2:

Add AcceleratedSurfaceWPE implementation that is equivalent to the PlatformDisplayWPE::EGLTarget. Since WPE needs the
surface to be initialized/finalized in the compositing thread, two new virtual methods has been added to
AcceleratedSurface initialize/finalize that are only implemented by WPE. The threaded compositor no longer
receives a native surface handle as contructor parameter, it now asks the client for it from the compositing
thread, right after it's created.

  • PlatformWPE.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Remove ativeSurfaceHandle parameter.
(WebKit::ThreadedCompositor::ThreadedCompositor): Initialize m_nativeSurfaceHandle from the compositing thread
asking the client for it.
(WebKit::ThreadedCompositor::createGLContext): Remove the WPE implementation.
(WebKit::ThreadedCompositor::invalidate): Notify the client that the GL context has been destroyed.
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Remove GTK ifdefs.
(WebKit::ThreadedCompositor::setViewportSize): Remove WPE implementation.
(WebKit::ThreadedCompositor::renderLayerTree): Notify the client the frame will be rendered, and when it has
been rendered.
(WebKit::ThreadedCompositor::frameComplete): Remove WPE ifdefs.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/AcceleratedSurface.cpp:

(WebKit::AcceleratedSurface::create): Add client parameter.
(WebKit::AcceleratedSurface::AcceleratedSurface): Create a AcceleratedSurfaceWPE if display is WPE.

  • WebProcess/WebPage/AcceleratedSurface.h:

(WebKit::AcceleratedSurface::surfaceID):
(WebKit::AcceleratedSurface::initialize):
(WebKit::AcceleratedSurface::finalize):
(WebKit::AcceleratedSurface::willRenderFrame):
(WebKit::AcceleratedSurface::didRenderFrame):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Pass this as client of AcceleratedSurface.
(WebKit::ThreadedCoordinatedLayerTreeHost::frameComplete): Notify the compositor.
(WebKit::ThreadedCoordinatedLayerTreeHost::nativeSurfaceHandleForCompositing): Initialize the surface and return
the window handler.
(WebKit::ThreadedCoordinatedLayerTreeHost::didDestroyGLContext): Finalize the surface.
(WebKit::ThreadedCoordinatedLayerTreeHost::willRenderFrame): Notify the surface.
(WebKit::ThreadedCoordinatedLayerTreeHost::didRenderFrame): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:

(WebKit::AcceleratedSurfaceWayland::create): Add client parameter.
(WebKit::AcceleratedSurfaceWayland::AcceleratedSurfaceWayland): Ditto.
(WebKit::AcceleratedSurfaceWayland::didRenderFrame): Call Client::frameComplete().

  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:

(WebKit::AcceleratedSurfaceX11::create): Add client parameter.
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11): Ditto.
(WebKit::AcceleratedSurfaceX11::didRenderFrame): Call Client::frameComplete().

  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:
  • WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp: Added.

(WebKit::AcceleratedSurfaceWPE::create):
(WebKit::AcceleratedSurfaceWPE::AcceleratedSurfaceWPE):
(WebKit::AcceleratedSurfaceWPE::~AcceleratedSurfaceWPE):
(WebKit::AcceleratedSurfaceWPE::initialize):
(WebKit::AcceleratedSurfaceWPE::finalize):
(WebKit::AcceleratedSurfaceWPE::window):
(WebKit::AcceleratedSurfaceWPE::surfaceID):
(WebKit::AcceleratedSurfaceWPE::resize):
(WebKit::AcceleratedSurfaceWPE::willRenderFrame):
(WebKit::AcceleratedSurfaceWPE::didRenderFrame):

  • WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.h: Copied from Source/WebKit2/WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h.
4:46 AM Changeset in webkit [217122] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Adding or updating test expectations for
four W3C layout tests covering MSE and IndexedDB implementations.

  • platform/gtk/TestExpectations:
3:50 AM Changeset in webkit [217121] by rniwa@webkit.org
  • 3 edits in trunk/PerformanceTests

Speedometer 2.0: Angular v1 test only deletes the second item
https://bugs.webkit.org/show_bug.cgi?id=172353

Reviewed by Antti Koivisto.

Like jQuery and Inferno, run querySelector after removing each todo item.

  • Speedometer/InteractiveRunner.html: Tweaked CSS again.
  • Speedometer/resources/tests.js:
3:13 AM Changeset in webkit [217120] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

[WTF] Remove PLATFORM(WIN) references
https://bugs.webkit.org/show_bug.cgi?id=172301

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-19
Reviewed by Yusuke Suzuki.

  • wtf/MemoryPressureHandler.cpp:
  • wtf/MemoryPressureHandler.h:
  • wtf/Platform.h:
3:09 AM Changeset in webkit [217119] by rniwa@webkit.org
  • 3 edits in trunk/PerformanceTests

Speedometer 2.0: Elem test isn't updating DOM during the measurement
https://bugs.webkit.org/show_bug.cgi?id=172343

Reviewed by Antti Koivisto.

Elem test wasn't doing much work because it simply enqueues items into the work queue, which doesn't get
executed until the next requestAnimationFrame or setTimeout callback happens.

Expose elm's work function as contentWindow.elemWork and make the first use of rAF a synchronous callback
just as it would when requestAnimationFrame isn't defined, and make the second use of rAF queue up to
an array of callbacks, and have the test runner manually invoke each callback.

This increases the runtime of the Elm suite from 100ms to 300ms on Safari.

  • Speedometer/resources/tests.js:

(processElmWorkQueue): Added. A helper which processes Elm's work queue and manually invokes render callbacks.

  • Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
3:05 AM Changeset in webkit [217118] by rniwa@webkit.org
  • 4 edits in trunk/PerformanceTests

Speedometer 2.0: Flight.js test is sometime broken
https://bugs.webkit.org/show_bug.cgi?id=172347

Reviewed by Antti Koivisto.

The bug was caused by the test runner only waiting for #new-todo, which happens before all other states are
updated in the Flight.js dependency example. As done in Speedometer v1, insert a dummy element with id set
to appIsReady and wait for this element to appear in the benchmark harness.

  • Speedometer/resources/tests.js: Wait for #appIsReady.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Removed the superflous call

to console.log.
(checkReady): Added. Insert #appIsReady if checkLoaded is no longer running at 50ms interval. Because this
could happen asynchronously, we check the absense of checkLoadedTimeoutId Ωevery 10ms for 5 times for
the total duration of 50ms. If checkLoadedTimeoutId was never present, we call it ready. If we ever observed
the presence of checkLoadedTimeoutId, wait another 50ms and start over.

  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:

(.newContext.checkLoaded): Expose checkLoadedTimeoutId which is a timer ID used to check the dependency.

3:02 AM Changeset in webkit [217117] by Wenson Hsieh
  • 2 edits in trunk/Tools

[WK1] MiniBrowser should navigate when handling a dropped URL
https://bugs.webkit.org/show_bug.cgi?id=172350

Reviewed by Tim Horton.

Allow all drop actions, including URL navigation, for WebKit1 MiniBrowser.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController webView:dragDestinationActionMaskForDraggingInfo:]):

3:01 AM Changeset in webkit [217116] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r217058. rdar://problem/32277335

3:00 AM Changeset in webkit [217115] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r216936. rdar://problem/32278538

2:54 AM Changeset in webkit [217114] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>

Reviewed by Eric Carlson.

  • media/media-source/content/test-fragmented.mp4:
2:50 AM Changeset in webkit [217113] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Unreviewed build fix; add undefined functions and constants to the CoreMediaSoftLink.h, and use the
correct (and previously soft-linked) method in WebCoreDecompressionSession.

  • platform/cf/CoreMediaSoftLink.cpp:
  • platform/cf/CoreMediaSoftLink.h:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::imageForTime):

2:43 AM Changeset in webkit [217112] by rniwa@webkit.org
  • 4 edits in trunk/PerformanceTests

Speedometer 2.0: jQuery and Inferno tests don't delete all ToDo items
https://bugs.webkit.org/show_bug.cgi?id=172341

Reviewed by Antti Koivisto.

The bug was caused by the fact TodoMVC examples for jQuery and Inferno JS create a new button
to delete the todo item each time todo items are rendered.

Fixed the bug by dynamically look for .destroy using querySelector for each item.

Also moved the deletion of the iframe from the end of each test suite to the beginning of each suite.
This will make debugging the issue like this easier on InteractiveRunner.html since the iframe
will stick around after stepping the last item in the suite.

  • Speedometer/InteractiveRunner.html: Tweaked the CSS to make buttons to "Step" and "Run" always visible

even if the list of suites and subtests are too long to fit in the viewport.

  • Speedometer/resources/benchmark-runner.js:

(BenchmarkRunner.prototype.step):
(BenchmarkRunner.prototype._runTestAndRecordResults):

  • Speedometer/resources/tests.js: Fixed the bug for jQuery and Inferno. In the case of jQuery

we also have to fix the code for checking every ToDo item as completed as well.

2:41 AM Changeset in webkit [217111] by jer.noble@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>

Reviewed by Eric Carlson.

  • media/media-source/content/test-fragmented.mp4: Add a 'edts' atom to move the presentation time for the

first sample to 0:00.

  • media/media-source/media-source-paint-to-canvas-expected.txt: Added.
  • media/media-source/media-source-paint-to-canvas.html: Added.
2:39 AM Changeset in webkit [217110] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r217083. rdar://problem/32282831

2:39 AM Changeset in webkit [217109] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Remove PLATFORM(WIN) references
https://bugs.webkit.org/show_bug.cgi?id=172294

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-19
Reviewed by Yusuke Suzuki.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::removeThread):

  • llint/LLIntOfflineAsmConfig.h:
  • runtime/ConfigFile.h:
  • runtime/VM.cpp:

(JSC::VM::updateStackLimits):

2:23 AM Changeset in webkit [217108] by Yusuke Suzuki
  • 307 edits
    4 copies
    1 add in trunk

[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
https://bugs.webkit.org/show_bug.cgi?id=172098

Reviewed by Saam Barati.

JSTests:

  • stress/check-sub-class.js: Added.

(shouldBe):
(shouldThrow):
(calling):
(array.forEach):
(i.array.forEach):

Source/JavaScriptCore:

In this patch, we generalize CheckDOM to CheckSubClass.
It can accept any ClassInfo and perform ClassInfo check
in DFG / FTL. Now, we add a new function pointer to ClassInfo,
checkSubClassPatchpoint. It can create DOMJIT patchpoint
for that ClassInfo. It it natural that ClassInfo holds the
way to emit DOMJIT::Patchpoint to perform CheckSubClass
rather than having it in each DOMJIT getter / function
signature annotation.

One problem is that it enlarges the size of ClassInfo.
But this is the best place to put this function pointer.
By doing so, we can add a patchpoint for CheckSubClass
in an non-intrusive manner: WebCore can inject patchpoints
without interactive JSC.

We still have a way to reduce the size of ClassInfo if
we move ArrayBuffer related methods out to the other places.

This patch touches many files because we add a new function
pointer to ClassInfo. But they are basically mechanical change.

  • API/JSAPIWrapperObject.mm:
  • API/JSCallbackConstructor.cpp:
  • API/JSCallbackFunction.cpp:
  • API/JSCallbackObject.cpp:
  • API/ObjCCallbackFunction.mm:
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.cpp:
  • bytecode/DOMJITAccessCasePatchpointParams.h:

(JSC::DOMJITAccessCasePatchpointParams::DOMJITAccessCasePatchpointParams):

  • bytecode/EvalCodeBlock.cpp:
  • bytecode/FunctionCodeBlock.cpp:
  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::emitDOMJITGetter):

  • bytecode/ModuleProgramCodeBlock.cpp:
  • bytecode/ProgramCodeBlock.cpp:
  • bytecode/UnlinkedCodeBlock.cpp:
  • bytecode/UnlinkedEvalCodeBlock.cpp:
  • bytecode/UnlinkedFunctionCodeBlock.cpp:
  • bytecode/UnlinkedFunctionExecutable.cpp:
  • bytecode/UnlinkedModuleProgramCodeBlock.cpp:
  • bytecode/UnlinkedProgramCodeBlock.cpp:
  • debugger/DebuggerScope.cpp:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleDOMJITGetter):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDOMJITPatchpointParams.h:

(JSC::DFG::DOMJITPatchpointParams::DOMJITPatchpointParams):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeCallDOM):
(JSC::DFG::FixupPhase::fixupCheckSubClass):
(JSC::DFG::FixupPhase::fixupCheckDOM): Deleted.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasClassInfo):
(JSC::DFG::Node::classInfo):
(JSC::DFG::Node::hasCheckDOMPatchpoint): Deleted.
(JSC::DFG::Node::checkDOMPatchpoint): Deleted.

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileCheckDOM): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::vm):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • domjit/DOMJITGetterSetter.h:
  • domjit/DOMJITPatchpointParams.h:

(JSC::DOMJIT::PatchpointParams::PatchpointParams):
(JSC::DOMJIT::PatchpointParams::vm):

  • domjit/DOMJITSignature.h:

(JSC::DOMJIT::Signature::Signature):
(JSC::DOMJIT::Signature::checkDOM): Deleted.

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLDOMJITPatchpointParams.h:

(JSC::FTL::DOMJITPatchpointParams::DOMJITPatchpointParams):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckDOM): Deleted.

  • inspector/JSInjectedScriptHost.cpp:
  • inspector/JSInjectedScriptHostPrototype.cpp:
  • inspector/JSJavaScriptCallFrame.cpp:
  • inspector/JSJavaScriptCallFramePrototype.cpp:
  • jsc.cpp:

(WTF::DOMJITNode::checkSubClassPatchpoint):
(WTF::DOMJITFunctionObject::checkSubClassPatchpoint):
(WTF::DOMJITFunctionObject::finishCreation):
(WTF::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(WTF::DOMJITCheckSubClassObject::createStructure):
(WTF::DOMJITCheckSubClassObject::create):
(WTF::DOMJITCheckSubClassObject::safeFunction):
(WTF::DOMJITCheckSubClassObject::unsafeFunction):
(WTF::DOMJITCheckSubClassObject::finishCreation):
(GlobalObject::finishCreation):
(functionCreateDOMJITCheckSubClassObject):
(WTF::DOMJITNode::checkDOMJITNode): Deleted.
(WTF::DOMJITFunctionObject::checkDOMJITNode): Deleted.

  • runtime/AbstractModuleRecord.cpp:
  • runtime/ArrayBufferNeuteringWatchpoint.cpp:
  • runtime/ArrayConstructor.cpp:
  • runtime/ArrayIteratorPrototype.cpp:
  • runtime/ArrayPrototype.cpp:
  • runtime/AsyncFunctionConstructor.cpp:
  • runtime/AsyncFunctionPrototype.cpp:
  • runtime/AtomicsObject.cpp:
  • runtime/BooleanConstructor.cpp:
  • runtime/BooleanObject.cpp:
  • runtime/BooleanPrototype.cpp:
  • runtime/ClassInfo.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.

(JSC::ClassInfo::dump):

  • runtime/ClassInfo.h:

(JSC::ClassInfo::offsetOfParentClass):

  • runtime/ClonedArguments.cpp:
  • runtime/ConsoleObject.cpp:
  • runtime/CustomGetterSetter.cpp:
  • runtime/DateConstructor.cpp:
  • runtime/DateInstance.cpp:
  • runtime/DatePrototype.cpp:
  • runtime/DirectArguments.cpp:
  • runtime/Error.cpp:
  • runtime/ErrorConstructor.cpp:
  • runtime/ErrorInstance.cpp:
  • runtime/ErrorPrototype.cpp:
  • runtime/EvalExecutable.cpp:
  • runtime/Exception.cpp:
  • runtime/ExceptionHelpers.cpp:
  • runtime/ExecutableBase.cpp:
  • runtime/FunctionConstructor.cpp:
  • runtime/FunctionExecutable.cpp:
  • runtime/FunctionPrototype.cpp:
  • runtime/FunctionRareData.cpp:
  • runtime/GeneratorFunctionConstructor.cpp:
  • runtime/GeneratorFunctionPrototype.cpp:
  • runtime/GeneratorPrototype.cpp:
  • runtime/GetterSetter.cpp:
  • runtime/HashMapImpl.cpp:
  • runtime/HashMapImpl.h:
  • runtime/InferredType.cpp:

(JSC::InferredType::create):

  • runtime/InferredTypeTable.cpp:
  • runtime/InferredValue.cpp:
  • runtime/InspectorInstrumentationObject.cpp:
  • runtime/InternalFunction.cpp:
  • runtime/IntlCollator.cpp:
  • runtime/IntlCollatorConstructor.cpp:
  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormat.cpp:
  • runtime/IntlDateTimeFormatConstructor.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlNumberFormat.cpp:
  • runtime/IntlNumberFormatConstructor.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlObject.cpp:
  • runtime/IteratorPrototype.cpp:
  • runtime/JSAPIValueWrapper.cpp:
  • runtime/JSArray.cpp:
  • runtime/JSArrayBuffer.cpp:
  • runtime/JSArrayBufferConstructor.cpp:
  • runtime/JSArrayBufferPrototype.cpp:
  • runtime/JSArrayBufferView.cpp:
  • runtime/JSAsyncFunction.cpp:
  • runtime/JSBoundFunction.cpp:
  • runtime/JSCallee.cpp:
  • runtime/JSCustomGetterSetterFunction.cpp:
  • runtime/JSDataView.cpp:
  • runtime/JSDataViewPrototype.cpp:
  • runtime/JSEnvironmentRecord.cpp:
  • runtime/JSFixedArray.cpp:
  • runtime/JSFunction.cpp:
  • runtime/JSGeneratorFunction.cpp:
  • runtime/JSGlobalLexicalEnvironment.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSInternalPromise.cpp:
  • runtime/JSInternalPromiseConstructor.cpp:
  • runtime/JSInternalPromiseDeferred.cpp:
  • runtime/JSInternalPromisePrototype.cpp:
  • runtime/JSLexicalEnvironment.cpp:
  • runtime/JSMap.cpp:
  • runtime/JSMapIterator.cpp:
  • runtime/JSModuleEnvironment.cpp:
  • runtime/JSModuleLoader.cpp:
  • runtime/JSModuleNamespaceObject.cpp:
  • runtime/JSModuleRecord.cpp:
  • runtime/JSNativeStdFunction.cpp:
  • runtime/JSONObject.cpp:
  • runtime/JSObject.cpp:
  • runtime/JSPromise.cpp:
  • runtime/JSPromiseConstructor.cpp:
  • runtime/JSPromiseDeferred.cpp:
  • runtime/JSPromisePrototype.cpp:
  • runtime/JSPropertyNameEnumerator.cpp:
  • runtime/JSPropertyNameIterator.cpp:
  • runtime/JSProxy.cpp:
  • runtime/JSScriptFetcher.cpp:
  • runtime/JSSet.cpp:
  • runtime/JSSetIterator.cpp:
  • runtime/JSSourceCode.cpp:
  • runtime/JSString.cpp:
  • runtime/JSStringIterator.cpp:
  • runtime/JSSymbolTableObject.cpp:
  • runtime/JSTemplateRegistryKey.cpp:
  • runtime/JSTypedArrayConstructors.cpp:
  • runtime/JSTypedArrayPrototypes.cpp:
  • runtime/JSTypedArrayViewConstructor.cpp:
  • runtime/JSTypedArrays.cpp:
  • runtime/JSWeakMap.cpp:
  • runtime/JSWeakSet.cpp:
  • runtime/JSWithScope.cpp:
  • runtime/MapConstructor.cpp:
  • runtime/MapIteratorPrototype.cpp:
  • runtime/MapPrototype.cpp:
  • runtime/MathObject.cpp:
  • runtime/ModuleLoaderPrototype.cpp:
  • runtime/ModuleProgramExecutable.cpp:
  • runtime/NativeErrorConstructor.cpp:
  • runtime/NativeExecutable.cpp:
  • runtime/NativeStdFunctionCell.cpp:
  • runtime/NullGetterFunction.cpp:
  • runtime/NullSetterFunction.cpp:
  • runtime/NumberConstructor.cpp:
  • runtime/NumberObject.cpp:
  • runtime/NumberPrototype.cpp:
  • runtime/ObjectConstructor.cpp:
  • runtime/ObjectPrototype.cpp:
  • runtime/ProgramExecutable.cpp:
  • runtime/PropertyTable.cpp:
  • runtime/ProxyConstructor.cpp:
  • runtime/ProxyObject.cpp:
  • runtime/ProxyRevoke.cpp:
  • runtime/ReflectObject.cpp:
  • runtime/RegExp.cpp:
  • runtime/RegExpConstructor.cpp:
  • runtime/RegExpObject.cpp:
  • runtime/RegExpPrototype.cpp:
  • runtime/ScopedArguments.cpp:
  • runtime/ScopedArgumentsTable.cpp:
  • runtime/ScriptExecutable.cpp:
  • runtime/SetConstructor.cpp:
  • runtime/SetIteratorPrototype.cpp:
  • runtime/SetPrototype.cpp:
  • runtime/SparseArrayValueMap.cpp:
  • runtime/StrictEvalActivation.cpp:
  • runtime/StringConstructor.cpp:
  • runtime/StringIteratorPrototype.cpp:
  • runtime/StringObject.cpp:
  • runtime/StringPrototype.cpp:
  • runtime/Structure.cpp:
  • runtime/StructureChain.cpp:
  • runtime/StructureRareData.cpp:
  • runtime/Symbol.cpp:
  • runtime/SymbolConstructor.cpp:
  • runtime/SymbolObject.cpp:
  • runtime/SymbolPrototype.cpp:
  • runtime/SymbolTable.cpp:
  • runtime/WeakMapConstructor.cpp:
  • runtime/WeakMapData.cpp:
  • runtime/WeakMapPrototype.cpp:
  • runtime/WeakSetConstructor.cpp:
  • runtime/WeakSetPrototype.cpp:
  • testRegExp.cpp:
  • tools/JSDollarVM.cpp:
  • tools/JSDollarVMPrototype.cpp:
  • wasm/JSWebAssembly.cpp:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:
  • wasm/js/JSWebAssemblyCompileError.cpp:
  • wasm/js/JSWebAssemblyInstance.cpp:
  • wasm/js/JSWebAssemblyLinkError.cpp:
  • wasm/js/JSWebAssemblyMemory.cpp:
  • wasm/js/JSWebAssemblyModule.cpp:
  • wasm/js/JSWebAssemblyRuntimeError.cpp:
  • wasm/js/JSWebAssemblyTable.cpp:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:
  • wasm/js/WebAssemblyCompileErrorPrototype.cpp:
  • wasm/js/WebAssemblyFunction.cpp:
  • wasm/js/WebAssemblyFunctionBase.cpp:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:
  • wasm/js/WebAssemblyInstancePrototype.cpp:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:
  • wasm/js/WebAssemblyLinkErrorPrototype.cpp:
  • wasm/js/WebAssemblyMemoryConstructor.cpp:
  • wasm/js/WebAssemblyMemoryPrototype.cpp:
  • wasm/js/WebAssemblyModuleConstructor.cpp:
  • wasm/js/WebAssemblyModulePrototype.cpp:
  • wasm/js/WebAssemblyModuleRecord.cpp:
  • wasm/js/WebAssemblyPrototype.cpp:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
  • wasm/js/WebAssemblyTableConstructor.cpp:
  • wasm/js/WebAssemblyTablePrototype.cpp:
  • wasm/js/WebAssemblyToJSCallee.cpp:
  • wasm/js/WebAssemblyWrapperFunction.cpp:

Source/WebCore:

Add DOMJIT interface IDL attribute. Which allows us to define checkSubClassPatchpointFor${className}
function for that ClassInfo. And we move CheckSubClass patchpoint implementation to ClassInfo's member

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowProperties.cpp:
  • bindings/js/JSDOMWindowShell.cpp:
  • bindings/js/JSReadableStreamPrivateConstructors.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateImplementationIterableFunctions):
(GenerateConstructorHelperMethods):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bridge/c/CRuntimeObject.cpp:
  • bridge/c/c_instance.cpp:
  • bridge/objc/ObjCRuntimeObject.mm:
  • bridge/objc/objc_instance.mm:
  • bridge/objc/objc_runtime.mm:
  • bridge/runtime_array.cpp:
  • bridge/runtime_method.cpp:
  • bridge/runtime_object.cpp:
  • dom/Document.idl:
  • dom/DocumentFragment.idl:
  • dom/Element.idl:
  • dom/Event.idl:
  • dom/Node.idl:
  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::checkSubClassPatchpointForJSDocument):
(WebCore::DocumentDocumentElementDOMJIT::checkDOM): Deleted.
(WebCore::DocumentBodyDOMJIT::checkDOM): Deleted.

  • domjit/JSDocumentFragmentDOMJIT.cpp: Copied from Source/JavaScriptCore/runtime/JSMap.cpp.

(WebCore::checkSubClassPatchpointForJSDocumentFragment):

  • domjit/JSElementDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.

(WebCore::checkSubClassPatchpointForJSElement):

  • domjit/JSEventDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.

(WebCore::checkSubClassPatchpointForJSEvent):

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::checkSubClassPatchpointForJSNode):
(WebCore::NodeFirstChildDOMJIT::checkDOM): Deleted.
(WebCore::NodeLastChildDOMJIT::checkDOM): Deleted.
(WebCore::NodeNextSiblingDOMJIT::checkDOM): Deleted.
(WebCore::NodePreviousSiblingDOMJIT::checkDOM): Deleted.
(WebCore::NodeParentNodeDOMJIT::checkDOM): Deleted.
(WebCore::NodeNodeTypeDOMJIT::checkDOM): Deleted.
(WebCore::NodeOwnerDocumentDOMJIT::checkDOM): Deleted.

Source/WebKit/mac:

  • Plugins/Hosted/ProxyInstance.mm:
  • Plugins/Hosted/ProxyRuntimeObject.mm:

Source/WebKit2:

  • WebProcess/Plugins/Netscape/JSNPMethod.cpp:
  • WebProcess/Plugins/Netscape/JSNPObject.cpp:
2:19 AM Changeset in webkit [217107] by rniwa@webkit.org
  • 2 edits in trunk/PerformanceTests

Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
https://bugs.webkit.org/show_bug.cgi?id=172348

Reviewed by Antti Koivisto.

The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.

Fixed the bug by using a mononotically increasing ID instead.

  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:

(Store.prototype.save):

2:11 AM Changeset in webkit [217106] by zandobersek@gmail.com
  • 3 edits in trunk/LayoutTests

Unreviewed GTK+ gardening.

  • platform/gtk/TestExpectations: Skip Apple Pay layout tests. Update one

http/tests/loading/resourceLoadStatistics test expectation.

  • platform/gtk/http/tests/dom/document-attributes-null-handling-expected.txt: Update after r217091.
1:58 AM Changeset in webkit [217105] by commit-queue@webkit.org
  • 5 edits in trunk

[CMake] Add HAVE check for int128_t
https://bugs.webkit.org/show_bug.cgi?id=172317

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-19
Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsCommon.cmake:

Source/WTF:

  • wtf/MediaTime.cpp:

(WTF::MediaTime::setTimeScale):

  • wtf/Platform.h:
1:27 AM Changeset in webkit [217104] by jmarcell@apple.com
  • 6 edits in branches/safari-604.1.21-branch/Source

Cherry-pick r216952, r216991. rdar://problem/32261722

1:04 AM Changeset in webkit [217103] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.21-branch

Cherry-pick r217074. rdar://problem/32282945

May 18, 2017:

11:58 PM Changeset in webkit [217102] by jmarcell@apple.com
  • 3 edits in branches/safari-604.1.21-branch/Tools/TestWebKitAPI

Build fix: Temporarily disable data interaction tests.

11:54 PM Changeset in webkit [217101] by akling@apple.com
  • 13 edits in trunk/Source

[WK2] Notify WebPageProxy client when an active process goes over the inactive memory limit
https://bugs.webkit.org/show_bug.cgi?id=172244
<rdar://problem/31800943>

Reviewed by Geoffrey Garen.

Source/WebKit2:

Add a WKPageUIClient callback that is invoked when an active process exceeds the inactive memory limit.

With the current state of the implementation, this means that a UI client can learn that backgrounding
a non-audible, non-capturing tab may cause it to get killed once the active/inactive hysteresis time
is over (8 minutes.)

The callback can be invoked multiple times if we exceed the limit, and then go under, and exceed again.

This is the callback:

didExceedBackgroundResourceLimitWhileInForeground(WKPageRef, WKResourceLimit)

Where WKResourceLimit is one of { kWKResourceLimitMemory, kWKResourceLimitCPU }
The CPU enum value is a placeholder pending implementation soon.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didExceedBackgroundResourceLimitWhileInForeground):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didExceedInactiveMemoryLimitWhileActive):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didExceedInactiveMemoryLimitWhileActive):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Source/WTF:

Add an installable callback to MemoryPressureHandler that gets invoked when an active process
exceeds the kill limit for an inactive process.

This allows a UI client to become aware that backgrounding a tab may cause it to get killed.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillWithProcessState):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):
(WTF::MemoryPressureHandler::measurementTimerFired):
(WTF::MemoryPressureHandler::doesExceedInactiveLimitWhileActive):
(WTF::MemoryPressureHandler::doesNotExceedInactiveLimitWhileActive):

  • wtf/MemoryPressureHandler.h:

(WTF::MemoryPressureHandler::setDidExceedInactiveLimitWhileActiveCallback):

11:25 PM Changeset in webkit [217100] by Chris Dumez
  • 22 edits in trunk/LayoutTests/imported/w3c

Update webidl2.js from upstream web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=172342

Reviewed by Sam Weinig.

  • web-platform-tests/fetch/api/headers/headers-idl.html:

Re-sync test from upstream 11216539e as the test would break otherwise with the new webidl2.js.

  • web-platform-tests/resources/webidl2/*:

Re-sync webidl2.js from upstream web-platform-tests 11216539e.

  • web-platform-tests/url/interfaces.any-expected.txt:
  • web-platform-tests/url/interfaces.any.worker-expected.txt:

Rebaseline tests that are now actually working. They relied on this new webidl2.js version.

10:58 PM Changeset in webkit [217099] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening on ApplePaySession.html after r217078.

10:50 PM Changeset in webkit [217098] by jer.noble@apple.com
  • 16 edits
    4 adds in trunk/Source/WebCore

[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>

Reviewed by Eric Carlson.

Test: media/media-source/media-source-paint-to-canvas.html

In order to have access to decoded video data for painting, decode the encoded samples manually
instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new
utility class WebCoreDecompressionSession, which can decode samples and store them.

For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication
of our sample delivery pipeline, we will only support painting of decoded video samples when the video is
not displayed in the DOM.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added.

  • Modules/mediasource/SourceBuffer.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros.
  • platform/cf/CoreMediaSoftLink.h: Ditto.
  • platform/cocoa/CoreVideoSoftLink.cpp: Ditto.
  • platform/cocoa/CoreVideoSoftLink.h: Ditto.
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session..
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted.

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

(WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo().
(WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer.
(WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session.
(WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected

buffer and add the decompression session or layer to the newly selected buffer.

(WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted.

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

(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession.
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes.
(WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added.
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h: Added.

(WebCore::WebCoreDecompressionSession::create):
(WebCore::WebCoreDecompressionSession::isInvalidated):
(WebCore::WebCoreDecompressionSession::createWeakPtr):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added.

(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests.
(WebCore::WebCoreDecompressionSession::invalidate): Unregister for same.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts.
(WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue.
(WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample.
(WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput.
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread.
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame).
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count.
(WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady):
(WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same.
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued.
(WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time.
(WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues.
(WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method.
(WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto.
(WebCore::WebCoreDecompressionSession::getDuration): Ditto.
(WebCore::WebCoreDecompressionSession::compareBuffers): Ditto.

  • platform/cocoa/VideoToolboxSoftLink.cpp: Added.
  • platform/cocoa/VideoToolboxSoftLink.h: Added.
10:27 PM Changeset in webkit [217097] by jfbastien@apple.com
  • 8 edits in trunk

WebAssembly: exports is a getter
https://bugs.webkit.org/show_bug.cgi?id=172129

Reviewed by Saam Barati.

JSTests:

Update test to reflect new semantics.

  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch):

Source/JavaScriptCore:

As updated here: https://github.com/WebAssembly/design/pull/1062

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finishCreation): don't putDirect here anymore

  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::moduleNamespaceObject): add accessor

  • wasm/js/WebAssemblyFunctionBase.cpp: squelch causing a warning
  • wasm/js/WebAssemblyInstancePrototype.cpp: use LUT

(JSC::getInstance): helper, as in surrounding files
(JSC::webAssemblyInstanceProtoFuncExports): instead of putDirect

  • wasm/js/WebAssemblyMemoryPrototype.cpp: pass VM around as for Table

(JSC::getMemory):
(JSC::webAssemblyMemoryProtoFuncGrow):
(JSC::webAssemblyMemoryProtoFuncBuffer):

  • wasm/js/WebAssemblyTablePrototype.cpp: static everywhere as with other code

(JSC::webAssemblyTableProtoFuncLength):
(JSC::webAssemblyTableProtoFuncGrow):
(JSC::webAssemblyTableProtoFuncGet):
(JSC::webAssemblyTableProtoFuncSet):

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

[REGRESSION](r216901): Delete ImageDecoder if BitmapImage::destroyDecodedData() was called to destroy all the decoded frames
https://bugs.webkit.org/show_bug.cgi?id=172325

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-18
Reviewed by Simon Fraser.

When calling BitmapImage::destroyDecodedData() with destroyAll = true, the
current ImageDecoder has to be deleted regardless the current frame needs
to be cached or not. This is true except when the image is animating.
Creating a new ImageDecoder for the animated image will lead to decoding
all the frames from frame-zero till the current frame.

Deleting the current ImageDecoder has the benefit of releasing its raster
data. We also must delete the current ImageDecoder when the CachedImage
switched its data SharedBuffer.

The fix is return the condition in BitmapImage::destroyDecodedData() to
be as it was before r216901.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedData):

9:01 PM Changeset in webkit [217095] by Chris Dumez
  • 15 edits
    4 copies
    4 moves
    2 adds
    1 delete in trunk/LayoutTests

Re-sync url web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=172333

Reviewed by Youenn Fablet.

Re-sync url web-platform-tests from upstream 11216539.

  • web-platform-tests/url/README.md:
  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/failure-expected.txt:
  • web-platform-tests/url/failure.html:
  • web-platform-tests/url/historical.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker-expected.txt.
  • web-platform-tests/url/historical.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
  • web-platform-tests/url/historical.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.js.

(self.GLOBAL.isWindow):

  • web-platform-tests/url/historical.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker-expected.txt.
  • web-platform-tests/url/historical.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
  • web-platform-tests/url/historical.html: Removed.
  • web-platform-tests/url/interfaces.any-expected.txt: Added.
  • web-platform-tests/url/interfaces.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
  • web-platform-tests/url/interfaces.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/interfaces.html.
  • web-platform-tests/url/interfaces.any.worker-expected.txt: Added.
  • web-platform-tests/url/interfaces.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-origin-expected.txt:
  • web-platform-tests/url/urlsearchparams-constructor-expected.txt:
  • web-platform-tests/url/urlsearchparams-constructor.html:
  • web-platform-tests/url/urltestdata.json:
  • web-platform-tests/url/w3c-import.log:
8:56 PM Changeset in webkit [217094] by Ryan Haddad
  • 4 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

  • platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
8:51 PM Changeset in webkit [217093] by sbarati@apple.com
  • 6 edits
    1 add in trunk

Proxy's Get? passes incorrect receiver
https://bugs.webkit.org/show_bug.cgi?id=164849
<rdar://problem/31767058>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/proxy-get-set-correct-receiver.js: Added.

(assert):
(test):
(test.let.target.set prop):
(test.let.target.get prop):
(test.get let):

  • stress/proxy-set.js:

(let.target.get x):

  • stress/reflect-set-proxy-set.js:

(let.target.get x):

  • stress/reflect-set-receiver-proxy-set.js:

(let.target.get x):

Source/JavaScriptCore:

  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):

8:28 PM Changeset in webkit [217092] by Ryan Haddad
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r217079.

This change broke internal builds.

Reverted changeset:

"Redundant ellipsis box triggers
ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent()."
https://bugs.webkit.org/show_bug.cgi?id=172309
http://trac.webkit.org/changeset/217079

8:21 PM Changeset in webkit [217091] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[macOS Sierra] Layout Test http/tests/dom/document-attributes-null-handling.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=172311

Reviewed by Andreas Kling.

Not sure why the cookies are sometimes returned by CFNetwork in a different order. However,
what matters and what we want to test is that the cookie was actually added so make the
test not rely on a specific order to address flakiness.

  • http/tests/dom/document-attributes-null-handling-expected.txt:
  • http/tests/dom/document-attributes-null-handling.html:
8:11 PM Changeset in webkit [217090] by rniwa@webkit.org
  • 1 edit
    2 copies
    1 delete in trunk/Websites/browserbench.org

Add Speedometer 2.0 to browserbench.org for final testing
https://bugs.webkit.org/show_bug.cgi?id=172335

Rubber-stamped by Chris Dumez.

Stage Speedometer 2.0 here for the final testing before we call it official.

  • Speedometer2.0: Copied from PerformanceTests/Speedometer.
  • Speedometer2.0/Full.html: Removed.
  • Speedometer2.0/index.html: Copied from PerformanceTests/Speedometer/index.html.
8:05 PM Changeset in webkit [217089] by rniwa@webkit.org
  • 5 edits
    1 move in trunk

REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
https://bugs.webkit.org/show_bug.cgi?id=172077

Reviewed by Chris Dumez.

PerformanceTests:

Rename Full.html to index.html to match the convention of other benchmarks.

  • Speedometer/index.html: Renamed from PerformanceTests/Speedometer/Full.html.

Tools:

Fixed perftest.py by updating the lines to ignore in Speedometer.

Also start report the results as "Speedometer" instead of "DoYouEvenBench/Full.html" to perf.webkit.org.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest._lines_to_ignore_in_parser_result): Updated for Speedometer 2.0.

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner._collect_tests): Use "Speedometer" instead of "Speedometer/index.html" as the test name.
(_generate_results_dict): Removed the workaround to keep reporting Speedometer as DoYouEvenBench.

  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(MainTest.test_collect_tests_with_index_html_and_resources): Added.

8:03 PM Changeset in webkit [217088] by rniwa@webkit.org
  • 2 edits
    1 add in trunk/PerformanceTests

Speedometer: check-in missing React TodoMVC dependency
https://bugs.webkit.org/show_bug.cgi?id=172213

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-18
Reviewed by Ryosuke Niwa.

  • Speedometer/resources/todomvc/architecture-examples/react/index.html: fix director.min.js path.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/director.min.js: Added.
7:59 PM Changeset in webkit [217087] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Release InjectedScripts when frontends close
https://bugs.webkit.org/show_bug.cgi?id=172313

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-18
Reviewed by Andreas Kling.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::disconnectFrontend):
Release inspector resources together, including discarding injected
scripts so that they may be collected.

(WebCore::InspectorController::inspectedPageDestroyed):
(WebCore::InspectorController::disconnectAllFrontends):
Move the disconnect call inside of disconnectAllFrontends to establish
a pattern of releasing web inspector resources together.

7:55 PM Changeset in webkit [217086] by aestes@apple.com
  • 4 edits
    2 adds in trunk/LayoutTests

Unreviewed gardening on ApplePaySession.html after r217078.

The ApplePayError tests are only expected to pass when APPLE_PAY_DELEGATE is enabled, so
this breaks them out into their own file so that they can be skipped independently from
ApplePaySession.html.

  • http/tests/ssl/applepay/ApplePayError-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayError.html: Added.
  • http/tests/ssl/applepay/ApplePaySession-expected.txt:
  • http/tests/ssl/applepay/ApplePaySession.html:
  • platform/mac-wk2/TestExpectations:
7:47 PM Changeset in webkit [217085] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline js/dom/global-constructors-attributes.html after r217078.

Unreviewed test gardening.

  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
6:54 PM Changeset in webkit [217084] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add a newline after the URL in showLayerTree output.

Reviewed by Zalan Bujtas.

  • rendering/RenderLayer.cpp:

(WebCore::showLayerTree):

6:44 PM Changeset in webkit [217083] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Attachment drag preview should not have the attachment outline
https://bugs.webkit.org/show_bug.cgi?id=172327
<rdar://problem/32282831>

Reviewed by Tim Horton.

When creating a drag image for an attachment element, don't include borders around the attachment.

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

  • rendering/RenderAttachment.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintAttachment):

6:43 PM Changeset in webkit [217082] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Make WebRTC logging happen in Release
https://bugs.webkit.org/show_bug.cgi?id=172307

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-18
Reviewed by Eric Carlson.

No change of behavior.
Move from LOG(WebRTC...) to RELEASE_LOG(WebRTC...).

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::queuedCreateOffer):
(WebCore::RTCPeerConnection::queuedCreateAnswer):
(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):

6:16 PM Changeset in webkit [217081] by eric.carlson@apple.com
  • 15 edits in trunk

[MediaStream] do not cache gUM permissions
https://bugs.webkit.org/show_bug.cgi?id=172245

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, updated fast/mediastream/MediaDevices-getUserMedia.html.

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Add salt parameter.

  • platform/mediastream/RealtimeMediaSourceCenter.h:

Source/WebKit2:

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied):
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::FrameAuthorizationState::FrameAuthorizationState): Deleted.
(WebKit::FrameAuthorizationState::hasPermissionToUseCaptureDevice): Deleted.
(WebKit::FrameAuthorizationState::setHasPermissionToUseCaptureDevice): Deleted.
(WebKit::FrameAuthorizationState::ensureSecurityOriginsAreEqual): Deleted.
(WebKit::UserMediaPermissionRequestManagerProxy::stateForRequest): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

(WebKit::FrameAuthorizationState::setDeviceIdentifierHashSalt): Deleted.
(WebKit::FrameAuthorizationState::deviceIdentifierHashSalt): Deleted.

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalt):

LayoutTests:

  • fast/mediastream/MediaDevices-getUserMedia-expected.txt: Updated.
  • fast/mediastream/MediaDevices-getUserMedia.html:
  • http/tests/media/media-stream/get-user-media-prompt-expected.txt:
  • http/tests/media/media-stream/get-user-media-prompt.html:
5:47 PM Changeset in webkit [217080] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Data interaction conclusion snapshot has too much margin
https://bugs.webkit.org/show_bug.cgi?id=172323
<rdar://problem/32283772>

Reviewed by Beth Dakin.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::didConcludeEditDataInteraction):
Disable the default TextIndicator margin.

5:37 PM Changeset in webkit [217079] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent().
https://bugs.webkit.org/show_bug.cgi?id=172309
<rdar://problem/32262357>

Reviewed by Simon Fraser.

Source/WebCore:

This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION.

In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which
keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we
re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function.
In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it
later, while accessing the children list. However this redundant ellipsis box was never added to the line,
so the assertion hits incorrectly.

Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::EllipsisBox):

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::invalidateParentChildList):

  • rendering/InlineBox.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::placeEllipsis): Use the newly created ellipsis box instead.

LayoutTests:

  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly-expected.txt: Added.
  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html: Added.
5:00 PM Changeset in webkit [217078] by aestes@apple.com
  • 12 edits in trunk

ENABLE(APPLE_PAY_DELEGATE) should be NO on macOS Sierra and earlier
https://bugs.webkit.org/show_bug.cgi?id=172305

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:47 PM Changeset in webkit [217077] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We need to destroy worker threads in jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=170751
<rdar://problem/31800412>

Reviewed by Filip Pizlo.

This patch fixes a bug where a $ agent worker would still
have compilation threads running after the thread the worker
was created on dies. This manifested itself inside DFG AI where
we would notice a string constant is atomic, then the worker
thread would die, destroying its atomic string table, then
we'd notice the same string is no longer atomic, and we'd crash
because we'd fail to see the same speculated type for the same
JSValue.

This patch makes it so that $ agent workers destroy their VM when
they're done executing. Before a VM gets destroyed, it ensures that
all its compilation threads finish.

  • jsc.cpp:

(functionDollarAgentStart):
(runJSC):
(jscmain):

4:27 PM Changeset in webkit [217076] by Simon Fraser
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test to ensure that media controls don't trigger composting of ancestors via "isolates blending"
https://bugs.webkit.org/show_bug.cgi?id=172320

Reviewed by Dean Jackson.

Test that makes some source-less and sourced audio and video controls, and dumps
the layer tree to ensure that they didn't trigger compositing on their ancestor
stacking context element.

  • media/controls-should-not-trigger-isolates-blending-expected.txt: Added.
  • media/controls-should-not-trigger-isolates-blending.html: Added.
4:22 PM Changeset in webkit [217075] by dino@apple.com
  • 8 edits
    2 adds in trunk

Transform misplaces element 50% of the time
https://bugs.webkit.org/show_bug.cgi?id=172300
Source/WebCore:

Reviewed by Simon Fraser.

A hardware-accelerated animation of the transform property
requires layout to happen if it contains a translate operation
using percentages, otherwise it may create an incorrect
animation. The "50% of the time" comes in to play because
the layout timer may sometimes fire before the animation
timer. The test case contains a example that is much more
likely to fail without this fix.

Test: animations/needs-layout.html

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::animationTimerFired): If
we've been told that we need a layout, and we have one pending, then
force it before doing the rest of the animation logic.
(WebCore::CSSAnimationController::updateAnimations): Check if the
CompositeAnimation depends on layout, and tell the private controller
that it should check for the necessity of a layout as the animation
timer fires.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::animate): Ask the keyframes if this
animation depends on layout.

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::hasAnimationThatDependsOnLayout):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::computeLayoutDependency): Look at all
the keyframe properties for something that is a translation using
percentages.

  • page/animation/KeyframeAnimation.h:

LayoutTests:

<rdar://problem/29835668>

Reviewed by Simon Fraser.

A test case which has an animation that relies on
translation percentages. If all goes well, the
animating element will be completely obscured.

  • animations/needs-layout-expected.html: Added.
  • animations/needs-layout.html: Added.
4:20 PM Changeset in webkit [217074] by Wenson Hsieh
  • 4 edits in trunk

Selection around attachment elements should not persist when beginning a drag
https://bugs.webkit.org/show_bug.cgi?id=172319
<rdar://problem/32283008>

Reviewed by Tim Horton.

Source/WebCore:

When beginning to drag an attachment element, save and restore the visible selection when calling out to the
injected bundle for additional data, and when creating the drag image.

Augmented an existing API test: DataInteractionTests.AttachmentElementItemProviders.

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

Tools:

Tests that temporary selection around an attachment does not persist longer than it needs to.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

4:11 PM Changeset in webkit [217073] by msaboff@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add FTL whitelist debugging option
https://bugs.webkit.org/show_bug.cgi?id=172321

Reviewed by Saam Barati.

  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::ensureGlobalFTLWhitelist):
(JSC::DFG::TierUpCheckInjectionPhase::run):

  • runtime/Options.h:
  • tools/FunctionWhitelist.cpp:

(JSC::FunctionWhitelist::contains):

3:33 PM Changeset in webkit [217072] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r?): Web Inspector: Shift-click on color square in Styles sidebar should not select text
https://bugs.webkit.org/show_bug.cgi?id=171902

Reviewed by Matt Baker.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
Do not attempt to select text if the element being clicked is a bookmark (such as a swatch).

3:14 PM Changeset in webkit [217071] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup: Remove unused functions from RuntimeEnabledFeatures
https://bugs.webkit.org/show_bug.cgi?id=172315

Reviewed by Jer Noble.

  • page/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::htmlMediaElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::htmlVideoElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::htmlSourceElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::mediaControllerEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::mediaErrorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::timeRangesEnabled): Deleted.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setDOMIteratorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::domIteratorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setGeolocationEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::geolocationEnabled): Deleted.

3:10 PM Changeset in webkit [217070] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Add an Accessibility icon to webkit.org
https://bugs.webkit.org/show_bug.cgi?id=172298

Reviewed by Alexey Proskuryakov.

  • wp-content/themes/webkit/images/icons.svg: Added accessibility icon to the sprite.
  • wp-content/themes/webkit/style.css: New rule to use the accessibility icon from the icons sprite.

(.tile.category-accessibility .background-image):

2:53 PM Changeset in webkit [217069] by dbates@webkit.org
  • 8 edits in trunk

Improve error message for Access-Control-Allow-Origin violation due to misconfigured server
https://bugs.webkit.org/show_bug.cgi?id=162819
<rdar://problem/28575938>

Reviewed by Joseph Pecoraro.

LayoutTests/imported/w3c:

Update expected result.

  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:

Source/WebCore:

Inspired by Blink change:
<https://src.chromium.org/viewvc/blink?view=revision&revision=163406>

At most one Access-Control-Allow-Origin header may be in an HTTP response. Improve the
error message emitted on a CORS failure when Access-Control-Allow-Origin contains more
than one origin, indicated by the presence of a ',', as a way to help web developers/server
administrators differentiate between a misconfigured Access-Control-Allow-Origin header
and a misconfigured server.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::passesAccessControlCheck): Defined a local variable to hold the value of securityOrigin.toString()
and referenced this variable throughout the code to avoid computing the stringified security
origin more than once. Switched to using makeString() to concatenate error message when the
origin of the page does not match the value of the Access-Control-Allow-Origin header.

LayoutTests:

Add more tests when Access-Control-Allow-Origin has more than one value and group
with existing tests. Update expected results.

  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html: Also extracted

the origin string for the page into a local variable called pageOrigin, making use of document.origin,
and referenced this variable instead of duplicating its value. Fixed various style nits.

2:50 PM Changeset in webkit [217068] by wilander@apple.com
  • 30 edits
    2 adds in trunk

Resource Load Statistics: Grandfather domains for existing data records
https://bugs.webkit.org/show_bug.cgi?id=172155
<rdar://problem/24913532>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/loading/resourceLoadStatistics/grandfathering.html

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setGrandfathered):
(WebCore::ResourceLoadObserver::isGrandfathered):
(WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval):
(WebCore::ResourceLoadObserver::setGrandfatheringTime):

Functions for testing and configuration.
ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval() changed as a result of moving
WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here.

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatisticsStore.cpp:

(WebCore::ResourceLoadStatisticsStore::createEncoderFromData):
(WebCore::ResourceLoadStatisticsStore::readDataFromDecoder):

Now contains endOfGrandfatheringTimestamp.

(WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent):

Now makes a call to m_grandfatherExistingWebsiteDataHandler().

(WebCore::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback):
(WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval):

Changed as a result of moving
WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here.

(WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime):
(WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):

Renamed since it now also takes grandfathering into account.

(WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):

Fixed typo in local variable name.

(WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
(WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords):

Convenience function added.

(WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved):

Convenience function added.

(WebCore::ResourceLoadStatisticsStore::dataRecordsWereRemoved):

Convenience function added.

(WebCore::ResourceLoadStatisticsStore::prevalentResourceDomainsWithoutUserInteraction): Deleted.

Replaced by ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor().

  • loader/ResourceLoadStatisticsStore.h:

Source/WebKit2:

When WebResourceLoadStatisticsStore starts fresh it needs
to scan existing website data records and 'grandfather' them to
allow ample time to capture user interaction.

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

(WKResourceLoadStatisticsManagerSetGrandfathered):
(WKResourceLoadStatisticsManagerIsGrandfathered):
(WKResourceLoadStatisticsManagerSetMinimumTimeBetweeenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetGrandfatheringTime):

Functions for testing and configuration.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/Cocoa/WebResourceLoadStatisticsManagerCocoa.mm:

(WebKit::WebResourceLoadStatisticsManager::registerUserDefaultsIfNeeded):

Added grandfathering configuration.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebiteData):

New function to get all top privately controlled domains that
have website data.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::setGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::isGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsManager::resetToConsistentState):

Functions for testing and configuration.
WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval() changed
as a result of WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval()
moving to WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval().

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::initializeDataTypesToRemove):
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):

Moved handling of pending removal into WebCore::ResourceLoadStatisticsStore since
that's where grandfathering happens.

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):

Moved registration of write persistent store callback and reading of Cocoa defaults to
WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver without parameters
so they are called for platforms without CFNETWORK_STORAGE_PARTITIONING.
Now includes registering WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData()
as handler for grandfathering since it involves reading of the website data store.

(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval): Deleted.

Now happens in WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval().

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::topPrivatelyControlledDomain):

New function to ask a WebsiteDataRecord for its top privately controlled domain.

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::topPrivatelyControlledDomainsWithWebsiteData):

New function to get all top privately controlled domains that
have website data.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Adds test infrastructure needed for the added functionality.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsGrandfathered):
(WTR::TestRunner::isStatisticsGrandfathered):
(WTR::TestRunner::installStatisticsDidScanDataRecordsCallback):
(WTR::TestRunner::statisticsDidScanDataRecordsCallback):
(WTR::TestRunner::setStatisticsGrandfatheringTime):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setStatisticsGrandfatheringTime):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/loading/resourceLoadStatistics/grandfathering-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/grandfathering.html: Added.
  • platform/wk2/TestExpectations:

Marked it Pass for WebKit2.

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

Web Inspector: Web Socket Document Icon
https://bugs.webkit.org/show_bug.cgi?id=170023

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-18
Reviewed by Matt Baker.

Icons made by Jon Davis.

  • UserInterface/Images/WebSocket.png: Added.
  • UserInterface/Images/WebSocket@2x.png: Added.
  • UserInterface/Images/WebSocketLarge.png: Added.
  • UserInterface/Images/WebSocketLarge@2x.png: Added.

New icons for Web Socket resources.

  • UserInterface/Views/ResourceIcons.css:

(body:matches(.mac-platform, .windows-platform) .resource-icon.resource-type-websocket .icon):
(body:matches(.mac-platform, .windows-platform) .large .resource-icon.resource-type-websocket .icon):
Use the icon.

2:35 PM Changeset in webkit [217066] by dbates@webkit.org
  • 6 edits in trunk/Source/WebCore

Bindings: Require value for extended attributes EnabledAtRuntime and EnabledForWorld
https://bugs.webkit.org/show_bug.cgi?id=172252

Reviewed by Sam Weinig.

According to Sam Weinig it is an anti-feature that EnabledAtRuntime can be specified
without a value. We should make it require a value for the name of the RuntimeEnabledFeatures
function to use in the generated code. For similar reasons we should also require
a value for the extended attribute EnabledForWorld.

  • Modules/websockets/WebSocket.idl: Substitute EnabledAtRuntime=WebSocket for EnabledAtRuntime.
  • bindings/scripts/CodeGeneratorJS.pm:

(GetRuntimeEnableFunctionName):

  • html/HTMLAudioElement.idl: Substitute EnabledAtRuntime=Audio for EnabledAtRuntime.
  • page/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::audioEnabled):
(WebCore::RuntimeEnabledFeatures::htmlAudioElementEnabled): Deleted. This function duplicated
the functionality of RuntimeEnabledFeatures::audioEnabled(). Instead we explicitly
write EnabledAtRuntime=Audio in HTMLAudioElement.idl to use RuntimeEnabledFeatures::audioEnabled()
to determine whether to expose/conceal the HTMLAudioElement global constructor at runtime.

  • page/RuntimeEnabledFeatures.h:
2:14 PM Changeset in webkit [217065] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.21-branch/Source

Versioning.

1:49 PM Changeset in webkit [217064] by keith_miller@apple.com
  • 3 edits in trunk/LayoutTests

Fix wasm-mem-post-message.html test expectations
https://bugs.webkit.org/show_bug.cgi?id=172308

Unreviewed, test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
1:32 PM Changeset in webkit [217063] by jer.noble@apple.com
  • 6 edits
    2 adds
    2 deletes in trunk

Allow nested timers to propagate user gestures so long as the total nested interval is less than 1s.
https://bugs.webkit.org/show_bug.cgi?id=172173

Reviewed by Andy Estes.

Source/WebCore:

Test: media/restricted-audio-playback-with-multiple-settimeouts.html

Store the current nested timer interval in DOMTimerFireState, and use that value to propagate the
nested interval through multiple invocations of setTimeout().

Drive-by fix: instead of manually resetting the nesting level in DOMTimer::fired(), add the
nesting level to the DOMTimerFireState, and reset the nesting level on the state's destruction.
This fixes one place in DOMTimer::fire() where an early return lead to the timer's nesting level
not being reset.

  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::DOMTimerFireState):
(WebCore::DOMTimerFireState::~DOMTimerFireState):
(WebCore::DOMTimerFireState::nestedTimerInterval):
(WebCore::shouldForwardUserGesture):
(WebCore::userGestureTokenToForward):
(WebCore::currentNestedTimerInterval):
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::fired):

  • page/DOMTimer.h:

LayoutTests:

  • fast/events/popup-blocked-from-untrusted-mouse-click.html:
  • fast/events/popup-blocking-timers4-expected.txt: Removed.
  • fast/events/popup-blocking-timers4.html: Removed.
  • media/restricted-audio-playback-with-multiple-settimeouts-expected.txt: Added.
  • media/restricted-audio-playback-with-multiple-settimeouts.html: Added.
  • platform/ios/TestExpectations:
12:55 PM Changeset in webkit [217062] by fpizlo@apple.com
  • 5 edits
    3 adds in trunk

Constructor calls set this too early
https://bugs.webkit.org/show_bug.cgi?id=172302

Reviewed by Saam Barati.

JSTests:

This tests all three kinds of constructs in BytecodeGenerator. All three were previously
wrong.

  • stress/construct-overwritten-variable.js: Added.

(new.x.x):

  • stress/construct-spread-overwritten-variable-2.js: Added.

(new.x.x):

  • stress/construct-spread-overwritten-variable.js: Added.

(new.x.x):

Source/JavaScriptCore:

We were setting this before evaluating the arguments, so this code:

var x = 42;
new x(x = function() { });


Would crash because we would pass 42 as this, and create_this would treat it as a cell.
Dereferencing a non-cell is guaranteed to crash.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::NewExprNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):

12:40 PM Changeset in webkit [217061] by dbates@webkit.org
  • 1 edit
    5 adds in trunk/LayoutTests

Evaluating window named element may return wrong result
https://bugs.webkit.org/show_bug.cgi?id=166792
<rdar://problem/29801059>

Reviewed by Chris Dumez.

Add tests to ensure we do not regress evaluation of window named elements.

  • http/tests/security/named-window-property-from-same-origin-inactive-document-expected.txt: Added.
  • http/tests/security/named-window-property-from-same-origin-inactive-document.html: Added.
  • http/tests/security/resources/innocent-victim-with-named-elements.html: Added.
  • http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt: Added.
  • http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document.html: Added.
12:38 PM Changeset in webkit [217060] by sbarati@apple.com
  • 32 edits
    1 add in trunk

WebAssembly: perform stack checks
https://bugs.webkit.org/show_bug.cgi?id=165546
<rdar://problem/29760307>

Reviewed by Filip Pizlo.

JSTests:

  • wasm.yaml:
  • wasm/function-tests/factorial.js:
  • wasm/function-tests/float-sub.js:
  • wasm/function-tests/stack-overflow.js: Added.

(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
(assertOverflows.makeInstance):
(assertOverflows.makeInstance2):
(assertOverflows.assertThrows):
(assertOverflows):
(assertThrows.test.makeSignature):
(assertThrows.test.makeInstance):
(assertThrows.test):
(assertThrows):

Source/JavaScriptCore:

This patch adds stack checks to wasm. It implements it by storing the stack
bounds on the Context.

Stack checking works as normal, except we do a small optimization for terminal
nodes in the call tree (nodes that don't make any calls). These nodes will
only do a stack check if their frame size is beyond 1024 bytes. Otherwise,
it's assumed the parent that called them did their stack check for them.
This is because all things that make calls make sure to do an extra 1024
bytes whenever doing a stack check.

We also take into account stack size for potential JS calls when doing
stack checks since our JS stubs don't do this on their own. Each frame
will ensure it does a stack check large enough for any potential JS call
stubs it'll execute.

Surprisingly, this patch is neutral on WasmBench and TitzerBench.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • runtime/Error.cpp:

(JSC::createRangeError):
(JSC::addErrorInfoAndGetBytecodeOffset):
I fixed a bug here where we assumed that the first frame that has line
and column info would be in our stack trace. This is not correct
since we limit our stack trace size. If everything in our limited
size stack trace is Wasm, then we won't have any frames with line
and column info.

  • runtime/Error.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::createStackOverflowError):

  • runtime/ExceptionHelpers.h:
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::webAssemblyToJSCalleeStructure):

  • runtime/JSType.h:
  • runtime/Options.h: I've added a new option that controls

whether or not we use fast TLS for the wasm context.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmContext.cpp:

(JSC::Wasm::loadContext):
(JSC::Wasm::storeContext):

  • wasm/WasmContext.h:

(JSC::Wasm::useFastTLSForContext):

  • wasm/WasmExceptionType.h:
  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::PinnedRegisterInfo::toSave):

  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
(JSC::Wasm::Thunks::stub):

  • wasm/WasmThunks.h:
  • wasm/js/JSWebAssemblyInstance.h:

(JSC::JSWebAssemblyInstance::offsetOfCachedStackLimit):
(JSC::JSWebAssemblyInstance::cachedStackLimit):
(JSC::JSWebAssemblyInstance::setCachedStackLimit):

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::finishCreation):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/js/WebAssemblyToJSCallee.cpp: Make this a descendent of object.

This is needed for correctness because we may call into JS,
and then the first JS frame could stack overflow. When it stack
overflows, it rolls back one frame to the wasm->js call stub with
the wasm->js callee. It gets the lexical global object from this
frame, meaning it gets the global object from the callee. Therefore,
we must make it an object since all objects have global objects.
(JSC::WebAssemblyToJSCallee::create):

  • wasm/js/WebAssemblyToJSCallee.h:

Tools:

Add some new testing modes for using and not using fast TLS wasm contexts.

  • Scripts/run-jsc-stress-tests:
12:29 PM Changeset in webkit [217059] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.21.6

Tag Safari-604.1.21.6.

12:07 PM Changeset in webkit [217058] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

RealtimeOutgoingAudioSource should use the source sample rate
https://bugs.webkit.org/show_bug.cgi?id=172297

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-18
Reviewed by Eric Carlson.

Covered by manual tests.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable): Using the audio source sample rate so that the converter does the right conversion.

11:57 AM Changeset in webkit [217057] by aestes@apple.com
  • 8 edits in trunk

Add "countryCode" to ApplePayErrorContactField
https://bugs.webkit.org/show_bug.cgi?id=172264
<rdar://problem/32004909>

Reviewed by Anders Carlsson.

Source/WebCore:

Added ApplePayError tests to http/tests/ssl/applepay/ApplePaySession.html

  • Modules/applepay/ApplePayError.idl:
  • Modules/applepay/PaymentRequest.h:

Source/WebKit2:

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toNSError):

LayoutTests:

  • http/tests/ssl/applepay/ApplePaySession-expected.txt:
  • http/tests/ssl/applepay/ApplePaySession.html:
11:56 AM Changeset in webkit [217056] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Remove unnecessary call to AddToImplIncludes("RuntimeEnabledFeatures.h") in GenerateImplementation()
https://bugs.webkit.org/show_bug.cgi?id=172236

Reviewed by Chris Dumez.

It is unnecessary for GenerateImplementation() to explicitly call AddToImplIncludes("RuntimeEnabledFeatures.h")
to add the header RuntimeEnabledFeatures.h to the list of headers in the generated implementation
as this header is added when GetRuntimeEnableFunctionName() is called. And GenerateImplementation()
calls GetRuntimeEnableFunctionName().

No functionality changed. So, no new tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

11:56 AM Changeset in webkit [217055] by ggaren@apple.com
  • 3 edits in trunk/Source/WTF

AutomaticThread should wait longer before timing out
https://bugs.webkit.org/show_bug.cgi?id=172292

Reviewed by Filip Pizlo.

Increased the idle timeout from 1s => 10s.

This reduces the number of thread restarts on JetStream from
~150 => ~0. It also matches other thread pool APIs on Darwin.

Intuitively, it seems wrong for helper threads to idle exit during
hardcore benchmarking.

This patch in combination with a bmalloc fix seems to be a 1%-2% JetStream
speedup on my Mac Pro.

A nice side-benefit is that per-thread traces are easier to read.

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThread::start):

  • wtf/AutomaticThread.h:
11:55 AM Changeset in webkit [217054] by dbates@webkit.org
  • 7 edits
    7 adds in trunk

REGRESSION (r209608): Cross-origin plugin document opened in child window blocked by parent
window CSP when object-src 'none' is set
https://bugs.webkit.org/show_bug.cgi?id=172038
<rdar://problem/32258262>

Reviewed by Andy Estes.

Source/WebCore:

Fixes an issue where a cross-origin plugin document opened in a child window would inherit
the Content Security Policy (CSP) of its opener. In particular, a cross-origin plugin
document opened in a child window would be blocked when the CSP of its opener disallows
plugins (e.g. object-source 'none').

Prior to r209608 a document opened in a child window never inherited the CSP from its opener
and a plugin document loaded in a subframe would unconditionally inherit the CSP from its
parent frame. So, a plugin document opened in a child window would be allowed to load
regardless of whether its opener had a CSP that prevented plugins. Following r209608 a
document opened in a child window would inherit its CSP from its opener if and only if it
would inherit the security origin from its opener (e.g. about:blank) or was a plugin
document. The latter condition makes plugin documents opened in a child window unconditionally
inherit the CSP from their opener and is the cause of this bug. It seems reasonable to exempt
cross-origin plugin documents opened in a child window from the CSP inheritance rule because
such documents cannot compromise the origin of their opener. Same-origin plugin documents
opened in a child window will continue to inherit the CSP from their opener because such
documents can compromise the origin of their opener.

Tests: http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html

http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html
http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html

  • dom/Document.cpp:

(WebCore::Document::shouldInheritContentSecurityPolicyFromOwner): Added.
(WebCore::Document::initContentSecurityPolicy):

  • dom/Document.h:

Tools:

Teach the test Netscape plugin to look for a URL that contains plugin-document-alert-and-notify-done.pl.
When it sees this URL it will show a JavaScript alert and call testRunner.notifyDone().

  • DumpRenderTree/TestNetscapePlugIn/main.cpp:

(NPP_New):

LayoutTests:

Adds tests to ensure that a same-origin- and cross-origin- plugin document opened in a child
window inherit and do not inherit the CSP of its opener, respectively. Also adds a test to
ensure that an about:blank window inherits the CSP plugin policy of its opener.

  • http/tests/plugins/resources/plugin-document-alert-and-notify-done.pl: Added.
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html: Added.
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html: Added.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html: Added.
  • platform/ios/TestExpectations: Skip added tests as iOS does not support plugins.
11:26 AM Changeset in webkit [217053] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] Many layout tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=172286

Reviewed by Brent Fulgham.

Add a FIXME comment about unimplemented functions, instead of writing this to the test result file.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::grantWebNotificationPermission):
(TestRunner::denyWebNotificationPermission):
(TestRunner::removeAllWebNotificationPermissions):
(TestRunner::simulateWebNotificationClick):

11:22 AM Changeset in webkit [217052] by keith_miller@apple.com
  • 11 edits
    7 adds in trunk

WebAssembly API: test with neutered inputs
https://bugs.webkit.org/show_bug.cgi?id=163899

Reviewed by JF Bastien.

JSTests:

  • wasm/js-api/neutered-inputs.js: Added.

(const.testFunction):
(const.testConstructor):

  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch):

Source/JavaScriptCore:

Add tests to check that we properly throw a type error when
we get a transferred ArrayBuffer. Also, we should make sure
we cannot post message a wasm memory's ArrayBuffer.

  • API/JSTypedArray.cpp:

(JSObjectGetArrayBufferBytesPtr):

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::makeShared):
(JSC::ArrayBuffer::makeWasmMemory):
(JSC::ArrayBuffer::transferTo):
(JSC::ArrayBuffer::neuter):
(JSC::ArrayBuffer::notifyIncommingReferencesOfTransfer):
(JSC::errorMesasgeForTransfer):

  • runtime/ArrayBuffer.h:

(JSC::ArrayBuffer::isLocked):
(JSC::ArrayBuffer::isWasmMemory):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::buffer):
(JSC::JSWebAssemblyMemory::grow):

Source/WebCore:

Make it not possible to transfer an ArrayBuffer that is backed by a
wasm memory.

Test: workers/wasm-mem-post-message.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):

LayoutTests:

This patch dups Saam's de-modularized builder.

  • workers/sab/postMessage-transfer-type-error-expected.txt:
  • workers/wasm-mem-post-message-expected.txt: Added.
  • workers/wasm-mem-post-message.html: Added.
  • workers/wasm-mem-post-message/test.js: Added.

(worker.onmessage):

  • workers/wasm-mem-post-message/worker.js: Added.

(onmessage):

  • workers/wasm-resources/builder.js: Added.

(const._fail):
(const.isNotA.assert.isNotA):
(const):
(switch.typeof):
(Builder):
(Builder.prototype.setChecked):
(Builder.prototype.setPreamble):
(Builder.prototype._functionIndexSpaceKeyHash):
(Builder.prototype._registerFunctionToIndexSpace):
(Builder.prototype._getFunctionFromIndexSpace):
(Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
(Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e):
(Builder.prototype._registerSectionBuilders.this.Unknown):

11:09 AM Changeset in webkit [217051] by Joseph Pecoraro
  • 3 edits in trunk/Source/JavaScriptCore

Remote Inspector: Be stricter about checking message types
https://bugs.webkit.org/show_bug.cgi?id=172259
<rdar://problem/32264839>

Reviewed by Brian Burg.

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::receivedDataMessage):
(Inspector::RemoteInspector::receivedDidCloseMessage):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedConnectionDiedMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionConfigurationMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionRejectMessage):
(Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::deserializeMessage):
(Inspector::RemoteInspectorXPCConnection::handleEvent):
(Inspector::RemoteInspectorXPCConnection::sendMessage):
Bail if we don't receive the expected types for message data.

10:46 AM Changeset in webkit [217050] by fpizlo@apple.com
  • 7 edits
    3 adds in trunk

DFG inlining should be hardened for the no-result case
https://bugs.webkit.org/show_bug.cgi?id=172290

Reviewed by Saam Barati.
JSTests:

  • stress/array-constructor-no-result.js: Added.

(foo):

  • stress/pow-no-result.js: Added.

(foo):

Source/JavaScriptCore:


Previously, if we were inlining a setter call, we might have a bad time because the setter's
result register is the invalid VirtualRegister(), and much of the intrinsic handling code
assumes that the result register is valid.

This doesn't usually cause problems because people don't usually point a setter at something
that we recognize as an intrinsic.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp: Fix a comment.
  • dfg/DFGByteCodeParser.cpp: Make RELEASE_ASSERT give accurate stacks. I was getting an absurd stack from the assert I added in DelayedSetLocal.

(JSC::DFG::ByteCodeParser::DelayedSetLocal::DelayedSetLocal): Assert so we catch the problem sooner.
(JSC::DFG::ByteCodeParser::handleIntrinsicCall): Fix the bug.
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction): Fix the bug if constant internal functions were setter-inlineable (they ain't, because the bytecode parser doesn't fold GetSetter).

  • runtime/Intrinsic.cpp: Added. I needed this to debug.

(JSC::intrinsicName):
(WTF::printInternal):

  • runtime/Intrinsic.h:
10:42 AM Changeset in webkit [217049] by commit-queue@webkit.org
  • 307 edits
    5 deletes in trunk

Unreviewed, rolling out r217031, r217032, and r217037.
https://bugs.webkit.org/show_bug.cgi?id=172293

cause linking errors in Windows (Requested by yusukesuzuki on
#webkit).

Reverted changesets:

"[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217031

"Unreviewed, rebaseline for newly added ClassInfo"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217032

"Unreviewed, fix debug and non-JIT build"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217037

10:17 AM Changeset in webkit [217048] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Protect MediaDeviceRequest instance during context destruction.
https://bugs.webkit.org/show_bug.cgi?id=172285
<rdar://problem/30369017>

Reviewed by Brent Fulgham.

In MediaDevicesRequest::contextDestroyed(), the call to m_enumerationRequest->cancel() might
end up deleting itself (MediaDevicesRequest). The std::function member m_completionHandler
in MediaDevicesEnumerationRequest contains a captured variable of type
RefPtr<MediaDevicesRequest>. When m_completionHandler is set to null in the cancel() method,
the MediaDevicesRequest object will be deleted if the m_completionHandler member is holding
the last reference.

No new tests, since I am unable to reproduce.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::contextDestroyed):

10:07 AM Changeset in webkit [217047] by Chris Dumez
  • 208 edits
    15 copies
    1 move
    200 adds in trunk/LayoutTests

Update web-platform-tests tools
https://bugs.webkit.org/show_bug.cgi?id=172247

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline tests now that WPT tools were updated.

  • web-platform-tests/FileAPI/idlharness-expected.txt:
  • web-platform-tests/FileAPI/idlharness.worker-expected.txt:
  • web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt:
  • web-platform-tests/IndexedDB/interfaces-expected.txt:
  • web-platform-tests/IndexedDB/interfaces.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt:
  • web-platform-tests/WebCryptoAPI/idlharness-expected.txt:
  • web-platform-tests/WebCryptoAPI/idlharness.worker-expected.txt:
  • web-platform-tests/XMLHttpRequest/formdata-foreach-expected.txt:
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
  • web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
  • web-platform-tests/background-fetch/interfaces.worker-expected.txt:
  • web-platform-tests/cors/origin-expected.txt:
  • web-platform-tests/custom-elements/custom-element-registry/define-expected.txt:
  • web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
  • web-platform-tests/encoding/idlharness-expected.txt:
  • web-platform-tests/fetch/api/basic/integrity-sharedworker-expected.txt:
  • web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
  • web-platform-tests/fetch/api/request/request-idl-expected.txt:
  • web-platform-tests/fetch/api/response/response-idl-expected.txt:
  • web-platform-tests/hr-time/idlharness-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/moving-documents-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
  • web-platform-tests/notifications/interfaces-expected.txt:
  • web-platform-tests/resource-timing/idlharness-expected.txt:
  • web-platform-tests/resource-timing/rt-initiatorType-other-expected.txt:
  • web-platform-tests/resources/idlharness.js:

(set exposed):
(IdlArray.prototype.test):
(IdlArray.prototype.assert_type_is):
(IdlInterface.prototype.test_self):
(IdlInterface.prototype.add_iterable_members):
(IdlInterface.prototype.test_member_iterable):
(IdlInterface.prototype.test_members):
(IdlInterface.prototype.test_primary_interface_of):
(IdlInterface.prototype.test_interface_of):
(IdlInterface.prototype.do_interface_attribute_asserts):
(IdlTypedef):

  • web-platform-tests/resources/testharness.js:

(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(ServiceWorkerTestEnvironment):
(promise_test):

  • web-platform-tests/shadow-dom/Document-prototype-currentScript-expected.txt:
  • web-platform-tests/streams/byte-length-queuing-strategy.sharedworker-expected.txt:
  • web-platform-tests/streams/count-queuing-strategy.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-backward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-forward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-backward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-forward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/flow-control.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/general-expected.txt:
  • web-platform-tests/streams/piping/general.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/multiple-propagation.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/transform-streams.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-strategies.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/brand-checks.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/cancel.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/garbage-collection.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/general.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/pipe-through.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/readable-stream-reader.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/tee.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/templated.sharedworker-expected.txt:
  • web-platform-tests/tools/browserutils/init.py: Added.
  • web-platform-tests/tools/browserutils/browser.py: Added.

(path):
(Browser):
(Browser.install):
(Browser.install_webdriver):
(Browser.version):
(Browser.requirements):
(Browser.prepare_environment):
(Firefox):
(Firefox.platform_string):
(Firefox.platform_string_geckodriver):
(Firefox.latest_nightly_listing):
(Firefox.get_from_nightly):
(Firefox.install):
(Firefox.find_binary):
(Firefox.find_certutil):
(Firefox.find_webdriver):
(Firefox.install_certutil):
(Firefox.install_prefs):
(Firefox._latest_geckodriver_version):
(Firefox.install_webdriver):
(Firefox.version):
(Chrome):
(Chrome.platform_string):
(Chrome.install):
(Chrome.find_webdriver):
(Chrome.install_webdriver):
(Chrome.version):
(Chrome.prepare_environment):

  • web-platform-tests/tools/browserutils/utils.py: Added.

(Kwargs):
(Kwargs.set_if_none):
(call):
(get_git_cmd):
(get_git_cmd.git):
(seekable):
(untar):
(unzip):
(pwd):
(pwd.init):
(pwd.enter):
(pwd.exit):
(get):

  • web-platform-tests/tools/browserutils/virtualenv.py: Added.

(Virtualenv):
(Virtualenv.init):
(Virtualenv.exists):
(Virtualenv.create):
(Virtualenv.bin_path):
(Virtualenv.pip_path):
(Virtualenv.activate):
(Virtualenv.start):
(Virtualenv.install_requirements):

  • web-platform-tests/tools/browserutils/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
  • web-platform-tests/tools/conftest.py:
  • web-platform-tests/tools/gitignore/tests/w3c-import.log:
  • web-platform-tests/tools/gitignore/w3c-import.log:
  • web-platform-tests/tools/html5lib/doc/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/filters/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/serializer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/testdata/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/tests/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treeadapters/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treebuilders/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treewalkers/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/trie/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/w3c-import.log:
  • web-platform-tests/tools/html5lib/utils/w3c-import.log:
  • web-platform-tests/tools/html5lib/w3c-import.log:
  • web-platform-tests/tools/lint/lint.py:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/match/support/tools/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/match/support/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/match/tools/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/match/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/not-match/support/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/not-match/tools/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/not-match/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/selectors/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/support/tools/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/support/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/tools/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css-unique/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/css/work-in-progress/foo/support/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/ref/w3c-import.log:
  • web-platform-tests/tools/lint/tests/dummy/w3c-import.log:
  • web-platform-tests/tools/lint/tests/w3c-import.log:
  • web-platform-tests/tools/lint/w3c-import.log:
  • web-platform-tests/tools/localpaths.py:
  • web-platform-tests/tools/manifest/catalog/w3c-import.log:
  • web-platform-tests/tools/manifest/tests/w3c-import.log:
  • web-platform-tests/tools/manifest/w3c-import.log:
  • web-platform-tests/tools/pytest.ini:
  • web-platform-tests/tools/pytest/_pytest/_code/w3c-import.log:
  • web-platform-tests/tools/pytest/_pytest/assertion/w3c-import.log:
  • web-platform-tests/tools/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/w3c-import.log:
  • web-platform-tests/tools/pytest/_pytest/vendored_packages/w3c-import.log:
  • web-platform-tests/tools/pytest/_pytest/w3c-import.log:
  • web-platform-tests/tools/pytest/bench/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/_templates/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/_themes/flask/static/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/_themes/flask/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/_themes/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/announce/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/assertion/global_testmodule_config/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/assertion/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/costlysetup/sub1/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/costlysetup/sub2/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/costlysetup/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/layout1/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/nonpython/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/py2py3/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/example/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/img/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/test/plugin/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/test/w3c-import.log:
  • web-platform-tests/tools/pytest/doc/en/w3c-import.log:
  • web-platform-tests/tools/pytest/extra/setup-py.test/w3c-import.log:
  • web-platform-tests/tools/pytest/extra/w3c-import.log:
  • web-platform-tests/tools/pytest/testing/code/w3c-import.log:
  • web-platform-tests/tools/pytest/testing/cx_freeze/tests/w3c-import.log:
  • web-platform-tests/tools/pytest/testing/cx_freeze/w3c-import.log:
  • web-platform-tests/tools/pytest/testing/python/w3c-import.log:
  • web-platform-tests/tools/pytest/testing/w3c-import.log:
  • web-platform-tests/tools/pytest/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/example/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/handshake/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/test/cert/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/test/testdata/handlers/sub/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/test/testdata/handlers/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/test/testdata/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/test/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/w3c-import.log:
  • web-platform-tests/tools/runner/css/w3c-import.log:
  • web-platform-tests/tools/runner/fonts/w3c-import.log:
  • web-platform-tests/tools/runner/w3c-import.log:
  • web-platform-tests/tools/scripts/w3c-import.log:
  • web-platform-tests/tools/serve/w3c-import.log:
  • web-platform-tests/tools/six/documentation/w3c-import.log:
  • web-platform-tests/tools/six/w3c-import.log:
  • web-platform-tests/tools/sslutils/w3c-import.log:
  • web-platform-tests/tools/tox.ini:
  • web-platform-tests/tools/w3c-import.log:
  • web-platform-tests/tools/webdriver/README.md:
  • web-platform-tests/tools/webdriver/w3c-import.log:
  • web-platform-tests/tools/webdriver/webdriver/client.py:

(Element.send_keys):

  • web-platform-tests/tools/webdriver/webdriver/w3c-import.log:
  • web-platform-tests/tools/wptrun.py: Added.

(WptrunnerHelpAction):
(WptrunnerHelpAction.init):
(WptrunnerHelpAction.call):
(create_parser):
(exit):
(args_general):
(check_environ):
(prompt_install):
(args_firefox):
(setup_firefox):
(args_chrome):
(setup_chrome):
(setup_edge):
(setup_sauce):
(setup_servo):
(setup_wptrunner):
(main):

  • web-platform-tests/tools/wptrunner/LICENSE: Renamed from LayoutTests/imported/w3c/web-platform-tests/tools/LICENSE.
  • web-platform-tests/tools/wptrunner/MANIFEST.in: Added.
  • web-platform-tests/tools/wptrunner/README.rst: Added.
  • web-platform-tests/tools/wptrunner/docs/Makefile: Added.
  • web-platform-tests/tools/wptrunner/docs/architecture.svg: Added.
  • web-platform-tests/tools/wptrunner/docs/conf.py: Added.
  • web-platform-tests/tools/wptrunner/docs/design.rst: Added.
  • web-platform-tests/tools/wptrunner/docs/expectation.rst: Added.
  • web-platform-tests/tools/wptrunner/docs/index.rst: Added.
  • web-platform-tests/tools/wptrunner/docs/make.bat: Added.
  • web-platform-tests/tools/wptrunner/docs/usage.rst: Added.
  • web-platform-tests/tools/wptrunner/docs/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/requirements.txt: Added.
  • web-platform-tests/tools/wptrunner/requirements_chrome.txt: Added.
  • web-platform-tests/tools/wptrunner/requirements_firefox.txt: Added.
  • web-platform-tests/tools/wptrunner/requirements_sauce.txt: Added.
  • web-platform-tests/tools/wptrunner/requirements_servo.txt: Added.
  • web-platform-tests/tools/wptrunner/setup.py: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_and_fail.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_cycle_fail.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_match_fail.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_mismatch_fail.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_ref_timeout.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_timeout.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/reftest/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/dir.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/subdir/test_pref_reset.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/py/doc/img/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/test_pref_set.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/subdir/dir.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/subdir/testharness_1.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/testharness_0.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/testharness_error.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/testharness_timeout.html.ini: Added.
  • web-platform-tests/tools/wptrunner/test/metadata/testharness/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/test.cfg.example: Added.
  • web-platform-tests/tools/wptrunner/test/test.py: Added.

(setup_wptrunner_logging):
(ResultHandler):
(ResultHandler.init):
(ResultHandler.set_product):
(ResultHandler.call):
(test_settings):
(read_config):
(run_tests):
(settings_to_argv):
(set_from_args):
(run):
(get_parser):
(main):

  • web-platform-tests/tools/wptrunner/test/testdata/reftest/green-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/green-ref-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/green-ref.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/green.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/red.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest.https-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest.https.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail_0-ref-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail_0-ref.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_0-ref-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_0-ref.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_1-ref-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_1-ref.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail_0-ref-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail_0-ref.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match_fail-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match_fail.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch_fail-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch_fail.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_or_0-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_or_0.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_ref_timeout-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_ref_timeout.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_timeout-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_timeout.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_wait_0-expected.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_wait_0.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/reftest/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/subdir/test_pref_inherit.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/subdir/test_pref_reset.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/test_pref_dir.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/test_pref_set.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/subdir/testharness_1.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/py/doc/img/w3c-import.log.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness.https.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_0.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_error.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_long_timeout.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_timeout.html: Added.
  • web-platform-tests/tools/wptrunner/test/testdata/testharness/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/test/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/w3c-import.log.
  • web-platform-tests/tools/wptrunner/tox.ini: Added.
  • web-platform-tests/tools/wptrunner/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/wptrunner.default.ini: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/py/doc/img/w3c-import.log.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/base.py: Added.

(cmd_arg):
(get_free_port):
(browser_command):
(BrowserError):
(Browser):
(Browser.init):
(Browser.init.serving):
(Browser.init.also):
(Browser.enter):
(Browser.exit):
(Browser.setup):
(Browser.start):
(Browser.stop):
(Browser.pid):
(Browser.is_alive):
(Browser.setup_ssl):
(Browser.cleanup):
(Browser.executor_browser):
(Browser.executor_browser.for):
(Browser.log_crash):
(NullBrowser):
(NullBrowser.init):
(NullBrowser.start):
(NullBrowser.stop):
(NullBrowser.pid):
(NullBrowser.is_alive):
(NullBrowser.on_output):
(ExecutorBrowser):
(ExecutorBrowser.init):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome.py: Added.

(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(ChromeBrowser):
(ChromeBrowser.init):
(ChromeBrowser.start):
(ChromeBrowser.stop):
(ChromeBrowser.pid):
(ChromeBrowser.is_alive):
(ChromeBrowser.cleanup):
(ChromeBrowser.executor_browser):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py: Added.

(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(EdgeBrowser):
(EdgeBrowser.init):
(EdgeBrowser.start):
(EdgeBrowser.stop):
(EdgeBrowser.pid):
(EdgeBrowser.is_alive):
(EdgeBrowser.cleanup):
(EdgeBrowser.executor_browser):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py: Added.

(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(run_info_extras):
(update_properties):
(FirefoxBrowser):
(FirefoxBrowser.init):
(FirefoxBrowser.start):
(FirefoxBrowser.load_prefs):
(FirefoxBrowser.stop):
(FirefoxBrowser.pid):
(FirefoxBrowser.on_output):
(FirefoxBrowser.is_alive):
(FirefoxBrowser.cleanup):
(FirefoxBrowser.executor_browser):
(FirefoxBrowser.log_crash):
(FirefoxBrowser.setup_ssl):
(FirefoxBrowser.setup_ssl.certutil):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce.py: Added.

(get_capabilities):
(get_sauce_config):
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(get_tar):
(SauceConnect):
(SauceConnect.init):
(SauceConnect.enter):
(SauceConnect.exit):
(SauceConnect.upload_prerun_exec):
(SauceException):
(SauceBrowser):
(SauceBrowser.init):
(SauceBrowser.start):
(SauceBrowser.stop):
(SauceBrowser.pid):
(SauceBrowser.is_alive):
(SauceBrowser.cleanup):
(SauceBrowser.executor_browser):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/tests/w3c-import.log.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/server-locations.txt: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/servo.py: Added.

(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(update_properties):
(ServoBrowser):
(ServoBrowser.init):
(ServoBrowser.executor_browser):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/servodriver.py: Added.

(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(update_properties):
(make_hosts_file):
(ServoWebDriverBrowser):
(ServoWebDriverBrowser.init):
(ServoWebDriverBrowser.start):
(ServoWebDriverBrowser.stop):
(ServoWebDriverBrowser.pid):
(ServoWebDriverBrowser.on_output):
(ServoWebDriverBrowser.is_alive):
(ServoWebDriverBrowser.cleanup):
(ServoWebDriverBrowser.executor_browser):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/config.json: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/config.py: Added.

(ConfigDict):
(ConfigDict.init):
(ConfigDict.get_path):
(read):
(path):
(load):

  • web-platform-tests/tools/wptrunner/wptrunner/environment.py: Added.

(do_delayed_imports):
(serve_path):
(get_ssl_kwargs):
(ssl_env):
(TestEnvironmentError):
(TestEnvironment):
(TestEnvironment.init):
(TestEnvironment.enter):
(TestEnvironment.exit):
(TestEnvironment.ignore_interrupts):
(TestEnvironment.process_interrupts):
(TestEnvironment.load_config):
(TestEnvironment.setup_server_logging):
(TestEnvironment.get_routes):
(TestEnvironment.ensure_started):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/executors/base.py: Added.

(executor_kwargs):
(strip_server):
(TestharnessResultConverter):
(TestharnessResultConverter.call):
(reftest_result_converter):
(pytest_result_converter):
(ExecutorException):
(ExecutorException.init):
(TestExecutor):
(TestExecutor.init):
(TestExecutor.init.for):
(TestExecutor.logger):
(TestExecutor.setup):
(TestExecutor.teardown):
(TestExecutor.run_test):
(TestExecutor.server_url):
(TestExecutor.test_url):
(TestExecutor.do_test):
(TestExecutor.on_environment_change):
(TestExecutor.result_from_exception):
(TestharnessExecutor):
(RefTestExecutor):
(RefTestExecutor.init):
(RefTestImplementation):
(RefTestImplementation.init):
(RefTestImplementation.logger):
(RefTestImplementation.get_hash):
(RefTestImplementation.is_pass):
(RefTestImplementation.run_test):
(RefTestImplementation.retake_screenshot):
(WdspecExecutor):
(Protocol):
(Protocol.init):
(Protocol.logger):
(Protocol.setup):
(Protocol.teardown):
(Protocol.wait):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py: Added.

(do_delayed_imports):
(MarionetteProtocol):
(MarionetteProtocol.init):
(MarionetteProtocol.setup):
(MarionetteProtocol.teardown):
(MarionetteProtocol.is_alive):
(MarionetteProtocol.after_connect):
(MarionetteProtocol.set_timeout):
(MarionetteProtocol.load_runner):
(MarionetteProtocol.close_old_windows):
(MarionetteProtocol.wait):
(MarionetteProtocol.on_environment_change):
(MarionetteProtocol.set_pref):
(MarionetteProtocol.clear_user_pref):
(MarionetteProtocol.get_pref):
(MarionetteProtocol.clear_origin):
(RemoteMarionetteProtocol):
(RemoteMarionetteProtocol.init):
(RemoteMarionetteProtocol.setup):
(RemoteMarionetteProtocol.teardown):
(RemoteMarionetteProtocol.is_alive):
(ExecuteAsyncScriptRun):
(ExecuteAsyncScriptRun.init):
(ExecuteAsyncScriptRun.run):
(ExecuteAsyncScriptRun._run):
(MarionetteTestharnessExecutor):
(MarionetteTestharnessExecutor.init):
(MarionetteTestharnessExecutor.is_alive):
(MarionetteTestharnessExecutor.on_environment_change):
(MarionetteTestharnessExecutor.do_test):
(MarionetteTestharnessExecutor.do_testharness):
(MarionetteRefTestExecutor):
(MarionetteRefTestExecutor.init):
(MarionetteRefTestExecutor.is_alive):
(MarionetteRefTestExecutor.on_environment_change):
(MarionetteRefTestExecutor.do_test):
(MarionetteRefTestExecutor.screenshot):
(MarionetteRefTestExecutor._screenshot):
(WdspecRun):
(WdspecRun.init):
(WdspecRun.run):
(WdspecRun._run):
(MarionetteWdspecExecutor):
(MarionetteWdspecExecutor.init):
(MarionetteWdspecExecutor.is_alive):
(MarionetteWdspecExecutor.on_environment_change):
(MarionetteWdspecExecutor.do_test):
(MarionetteWdspecExecutor.do_wdspec):
(MarionetteWdspecExecutor.do_delayed_imports):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py: Added.

(do_delayed_imports):
(SeleniumProtocol):
(SeleniumProtocol.init):
(SeleniumProtocol.setup):
(SeleniumProtocol.teardown):
(SeleniumProtocol.is_alive):
(SeleniumProtocol.after_connect):
(SeleniumProtocol.load_runner):
(SeleniumProtocol.wait):
(SeleniumRun):
(SeleniumRun.init):
(SeleniumRun.run):
(SeleniumRun._run):
(SeleniumTestharnessExecutor):
(SeleniumTestharnessExecutor.init):
(SeleniumTestharnessExecutor.is_alive):
(SeleniumTestharnessExecutor.on_environment_change):
(SeleniumTestharnessExecutor.do_test):
(SeleniumTestharnessExecutor.do_testharness):
(SeleniumRefTestExecutor):
(SeleniumRefTestExecutor.init):
(SeleniumRefTestExecutor.is_alive):
(SeleniumRefTestExecutor.do_test):
(SeleniumRefTestExecutor.screenshot):
(SeleniumRefTestExecutor._screenshot):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py: Added.

(make_hosts_file):
(ServoTestharnessExecutor):
(ServoTestharnessExecutor.init):
(ServoTestharnessExecutor.teardown):
(ServoTestharnessExecutor.do_test):
(ServoTestharnessExecutor.on_output):
(ServoTestharnessExecutor.on_finish):
(TempFilename):
(TempFilename.init):
(TempFilename.enter):
(TempFilename.exit):
(ServoRefTestExecutor):
(ServoRefTestExecutor.init):
(ServoRefTestExecutor.teardown):
(ServoRefTestExecutor.screenshot):
(ServoRefTestExecutor.do_test):
(ServoRefTestExecutor.on_output):
(ServoWdspecProtocol):
(ServoWdspecProtocol.init):
(ServoWdspecProtocol.setup):
(ServoWdspecProtocol.teardown):
(ServoWdspecProtocol.is_alive):
(ServoWdspecProtocol.do_delayed_imports):
(ServoWdspecExecutor):
(ServoWdspecExecutor.init):
(ServoWdspecExecutor.is_alive):
(ServoWdspecExecutor.on_environment_change):
(ServoWdspecExecutor.do_test):
(ServoWdspecExecutor.do_wdspec):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py: Added.

(do_delayed_imports):
(ServoWebDriverProtocol):
(ServoWebDriverProtocol.init):
(ServoWebDriverProtocol.setup):
(ServoWebDriverProtocol.teardown):
(ServoWebDriverProtocol.is_alive):
(ServoWebDriverProtocol.after_connect):
(ServoWebDriverProtocol.wait):
(ServoWebDriverProtocol.on_environment_change):
(ServoWebDriverRun):
(ServoWebDriverRun.init):
(ServoWebDriverRun.run):
(ServoWebDriverRun._run):
(timeout_func):
(ServoWebDriverTestharnessExecutor):
(ServoWebDriverTestharnessExecutor.init):
(ServoWebDriverTestharnessExecutor.on_protocol_change):
(ServoWebDriverTestharnessExecutor.is_alive):
(ServoWebDriverTestharnessExecutor.do_test):
(ServoWebDriverTestharnessExecutor.do_testharness):
(TimeoutError):
(ServoWebDriverRefTestExecutor):
(ServoWebDriverRefTestExecutor.init):
(ServoWebDriverRefTestExecutor.is_alive):
(ServoWebDriverRefTestExecutor.do_test):
(ServoWebDriverRefTestExecutor.screenshot):
(ServoWebDriverRefTestExecutor._screenshot):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/process.py: Added.

(ProcessTestExecutor):
(ProcessTestExecutor.init):
(ProcessTestExecutor.setup):
(ProcessTestExecutor.is_alive):
(ProcessTestExecutor.do_test):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py: Added.

(do_delayed_imports):
(run):
(SubtestResultRecorder):
(SubtestResultRecorder.init):
(SubtestResultRecorder.pytest_runtest_logreport):
(SubtestResultRecorder.record_pass):
(SubtestResultRecorder.record_fail):
(SubtestResultRecorder.record_error):
(SubtestResultRecorder.record_skip):
(SubtestResultRecorder.record):
(TemporaryDirectory):
(TemporaryDirectory.enter):
(TemporaryDirectory.exit):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
  • web-platform-tests/tools/wptrunner/wptrunner/executors/reftest-wait.js: Added.

(test):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/reftest-wait_servodriver.js: Added.

(check_done):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/reftest-wait_webdriver.js: Added.

(test):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/reftest.js: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/executors/testharness_marionette.js: Added.

(listener):
(timeout.s.timer.setTimeout):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/testharness_servodriver.js: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/executors/testharness_webdriver.js: Added.

(f):
(timer.setTimeout):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/expected.py: Added.

(expected_path):

  • web-platform-tests/tools/wptrunner/wptrunner/hosts.py: Added.

(HostsLine):
(HostsLine.init):
(HostsLine.from_string):
(HostsFile):
(HostsFile.init):
(HostsFile.set_host):
(HostsFile.from_file):
(HostsFile.to_string):
(HostsFile.to_file):

  • web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py: Added.

(data_cls_getter):
(bool_prop):
(tags):
(prefs):
(prefs.value):
(ExpectedManifest):
(ExpectedManifest.init):
(ExpectedManifest.append):
(ExpectedManifest._remove_child):
(ExpectedManifest.get_test):
(ExpectedManifest.url):
(ExpectedManifest.disabled):
(ExpectedManifest.restart_after):
(ExpectedManifest.tags):
(ExpectedManifest.prefs):
(DirectoryManifest):
(DirectoryManifest.disabled):
(DirectoryManifest.restart_after):
(DirectoryManifest.tags):
(DirectoryManifest.prefs):
(TestNode):
(TestNode.init):
(TestNode.is_empty):
(TestNode.test_type):
(TestNode.id):
(TestNode.disabled):
(TestNode.restart_after):
(TestNode.tags):
(TestNode.prefs):
(TestNode.append):
(TestNode.get_subtest):
(SubtestNode):
(SubtestNode.init):
(SubtestNode.is_empty):
(get_manifest):
(get_dir_manifest):

  • web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py: Added.

(IncludeManifest):
(IncludeManifest.init):
(IncludeManifest.create):
(IncludeManifest.append):
(IncludeManifest.include):
(IncludeManifest._include):
(IncludeManifest._get_components):
(IncludeManifest._add_rule):
(IncludeManifest.add_include):
(IncludeManifest.add_exclude):
(get_manifest):

  • web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py: Added.

(ConditionError):
(data_cls_getter):
(ExpectedManifest):
(ExpectedManifest.init):
(ExpectedManifest.append):
(ExpectedManifest._remove_child):
(ExpectedManifest.get_test):
(ExpectedManifest.has_test):
(ExpectedManifest.url):
(TestNode):
(TestNode.init):
(TestNode.create):
(TestNode.is_empty):
(TestNode.test_type):
(TestNode.id):
(TestNode.disabled):
(TestNode.set_result):
(TestNode.coalesce_expected):
(TestNode._add_key_value):
(TestNode.clear_expected):
(TestNode.append):
(TestNode.get_subtest):
(SubtestNode):
(SubtestNode.init):
(SubtestNode.create):
(SubtestNode.is_empty):
(group_conditionals):
(make_expr):
(get_manifest):
(compile):

  • web-platform-tests/tools/wptrunner/wptrunner/metadata.py: Added.

(load_test_manifests):
(update_expected):
(do_delayed_imports):
(files_in_repo):
(rev_range):
(paths_changed):
(load_change_data):
(unexpected_changes):
(update_from_logs):
(directory_manifests):
(write_changes):
(write_new_expected):
(ExpectedUpdater):
(ExpectedUpdater.init):
(ExpectedUpdater.update_from_log):
(ExpectedUpdater.suite_start):
(ExpectedUpdater.test_id):
(ExpectedUpdater.test_start):
(ExpectedUpdater.test_status):
(ExpectedUpdater.test_end):
(create_test_tree):
(create_expected):
(load_expected):

  • web-platform-tests/tools/wptrunner/wptrunner/products.py: Added.

(products_enabled):
(product_module):
(load_product):
(load_product_update):

  • web-platform-tests/tools/wptrunner/wptrunner/reduce.py: Added.

(setup_logging):
(group):
(next_power_of_two):
(Reducer):
(Reducer.init):
(Reducer.run):
(Reducer.unstable):
(Reducer.log_is_unstable):
(Reducer.log_is_unstable.handle_status):
(Reducer.log_is_unstable.handle_end):
(Reducer.get_initial_tests):
(do_reduce):

  • web-platform-tests/tools/wptrunner/wptrunner/testharness_runner.html: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/testharnessreport-servo.js: Added.

(add_completion_callback):

  • web-platform-tests/tools/wptrunner/wptrunner/testharnessreport-servodriver.js: Added.

(add_completion_callback.):
(add_completion_callback):

  • web-platform-tests/tools/wptrunner/wptrunner/testharnessreport.js: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/testloader.py: Added.

(do_delayed_imports):
(TestChunker):
(TestChunker.init):
(TestChunker.call):
(Unchunked):
(Unchunked.init):
(Unchunked.call):
(HashChunker):
(HashChunker.call):
(DirectoryHashChunker):
(DirectoryHashChunker.call):
(EqualTimeChunker):
(EqualTimeChunker._group_by_directory):
(EqualTimeChunker._group_by_directory.PathData):
(EqualTimeChunker._group_by_directory.PathData.init):
(EqualTimeChunker._maybe_remove):
(EqualTimeChunker._maybe_add):
(EqualTimeChunker._maybe_move):
(EqualTimeChunker._badness):
(EqualTimeChunker._get_chunk):
(EqualTimeChunker._all_tests):
(EqualTimeChunker._chunked_tests):
(EqualTimeChunker._create_initial_chunks):
(EqualTimeChunker._create_initial_chunks.Chunk):
(EqualTimeChunker._create_initial_chunks.Chunk.init):
(EqualTimeChunker._create_initial_chunks.Chunk.appendleft):
(EqualTimeChunker._create_initial_chunks.Chunk.append):
(EqualTimeChunker._create_initial_chunks.Chunk.pop):
(EqualTimeChunker._create_initial_chunks.Chunk.popleft):
(EqualTimeChunker._create_initial_chunks.Chunk.badness):
(EqualTimeChunker._update_chunks):
(EqualTimeChunker._get_tests):
(EqualTimeChunker.call):
(TestFilter):
(TestFilter.init):
(TestFilter.call):
(TagFilter):
(TagFilter.init):
(TagFilter.call):
(ManifestLoader):
(ManifestLoader.init):
(ManifestLoader.load):
(ManifestLoader.create_manifest):
(ManifestLoader.update_manifest):
(ManifestLoader.load_manifest):
(iterfilter):
(TestLoader):
(TestLoader.init):
(TestLoader.test_ids):
(TestLoader.get_test):
(TestLoader.load_dir_metadata):
(TestLoader.load_metadata):
(TestLoader.iter_tests):
(TestLoader.iter_wpttest):
(TestLoader._load_tests):
(TestLoader.groups):
(TestSource):
(TestSource.queue_tests):
(TestSource.requeue_test):
(TestSource.enter):
(TestSource.exit):
(SingleTestSource):
(SingleTestSource.init):
(SingleTestSource.queue_tests):
(SingleTestSource.get_queue):
(SingleTestSource.requeue_test):
(PathGroupedSource):
(PathGroupedSource.init):
(PathGroupedSource.queue_tests):
(PathGroupedSource.get_queue):
(PathGroupedSource.requeue_test):
(PathGroupedSource.exit):

  • web-platform-tests/tools/wptrunner/wptrunner/testrunner.py: Added.

(MessageLogger):
(MessageLogger.init):
(MessageLogger._log_data):
(MessageLogger.process_output):
(_log_func):
(_log_func.log):
(TestRunner):
(TestRunner.init):
(TestRunner.init.delegates):
(TestRunner.enter):
(TestRunner.exit):
(TestRunner.setup):
(TestRunner.teardown):
(TestRunner.run):
(TestRunner.stop):
(TestRunner.run_test):
(TestRunner.wait):
(TestRunner.send_message):
(start_runner):
(next_manager_number):
(BrowserManager):
(BrowserManager.init):
(BrowserManager.init):
(BrowserManager.send_message):
(BrowserManager.init_timeout):
(BrowserManager.after_init):
(BrowserManager.stop):
(BrowserManager.cleanup):
(BrowserManager.log_crash):
(BrowserManager.is_alive):
(_RunnerManagerState):
(TestRunnerManager):
(TestRunnerManager.init):
(TestRunnerManager.run):
(TestRunnerManager.wait_event):
(TestRunnerManager.should_stop):
(TestRunnerManager.start_init):
(TestRunnerManager.init):
(TestRunnerManager.start_test_runner):
(TestRunnerManager.init_succeeded):
(TestRunnerManager.init_failed):
(TestRunnerManager.get_next_test):
(TestRunnerManager.run_test):
(TestRunnerManager.test_ended):
(TestRunnerManager.wait_finished):
(TestRunnerManager.after_test_end):
(TestRunnerManager.restart_runner):
(TestRunnerManager.log):
(TestRunnerManager.error):
(TestRunnerManager.stop_runner):
(TestRunnerManager.teardown):
(TestRunnerManager.ensure_runner_stopped):
(TestRunnerManager.runner_teardown):
(TestRunnerManager.send_message):
(TestRunnerManager.cleanup):
(TestQueue):
(TestQueue.init):
(TestQueue.enter):
(TestQueue.exit):
(ManagerGroup):
(ManagerGroup.init):
(ManagerGroup.enter):
(ManagerGroup.exit):
(ManagerGroup.run):
(ManagerGroup.is_alive):
(ManagerGroup.wait):
(ManagerGroup.stop):
(ManagerGroup.unexpected_count):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/tests/test_chunker.py: Added.

(MockTest):
(MockTest.init):
(make_mock_manifest):
(TestEqualTimeChunker):
(TestEqualTimeChunker.test_include_all):
(TestEqualTimeChunker.test_include_all_1):
(TestEqualTimeChunker.test_long):
(TestEqualTimeChunker.test_long_1):
(TestEqualTimeChunker.test_too_few_dirs):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py: Added.

(HostsTest):
(HostsTest.do_test):
(HostsTest.test_simple):
(test_blank_lines):
(test_whitespace):
(test_alignment):
(test_multiple_same_name):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/test_testloader.py: Added.

(test_filter_unicode):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/test_update.py: Added.

(TestExpectedUpdater):
(TestExpectedUpdater.create_manifest):
(TestExpectedUpdater.create_updater):
(TestExpectedUpdater.create_log):
(TestExpectedUpdater.coalesce_results):
(TestExpectedUpdater.test_update_0):
(TestExpectedUpdater.test_update_1):
(TestExpectedUpdater.test_new_subtest):
(TestExpectedUpdater.test_update_multiple_0):
(TestExpectedUpdater.test_update_multiple_1):
(TestExpectedUpdater.test_update_multiple_2):
(TestExpectedUpdater.test_update_multiple_3):
(TestExpectedUpdater.test_update_ignore_existing):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
  • web-platform-tests/tools/wptrunner/wptrunner/update/init.py: Added.

(remove_logging_args):
(setup_logging):
(run_update):
(main):

  • web-platform-tests/tools/wptrunner/wptrunner/update/base.py: Added.

(Step):
(Step.init):
(Step.run):
(Step.run.for):
(Step.create):
(Step.restore):
(StepRunner):
(StepRunner.init):
(StepRunner.run):

  • web-platform-tests/tools/wptrunner/wptrunner/update/metadata.py: Added.

(GetUpdatePropertyList):
(GetUpdatePropertyList.create):
(UpdateExpected):
(UpdateExpected.create):
(CreateMetadataPatch):
(CreateMetadataPatch.create):
(MetadataUpdateRunner):

  • web-platform-tests/tools/wptrunner/wptrunner/update/state.py: Added.

(State):
(State.new):
(State.init):
(State.getstate):
(State.load):
(State.push):
(State.save):
(State.is_empty):
(State.clear):
(State.setattr):
(State.getattr):
(State.contains):
(State.update):
(State.keys):
(StateContext):
(StateContext.init):
(StateContext.enter):
(StateContext.exit):

  • web-platform-tests/tools/wptrunner/wptrunner/update/sync.py: Added.

(copy_wpt_tree):
(add_license):
(UpdateCheckout):
(UpdateCheckout.create):
(UpdateCheckout.restore):
(GetSyncTargetCommit):
(GetSyncTargetCommit.create):
(LoadManifest):
(LoadManifest.create):
(UpdateManifest):
(UpdateManifest.create):
(CopyWorkTree):
(CopyWorkTree.create):
(CreateSyncPatch):
(CreateSyncPatch.create):
(SyncFromUpstreamRunner):

  • web-platform-tests/tools/wptrunner/wptrunner/update/tree.py: Added.

(get_unique_name):
(NoVCSTree):
(NoVCSTree.init):
(NoVCSTree.is_type):
(NoVCSTree.is_clean):
(NoVCSTree.add_new):
(NoVCSTree.create_patch):
(NoVCSTree.update_patch):
(NoVCSTree.commit_patch):
(HgTree):
(HgTree.init):
(HgTree.getstate):
(HgTree.setstate):
(HgTree.is_type):
(HgTree.is_clean):
(HgTree.add_new):
(HgTree.create_patch):
(HgTree.update_patch):
(HgTree.commit_patch):
(HgTree.contains_commit):
(GitTree):
(GitTree.init):
(GitTree.getstate):
(GitTree.setstate):
(GitTree.is_type):
(GitTree.rev):
(GitTree.is_clean):
(GitTree.add_new):
(GitTree.list_refs):
(GitTree.list_remote):
(GitTree.get_remote_sha1):
(GitTree.create_patch):
(GitTree.update_patch):
(GitTree.commit_patch):
(GitTree.init):
(GitTree.checkout):
(GitTree.update):
(GitTree.clean):
(GitTree.paths):
(GitTree.submodules):
(GitTree.contains_commit):
(CommitMessage):
(CommitMessage.init):
(CommitMessage.str):
(CommitMessage._parse_message):
(Commit):
(Commit.init):
(Commit.getstate):
(Commit.setstate):
(Commit._get_meta):

  • web-platform-tests/tools/wptrunner/wptrunner/update/update.py: Added.

(setup_paths):
(LoadConfig):
(LoadConfig.create):
(LoadTrees):
(LoadTrees.create):
(SyncFromUpstream):
(SyncFromUpstream.create):
(UpdateMetadata):
(UpdateMetadata.create):
(UpdateRunner):
(WPTUpdate):
(WPTUpdate.init):
(WPTUpdate.init.holding):
(WPTUpdate.run):
(WPTUpdate.abort):

  • web-platform-tests/tools/wptrunner/wptrunner/update/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/vcs.py: Added.

(vcs):
(vcs.inner):
(bind_to_repo):
(is_git_root):

  • web-platform-tests/tools/wptrunner/wptrunner/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py: Added.

(WebDriverServer):
(WebDriverServer.init):
(WebDriverServer.make_command):
(WebDriverServer.start):
(WebDriverServer._run):
(WebDriverServer.stop):
(WebDriverServer.is_alive):
(WebDriverServer.on_output):
(WebDriverServer.pid):
(WebDriverServer.url):
(WebDriverServer.port):
(WebDriverServer._find_next_free_port):
(SeleniumServer):
(SeleniumServer.make_command):
(ChromeDriverServer):
(ChromeDriverServer.init):
(ChromeDriverServer.make_command):
(EdgeDriverServer):
(EdgeDriverServer.init):
(EdgeDriverServer.make_command):
(GeckoDriverServer):
(GeckoDriverServer.init):
(GeckoDriverServer.make_command):
(ServoDriverServer):
(ServoDriverServer.init):
(ServoDriverServer.make_command):
(cmd_arg):
(get_free_port):
(wait_for_service):

  • web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py: Added.

(abs_path):
(url_or_path):
(require_arg):
(create_parser):
(set_from_config):
(get_test_paths):
(exe_path):
(check_args):
(check_args_update):
(create_parser_update):
(create_parser_reduce):
(parse_args):
(parse_args_update):
(parse_args_reduce):

  • web-platform-tests/tools/wptrunner/wptrunner/wptlogging.py: Added.

(setup):
(setup_stdlib_logger):
(LogLevelRewriter):
(LogLevelRewriter.init):
(LogLevelRewriter.call):
(LogThread):
(LogThread.init):
(LogThread.run):
(LoggingWrapper):
(LoggingWrapper.init):
(LoggingWrapper.write):
(LoggingWrapper.flush):
(CaptureIO):
(CaptureIO.init):
(CaptureIO.enter):
(CaptureIO.exit):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py: Added.

(ConditionalValue):
(ConditionalValue.init):
(ConditionalValue.value):
(ConditionalValue.call):
(ConditionalValue.set_value):
(ConditionalValue.remove):
(Compiler):
(Compiler.compile):
(Compiler.compile.of):
(Compiler.compile_condition):
(Compiler._initial_output_node):
(Compiler.visit_DataNode):
(Compiler.visit_KeyValueNode):
(Compiler.visit_ListNode):
(Compiler.visit_ValueNode):
(Compiler.visit_AtomNode):
(Compiler.visit_ConditionalNode):
(Compiler.visit_StringNode):
(Compiler.visit_StringNode.value):
(Compiler.visit_NumberNode):
(Compiler.visit_VariableNode):
(Compiler.visit_VariableNode.value):
(Compiler.visit_IndexNode):
(Compiler.visit_UnaryExpressionNode):
(Compiler.visit_BinaryExpressionNode):
(Compiler.visit_UnaryOperatorNode):
(Compiler.visit_BinaryOperatorNode):
(ManifestItem):
(ManifestItem.init):
(ManifestItem.repr):
(ManifestItem.str):
(ManifestItem.contains):
(ManifestItem.is_empty):
(ManifestItem.root):
(ManifestItem.name):
(ManifestItem.has_key):
(ManifestItem.get):
(ManifestItem.set):
(ManifestItem._add_key_value):
(ManifestItem.append):
(ManifestItem.remove):
(ManifestItem._remove_child):
(ManifestItem.iterchildren):
(ManifestItem._flatten):
(ManifestItem.iteritems):
(ManifestItem.iterkeys):
(ManifestItem.remove_value):
(compile_ast):
(compile):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/static.py: Added.

(Compiler):
(Compiler.compile):
(Compiler.compile.of):
(Compiler.visit_DataNode):
(Compiler.visit_KeyValueNode):
(Compiler.visit_ValueNode):
(Compiler.visit_AtomNode):
(Compiler.visit_ListNode):
(Compiler.visit_ConditionalNode):
(Compiler.visit_StringNode):
(Compiler.visit_NumberNode):
(Compiler.visit_VariableNode):
(Compiler.visit_IndexNode):
(Compiler.visit_UnaryExpressionNode):
(Compiler.visit_BinaryExpressionNode):
(Compiler.visit_UnaryOperatorNode):
(Compiler.visit_BinaryOperatorNode):
(ManifestItem):
(ManifestItem.init):
(ManifestItem.repr):
(ManifestItem.str):
(ManifestItem.is_empty):
(ManifestItem.root):
(ManifestItem.has_key):
(ManifestItem.get):
(ManifestItem.set):
(ManifestItem.remove):
(ManifestItem._remove_child):
(ManifestItem.iterchildren):
(ManifestItem._flatten):
(ManifestItem.iteritems):
(ManifestItem.iterkeys):
(ManifestItem.itervalues):
(ManifestItem.append):
(compile_ast):
(compile):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/node.py: Added.

(NodeVisitor):
(NodeVisitor.visit):
(NodeVisitor.visit.body):
(Node):
(Node.init):
(Node.append):
(Node.remove):
(Node.repr):
(Node.str):
(Node.eq):
(Node.copy):
(DataNode):
(DataNode.append):
(KeyValueNode):
(KeyValueNode.append):
(ListNode):
(ListNode.append):
(ValueNode):
(ValueNode.append):
(AtomNode):
(ConditionalNode):
(UnaryExpressionNode):
(UnaryExpressionNode.init):
(UnaryExpressionNode.append):
(UnaryExpressionNode.copy):
(BinaryExpressionNode):
(BinaryExpressionNode.init):
(BinaryExpressionNode.append):
(BinaryExpressionNode.copy):
(UnaryOperatorNode):
(UnaryOperatorNode.append):
(BinaryOperatorNode):
(BinaryOperatorNode.append):
(IndexNode):
(VariableNode):
(StringNode):
(NumberNode):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py: Added.

(ParseError):
(ParseError.init):
(decode):
(precedence):
(TokenTypes):
(TokenTypes.init):
(Tokenizer):
(Tokenizer.init):
(Tokenizer.reset):
(Tokenizer.tokenize):
(Tokenizer.char):
(Tokenizer.consume):
(Tokenizer.peek):
(Tokenizer.skip_whitespace):
(Tokenizer.eol_state):
(Tokenizer.line_start_state):
(Tokenizer.data_line_state):
(Tokenizer.heading_state):
(Tokenizer.key_state):
(Tokenizer.after_key_state):
(Tokenizer.list_start_state):
(Tokenizer.list_value_start_state):
(Tokenizer.list_value_state):
(Tokenizer.list_value_atom_state):
(Tokenizer.list_end_state):
(Tokenizer.value_state):
(Tokenizer.value_inner_state):
(Tokenizer.comment_state):
(Tokenizer.line_end_state):
(Tokenizer.consume_string):
(Tokenizer.expr_or_value_state):
(Tokenizer.expr_state):
(Tokenizer.operator_state):
(Tokenizer.digit_state):
(Tokenizer.ident_state):
(Tokenizer.consume_escape):
(Tokenizer.decode_escape):
(Tokenizer.escape_value):
(Parser):
(Parser.init):
(Parser.reset):
(Parser.parse):
(Parser.consume):
(Parser.expect):
(Parser.manifest):
(Parser.data_block):
(Parser.eof_or_end_group):
(Parser.value_block):
(Parser.list_value):
(Parser.expression_values):
(Parser.value):
(Parser.atom):
(Parser.expr_start):
(Parser.expr):
(Parser.expr_operand):
(Parser.expr_unary_op):
(Parser.expr_bin_op):
(Parser.expr_value):
(Parser.expr_number):
(Treebuilder):
(Treebuilder.init):
(Treebuilder.append):
(Treebuilder.pop):
(ExpressionBuilder):
(ExpressionBuilder.init):
(ExpressionBuilder.finish):
(ExpressionBuilder.left_paren):
(ExpressionBuilder.right_paren):
(ExpressionBuilder.push_operator):
(ExpressionBuilder.pop_operator):
(ExpressionBuilder.push_operand):
(ExpressionBuilder.pop_operand):
(ExpressionBuilder.is_empty):
(ExpressionBuilder.precedence):
(parse):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/serializer.py: Added.

(escape):
(ManifestSerializer):
(ManifestSerializer.init):
(ManifestSerializer.serialize):
(ManifestSerializer.visit_DataNode):
(ManifestSerializer.visit_KeyValueNode):
(ManifestSerializer.visit_ListNode):
(ManifestSerializer.visit_ValueNode):
(ManifestSerializer.visit_AtomNode):
(ManifestSerializer.visit_ConditionalNode):
(ManifestSerializer.visit_StringNode):
(ManifestSerializer.visit_NumberNode):
(ManifestSerializer.visit_VariableNode):
(ManifestSerializer.visit_IndexNode):
(ManifestSerializer.visit_UnaryExpressionNode):
(ManifestSerializer.visit_BinaryExpressionNode):
(ManifestSerializer.visit_UnaryOperatorNode):
(ManifestSerializer.visit_BinaryOperatorNode):
(serialize):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/init.py: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_conditional.py: Added.

(TestConditional):
(TestConditional.compile):
(TestConditional.test_get_0):
(test_get_1):
(test_get_2):
(test_get_3):
(test_set_0):
(test_set_1):
(test_set_2):
(test_api_0):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_parser.py: Added.

(TestExpression):
(TestExpression.setUp):
(TestExpression.parse):
(TestExpression.compare):
(TestExpression.match):
(TestExpression.test_expr_0):
(test_expr_1):
(test_atom_0):
(test_atom_1):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py: Added.

(TokenizerTest):
(TokenizerTest.setUp):
(TokenizerTest.serialize):
(TokenizerTest.compare):
(TokenizerTest.test_0):
(test_1):
(test_2):
(test_3):
(test_4):
(test_5):
(test_6):
(test_7):
(test_8):
(test_9):
(test_10):
(test_11):
(test_12):
(test_13):
(test_14):
(test_15):
(test_16):
(test_17):
(test_18):
(test_escape_0):
(test_escape_1):
(test_escape_2):
(test_escape_3):
(test_escape_4):
(test_escape_5):
(test_escape_6):
(test_escape_7):
(test_escape_8):
(test_escape_9):
(test_escape_10):
(test_escape_11):
(test_atom_1):
(test_atom_2):
(test_atom_3):
(test_atom_4):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_static.py: Added.

(TestStatic):
(TestStatic.compile):
(TestStatic.test_get_0):
(test_get_1):
(test_get_3):
(test_get_4):
(test_api):
(test_is_empty_1):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py: Added.

(TokenizerTest):
(TokenizerTest.setUp):
(TokenizerTest.tokenize):
(TokenizerTest.compare):
(TokenizerTest.test_heading_0):
(TokenizerTest.test_heading_1):
(TokenizerTest.test_heading_2):
(TokenizerTest.test_heading_3):
(TokenizerTest.test_heading_4):
(TokenizerTest.test_heading_5):
(TokenizerTest.test_heading_6):
(TokenizerTest.test_key_0):
(TokenizerTest.test_key_1):
(TokenizerTest.test_key_2):
(TokenizerTest.test_key_3):
(TokenizerTest.test_key_4):
(TokenizerTest.test_key_5):
(TokenizerTest.test_key_6):
(TokenizerTest.test_key_7):
(TokenizerTest.test_key_8):
(TokenizerTest.test_key_9):
(TokenizerTest.test_key_10):
(TokenizerTest.test_key_11):
(TokenizerTest.test_key_12):
(TokenizerTest.test_key_13):
(TokenizerTest.test_key_14):
(TokenizerTest.test_list_0):
(test_list_1):
(test_list_2):
(test_list_3):
(test_list_4):
(test_list_5):
(test_list_6):
(test_expr_0):
(test_expr_1):
(test_expr_2):
(test_expr_3):
(test_expr_4):
(test_expr_5):
(test_expr_6):
(test_expr_7):
(test_expr_8):
(test_expr_9):
(test_expr_10):

  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/w3c-import.log: Added.
  • web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
  • web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py: Added.

(setup_logging):
(get_loader):
(list_test_groups):
(list_disabled):
(get_pause_after_test):
(run_tests):
(start):
(main):

  • web-platform-tests/tools/wptrunner/wptrunner/wpttest.py: Added.

(Result):
(Result.init):
(Result.repr):
(SubtestResult):
(SubtestResult.init):
(SubtestResult.repr):
(TestharnessResult):
(TestharnessSubtestResult):
(ReftestResult):
(WdspecResult):
(WdspecSubtestResult):
(get_run_info):
(RunInfo):
(RunInfo.init):
(RunInfo._update_mozinfo):
(Test):
(Test.init):
(Test.eq):
(Test.from_manifest):
(Test.id):
(Test.keys):
(Test.abs_path):
(Test._get_metadata):
(Test.itermeta):
(Test.disabled):
(Test.restart_after):
(Test.tags):
(Test.prefs):
(Test.expected):
(Test.repr):
(TestharnessTest):
(TestharnessTest.id):
(ManualTest):
(ManualTest.id):
(ReftestTest):
(ReftestTest.init):
(ReftestTest.from_manifest):
(ReftestTest.id):
(ReftestTest.keys):
(WdspecTest):
(from_manifest):

  • web-platform-tests/tools/wptserve/docs/w3c-import.log:
  • web-platform-tests/tools/wptserve/tests/functional/docroot/subdir/w3c-import.log:
  • web-platform-tests/tools/wptserve/tests/functional/docroot/w3c-import.log:
  • web-platform-tests/tools/wptserve/tests/functional/w3c-import.log:
  • web-platform-tests/tools/wptserve/w3c-import.log:
  • web-platform-tests/tools/wptserve/wptserve/w3c-import.log:
  • web-platform-tests/url/interfaces-expected.txt:

LayoutTests:

  • platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt:
8:16 AM Changeset in webkit [217046] by Antti Koivisto
  • 5 edits
    2 adds in trunk

Design mode should not affect UA shadow trees
https://bugs.webkit.org/show_bug.cgi?id=171854
<rdar://problem/32071037>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: editing/deleting/search-shadow-tree-delete.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::editabilityFromContentEditableAttr):

Ignore design mode for UA shadow trees.

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::~SearchInputType):
(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::resultsButtonElement):
(WebCore::SearchInputType::cancelButtonElement):

  • html/SearchInputType.h:

Use RefPtr.

LayoutTests:

  • editing/deleting/search-shadow-tree-delete-expected.txt: Added.
  • editing/deleting/search-shadow-tree-delete.html: Added.
7:05 AM Changeset in webkit [217045] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GTK][GStreamer][MSE] Crash on youtube when MSE is enabled but gstreamer cant find the decoder element.
https://bugs.webkit.org/show_bug.cgi?id=167120

Patch by Vanessa Chipirrás Navalón <vchipirras@igalia.com> on 2017-05-18
Reviewed by Žan Doberšek.

This is because supportCodecs() doesn't check in runtime which plugins the player has.
So, a static function which returns a map with the plugins has been created. That map is later
used in the supportsCodecs() method to check if the requested codec matches any of the map.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements):
The declaration is moved into this class.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::isAvailable): This function calls the implementation of
initializeGstreamerAndRegisterWebKitElements function.
(WebCore::MediaPlayerPrivateGStreamer::load): Ditto
(WebCore::mimeTypeSet): Ditto

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: It is static type to expose

initializeGStreamerAndRegisterWebKitElements() function to be called from internal function
"which runs before MediaPlayerPrivateGStreamerBase initialization but needs to have GStreamer initialized".

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::codecSet): It returns a map with the plugins has been created.
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsCodecs): To check if the requested codec
matches any of the map from codecSet().

5:56 AM Changeset in webkit [217044] by commit-queue@webkit.org
  • 8 edits in trunk

[Readable Streams API] Align getDesiredSize with spec
https://bugs.webkit.org/show_bug.cgi?id=172220

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-18
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Updated test expectations (tests are now passing).

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.
  • web-platform-tests/streams/readable-streams/general-expected.txt: Updated.
  • web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt: Updated.

Source/WebCore:

Aligned implementation of getDesiredSize operation for both controllers:

Implementation slightly differs from spec as queueTotalSize refactoring is not
yet implemented, but behavior is now similar.

No new tests (already covered by WPT tests, corresponding expectations have been updated).

  • Modules/streams/ReadableByteStreamInternals.js:

(readableByteStreamControllerGetDesiredSize): Updated.

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamDefaultControllerGetDesiredSize): Updated.

5:39 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
Give up on gardening log (diff)
5:00 AM Changeset in webkit [217043] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit2

[WPE] Unreviewed build fix

Add missing header after r217041.

  • UIProcess/API/wpe/WPEView.cpp:
4:28 AM Changeset in webkit [217042] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of tests failing after r217039.

  • platform/gtk/TestExpectations:
2:04 AM Changeset in webkit [217041] by timothy_horton@apple.com
  • 42 edits in trunk/Source

More WebKit2 header cleanup
https://bugs.webkit.org/show_bug.cgi?id=172214

Reviewed by Simon Fraser.

  • Shared/WebFindOptions.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setCompositionAsync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImpl.mm:
  • UIProcess/mac/ViewGestureControllerMac.mm:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
  • WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
  • WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::setDeviceScaleFactor):
(WebKit::WebPage::centerSelectionInVisibleArea):
(WebKit::WebPage::findString):
(WebKit::WebPage::findStringMatches):
(WebKit::WebPage::getImageForFindMatch):
(WebKit::WebPage::selectFindMatch):
(WebKit::WebPage::hideFindUI):
(WebKit::WebPage::countStringMatches):
(WebKit::WebPage::didReceiveGeolocationPermissionDecision):
(WebKit::WebPage::mainFrameDidLayout):
(WebKit::WebPage::setCompositionAsync):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::findController):
(WebKit::WebPage::geolocationPermissionRequestManager):

  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:

Many small changes added up to a few percent. Removing UserMediaRequest
from UserMediaPermissionRequestProxy, which is included into WebPageProxy.h,
was worth another ~10% because it got VM.h out of WebPageProxy.h (like the
previous patch did with WebPage.h). In total, in my measurement (WebKit2
clean debug build) this is a ~15% speedup.

We really should figure out how to make DOMPromise.h not bring in all of
JavaScriptCore (or how to use promises without including DOMPromise.h in headers).

  • Modules/mediastream/UserMediaController.cpp:
  • Modules/mediastream/UserMediaController.h:
1:14 AM Changeset in webkit [217040] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Tools

Cherry-pick r217010. rdar://problem/32141505

1:05 AM Changeset in webkit [217039] by commit-queue@webkit.org
  • 60 edits in trunk/Source/WebInspectorUI

Web Inspector: [GTK] Adopt currentColor for mask SVG images
https://bugs.webkit.org/show_bug.cgi?id=150603

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-18
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/Circle.svg:
  • UserInterface/Images/gtk/ClearBoth.svg:
  • UserInterface/Images/gtk/ClearLeft.svg:
  • UserInterface/Images/gtk/ClearRight.svg:
  • UserInterface/Images/gtk/Close.svg:
  • UserInterface/Images/gtk/CloseLarge.svg:
  • UserInterface/Images/gtk/Console.svg:
  • UserInterface/Images/gtk/Debugger.svg:
  • UserInterface/Images/gtk/DockBottom.svg:
  • UserInterface/Images/gtk/DockRight.svg:
  • UserInterface/Images/gtk/DownloadArrow.svg:
  • UserInterface/Images/gtk/Elements.svg:
  • UserInterface/Images/gtk/Errors.svg:
  • UserInterface/Images/gtk/Eye.svg:
  • UserInterface/Images/gtk/FloatLeft.svg:
  • UserInterface/Images/gtk/FloatRight.svg:
  • UserInterface/Images/gtk/FontStyleItalic.svg:
  • UserInterface/Images/gtk/FontStyleNormal.svg:
  • UserInterface/Images/gtk/Gear.svg:
  • UserInterface/Images/gtk/Issues.svg:
  • UserInterface/Images/gtk/Logs.svg:
  • UserInterface/Images/gtk/Minus.svg:
  • UserInterface/Images/gtk/NavigationItemClear.svg:
  • UserInterface/Images/gtk/NavigationItemTrash.svg:
  • UserInterface/Images/gtk/Network.svg:
  • UserInterface/Images/gtk/NewTab.svg:
  • UserInterface/Images/gtk/NewTabPlus.svg:
  • UserInterface/Images/gtk/Pause.svg:
  • UserInterface/Images/gtk/Pencil.svg:
  • UserInterface/Images/gtk/Plus13.svg:
  • UserInterface/Images/gtk/Plus15.svg:
  • UserInterface/Images/gtk/ReloadFull.svg:
  • UserInterface/Images/gtk/ReloadToolbar.svg:
  • UserInterface/Images/gtk/Resources.svg:
  • UserInterface/Images/gtk/Search.svg:
  • UserInterface/Images/gtk/SearchResults.svg:
  • UserInterface/Images/gtk/SplitToggleUp.svg:
  • UserInterface/Images/gtk/StepInto.svg:
  • UserInterface/Images/gtk/StepOut.svg:
  • UserInterface/Images/gtk/StepOver.svg:
  • UserInterface/Images/gtk/Stop.svg:
  • UserInterface/Images/gtk/Storage.svg:
  • UserInterface/Images/gtk/TextAlignCenter.svg:
  • UserInterface/Images/gtk/TextAlignJustify.svg:
  • UserInterface/Images/gtk/TextAlignLeft.svg:
  • UserInterface/Images/gtk/TextAlignRight.svg:
  • UserInterface/Images/gtk/TextDecorationLineThrough.svg:
  • UserInterface/Images/gtk/TextDecorationOverline.svg:
  • UserInterface/Images/gtk/TextDecorationUnderline.svg:
  • UserInterface/Images/gtk/TextTransformCapitalize.svg:
  • UserInterface/Images/gtk/TextTransformLowercase.svg:
  • UserInterface/Images/gtk/TextTransformUppercase.svg:
  • UserInterface/Images/gtk/Time.svg:
  • UserInterface/Images/gtk/Timeline.svg:
  • UserInterface/Images/gtk/Undock.svg:
  • UserInterface/Images/gtk/VisualStyleNone.svg:
  • UserInterface/Images/gtk/VisualStylePropertyLinked.svg:
  • UserInterface/Images/gtk/VisualStylePropertyUnlinked.svg:
  • UserInterface/Images/gtk/Weight.svg:
12:12 AM Changeset in webkit [217038] by commit-queue@webkit.org
  • 5 edits in trunk

[Win] Remove usage of _snprintf
https://bugs.webkit.org/show_bug.cgi?id=172251

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-18
Reviewed by Per Arne Vollan.

Source/WTF:

  • wtf/DataLog.cpp:

(WTF::initializeLogFileOnce):
(WTF::setDataFile):

Tools:

  • DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
  • MiniBrowser/win/PageLoadTestClient.cpp:

(PageLoadTestClient::dumpRunStatistics):

Note: See TracTimeline for information about the timeline view.