Timeline



May 17, 2018:

10:51 PM Changeset in webkit [231946] by bshafiei@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231922. rdar://problem/40220659

Correct default for StorageAccess API
https://bugs.webkit.org/show_bug.cgi?id=185748
<rdar://problem/40220659>

Reviewed by Dean Jackson.

Flip the default state to 'true' so that the new "sticky" state
for Storage Access API and attributing user interaction for
Storage Access API use is applied by default.

  • Shared/WebPreferences.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:51 PM Changeset in webkit [231945] by bshafiei@apple.com
  • 4 edits
    4 adds in branches/safari-606.1.17-branch

Cherry-pick r231910. rdar://problem/39105791

Storage Access API: Allow documents that have been granted storage access to also do a popup
https://bugs.webkit.org/show_bug.cgi?id=185615
<rdar://problem/39105791>

Reviewed by Chris Dumez.

Source/WebCore:

  • dom/Document.cpp: (WebCore::Document::consumeTemporaryUserGesture): Added. Clear the document's active one-time user activity (for window opening) state. (WebCore::Document::enableTemporaryUserGesture): Added. Establish a new active one-time user activity (for window opening) state. (WebCore::Document::requestStorageAccess): If the user approves Storage Access, establish a new UserInteraction scope, then resolve the promise. Also post a task to clear the one-time user gesture state.

LayoutTests:

  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window.html: Added.
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html: Added.
  • http/tests/storageAccess/resources/request-storage-access-second-window.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231910 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:51 PM Changeset in webkit [231944] by bshafiei@apple.com
  • 5 edits
    1 add in branches/safari-606.1.17-branch

Cherry-pick r231591. rdar://problem/39290394

[Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField]
https://bugs.webkit.org/show_bug.cgi?id=185260
<rdar://problem/39290394>

Source/WebKit:

INPUT element are not considered to be text fields when
calling -[WKWebProcessPlugInNodeHandle isTextField]
when they are of type number.

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: (WebKit::InjectedBundleNodeHandle::isTextField const):

Tools:

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleNodeHandleIsTextField.mm: Added. (-[InjectedBundleNodeHandleIsTextField isTextFieldForHTMLInputType:document:jsContext:]): (-[InjectedBundleNodeHandleIsTextField webProcessPlugIn:didCreateBrowserContextController:]):
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[InjectedBundleNodeHandleIsTextFieldDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231591 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:39 PM Changeset in webkit [231943] by bshafiei@apple.com
  • 13 edits
    2 adds in branches/safari-606.1.17-branch

Cherry-pick r231937. rdar://problem/40265269

AX: [macOS] Expose the primary screen height through AX API
https://bugs.webkit.org/show_bug.cgi?id=185742

Reviewed by Chris Fleizach.

Source/WebCore:

Added a new attribute to expose the primary screen size on both
WebAccessibilityObjectWrapper and WKAccessibilityWebPageObject.

Test: accessibility/mac/primary-screen-height.html

  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]): (-[WebAccessibilityObjectWrapper primaryScreenHeight]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm: (WebCore::screenRectForPrimaryScreen):

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: (-[WKAccessibilityWebPageObject accessibilityAttributeNames]): (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):

Tools:

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm: (attributesOfElement):
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::attributesOfElement):

LayoutTests:

  • accessibility/mac/primary-screen-height-expected.txt: Added.
  • accessibility/mac/primary-screen-height.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231937 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:38 PM Changeset in webkit [231942] by bshafiei@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231863. rdar://problem/40136681

[Wi-Fi Assertions] Adopt WiFiAssertionHolderAdditions
https://bugs.webkit.org/show_bug.cgi?id=185685
<rdar://problem/40136681>

Reviewed by Sam Weinig.

  • NetworkProcess/cocoa/WiFiAssertionHolder.cpp: (WebKit::WiFiAssertionHolder::WiFiAssertionHolder): (WebKit::WiFiAssertionHolder::~WiFiAssertionHolder): (WebKit::ensureWiFiManagerClient): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231863 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:39 PM Changeset in webkit [231941] by Kocsen Chung
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

8:29 PM Changeset in webkit [231940] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Lazily create WebCore::Timer for WebCore::Image
<https://webkit.org/b/185752>

Reviewed by Simon Fraser.

Not every image is an animated image, so lazily creating
m_animationStartTimer saves 64 bytes per instance of
WebCore::Image.

  • platform/graphics/Image.cpp:

(WebCore::Image::Image): Remove default initializer for
m_animationStartTimer.
(WebCore::Image::startAnimationAsynchronously): Initialize
m_animationStartTimer if it's not already created.

  • platform/graphics/Image.h:

(WebCore::Image::animationPending const): Update to check if
m_animationStartTimer has been set before dereferencing it.
(WebCore::Image::m_animationStartTimer): Change type to
std::unique_ptr<Timer>.

7:59 PM Changeset in webkit [231939] by msaboff@apple.com
  • 12 edits
    1 add in trunk

We don't throw SyntaxErrors for runtime generated regular expressions with errors
https://bugs.webkit.org/show_bug.cgi?id=185755

Reviewed by Keith Miller.

JSTests:

New regression test.

  • stress/regexp-with-runtime-syntax-errors.js: Added.

(testThrowsSyntaxtError):
(fromExecWithBadUnicodeEscape):
(fromTestWithBadUnicodeProperty):
(fromSplitWithBadUnicodeIdentity):
(fromMatchWithBadUnicodeBackReference):
(fromReplaceWithBadUnicodeEscape):
(fromSearchWithBadUnicodeEscape):

Source/JavaScriptCore:

Added a new helper that creates the correct exception to throw for each type of error when
compiling a RegExp. Using that new helper, added missing checks for RegExp for the cases
where we create a new RegExp from an existing one. Also refactored other places that we
throw SyntaxErrors after a failed RegExp compile to use the new helper.

  • runtime/RegExp.h:
  • runtime/RegExpConstructor.cpp:

(JSC::regExpCreate):
(JSC::constructRegExp):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncCompile):

  • yarr/YarrErrorCode.cpp:

(JSC::Yarr::errorToThrow):

  • yarr/YarrErrorCode.h:

LayoutTests:

Updated test and results from reporting a SyntaxError to an Out of memory error.

  • js/script-tests/stack-overflow-regexp.js:

(shouldThrow.recursiveCall):
(shouldThrow):
(recursiveCall):

  • js/stack-overflow-regexp-expected.txt:
6:41 PM Changeset in webkit [231938] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove shrinkFootprint test from apitests since it's flaky
https://bugs.webkit.org/show_bug.cgi?id=185754

Reviewed by Mark Lam.

This test is flaky as it keeps failing on certain people's machines.
Having a test about OS footprint seems like it'll forever be doomed
to being flaky.

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

6:27 PM Changeset in webkit [231937] by n_wang@apple.com
  • 13 edits
    2 adds in trunk

AX: [macOS] Expose the primary screen height through AX API
https://bugs.webkit.org/show_bug.cgi?id=185742

Reviewed by Chris Fleizach.

Source/WebCore:

Added a new attribute to expose the primary screen size on both
WebAccessibilityObjectWrapper and WKAccessibilityWebPageObject.

Test: accessibility/mac/primary-screen-height.html

  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper primaryScreenHeight]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenRectForPrimaryScreen):

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):

Tools:

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(attributesOfElement):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::attributesOfElement):

LayoutTests:

  • accessibility/mac/primary-screen-height-expected.txt: Added.
  • accessibility/mac/primary-screen-height.html: Added.
6:19 PM Changeset in webkit [231936] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.17.8

Tag Safari-606.1.17.8.

5:52 PM Changeset in webkit [231935] by Chris Dumez
  • 7 edits
    3 adds in trunk

RenderLayer::scrollRectToVisible() should not propagate a subframe's scroll to its cross-origin parent
https://bugs.webkit.org/show_bug.cgi?id=185664
<rdar://problem/36185260>

Reviewed by Simon Fraser.

Source/WebCore:

RenderLayer::scrollRectToVisible() should not propagate a subframe's scroll to its
cross-origin parent. There was logic in FrameLoader::scrollToFragmentWithParentBoundary()
to temporarily set the 'safeToPropagateScrollToParent' flag to false on the cross-origin
ancestor frame during the call to FrameView::scrollToFragment(). This would correctly
prevent RenderLayer::scrollRectToVisible() to propagate the scroll to the cross-origin
ancestor frame when scrollRectToVisible() is called synchronously. However,
scrollRectToVisible() can get called asynchronously in case of a dirty layout, as part
of the post layout tasks.

To address the issue, we get rid of the safeToPropagateScrollToParent flag on FrameView
and instead update FrameView::safeToPropagateScrollToParent() to do the cross-origin
check. FrameView::safeToPropagateScrollToParent() is called by RenderLayer::scrollRectToVisible()
and this is a lot more robust than relying on a flag which gets temporarily set.

Test: http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent.html

  • dom/Document.cpp:
  • dom/Document.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::scrollToFragmentWithParentBoundary):

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::safeToPropagateScrollToParent const):

  • page/FrameView.h:

LayoutTests:

Add layout test coverage.

  • http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent-expected.txt: Added.
  • http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent.html: Added.
  • http/tests/navigation/resources/clear-fragment.html: Added.
5:17 PM Changeset in webkit [231934] by Kocsen Chung
  • 7 edits
    3 adds in branches/safari-605-branch

Cherry-pick r231871. rdar://problem/40346090

DFG models InstanceOf incorrectly
https://bugs.webkit.org/show_bug.cgi?id=185694

Reviewed by Keith Miller.
JSTests:

  • stress/instanceof-proxy-check-structure.js: Added. (Foo): (Bar): (doBadThings): (getPrototypeOf): (foo): (i.new.Bar): (new.Bar):
  • stress/instanceof-proxy-loop.js: Added. (Foo): (Bar): (doBadThings): (getPrototypeOf): (foo):
  • stress/instanceof-proxy.js: Added. (Foo): (Bar): (doBadThings): (getPrototypeOf): (foo):

Source/JavaScriptCore:

Proxies mean that InstanceOf can have effects. Exceptions mean that it's illegal to DCE it or
hoist it.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGHeapLocation.cpp: (WTF::printInternal):
  • dfg/DFGHeapLocation.h:
  • dfg/DFGNodeType.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231871 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:17 PM Changeset in webkit [231933] by Kocsen Chung
  • 4 edits in branches/safari-605-branch

Cherry-pick r230533. rdar://problem/40345980

IDN spoofing with Hebrew combining characters
https://bugs.webkit.org/show_bug.cgi?id=184472
<rdar://problem/39148687>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new API tests.

  • platform/mac/WebCoreNSURLExtras.mm: (WebCore::isLookalikeCharacter): Punycode-encode hosts with Hebrew combining marks that look like dots and Vav with a combining dot above like we do with dotless i and j.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm: (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230533 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:04 PM Changeset in webkit [231932] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

[Curl] Enable HTTP/2 Multiplexing
https://bugs.webkit.org/show_bug.cgi?id=185746

Reviewed by Youenn Fablet.

Covered by existing tests.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlMultiHandle::CurlMultiHandle):

4:58 PM Changeset in webkit [231931] by commit-queue@webkit.org
  • 33 edits in trunk/Source/WebKit

Use CompletionHandlers for DelayedReplies
https://bugs.webkit.org/show_bug.cgi?id=182269

Patch by Alex Christensen <achristensen@webkit.org> on 2018-05-17
Reviewed by Youenn Fablet.

DelayedReplies should be a noncopyable, non-refcountable type. They should be
called once and only once. This is what CompletionHandlers are for.

No change in behavior. Just cleaner code.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData):
(WebKit::sendReplyToSynchronousRequest):
(WebKit::NetworkResourceLoader::NetworkResourceLoader):

  • NetworkProcess/NetworkResourceLoader.h:
  • Platform/IPC/HandleMessage.h:

(IPC::callMemberFunctionImpl):
(IPC::callMemberFunction):
(IPC::handleMessageDelayed):

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::setInitializationReply):
(WebKit::PluginControllerProxy::takeInitializationReply):

  • PluginProcess/PluginControllerProxy.h:
  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::destroyPlugin):
(WebKit::WebProcessConnection::createPlugin):
(WebKit::WebProcessConnection::createPluginAsynchronously):

  • PluginProcess/WebProcessConnection.h:
  • Scripts/webkit/LegacyMessageReceiver-expected.cpp:

(Messages::WebPage::GetPluginProcessConnection::send):
(Messages::WebPage::TestMultipleAttributes::send):
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): Deleted.
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::~DelayedReply): Deleted.
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): Deleted.
(Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): Deleted.
(Messages::WebPage::TestMultipleAttributes::DelayedReply::~DelayedReply): Deleted.
(Messages::WebPage::TestMultipleAttributes::DelayedReply::send): Deleted.

  • Scripts/webkit/LegacyMessages-expected.h:
  • Scripts/webkit/MessageReceiver-expected.cpp:

(Messages::WebPage::GetPluginProcessConnection::send):
(Messages::WebPage::TestMultipleAttributes::send):
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): Deleted.
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::~DelayedReply): Deleted.
(Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): Deleted.
(Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): Deleted.
(Messages::WebPage::TestMultipleAttributes::DelayedReply::~DelayedReply): Deleted.
(Messages::WebPage::TestMultipleAttributes::DelayedReply::send): Deleted.

  • Scripts/webkit/Messages-expected.h:
  • Scripts/webkit/messages.py:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::networkProcessFailedToLaunch):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::getPluginProcessConnection):

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::getPluginProcessConnection):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didCreateWebProcessConnection):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::getStorageProcessConnection):
(WebKit::StorageProcessProxy::didClose):
(WebKit::StorageProcessProxy::didCreateStorageToWebProcessConnection):

  • UIProcess/Storage/StorageProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::ExceededDatabaseQuotaRecords::createRecord):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::webGLPolicyForURL):
(WebKit::WebPageProxy::resolveWebGLPolicyForURL):
(WebKit::WebPageProxy::getToolbarsAreVisible):
(WebKit::WebPageProxy::getMenuBarIsVisible):
(WebKit::WebPageProxy::getStatusBarIsVisible):
(WebKit::WebPageProxy::getWindowFrame):
(WebKit::WebPageProxy::screenToRootView):
(WebKit::WebPageProxy::rootViewToScreen):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::exceededDatabaseQuota):
(WebKit::WebPageProxy::reachedApplicationCacheOriginQuota):

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

(WebKit::WebProcessPool::networkProcessCrashed):
(WebKit::WebProcessPool::getNetworkProcessConnection):
(WebKit::WebProcessPool::getStorageProcessConnection):

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

(WebKit::WebProcessProxy::getPluginProcessConnection):
(WebKit::WebProcessProxy::getNetworkProcessConnection):
(WebKit::WebProcessProxy::getStorageProcessConnection):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::syncTerminateWorker):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::computePagesForPrintingAndDrawToPDF):

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

defaultConstructorSourceCode needs to makeSource every time it's called
https://bugs.webkit.org/show_bug.cgi?id=185753

Rubber-stamped by Mark Lam.

The bug here is multiple VMs can be running concurrently to one another
in the same process. They may each ref/deref something that isn't ThreadSafeRefCounted
if we copy a static SourceCode. instead, we create a new one each time
this function is called.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::defaultConstructorSourceCode):

4:03 PM Changeset in webkit [231929] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove unnecessary exit fullscreen call on application resume
https://bugs.webkit.org/show_bug.cgi?id=185747
rdar://problem/40345725

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-05-17
Reviewed by Jer Noble.

No new tests because no behavior change.

Auto-PiP doesn't automatically return to fullscreen on app resume,
so we don't need to keep this vestigial code for handling a corner case of that feature.
Also, this can cause an unnecessary exit fullscreen that could cause debug asserts.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):

3:42 PM Changeset in webkit [231928] by Kocsen Chung
  • 7 edits in branches/safari-605-branch/Source

Versioning.

3:34 PM Changeset in webkit [231927] by bshafiei@apple.com
  • 1 copy in tags/Safari-605.3.2

Tag Safari-605.3.2.

3:20 PM Changeset in webkit [231926] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKit

CRASH in -[WKFullScreenViewController _manager]
https://bugs.webkit.org/show_bug.cgi?id=185745
<rdar://problem/39195241>

Reviewed by Eric Carlson.

Protect against WKFullScreenViewController outliving WKWebView by making its
_webView property weak. Additionally, add a sanity-check RetainPtr where _webView
is referenced multiple times within a function.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController initWithWebView:]):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
(-[WKFullScreenWindowController close]):
(-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]):
(-[WKFullScreenWindowController _exitFullscreenImmediately]):
(-[WKFullScreenWindowController _isSecure]):
(-[WKFullScreenWindowController _serverTrust]):
(-[WKFullScreenWindowController _updateLocationInfo]):
(-[WKFullScreenWindowController _manager]):
(-[WKFullScreenWindowController _startToDismissFullscreenChanged:]):

3:17 PM Changeset in webkit [231925] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Tools

Unreviewed, rolling out r231912.
https://bugs.webkit.org/show_bug.cgi?id=185750

It is prompting the user when there is no WPT changes
(Requested by bmac on #webkit).

Reverted changeset:

"Export changes to web-platform-test as part of the webkit-
patch upload workflow"
https://bugs.webkit.org/show_bug.cgi?id=184914
https://trac.webkit.org/changeset/231912

3:16 PM Changeset in webkit [231924] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fullscreen to PiP results in exit fullscreen call failure
https://bugs.webkit.org/show_bug.cgi?id=185699
rdar://problem/40310291

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

No new tests because no behavior change.

Prevent multiple exit fullscreen calls when transitioning from fullscreen to picture-in-picture.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewControllerDelegate playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart:]):
Implement this to prevent AVKit from automatically initiating exit fullscreen on pip.

(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
Set the return to fullscreen flag here, since this is where exit fullscreen happens.

(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
Don't exit fullscreen here since it is already initiated in didStartPictureInPicture.

3:15 PM Changeset in webkit [231923] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r231899.

Caused flakiness in two existing modern-media-controls tests.

Reverted changeset:

"[modern-media-controls] AirPlaySupport should be disabled by
default"
https://bugs.webkit.org/show_bug.cgi?id=185658
https://trac.webkit.org/changeset/231899

3:12 PM Changeset in webkit [231922] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Correct default for StorageAccess API
https://bugs.webkit.org/show_bug.cgi?id=185748
<rdar://problem/40220659>

Reviewed by Dean Jackson.

Flip the default state to 'true' so that the new "sticky" state
for Storage Access API and attributing user interaction for
Storage Access API use is applied by default.

  • Shared/WebPreferences.yaml:
2:48 PM Changeset in webkit [231921] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Update AirPlay route monitoring
https://bugs.webkit.org/show_bug.cgi?id=185706
<rdar://problem/40230677>

Unreviewed, fix extra zoom mode build after r231913.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(-[WebMediaSessionHelper dealloc]):
(-[WebMediaSessionHelper hasWirelessTargetsAvailable]):

2:41 PM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
2:02 PM Changeset in webkit [231920] by jer.noble@apple.com
  • 4 edits
    3 adds in trunk

CRASH in ImageDecoderAVFObjC::sampleAtIndex()
https://bugs.webkit.org/show_bug.cgi?id=185734
<rdar://problem/40295094>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/images/animated-image-mp4-crash.html

Test the correct size value before iterating over the SampleMap in presentationOrder()

  • Modules/mediasource/SampleMap.h:

(WebCore::PresentationOrderSampleMap::size const):

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

(WebCore::ImageDecoderAVFObjC::sampleAtIndex const):

LayoutTests:

  • fast/images/animated-image-mp4-crash-expected.txt: Added.
  • fast/images/animated-image-mp4-crash.html: Added.
  • fast/images/resources/two-samples-with-same-pts.mp4: Added.
1:52 PM Changeset in webkit [231919] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: expand $INC to find webkitdirs.pm
https://bugs.webkit.org/show_bug.cgi?id=185739

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-17
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(getBuildPath):

1:40 PM Changeset in webkit [231918] by youenn@apple.com
  • 5 edits
    2 adds in trunk/LayoutTests

REGRESSION (r229831?): Layout Test http/tests/appcache/interrupted-update.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184061
<rdar://problem/38975570>

Reviewed by Alexey Proskuryakov.

Test is flaky as it sometimes reload twice.
Make sure it reloads only once by not relying on localStorage.
Make sure the appcache has not enough time to finish before reloading is done.
This is done by adding more entries to the appcache.
Add a test that sets an item in local storage, reloads and verifies the item is there.

  • TestExpectations:
  • http/tests/appcache/interrupted-update.html:
  • http/tests/appcache/resources/interrupted-update.manifest:
  • http/tests/storage/setItem-and-reload-expected.txt: Added.
  • http/tests/storage/setItem-and-reload.html: Added.
12:30 PM Changeset in webkit [231917] by clopez@igalia.com
  • 10 edits
    2 adds in trunk

[WPE] Implement and enable FULLSCREEN_API
https://bugs.webkit.org/show_bug.cgi?id=185676

Reviewed by Žan Doberšek.

.:

Remove the CMake option to disable this option for WPE.
This feature gets enabled now via Source/cmake/WebKitFeatures.cmake

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

Do the initial implementation of FULLSCREEN_API for WPE and
enable the CMake option by default.

Most of the layout tests (55 of 58) are passing and the feature
seems to work fine on different websites that use it.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::fullScreenManagerProxyClient):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):

  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/API/wpe/WPEView.h:

(WKWPE::View::isFullScreen):
(WKWPE::View::setFullScreen):

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewFullScreen):

LayoutTests:

Enable all the 58 fullscreen related tests.
Are all passing but 3.

  • platform/wpe/TestExpectations:
  • platform/wpe/fullscreen/full-screen-placeholder-expected.txt: Added. Copied baseline from WebKitGTK+ port.
12:26 PM Changeset in webkit [231916] by jiewen_tan@apple.com
  • 10 edits
    1 copy
    1 add
    1 delete in trunk/Source

Convert CertificateInfo into Credential in UI Process instead of Networking Process
https://bugs.webkit.org/show_bug.cgi?id=185662
<rdar://problem/40275561>

Reviewed by Alex Christensen.

Source/WebKit:

Right now we convert CertificateInfo into Credential in the very last stage of client certificate authentication process
when it reaches Networking Process. This patch moves that conversion earlier in UI Process such that we don't have to
pass both Credential and CertificateInfo to Networking Process.

CertificateInfo is only used in macOS for C API specifically. WK2 includes macOS/iOS relies on NSURLCredential/WebCore::Credential
solely. WK2 has already exercised the ability of using WebCore::Credential to do client certficate authentication. This patch therefore
takes advantage of that. It converts CertficateInfo objects into Credential objects right after WebCredential is initialized, and then merge
any code paths that utilizes CertficateInfo into ones that uses WebCore::Credential.

Covered by existing tests.

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::useCredentialForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge): Deleted.

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/AuthenticationManager.messages.in:
  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::useCredential):

  • UIProcess/Authentication/WebCredential.cpp:

(WebKit::WebCredential::WebCredential):
(WebKit::WebCredential::certificateInfo): Deleted.

  • UIProcess/Authentication/WebCredential.h:

(WebKit::WebCredential::create):

  • UIProcess/Authentication/mac/WebCredentialMac.mm: Renamed from Source/WebKit/Shared/Authentication/mac/AuthenticationManager.mac.mm.

(WebKit::leafCertificate):
(WebKit::chain):
(WebKit::WebCredential::WebCredential):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

Remove marco HAVE_SEC_IDENTITY since it is no longer useful.

  • wtf/Platform.h:
12:20 PM Changeset in webkit [231915] by Wenson Hsieh
  • 4 edits
    1 add in trunk

[Extra zoom mode] Disabled adaptations are not reset upon mainframe navigation
https://bugs.webkit.org/show_bug.cgi?id=185735
<rdar://problem/40335311>

Reviewed by Tim Horton.

Source/WebCore:

When performing mainframe navigation, we currently don't update the Page's ViewportConfiguration's disabled
adaptations. This causes disabled adaptations from the previous main document to persist. To fix this, propagate
the new document's disabled adaptations to the client when it becomes the main document in the page.

Test: fast/viewport/extrazoom/viewport-adaptations-after-navigation.html

  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::processDisabledAdaptations):
(WebCore::Document::dispatchDisabledAdaptationsDidChangeForMainFrame):

  • dom/Document.h:

LayoutTests:

Adds a new layout test that disables extra zoom mode adaptations, navigates to a new document, and checks that
the innerWidth and innerHeight are reset to their expected (default) values.

  • fast/viewport/extrazoom/viewport-adaptations-after-navigation.html: Added.
11:47 AM Changeset in webkit [231914] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Ensure valid rects for fullsceen animation.
https://bugs.webkit.org/show_bug.cgi?id=185736
rdar://problem/40320174

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-05-17
Reviewed by Jer Noble.

Protect against zero width and height since those can make for NANs in the animation transforms.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):

11:44 AM Changeset in webkit [231913] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Update AirPlay route monitoring
https://bugs.webkit.org/show_bug.cgi?id=185706
<rdar://problem/40230677>

Reviewed by Jer Noble.

Use an AVRouteDetector instead of an MPVolumeView and an MPAVRoutingController for AirPlay
route detection and availability monitoring.

No new tests, tested manually.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::hasWirelessPlaybackTargets): No need to update m_hasPlaybackTargets
manually, it is always updated by the session manager when route availability changes.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(-[WebMediaSessionHelper dealloc]): Pull the logic from safelyTearDown inline.
(-[WebMediaSessionHelper hasWirelessTargetsAvailable]): Use the AVRouteDetector.
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]): Ditto. Simplify logic, there is no
need to dispatch twice.
(-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]): Don't release the route detector
completely, just disable route detection, because AVRouteDetector is a lightweight object so
it is not worth the overhead of dealloc/realloc to disable/enable route detection.
(-[WebMediaSessionHelper interruption:]): Use callOnWebThreadOrDispatchAsyncOnMainThread
instead of WebThreadRun so it works correctly in WK2 as well as in WK1.
(-[WebMediaSessionHelper applicationWillEnterForeground:]): Ditto.
(-[WebMediaSessionHelper applicationDidBecomeActive:]): Ditto.
(-[WebMediaSessionHelper applicationWillResignActive:]): Ditto.
(-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]): Ditto.
(-[WebMediaSessionHelper applicationDidEnterBackground:]): Ditto.
(safelyTearDown): Deleted.

11:29 AM Changeset in webkit [231912] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Tools

Export changes to web-platform-test as part of the webkit-patch upload workflow
https://bugs.webkit.org/show_bug.cgi?id=184914

Patch by Brendan McLoughlin <brendan@bocoup.com> on 2018-05-17
Reviewed by Youenn Fablet.

  • Scripts/webkitpy/tool/commands/upload.py:

(Upload):
(CreateBug.execute):
(WPTChangeExport):

  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/wptchangeexport.py: Added.

(WPTChangeExport):
(WPTChangeExport.options):
(WPTChangeExport.run):

  • Scripts/webkitpy/w3c/common.py:
  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter):
(WebPlatformTestExporter.init):
(WebPlatformTestExporter.username):
(WebPlatformTestExporter.token):
(WebPlatformTestExporter._github):
(WebPlatformTestExporter._wpt_fork_branch_github_url):
(WebPlatformTestExporter._wpt_fork_remote):
(WebPlatformTestExporter._wpt_fork_push_url):
(WebPlatformTestExporter._git):
(WebPlatformTestExporter._branch_name):
(WebPlatformTestExporter._public_branch_name):
(WebPlatformTestExporter.has_wpt_changes):
(WebPlatformTestExporter._create_patch):
(WebPlatformTestExporter.create_git_patch):
(WebPlatformTestExporter._prompt_for_token):
(WebPlatformTestExporter._prompt_for_username):
(WebPlatformTestExporter._ensure_username_and_token):
(WebPlatformTestExporter._validate_and_save_token):
(WebPlatformTestExporter.push_to_wpt_fork):
(WebPlatformTestExporter.make_pull_request):
(WebPlatformTestExporter.delete_local_branch):
(parse_args):
(TestExporter): Deleted.
(TestExporter.init): Deleted.
(TestExporter._ensure_wpt_repository): Deleted.
(TestExporter._fetch_wpt_repository): Deleted.
(TestExporter._ensure_new_branch_name): Deleted.
(TestExporter.download_and_commit_patch): Deleted.
(TestExporter.clean): Deleted.
(TestExporter.create_branch_with_patch): Deleted.
(TestExporter.push_to_wpt_fork): Deleted.
(TestExporter.make_pull_request): Deleted.
(TestExporter.create_wpt_pull_request): Deleted.
(TestExporter.delete_local_branch): Deleted.
(TestExporter.create_git_patch): Deleted.
(TestExporter.create_upload_remote_if_needed): Deleted.
(TestExporter.do_export): Deleted.

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.test_export):
(TestExporterTest.test_export_with_specific_branch):
(TestExporterTest):
(TestExporterTest.test_export_interactive_mode):
(TestExporterTest.test_export_invalid_token):
(TestExporterTest.test_export_wrong_token):

11:23 AM Changeset in webkit [231911] by Chris Dumez
  • 4 edits
    10 adds in trunk

Cross-Origin-Options: deny/allow-postmessage should prevent getting navigated by cross-origin scripts
https://bugs.webkit.org/show_bug.cgi?id=185681
<rdar://problem/40296313>

Reviewed by Geoffrey Garen.

Source/WebCore:

Update our canNavigate() implementation [1] to take into account the Cross-Origin-Options header.
If the window being navigated or the window trigerring the navigation have a Cross-Origin-Options
header value different than 'allow', then the attempt to navigate will be blocked.

Note that it was already not possible to navigate via setting window.location since trying to set
it would throw a SecurityError with 'Cross-Origin-Options: deny/allow-postmessage'. However, it was
possible to trigger a "targeted" navigation via <a target="foo"> or open(url, "foo").

[1] https://html.spec.whatwg.org/#allowed-to-navigate

Tests: http/wpt/cross-origin-options/navigation-from-opener-via-open-target.html

http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target.html

  • dom/Document.cpp:

(WebCore::Document::canNavigate):

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-options/navigation-from-opener-via-open-target-expected.txt: Added.
  • http/wpt/cross-origin-options/navigation-from-opener-via-open-target.html: Added.
  • http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target-expected.txt: Added.
  • http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target.html: Added.
  • http/wpt/cross-origin-options/resources/destination.html: Added.
  • http/wpt/cross-origin-options/resources/navigate-parent-via-anchor.html: Added.
  • http/wpt/cross-origin-options/resources/navigation-from-subframe-frame.py: Added.

(main):

  • http/wpt/cross-origin-options/resources/utils.js:
11:16 AM Changeset in webkit [231910] by Brent Fulgham
  • 4 edits
    4 adds in trunk

Storage Access API: Allow documents that have been granted storage access to also do a popup
https://bugs.webkit.org/show_bug.cgi?id=185615
<rdar://problem/39105791>

Reviewed by Chris Dumez.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::consumeTemporaryUserGesture): Added. Clear the document's active one-time user
activity (for window opening) state.
(WebCore::Document::enableTemporaryUserGesture): Added. Establish a new active one-time user
activity (for window opening) state.
(WebCore::Document::requestStorageAccess): If the user approves Storage Access, establish a new
UserInteraction scope, then resolve the promise. Also post a task to clear the one-time user
gesture state.

LayoutTests:

  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window.html: Added.
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html: Added.
  • http/tests/storageAccess/resources/request-storage-access-second-window.html: Added.
10:54 AM Changeset in webkit [231909] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Introduce DisplayBox::Style
https://bugs.webkit.org/show_bug.cgi?id=185733

Reviewed by Antti Koivisto.

This is the collection of computed style data needed to paint/hittest the display boxtree.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::createDisplayBox):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):
(WebCore::Display::Box::Style::Style):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::contentBox const):

  • layout/displaytree/DisplayBox.h:
10:07 AM Changeset in webkit [231908] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: look for jsc in path if cannot call webkit-build-directory
https://bugs.webkit.org/show_bug.cgi?id=185650

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-17
Reviewed by Michael Saboff.

First, use jsc from CLI arg, then try to use webkit-build-directory,
if that doesn't work, look for jsc in the $PATH

  • Scripts/test262/Runner.pm:

(processCLI):
(getBuildPath):
(runTest):

9:37 AM Changeset in webkit [231907] by ggaren@apple.com
  • 2 edits in trunk

Update touch event tracking type on every touch
https://bugs.webkit.org/show_bug.cgi?id=184250

Patch by Tadeu Zagallo <​Tadeu Zagallo>
Reviewed by Geoffrey Garen.

Fixed up some ChangeLog typos.

9:34 AM Changeset in webkit [231906] by Kocsen Chung
  • 9 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231770. rdar://problem/39915196

[Wi-Fi Assertions] Allow clients to specify a context identifier
https://bugs.webkit.org/show_bug.cgi?id=185620
<rdar://problem/39915196>

Reviewed by Brady Eidson.

Added an SPI on _WKProcessPoolConfiguration that allows clients to specify a
context identifier.

  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy):
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration wirelessContextIdentifier]): (-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]):
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:18 AM Changeset in webkit [231905] by Yusuke Suzuki
  • 21 edits in trunk/Source/JavaScriptCore

[JSC] Use AssemblyHelpers' type checking functions as much as possible
https://bugs.webkit.org/show_bug.cgi?id=185730

Reviewed by Saam Barati.

Let's use AssemblyHelpers' type checking functions as much as possible. This hides the complex
bit and register operations for type tagging of JSValue. It is really useful when we would like
to tweak type tagging representation since the code is collected into AssemblyHelpers. And
the named function is more readable than some branching operations.

We also remove unnecessary branching functions in JIT / JSInterfaceJIT. Some of them are duplicate
to AssemblyHelpers' one.

We add several new type checking functions to AssemblyHelpers. Moreover, we add branchIfXXX(GPRReg)
functions even for 32bit environment. In 32bit environment, this function takes tag register. This
semantics is aligned to the existing branchIfCell / branchIfNotCell.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::speculateCellTypeWithoutTypeFiltering):
(JSC::DFG::SpeculativeJIT::speculateCellType):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateMisc):
(JSC::DFG::SpeculativeJIT::compileExtractValueFromWeakMapGet):
(JSC::DFG::SpeculativeJIT::compileCreateThis):
(JSC::DFG::SpeculativeJIT::compileGetPrototypeOf):
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileAssertNotEmpty):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfNotBoolean):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchIfNotEmpty):
(JSC::AssemblyHelpers::branchIfUndefined):
(JSC::AssemblyHelpers::branchIfNotUndefined):
(JSC::AssemblyHelpers::branchIfNull):
(JSC::AssemblyHelpers::branchIfNotNull):

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_compareAndJumpSlow):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_op_unsigned):
(JSC::JIT::emit_op_inc):
(JSC::JIT::emit_op_dec):
(JSC::JIT::emitBinaryDoubleOp):
(JSC::JIT::emit_op_mod):

  • jit/JITCall.cpp:

(JSC::JIT::compileCallEval):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEval):
(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::emitJumpSlowCaseIfNotJSCell):
(JSC::JIT::emitJumpIfBothJSCells):
(JSC::JIT::emitJumpSlowCaseIfJSCell):
(JSC::JIT::emitJumpIfNotInt):
(JSC::JIT::emitJumpSlowCaseIfNotInt):
(JSC::JIT::emitJumpSlowCaseIfNotNumber):
(JSC::JIT::emitJumpIfCellObject): Deleted.
(JSC::JIT::emitJumpIfCellNotObject): Deleted.
(JSC::JIT::emitJumpIfJSCell): Deleted.
(JSC::JIT::emitJumpIfInt): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_string):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_check_tdz):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_profile_type):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_not):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_string):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emit_op_check_tdz):
(JSC::JIT::emit_op_profile_type):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitWriteBarrier):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::emitLoadJSCell):
(JSC::JSInterfaceJIT::emitLoadInt32):
(JSC::JSInterfaceJIT::emitLoadDouble):
(JSC::JSInterfaceJIT::emitJumpIfNumber): Deleted.
(JSC::JSInterfaceJIT::emitJumpIfNotNumber): Deleted.
(JSC::JSInterfaceJIT::emitJumpIfNotType): Deleted.

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::absThunkGenerator):

  • tools/JSDollarVM.cpp:

(WTF::DOMJITNode::checkSubClassSnippet):
(WTF::DOMJITFunctionObject::checkSubClassSnippet):

9:16 AM Changeset in webkit [231904] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed. Fix the build after my attempted build fix broke the build.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::defaultConstructorSourceCode):
(JSC::BuiltinExecutables::createDefaultConstructor):

  • builtins/BuiltinExecutables.h:
9:12 AM Changeset in webkit [231903] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Turn Modern EME API on by default and remove it as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=185693
<rdar://problem/39954396>

Reviewed by Eric Carlson.

  • Shared/WebPreferences.yaml:
9:08 AM Changeset in webkit [231902] by Yusuke Suzuki
  • 13 edits in trunk/Source/JavaScriptCore

[JSC] Remove reifyPropertyNameIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=185350

Reviewed by Saam Barati.

reifyPropertyNameIfNeeded is in the middle of putDirectInternal, which is super critical path.
This is a virtual call, and it is only used by JSFunction right now. Since this causes too much
cost, we should remove this from the critical path.

This patch removes this function call from the critical path. And in our slow paths, we call
helper functions which calls reifyLazyPropertyIfNeeded if the given value is a JSFunction.
While putDirect is a bit raw API, our slow paths just call it. This helper wraps this calls
and care the edge cases. The other callsites of putDirect should know the type of the given
object and the name of the property (And avoid these edge cases).

This improves SixSpeed/object-assign.es6 by ~4% on MacBook Pro. And this patch does not cause
regressions of the existing tests.

baseline patched

Kraken:

json-parse-financial 35.522+-0.069 34.708+-0.097 definitely 1.0234x faster

SixSpeed:

object-assign.es6 145.8779+-0.2838 140.1019+-0.8007 definitely 1.0412x faster

  • dfg/DFGOperations.cpp:

(JSC::DFG::putByValInternal):
(JSC::DFG::putByValCellInternal):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/ClassInfo.h:
  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::putDirectWithReify):
(JSC::CommonSlowPaths::putDirectAccessorWithReify):

  • runtime/JSCell.cpp:

(JSC::JSCell::reifyPropertyNameIfNeeded): Deleted.

  • runtime/JSCell.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::reifyPropertyNameIfNeeded): Deleted.

  • runtime/JSFunction.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectAccessor):
(JSC::JSObject::putDirectNonIndexAccessor):

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::putDirectInternal):

9:03 AM Changeset in webkit [231901] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Try to fix windows build.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::defaultConstructorSourceCode):

8:52 AM Changeset in webkit [231900] by Kocsen Chung
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231893. rdar://problem/40247351

Safari optimized flow should be releasing viewer to prevent memory growth with subsequent launches/closes
https://bugs.webkit.org/show_bug.cgi?id=185722
<rdar://problem/40247351>

Reviewed by Antoine Quint.

I made a rookie mistake in the original patch: I was holding a strong
reference to "self" in a block, which was causing a retain cycle.
Replace that with a WeakObjCPtr.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231893 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:34 AM Changeset in webkit [231899] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[modern-media-controls] AirPlaySupport should be disabled by default
https://bugs.webkit.org/show_bug.cgi?id=185658
<rdar://problem/40272213>

Patch by Antoine Quint <Antoine Quint> on 2018-05-17
Reviewed by Simon Fraser.

Source/WebCore:

We now only enable AirplaySupport if the controls are visible to the user _and_ media has played.

Test: media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play.html

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

(AirplaySupport.prototype.enable):
(AirplaySupport.prototype.controlsUserVisibilityDidChange):
(AirplaySupport.prototype._shouldBeEnabled):
(AirplaySupport):

LayoutTests:

Add a new test that checks that we create an AirplaySupport object only after media has started playing.

  • media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play-expected.txt: Added.
  • media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play.html: Added.
8:27 AM Changeset in webkit [231898] by commit-queue@webkit.org
  • 1 edit
    2 deletes in trunk/LayoutTests

Remove cssom-remove-shorthand-property.html test
https://bugs.webkit.org/show_bug.cgi?id=185727

Patch by Rob Buis <rbuis@igalia.com> on 2018-05-17
Reviewed by Frédéric Wang.

Exact same test is contained in WPT:
cssom/cssom-setProperty-shorthand.html

  • fast/css/cssom-remove-shorthand-property-expected.txt: Removed.
  • fast/css/cssom-remove-shorthand-property.html: Removed.
8:24 AM Changeset in webkit [231897] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Replace ASSERT_NOT_REACHED with ASSERT_NOT_IMPLEMENTED_YET where applicable.
https://bugs.webkit.org/show_bug.cgi?id=185728

Reviewed by Antti Koivisto.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const): leftover from previous patch.
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const):
(WebCore::Layout::FormattingContext::computeReplacedWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowReplacedWidth const):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::styleChanged):
(WebCore::Layout::LayoutContext::formattingContext):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedWidth const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedHeight const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

7:29 AM Changeset in webkit [231896] by Alan Bujtas
  • 3 edits in trunk/Source/WTF

Add ASSERT_NOT_IMPLEMENTED_YET() macro
https://bugs.webkit.org/show_bug.cgi?id=185713

Reviewed by Antti Koivisto.

To mark unimplemented code paths.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
7:11 AM Changeset in webkit [231895] by Alan Bujtas
  • 7 edits
    2 adds in trunk/Source/WebCore

[LFC] Move replaced logic from Layout::Box to Layout::Replaced class
https://bugs.webkit.org/show_bug.cgi?id=185711

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeInFlowReplacedWidth const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isReplaced const): Deleted.
(WebCore::Layout::Box::hasIntrinsicWidth const): Deleted.
(WebCore::Layout::Box::hasIntrinsicHeight const): Deleted.
(WebCore::Layout::Box::hasIntrinsicRatio const): Deleted.
(WebCore::Layout::Box::intrinsicWidth const): Deleted.
(WebCore::Layout::Box::intrinsicHeight const): Deleted.
(WebCore::Layout::Box::intrinsicRatio const): Deleted.

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::replaced const):

7:07 AM Changeset in webkit [231894] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Implement width computation for replaced out if flow elements.
https://bugs.webkit.org/show_bug.cgi?id=185701

Reviewed by Antti Koivisto.

The used value of 'width' is determined as for inline replaced elements.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowReplacedWidth const):

  • layout/FormattingContext.h:
4:30 AM Changeset in webkit [231893] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Safari optimized flow should be releasing viewer to prevent memory growth with subsequent launches/closes
https://bugs.webkit.org/show_bug.cgi?id=185722
<rdar://problem/40247351>

Reviewed by Antoine Quint.

I made a rookie mistake in the original patch: I was holding a strong
reference to "self" in a block, which was causing a retain cycle.
Replace that with a WeakObjCPtr.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

3:17 AM Changeset in webkit [231892] by Ms2ger@igalia.com
  • 8 edits
    2 deletes in trunk/LayoutTests

[GTK][WPE] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=185718

Unreviewed test gardening.

  • accessibility/gtk/spans-expected.txt: rebaseline for r231717.
  • accessibility/gtk/spans-paragraphs-and-divs-expected.txt: rebaseline for r231717.
  • js/script-tests/intl-numberformat-format-to-parts.js: skip (bug 185714).
  • js/script-tests/intl-pluralrules.js: skip (bug 185714).
  • platform/gtk/TestExpectations: skip new Intl tests (bug 185714).
  • platform/gtk/editing/deleting/delete-emoji-1-expected.txt: rebaseline for r231630.
  • platform/gtk/editing/deleting/delete-emoji-expected.txt: rebaseline for r231630.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt: Removed (platform-neutral expectation file applies since r231000).
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt: Removed (platform-neutral expectation file applies since r231000).
2:44 AM WebKitGTK/Gardening/Calendar edited by Ms2ger@igalia.com
Update calendar; +log (diff)
1:16 AM Changeset in webkit [231891] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer]: Consider GstStream(Collection) as if if was not a GInitiallyUnowned
https://bugs.webkit.org/show_bug.cgi?id=185657

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-17
Reviewed by Philippe Normand.

Starting with GStreamer 1.14[1] the reference is sunk at object creation time, making it a normal
GObject in practice, in our GRefPtr template implementation we should just consider GstStream
as if it was a normal GObject and not care about its floating reference state as
the ref is never sunk by anyone before 1.14 though that floating ref is considered
as a hard reference by the GstStreamCollection (leading to assertions/)

The exact same issue happens with GstStreamCollection, so fix it at the same time.

Also do not adoptRef() on the result of gst_stream_collection_get_stream() as this function
is transfer-none.

[1] commit f119e93b47efb06ffc68c01d3e094d5346c30041 gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstStream>):
(WTF::refGPtr<GstStreamCollection>):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

May 16, 2018:

11:54 PM Changeset in webkit [231890] by Ross Kirsling
  • 12 edits
    1 add
    1 delete in trunk/LayoutTests

[WinCairo] Unreviewed gardening after WinCairoRequirements update.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-expected.txt:
  • platform/wincairo/editing/deleting/regional-indicators-expected.txt: Removed.
  • platform/wincairo/editing/style/create-block-for-style-006-expected.png: Added.
10:21 PM Changeset in webkit [231889] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

UnlinkedFunctionExecutable doesn't need a parent source override field since it's only used for default class constructors
https://bugs.webkit.org/show_bug.cgi?id=185637

Reviewed by Keith Miller.

We had this general mechanism for overriding an UnlinkedFunctionExecutable's parent
source code. However, we were only using this for default class constructors. There
are only two types of default class constructors. This patch makes it so that
we just store this information inside of a single bit, and ask for the source
code as needed instead of holding it in a nullable field that is 24 bytes in size.

This brings UnlinkedFunctionExecutable's size down from 184 bytes to 160 bytes.
This has the consequence of making it allocated out of a 160 byte size class
instead of a 224 byte size class. This should bring down its memory footprint
by ~40%.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::defaultConstructorSourceCode):
(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createExecutable):

  • builtins/BuiltinExecutables.h:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::link):

  • bytecode/UnlinkedFunctionExecutable.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):

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

VM::shrinkFootprint should call collectNow(Sync) instead of collectSync so it also eagerly sweeps
https://bugs.webkit.org/show_bug.cgi?id=185707

Reviewed by Mark Lam.

  • runtime/VM.cpp:

(JSC::VM::shrinkFootprint):

10:11 PM Changeset in webkit [231887] by bshafiei@apple.com
  • 18 edits
    2 adds in branches/safari-606.1.17-branch/Source/JavaScriptCore

Cherry-pick r231719. rdar://problem/40054982

Unreviewed, rolling out r231316 and r231332.
https://bugs.webkit.org/show_bug.cgi?id=185564

Appears to be a Speedometer2/MotionMark regression (Requested
by keith_miller on #webkit).

Reverted changesets:

"Remove the prototype caching for get_by_id in the LLInt"
https://bugs.webkit.org/show_bug.cgi?id=185226
https://trac.webkit.org/changeset/231316

"Unreviewed, fix 32-bit profile offset for change in bytecode"
https://trac.webkit.org/changeset/231332

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:27 PM Changeset in webkit [231886] by Caio Lima
  • 9 edits
    6 adds in trunk

[ESNext][BigInt] Implement support for "/" operation
https://bugs.webkit.org/show_bug.cgi?id=183996

Reviewed by Yusuke Suzuki.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-div-jit.js: Added.
  • stress/big-int-div-memory-stress.js: Added.
  • stress/big-int-div-to-primitive-precedence.js: Added.
  • stress/big-int-div-to-primitive.js: Added.
  • stress/big-int-div-type-error.js: Added.
  • stress/big-int-div-wrapped-value.js: Added.
  • stress/big-int-division.js: Added.

Source/JavaScriptCore:

This patch is introducing the support for BigInt into divide
operation int LLInt and JIT layers.

  • dfg/DFGOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::divide):
(JSC::JSBigInt::copy):
(JSC::JSBigInt::unaryMinus):
(JSC::JSBigInt::absoluteCompare):
(JSC::JSBigInt::absoluteDivLarge):
(JSC::JSBigInt::productGreaterThan):
(JSC::JSBigInt::inplaceAdd):
(JSC::JSBigInt::inplaceSub):
(JSC::JSBigInt::inplaceRightShift):
(JSC::JSBigInt::specialLeftShift):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

  • runtime/JSBigInt.h:
8:58 PM Changeset in webkit [231885] by bshafiei@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebCore

Cherry-pick r231784. rdar://problem/39999778

Unreviewed, fix the iOS build after r231779

Also address a minor in-person review comment by returning "extrazoom" instead of the empty string.

  • page/DisabledAdaptations.cpp: (WebCore::extraZoomModeAdaptationName):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:53 PM Changeset in webkit [231884] by bshafiei@apple.com
  • 33 edits
    2 copies
    1 add
    1 delete in branches/safari-606.1.17-branch

Cherry-pick r231779. rdar://problem/39999778

[Extra zoom mode] Google search results are excessively zoomed in
https://bugs.webkit.org/show_bug.cgi?id=185347
<rdar://problem/39999778>

Reviewed by Tim Horton.

Source/WebCore:

It turns out that basing minimum layout size and shrink-to-fit behaviors off of the shrink-to-fit viewport
argument poses compatibility risks with web pages that already specify shrink-to-fit to opt out of default
viewport shrinking behaviors in 1/3 multitasking mode on iPad.

One way to resolve this is to introduce a new viewport meta content attribute to disable viewport heuristics in
extra zoom mode. However, combined shrink-to-fit and minimum device width behaviors are difficult to describe
using a single backwards-compatible viewport meta content attribute, and the need to suppress the default
behavior of shrink-to-fit=no if such an attribute is not disabled further muddles our viewport story.

After some internal deliberation, we’ve decided to experiment with a new meta tag named "disabled-adaptations".
The content of this meta tag is a comma-separated list of adaptation names; if an adaptation name matches a
known adaptation type (for instance, extra zoom mode), we disable the class of behaviors used to adapt web
content. The first and only known adaptation type is extra zoom mode, which affects shrink-to-fit and layout
size adjustments.

See per-method changes below for more details.

Test: fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp: (WebCore::Document::processDisabledAdaptations):
  • dom/Document.h: (WebCore::Document::disabledAdaptations const):

Add disabled adaptations to Document. Changes to disabled adaptations are not propagated if the parsed disabled
adaptation types don't change; upon changing adaptation types, notify the client to adjust for the new disabled
adaptations (currently, this only affects the viewport configuration).

  • dom/ViewportArguments.h:
  • html/HTMLMetaElement.cpp: (WebCore::HTMLMetaElement::process):
  • html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner): (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::commitProvisionalLoad):

Restore the set of disabled adaptations when restoring a page from the cache.

  • page/Chrome.cpp: (WebCore::Chrome::dispatchDisabledAdaptationsDidChange const):
  • page/Chrome.h:
  • page/ChromeClient.h:

Add plumbing for changes to the set of disabled adaptations.

  • page/DisabledAdaptations.cpp: Added. (WebCore::extraZoomModeAdaptationName):
  • page/DisabledAdaptations.h: Added.

Introduce a header containing a new enum for the extra zoom mode adaptation, as well as a helper function to
return the extra zoom mode adaptation name.

  • page/Page.cpp: (WebCore::Page::disabledAdaptations const):

Returns the mainframe's set of adaptations to disable.

  • page/Page.h:
  • page/RemoteFrame.h:
  • page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDisabledAdaptationsMetaTagEnabled): (WebCore::RuntimeEnabledFeatures::disabledAdaptationsMetaTagEnabled const):

Add a new runtime feature to gate handling the "disabled-adaptations" meta tag.

  • page/ViewportConfiguration.cpp: (WebCore::shouldOverrideShrinkToFitArgument): (WebCore::needsUpdateAfterChangingDisabledAdaptations): (WebCore::ViewportConfiguration::setDisabledAdaptations): (WebCore::ViewportConfiguration::shouldOverrideDeviceWidthAndShrinkToFit const):

Consult whether or not extra zoom mode adaptations are disabled, instead of the shrink-to-fit attribute value.

(WebCore::ViewportConfiguration::updateConfiguration):

  • page/ViewportConfiguration.h:

Add an OptionSet of disabled adaptation types to ViewportConfiguration. Updates to the adaptation type are
propagated to the ViewportConfiguration from Document, through the ChromeClient and the client layer (refer to
changes in WebKit). Once the OptionSet is changed, we recompute the viewport configuration only if needed by the
platform.

(WebCore::ViewportConfiguration::viewLayoutSize const):
(WebCore::ViewportConfiguration::disabledAdaptations const):

  • page/WindowFeatures.cpp: (WebCore::parseDisabledAdaptations):
  • page/WindowFeatures.h:

Add a new helper to parse the meta content of a "disabled-adaptations" tag as an OptionSet of disabled
adaptation types. The string is parsed by first splitting on the comma character, and then iterating over lower
case, whitespace-stripped tokens to look for known adaptation names. So far, only extra zoom mode is supported.

  • testing/Internals.cpp: (WebCore::Internals::extraZoomModeAdaptationName const):
  • testing/Internals.h:
  • testing/Internals.idl:

Expose the extra zoom mode adaptation name to the DOM, only when running layout tests.

Source/WebKit:

Adds a new experimental feature for the "disabled-adaptations" meta tag, and adds plumbing in WebKit to
propagate disabled adaptation changes to the ViewportConfiguration. The experimental feature is on by default in
extra zoom mode.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::dispatchDisabledAdaptationsDidChange const):
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::disabledAdaptationsDidChange):
  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/ios:

Adds a WebKitLegacy method stub for disabled adaptation plumbing.

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm: (WebChromeClientIOS::dispatchDisabledAdaptationsDidChange const):

LayoutTests:

Refactor an existing layout test to exercise disabled adaptations in extra zoom mode.

  • fast/viewport/extrazoom/viewport-change-min-device-width.html: Removed.
  • fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:54 PM Changeset in webkit [231883] by don.olmstead@sony.com
  • 2 edits in trunk

[WinCairo] Update WinCairoRequirements
https://bugs.webkit.org/show_bug.cgi?id=185700

Reviewed by Per Arne Vollan.

  • Source/cmake/OptionsWinCairo.cmake:
6:49 PM Changeset in webkit [231882] by sbarati@apple.com
  • 11 edits
    2 adds in trunk

Constant fold CheckTypeInfoFlags on ImplementsDefaultHasInstance
https://bugs.webkit.org/show_bug.cgi?id=185670

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/constant-fold-check-type-info-flags.js: Added.
  • stress/dont-constant-fold-check-type-info-on-bound-function.js: Added.

Source/JavaScriptCore:

This patch makes it so that we constant fold CheckTypeInfoFlags for
ImplementsDefaultHasInstance inside of AI/constant folding. We constant
fold in three ways:

  • When the incoming value is a constant, we just look at its inline type

flags. Since those flags never change after an object is created, this
is sound.

  • Based on the incoming value having a finite structure set. We just iterate

all structures and ensure they have the bit set.

  • Based on speculated type. To do this, I split up SpecFunction into two

subheaps where one is for functions that have the bit set, and one for
functions that don't have the bit set. The latter is currently only comprised
of JSBoundFunctions. To constant fold, we check that the incoming
value only has the SpecFunction type with ImplementsDefaultHasInstance set.

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromClassInfo):

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckTypeInfoFlags):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::JSFunction):
(JSC::JSFunction::assertTypeInfoFlagInvariants):

  • runtime/JSFunction.h:

(JSC::JSFunction::assertTypeInfoFlagInvariants):

  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::JSFunction):

6:37 PM Changeset in webkit [231881] by webkit@devinrousso.com
  • 13 edits in trunk/Source

Web Inspector: create a navigation item for toggling the overlay rulers/guides
https://bugs.webkit.org/show_bug.cgi?id=185644

Reviewed by Matt Baker.

Source/JavaScriptCore:

  • inspector/protocol/OverlayTypes.json:
  • inspector/protocol/Page.json:

Source/WebCore:

This patch is purely a visual change for WebInspector, and doesn't affect anything else.

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

(WebCore::InspectorPageAgent::setShowRulers): Added.

  • inspector/InspectorOverlay.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::shouldShowOverlay):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::setShowRulers): Added.
(WebCore::InspectorOverlay::drawRulers): Added.
(WebCore::InspectorOverlay::reset):

  • inspector/InspectorOverlayPage.js:

(drawNodeHighlight):
(drawQuadHighlight):
(drawRulers): Added.
(_drawBounds): Added.
(reset):
(_drawRulers): Deleted.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype.closed):
(WI.DOMTreeContentView.prototype._showRulersChanged): Added.
(WI.DOMTreeContentView.prototype._toggleShowRulers): Added.

5:33 PM Changeset in webkit [231880] by beidson@apple.com
  • 5 edits in trunk/LayoutTests

LayoutTest storage/indexeddb/dont-wedge-private.html is a flaky failure
<rdar://problem/38975304> and https://bugs.webkit.org/show_bug.cgi?id=184058

Reviewed by Andy Estes.

Make the asynchronous IDB part of this test take way, way longer to always give the location change a chance to happen.

  • TestExpectations:
  • storage/indexeddb/dont-wedge-expected.txt:
  • storage/indexeddb/dont-wedge-private-expected.txt:
  • storage/indexeddb/resources/dont-wedge.js:

(openDatabase1.request.onupgradeneeded.openOnUpgradeNeeded1.putter):
(openDatabase1.request.onupgradeneeded):

5:28 PM Changeset in webkit [231879] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r229093)[macOS] Allow network-outbound for syslog use
https://bugs.webkit.org/show_bug.cgi?id=185703
<rdar://problem/39778918>

Reviewed by Eric Carlson.

In r229093 I removed the 'network-outbound' permission for syslog use.
Further testing has shown that this is still needed for subsystem
logging in our bundle loading code.

This patch re-enabled network-outbound for syslog.

  • WebProcess/com.apple.WebProcess.sb.in:
4:38 PM Changeset in webkit [231878] by commit-queue@webkit.org
  • 9 edits
    6 deletes in trunk

Unreviewed, rolling out r231845.
https://bugs.webkit.org/show_bug.cgi?id=185702

it is breaking Apple High Sierra 32-bit JSC bot (Requested by
caiolima on #webkit).

Reverted changeset:

"[ESNext][BigInt] Implement support for "/" operation"
https://bugs.webkit.org/show_bug.cgi?id=183996
https://trac.webkit.org/changeset/231845

4:31 PM Changeset in webkit [231877] by Ross Kirsling
  • 2 edits
    1 add in trunk/LayoutTests

[WinCairo] Unreviewed gardening before WinCairoRequirements update.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/dom/adopt-node-crash-2-expected.txt: Added.
4:03 PM Changeset in webkit [231876] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] SoupNetworkSession.h:68:62: error: unknown type name 'URL'
https://bugs.webkit.org/show_bug.cgi?id=185378

Unreviewed, just replace unneeded #include with a forward declaration

  • platform/network/soup/SoupNetworkSession.h:
3:18 PM Changeset in webkit [231875] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/mozilla/css-transitions/test_event-dispatch.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183843

Unreviewed test gardening.

  • platform/ios/TestExpectations:
3:15 PM Changeset in webkit [231874] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Test262-Runner: Adds a --timeout option
https://bugs.webkit.org/show_bug.cgi?id=185696

Patch by Leo Balter <Leo Balter> on 2018-05-16
Reviewed by Michael Saboff.

The timeout option is used to set a timeout execution in ms for each test run in JSC.
The passed value - if defined - will be used as the value for the JSC --watchdog arg.

  • Scripts/test262/Runner.pm:

(processCLI):
(runTest):

2:46 PM Changeset in webkit [231873] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Test262-Runner: Set timer for each test run
https://bugs.webkit.org/show_bug.cgi?id=185692

Patch by Leo Balter <Leo Balter> on 2018-05-16
Reviewed by Michael Saboff.

Sets a high resolution timer for each execution call of JSC, reporting
the time in the results report to allow identifying slow tests.

  • Scripts/test262/Runner.pm:

(main):
(processFile):
(runTest):
(processResult):

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

CRASH: Exception thrown from -[AVContentKeySession processContentKeyRequestWithIdentifier:initializationData:options:] after -expire called
https://bugs.webkit.org/show_bug.cgi?id=185690
<rdar://problem/38297768>

Reviewed by Eric Carlson.

Reject all calls to update() after close() has been called on the session.

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

(WebCore::CDMSessionAVContentKeySession::update):

2:02 PM Changeset in webkit [231871] by fpizlo@apple.com
  • 7 edits
    3 adds in trunk

DFG models InstanceOf incorrectly
https://bugs.webkit.org/show_bug.cgi?id=185694

Reviewed by Keith Miller.
JSTests:

  • stress/instanceof-proxy-check-structure.js: Added.

(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):
(i.new.Bar):
(new.Bar):

  • stress/instanceof-proxy-loop.js: Added.

(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):

  • stress/instanceof-proxy.js: Added.

(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):

Source/JavaScriptCore:


Proxies mean that InstanceOf can have effects. Exceptions mean that it's illegal to DCE it or
hoist it.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNodeType.h:
1:55 PM Changeset in webkit [231870] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.17.7

Tag Safari-606.1.17.7.

1:53 PM Changeset in webkit [231869] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

1:46 PM Changeset in webkit [231868] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 56

Added a tag for Safari Technology Preview release 56.

1:38 PM Changeset in webkit [231867] by commit-queue@webkit.org
  • 27 edits
    3 adds in trunk

Add support for Intl NumberFormat formatToParts
https://bugs.webkit.org/show_bug.cgi?id=185375

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-05-16
Reviewed by Yusuke Suzuki.

.:

Add flag for NumberFormat formatToParts.

  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Add flag for NumberFormat formatToParts. Implement formatToParts using
unum_formatDoubleForFields. Because the fields are nested and come back
in no guaranteed order, the simple algorithm to convert them to the
desired format is roughly O(n2). However, even with Number.MAX_VALUE
it appears to perform well enough for the initial implementation. Another
issue has been created to improve this algorithm.

This requires ICU v59+ for unum_formatDoubleForFields, so it is disabled
on macOS, since only v57 is available.

  • Configurations/FeatureDefines.xcconfig:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::UFieldPositionIteratorDeleter::operator() const):
(JSC::IntlNumberFormat::partTypeString):
(JSC::IntlNumberFormat::formatToParts):

  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::create):
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::IntlNumberFormatPrototypeFuncFormatToParts):

  • runtime/IntlNumberFormatPrototype.h:
  • runtime/Options.h:

Source/WebCore:

Test: js/intl-numberformat-format-to-parts.html

Add flag & tests for NumberFormat formatToParts.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Add flag for NumberFormat formatToParts.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Add flag for NumberFormat formatToParts.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

Add flag for NumberFormat formatToParts.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Add flag for NumberFormat formatToParts.

  • wtf/FeatureDefines.h:

Tools:

Add flag for NumberFormat formatToParts.

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Add tests for NumberFormat formatToParts. Tests are expected to fail on
macOS until ICU is updated to v59 or newer.

  • js/intl-numberformat-format-to-parts-expected.txt: Added.
  • js/intl-numberformat-format-to-parts.html: Added.
  • js/script-tests/intl-numberformat-format-to-parts.js: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
1:36 PM Changeset in webkit [231866] by eric.carlson@apple.com
  • 13 edits
    4 adds in trunk

Improve NowPlaying "title"
https://bugs.webkit.org/show_bug.cgi?id=185680
<rdar://problem/40296700>

Reviewed by Jer Noble.
Source/WebCore:

We send NowPlaying the element's title attribute if not empty, else the element's current url.
Title should be preferred because it is the most specific, but we should use the document
title if non-empty next, and if falling back to the element's url use just the domain instead
of the full url because it isn't likely to be useful to the user given the small amount of
space control center uses to display the title. Further, don't use any title at all when
in private browsing mode.

Tests: http/tests/media/now-playing-info-private-browsing.html

http/tests/media/now-playing-info.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute): Update NowPlaying when the title attribute changes.
(WebCore::HTMLMediaElement::finishSeek): Update NowPlaying when a seek completes.
(WebCore::HTMLMediaElement::mediaSessionTitle const): Update logic.
(WebCore::HTMLMediaElement::mediaSessionUniqueIdentifier const): Use the hash of the current
url as the unique identifier.

  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::uniqueIdentifier const): New.
(WebCore::PlatformMediaSessionClient::mediaSessionUniqueIdentifier const): Ditto.

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

(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Update m_lastUpdatedNowPlayingInfoUniqueIdentifier.

  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::updateNowPlayingInfo): Update.

  • testing/Internals.cpp:

(WebCore::Internals::nowPlayingState const): Expose NowPlaying state.

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

LayoutTests:

  • http/tests/media/now-playing-info-expected.txt: Added.
  • http/tests/media/now-playing-info-private-browsing-expected.txt: Added.
  • http/tests/media/now-playing-info-private-browsing.html: Added.
  • http/tests/media/now-playing-info.html: Added.
  • platform/gtk/TestExpectations:
1:24 PM Changeset in webkit [231865] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test webrtc/addICECandidate-closed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185384
<rdar://problem/40035167>

Reviewed by Eric Carlson.

  • webrtc/addICECandidate-closed.html:

Handle sometimes rejected promise to remove a line
in the -expected.txt file that is sometimes added.

12:46 PM Changeset in webkit [231864] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, follow-up after r231762
https://bugs.webkit.org/show_bug.cgi?id=185589

Addresses darin's suggestions to improve timeClip.

  • wtf/DateMath.cpp:

(WTF::timeClip):

12:39 PM Changeset in webkit [231863] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[Wi-Fi Assertions] Adopt WiFiAssertionHolderAdditions
https://bugs.webkit.org/show_bug.cgi?id=185685
<rdar://problem/40136681>

Reviewed by Sam Weinig.

  • NetworkProcess/cocoa/WiFiAssertionHolder.cpp:

(WebKit::WiFiAssertionHolder::WiFiAssertionHolder):
(WebKit::WiFiAssertionHolder::~WiFiAssertionHolder):
(WebKit::ensureWiFiManagerClient): Deleted.

12:34 PM Changeset in webkit [231862] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the WinCairo build following r231859
(https://bugs.webkit.org/show_bug.cgi?id=185654)

Instantiate Cookie as a struct and set applicable fields.

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):

12:11 PM Changeset in webkit [231861] by youenn@apple.com
  • 5 edits in trunk/LayoutTests

REGRESSION (r229735): LayoutTest http/wpt/service-workers/third-party-registration.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=183860
<rdar://problem/38975251>

Reviewed by Geoffrey Garen.

Make test more robust by introducing a timeout and better failure reporting.
Mark test as Pass/Fail to start gathering results on test stability.

  • http/wpt/service-workers/resources/third-party-registration-frame.html:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
12:06 PM Changeset in webkit [231860] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Mark LayoutTest animations/needs-layout.html as Flaky on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=185659

Unreviewed test gardening.

Patch by David Fenton <david_fenton@apple.com> on 2018-05-16

  • platform/mac/TestExpectations:
11:54 AM Changeset in webkit [231859] by dbates@webkit.org
  • 5 edits in trunk/Source/WebCore

Cleanup platform Cookie
https://bugs.webkit.org/show_bug.cgi?id=185654

Reviewed by Per Arne Vollan.

Remove unnecessary constructor and use =default for default constructor.
Simplify Cookie::decode() by having it decode directly into a stack-allocated
cookie. Remove some unnecessary local variables. Fix style nits.

  • platform/Cookie.h:

(WebCore::Cookie::Cookie):
(WebCore::Cookie::isNull const):
(WebCore::Cookie::encode const):
(WebCore::Cookie::decode):

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::getRawCookies):

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::cookieCreated):
(WebCore::Cookie::Cookie):
(WebCore::Cookie::operator== const):
(WebCore::Cookie::hash const):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::getRawCookies):

11:47 AM Changeset in webkit [231858] by bshafiei@apple.com
  • 3 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231825. rdar://problem/40278181

Launch System Preview as the download starts, rather than waiting for a response
https://bugs.webkit.org/show_bug.cgi?id=185669
<rdar://problem/40278181>

Reviewed by Tim Horton.

We were waiting for the RequestResponse to get a MIME-type before
launching the system preview. This causes an annoying delay.

Instead, assume that the system preview is one of the handled
mime types and launch the viewer immediately. If it gets something it
didn't expect, it will show an error.

  • UIProcess/Cocoa/DownloadClient.mm: (WebKit::DownloadClient::didStart): (WebKit::DownloadClient::didReceiveResponse):
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): (WebKit::SystemPreviewController::start): Small cleanup to ensure we don't try to present twice (this shouldn't happen).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:47 AM Changeset in webkit [231857] by bshafiei@apple.com
  • 4 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231824. rdar://problem/40278181

Post-review cleanup for 185459
https://bugs.webkit.org/show_bug.cgi?id=185665
<rdar://problem/40276689>

Reviewed by Tim Horton.

Jon made some comments in 185459 that I'm addressing here.

  • UIProcess/Cocoa/DownloadClient.h:
  • UIProcess/Cocoa/DownloadClient.mm: Guard the activity token for iOS in a way that means it will still work ok on macOS. (WebKit::DownloadClient::didStart): (WebKit::DownloadClient::processDidCrash): (WebKit::DownloadClient::didFinish): (WebKit::DownloadClient::didFail): (WebKit::DownloadClient::didCancel): (WebKit::DownloadClient::takeActivityToken): (WebKit::DownloadClient::releaseActivityTokenIfNecessary): (WebKit::DownloadClient::releaseActivityToken): Deleted.
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Add an early return. (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:47 AM Changeset in webkit [231856] by bshafiei@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231814. rdar://problem/40267224

Provide UIView and UIImage for zoom transition
https://bugs.webkit.org/show_bug.cgi?id=185655
<rdar://problem/40267224>

Reviewed by Antoine Quint.

Provide a UIView* for the frameForPreviewItem to use as a source view.
Also implement the transitionImageForPreviewItem delegate, even though
we're returning nil.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: (-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]): (-[_WKPreviewControllerDelegate previewController:transitionImageForPreviewItem:contentRect:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:47 AM Changeset in webkit [231855] by bshafiei@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231783. rdar://problem/40230277

Use the system font by default in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=185638
<rdar://problem/40230277>

Reviewed by Wenson Hsieh.

  • Shared/WebPreferencesDefaultValues.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:12 AM Changeset in webkit [231854] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/mac

Fixup after r231849: Do not mark Mac API methods as deprecated
https://bugs.webkit.org/show_bug.cgi?id=185684

Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-16
Reviewed by Darin Adler.

Do not mark API methods for Document#selectedStylesheetSet/preferredStylesheetSet as deprecated
as the entire class is already marked as deprecated, so it is unnecessary.

  • DOM/DOMDocument.h:
10:54 AM Changeset in webkit [231853] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[Win] Implement WebPage::handleEditingKeyboardEvent
https://bugs.webkit.org/show_bug.cgi?id=185327

Reviewed by Alexey Proskuryakov.

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::handleEditingKeyboardEvent): Copied from WebKitLegacy.

10:50 AM Changeset in webkit [231852] by Yusuke Suzuki
  • 15 edits in trunk

[Win] Use C++17 in MSVC
https://bugs.webkit.org/show_bug.cgi?id=185232

Reviewed by Alex Christensen.

.:

Use /std:c++17 option.

  • Source/cmake/OptionsMSVC.cmake:

Source/ThirdParty:

Use std::tuple instead of std::tr1::tuple since std::tr1::tuple is removed in C++17 MSVC.
In a subsequent patch, we will upgrade gtest too.

  • gtest/include/gtest/internal/gtest-param-util-generated.h:

(testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tuple<T1, T2> > const):
(testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tuple<T1, T2, T3> > const):
(testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4> > const):
(testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5> > const):
(testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6> > const):
(testing::internal::CartesianProductHolder7:: const):
(testing::internal::CartesianProductHolder8:: const):
(testing::internal::CartesianProductHolder9:: const):
(testing::internal::CartesianProductHolder10:: const):
(testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tr1::tuple<T1, T2> > const): Deleted.
(testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3> > const): Deleted.
(testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> > const): Deleted.
(testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> > const): Deleted.
(testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> > const): Deleted.

  • gtest/include/gtest/internal/gtest-tuple.h:

Source/WebCore:

Workaround for MSVC + /std:c++17.

  • Modules/geolocation/Coordinates.h:

(WebCore::Coordinates::isolatedCopy const):

Source/WTF:

Disable some WebKit defined C++17 features for MSVC.

  • wtf/StdLibExtras.h:

Tools:

Do not use using namespace std;. In C++17, we have std::byte. This "byte"
conflicts with ::byte defined in Windows' header.

  • DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp:

(WindowedPluginTest::WindowedPluginTest):

  • DumpRenderTree/win/AccessibilityControllerWin.cpp:

(logEventProc):
(stringEvent):
(AccessibilityController::winNotificationReceived):

  • DumpRenderTree/win/TextInputController.cpp:

(markedRangeCallback):
(firstRectForCharacterRangeCallback):
(selectedRangeCallback):

  • DumpRenderTree/win/TextInputController.h:
  • DumpRenderTree/win/TextInputControllerWin.cpp:

(TextInputController::markedRange):
(TextInputController::firstRectForCharacterRange):
(TextInputController::selectedRange):

10:25 AM Changeset in webkit [231851] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Turn Web Animations with CSS integration on for test runners
https://bugs.webkit.org/show_bug.cgi?id=184819

Unreviewed. Another attempt to make this test more robust.

  • transitions/interrupted-transition-hardware.html:
10:19 AM Changeset in webkit [231850] by commit-queue@webkit.org
  • 8 edits in trunk

Session cookies aren't reliably set when using default WKWebSiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=185624
<rdar://problem/39111626>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-16
Reviewed by Geoffrey Garen.

Source/WebKit:

Session cookies of default session were set in UI Process when there was no process pool,
but they were not synced (or synced slowly to) Network Process. To make these cookies visible
as soon as they were set through API, we could manually set those cookies in Network Process
during its initilization.

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::setCookie):
(API::HTTPCookieStore::deleteCookie):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::clearPendingCookies):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Modified and enabled WebKit.WKHTTPCookieStoreWithoutProcessPool.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

9:20 AM Changeset in webkit [231849] by commit-queue@webkit.org
  • 24 edits
    2 deletes in trunk

Remove Document#selectedStylesheetSet/preferredStylesheetSet
https://bugs.webkit.org/show_bug.cgi?id=185381

Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-16
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Refresh historical CSSOM test from upstream to test this change.

  • web-platform-tests/cssom/historical-expected.txt:
  • web-platform-tests/cssom/historical.html:

Source/WebCore:

Document#selectedStylesheetSet/preferredStylesheetSet are non-standard methods that
are only implemented WebKit. Blink removed these methods in https://crbug.com/690609.
The standard versions of these methods are are no longer in the spec. Remove them
entirely from our implementation.

Updated existing tests and imported/w3c/web-platform-tests/cssom/historical.html.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv):

  • dom/Document.h:
  • dom/Document.idl:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectActiveStyleSheets):

  • style/StyleScope.h:

(WebCore::Style::Scope::preferredStylesheetSetName const):

Source/WebKit:

Make API methods for Document#selectedStylesheetSet/preferredStylesheetSet do nothing.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:

(webkit_dom_document_set_property):
(webkit_dom_document_get_property):
(webkit_dom_document_get_preferred_stylesheet_set):
(webkit_dom_document_get_selected_stylesheet_set):
(webkit_dom_document_set_selected_stylesheet_set):

Source/WebKitLegacy/mac:

Mark API methods for Document#selectedStylesheetSet/preferredStylesheetSet as deprecated
and make them do nothing.

  • DOM/DOMDocument.h:
  • DOM/DOMDocument.mm:

(-[DOMDocument preferredStylesheetSet]):
(-[DOMDocument selectedStylesheetSet]):
(-[DOMDocument setSelectedStylesheetSet:]):

LayoutTests:

Update tests to remove selectedStylesheetSet/preferredStylesheetSet.

  • fast/css/link-disabled-attr-expected.txt:
  • fast/css/link-disabled-attr.html:
  • fast/dom/assign-to-prototype-accessor-on-prototype-should-throw-expected.txt:
  • fast/dom/assign-to-prototype-accessor-on-prototype-should-throw.html:
  • fast/dom/document-attribute-js-null-expected.txt:
  • fast/dom/document-attribute-js-null.html:
  • fast/shadow-dom/link-element-in-shadow-tree-expected.txt:
  • fast/shadow-dom/link-element-in-shadow-tree.html:
  • fast/shadow-dom/selected-stylesheet-in-shadow-tree-expected.txt: Removed.
  • fast/shadow-dom/selected-stylesheet-in-shadow-tree.html: Removed.
9:11 AM Changeset in webkit [231848] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: save to supplied expectation file if supplied
https://bugs.webkit.org/show_bug.cgi?id=185660

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-16
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):

7:51 AM Changeset in webkit [231847] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Implement width computation for replaced inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185672

Reviewed by Antti Koivisto.

Replaced width for block, inline and float elements compute the same way.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeInFlowReplacedWidth const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::hasIntrinsicWidth const):
(WebCore::Layout::Box::hasIntrinsicHeight const):
(WebCore::Layout::Box::hasIntrinsicRatio const):
(WebCore::Layout::Box::intrinsicWidth const):
(WebCore::Layout::Box::intrinsicHeight const):
(WebCore::Layout::Box::intrinsicRatio const):

  • layout/layouttree/LayoutBox.h:
7:49 AM Changeset in webkit [231846] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Make Display::Box box sizing aware
https://bugs.webkit.org/show_bug.cgi?id=185649

Reviewed by Antti Koivisto.

Display::Box::width() == Display::Box::contentBox().width() <= box-sizing: content-box; (initial and default value)
Display::Box::width() == Display::Box::borderBox().width() <= box-sizing: border-box;

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::createDisplayBox):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):
(WebCore::Display::Box::marginBox const):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::paddingBox const):
(WebCore::Display::Box::contentBox const):

  • layout/displaytree/DisplayBox.h:
7:41 AM WebKitGTK/2.20.x edited by berto@igalia.com
(diff)
7:26 AM Changeset in webkit [231845] by Caio Lima
  • 9 edits
    6 adds in trunk

[ESNext][BigInt] Implement support for "/" operation
https://bugs.webkit.org/show_bug.cgi?id=183996

Reviewed by Yusuke Suzuki.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-div-jit.js: Added.
  • stress/big-int-div-memory-stress.js: Added.
  • stress/big-int-div-to-primitive-precedence.js: Added.
  • stress/big-int-div-to-primitive.js: Added.
  • stress/big-int-div-type-error.js: Added.
  • stress/big-int-div-wrapped-value.js: Added.
  • stress/big-int-division.js: Added.

Source/JavaScriptCore:

This patch is introducing the support for BigInt into divide
operation int LLInt and JIT layers.

  • dfg/DFGOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::divide):
(JSC::JSBigInt::copy):
(JSC::JSBigInt::unaryMinus):
(JSC::JSBigInt::absoluteCompare):
(JSC::JSBigInt::absoluteDivLarge):
(JSC::JSBigInt::productGreaterThan):
(JSC::JSBigInt::inplaceAdd):
(JSC::JSBigInt::inplaceSub):
(JSC::JSBigInt::inplaceRightShift):
(JSC::JSBigInt::specialLeftShift):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

  • runtime/JSBigInt.h:
7:11 AM Changeset in webkit [231844] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark animations/keyframes-dynamic.html and related tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=185678

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:33 AM Changeset in webkit [231843] by berto@igalia.com
  • 9 edits in trunk

[CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations
https://bugs.webkit.org/show_bug.cgi?id=182622

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsWPE.cmake:

Enable THREADS_PREFER_PTHREAD_FLAG. This uses -pthread instead of
-lpthread, fixing the 64-bit RISC-V build of the GTK+ port due to
missing atomic primitives.

  • Source/cmake/WebKitCompilerFlags.cmake:

Move the test to detect whether we need to link against libatomic
to a common CMake file so it can be used from both JavaScriptCore
and WebKit.

Source/JavaScriptCore:

We were linking JavaScriptCore against libatomic in MIPS because
in that architecture atomic_fetch_add_8() is not a compiler
intrinsic and is provided by that library instead. However other
architectures (e.g armel) are in the same situation, so we need a
generic test.

That test already exists in WebKit/CMakeLists.txt, so we just have
to move it to a common file (WebKitCompilerFlags.cmake) and use
its result (ATOMIC_INT64_REQUIRES_LIBATOMIC) here.

  • CMakeLists.txt:

Source/WebKit:

Move the test to determine whether we need to link against
libatomic to the common file WebKitCompilerFlags.cmake so it can
also be used for JavaScriptCore.

  • CMakeLists.txt:
6:09 AM Changeset in webkit [231842] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=185299

Unreviewed. Attempt to make this test more robust.

  • transitions/interrupted-transition-hardware.html:
1:38 AM Changeset in webkit [231841] by Carlos Garcia Campos
  • 2 edits
    16 deletes in trunk/WebDriverTests

Unreviewed. Remove W3C deleted files after r231727.

In r231727 W3C WebDriver tests were updated, but only new and modified files, not the deleted (or renamed)
ones. Remove the deleted files and update the test expectations to use the new names.

  • TestExpectations.json: Update expectations after test renames in r231727.
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette.js: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette_resume.js: Removed.
  • imported/w3c/webdriver/tests/contexts/json_serialize_windowproxy.py: Removed.
  • imported/w3c/webdriver/tests/contexts/maximize_window.py: Removed.
  • imported/w3c/webdriver/tests/contexts/resizing_and_positioning.py: Removed.
  • imported/w3c/webdriver/tests/cookies/add_cookie.py: Removed.
  • imported/w3c/webdriver/tests/cookies/delete_cookie.py: Removed.
  • imported/w3c/webdriver/tests/cookies/get_named_cookie.py: Removed.
  • imported/w3c/webdriver/tests/document_handling/page_source.py: Removed.
  • imported/w3c/webdriver/tests/element_retrieval/init.py: Removed.
  • imported/w3c/webdriver/tests/element_retrieval/find_element.py: Removed.
  • imported/w3c/webdriver/tests/element_retrieval/find_element_from_element.py: Removed.
  • imported/w3c/webdriver/tests/element_retrieval/find_elements.py: Removed.
  • imported/w3c/webdriver/tests/element_retrieval/find_elements_from_element.py: Removed.
  • imported/w3c/webdriver/tests/element_retrieval/get_active_element.py: Removed.
  • imported/w3c/webdriver/tests/fullscreen_window.py: Removed.
  • imported/w3c/webdriver/tests/get_window_rect.py: Removed.
  • imported/w3c/webdriver/tests/interaction/element_clear.py: Removed.
  • imported/w3c/webdriver/tests/interaction/send_keys_content_editable.py: Removed.
  • imported/w3c/webdriver/tests/minimize_window.py: Removed.
  • imported/w3c/webdriver/tests/navigation/current_url.py: Removed.
  • imported/w3c/webdriver/tests/navigation/get_title.py: Removed.
  • imported/w3c/webdriver/tests/sessions/get_timeouts.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/conftest.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/create_alwaysMatch.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/create_firstMatch.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/default_values.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/merge.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/response.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/support/init.py: Removed.
  • imported/w3c/webdriver/tests/sessions/new_session/support/create.py: Removed.
  • imported/w3c/webdriver/tests/sessions/status.py: Removed.
  • imported/w3c/webdriver/tests/set_window_rect.py: Removed.
  • imported/w3c/webdriver/tests/state/init.py: Removed.
  • imported/w3c/webdriver/tests/state/get_element_attribute.py: Removed.
  • imported/w3c/webdriver/tests/state/get_element_property.py: Removed.
  • imported/w3c/webdriver/tests/state/get_element_tag_name.py: Removed.
  • imported/w3c/webdriver/tests/state/is_element_selected.py: Removed.
  • imported/w3c/webdriver/tests/state/text/init.py: Removed.
  • imported/w3c/webdriver/tests/state/text/get_text.py: Removed.
  • imported/w3c/webdriver/tests/switch_to_parent_frame.py: Removed.
  • imported/w3c/webdriver/tests/user_prompts/accept_alert.py: Removed.
  • imported/w3c/webdriver/tests/user_prompts/dismiss_alert.py: Removed.
  • imported/w3c/webdriver/tests/user_prompts/get_alert_text.py: Removed.
  • imported/w3c/webdriver/tests/user_prompts/send_alert_text.py: Removed.
1:27 AM Changeset in webkit [231840] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=185299
<rdar://problem/39630230>

Reviewed by Simon Fraser.

Source/WebCore:

In r230574, the fix for webkit.org/b/184518, we changed the processing order in GraphicsLayerCA::updateAnimations() to first
process m_uncomittedAnimations and then m_animationsToProcess, so we are guaranteed animations exist before we attempt to pause
or seek them. This broke interrupting and resuming hardware animations (such as an interrupted CSS Transition or an animation
running in a non-visible tab) since a pause operation recorded _before_ an animation was added would be paused anyway since
the animation was now first added, and then paused. The fix is simply to clear any pending AnimationProcessingAction for a
newly-uncommitted animation.

Test: transitions/interrupted-transition-hardware.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):

LayoutTests:

Add a new test where we interrupt a transition and check that upon returning to the original value,
an animated value is still used and not the initial value. This test fails prior to this patch.

  • transitions/interrupted-transition-hardware-expected.html: Added.
  • transitions/interrupted-transition-hardware.html: Added.
12:05 AM Changeset in webkit [231839] by Yusuke Suzuki
  • 52 edits in trunk/Source

[JSC] Check TypeInfo first before calling getCallData when we would like to check whether given object is a function
https://bugs.webkit.org/show_bug.cgi?id=185601

Reviewed by Saam Barati.

Source/JavaScriptCore:

Rename TypeOfShouldCallGetCallData to OverridesGetCallData. And check OverridesGetCallData
before calling getCallData when we would like to check whether a given object is callable
since getCallData is a virtual call. When we call the object anyway, directly calling getCallData
is fine. But if we would like to check whether the object is callable, we can have non
callable objects frequently. In that case, we should not call getCallData if we can avoid it.

To do this cleanly, we refactor JSValue::{isFunction,isCallable}. We add JSCell::{isFunction,isCallable}
and JSValue ones call into these functions. Inside JSCell::{isFunction,isCallable}, we perform
OverridesGetCallData checking before calling getCallData.

We found that this virtual call exists in JSON.stringify's critial path. Checking
OverridesGetCallData improves Kraken/json-stringify-tinderbox by 2-4%.

baseline patched

json-stringify-tinderbox 38.807+-0.350 37.216+-0.337 definitely 1.0427x faster

In addition to that, we also add OverridesGetCallData flag to JSFunction while we keep JSFunctionType checking fast path
since major cases are covered by this fast JSFunctionType checking.

  • API/JSCallbackObject.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIsObjectOrNull):
(JSC::DFG::SpeculativeJIT::compileIsFunction):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::isExoticForTypeof):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitTypeOf):

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):
(JSC::createInvalidFunctionApplyParameterError):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/InternalFunction.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isFunction const):
(JSC::JSValue::isCallable const):

  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::isFunction):
ALWAYS_INLINE works well for my environment.
(JSC::JSCell::isCallable):

  • runtime/JSFunction.h:
  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON):
(JSC::Stringifier::toJSONImpl):
(JSC::Stringifier::appendStringifiedValue):

  • runtime/JSObjectInlines.h:

(JSC::createListFromArrayLike):

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::overridesGetCallData const):
(JSC::TypeInfo::typeOfShouldCallGetCallData const): Deleted.

  • runtime/Operations.cpp:

(JSC::jsTypeStringForValue):
(JSC::jsIsObjectTypeOrNull):

  • runtime/ProxyObject.h:
  • runtime/RuntimeType.cpp:

(JSC::runtimeTypeForValue):

  • runtime/RuntimeType.h:
  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::TypeProfilerLog):
(JSC::TypeProfilerLog::processLogEntries):

  • runtime/TypeProfilerLog.h:
  • runtime/VM.cpp:

(JSC::VM::enableTypeProfiler):

  • tools/JSDollarVM.cpp:

(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyInstantiateStreamingInternal):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::finishCreation):

Source/WebCore:

No behavior change.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::getCustomElementCallback):

  • bindings/js/JSDOMConstructorBase.h:
  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenSettled):

  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::pipeTo):
(WebCore::ReadableStream::tee):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::ReadableStreamDefaultController::invoke):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateOverloadDispatcher):

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bridge/objc/objc_runtime.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • testing/Internals.cpp:

(WebCore::Internals::parserMetaData):
(WebCore::Internals::cloneArrayBuffer):

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.h:

May 15, 2018:

10:30 PM Changeset in webkit [231838] by Matt Baker
  • 2 edits in trunk/Source/WebCore

Web Inspector: element details hanger in inspector overlay should have better placement logic
https://bugs.webkit.org/show_bug.cgi?id=128482
<rdar://problem/16020709>

Reviewed by Timothy Hatcher.

When determining the best position for the hovered element details "tooltip",
perform placement tests in view space, not canvas space, and account for the
top content inset.

  • inspector/InspectorOverlayPage.js:

(reset): Drive by fix: added missing .height.
(_drawElementTitle):

9:43 PM Changeset in webkit [231837] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

StorageManager::deleteLocalStorageOriginsModifiedSince: database files get deleted before database connections close
https://bugs.webkit.org/show_bug.cgi?id=185671

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-15
Reviewed by Geoffrey Garen.

We should delete database files before closing databases.

  • UIProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::databasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): Deleted.

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.h:
  • UIProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):

8:48 PM Changeset in webkit [231836] by bshafiei@apple.com
  • 7 edits in tags/Safari-606.1.17.6.1/Source

Versioning.

8:39 PM Changeset in webkit [231835] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.17.6.1

New tag.

6:57 PM Changeset in webkit [231834] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore/PAL

PasteboardWebContent's dataInAttributedStringFormat fails to deserialize in the UI process when copying a selection
https://bugs.webkit.org/show_bug.cgi?id=185667
<rdar://problem/40135132>

Reviewed by Tim Horton.

Fixes error logging emitted when copying a text selection due to the secure archiver on iOS being unable to
handle NSAttributedString in the builds where the errors manifest. USE_SECURE_ARCHIVER_FOR_ATTRIBUTED_STRING is
defined to be 1, despite not having the fix for <rdar://problem/31376830>.

  • pal/spi/cocoa/NSKeyedArchiverSPI.h:
6:42 PM Changeset in webkit [231833] by Kocsen Chung
  • 4 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r231392. rdar://problem/40230018

Release assert in ScriptController::canExecuteScripts via HTMLMediaElement::~HTMLMediaElement()
https://bugs.webkit.org/show_bug.cgi?id=185288

Reviewed by Jer Noble.

The crash is caused by HTMLMediaElement::~HTMLMediaElement canceling the resource load via CachedResource
which ends up calling FrameLoader::checkCompleted() and fire load event on the document synchronously.
Speculatively fix the crash by scheduling the check instead.

In long term, ResourceLoader::cancel should never fire load event synchronously: webkit.org/b/185284.

Unfortunately, no new tests since I can't get MediaResource to get destructed at the right time.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::isRunningDestructor): Added to detect this specific case. (WebCore::HTMLMediaElementDestructorScope): Added. (WebCore::HTMLMediaElementDestructorScope::HTMLMediaElementDestructorScope): Added. (WebCore::HTMLMediaElementDestructorScope::~HTMLMediaElementDestructorScope): Added. (WebCore::HTMLMediaElement::~HTMLMediaElement): Instantiate HTMLMediaElement.
  • html/HTMLMediaElement.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::checkCompleted): Call scheduleCheckCompleted instead of synchronously calling checkCompleted if we're in the middle of destructing a HTMLMediaElement.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231392 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:42 PM Changeset in webkit [231832] by Kocsen Chung
  • 3 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r230485. rdar://problem/39988105

REGRESSION(r227341 and r227742): AI and clobberize should be precise and consistent about the effectfulness of CompareEq
https://bugs.webkit.org/show_bug.cgi?id=184455

Reviewed by Michael Saboff.

LICM is sort of an assertion that AI is as precise as clobberize about effects. If clobberize
says that something is not effectful, then LICM will try to hoist it. But LICM's AI hack
(AtTailAbstractState) cannot handle hoisting of things that have effects. So, if AI thinks that
the thing being hoisted does have effects, then we get a crash.

In r227341, we incorrectly told AI that CompareEq(Untyped:, _) is effectful. In fact, only
ComapreEq(Untyped:, Untyped:) is effectful, and clobberize knew this already. As a result, LICM
would blow up if we hoisted CompareEq(Untyped:, Other:), which clobberize knew wasn't
effectful.

Instead of fixing this by making AI precise, in r227742 we made matters worse by then breaking
clobberize to also think that CompareEq(Untyped:, _) is effectful.

This fixes the whole situation by teaching both clobberize and AI that the only effectful form
of CompareEq is ComapreEq(Untyped:, Untyped:).

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230485 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:42 PM Changeset in webkit [231831] by Kocsen Chung
  • 3 edits
    2 adds in branches/safari-605-branch

Cherry-pick r231713. rdar://problem/40172913

LinkLoader fails to remove CachedResourceClient in some cases
https://bugs.webkit.org/show_bug.cgi?id=185553
<rdar://problem/36879656>

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: http/tests/preload/link-preload-client-remove.html

  • loader/LinkLoader.cpp: (WebCore::LinkLoader::loadLink):

If there is a link preload already in progress, we fail to clear the client for the ongoing load.
This may leave the CachedResource client map in a bad state.

LayoutTests:

  • http/tests/preload/link-preload-client-remove-expected.txt: Added.
  • http/tests/preload/link-preload-client-remove.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:41 PM Changeset in webkit [231830] by Kocsen Chung
  • 5 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r231317. rdar://problem/39988108

WebContent crash loading page on seas.upenn.edu @ JavaScriptCore: vmEntryToJavaScript
https://bugs.webkit.org/show_bug.cgi?id=185231

Reviewed by Saam Barati.

We weren't clearing the scratch register cache when switching back and forth between
allowing scratch register usage. We disallow scratch register usage when we are in
code that will freely allocate and use any register. Such usage can change the
contents of scratch registers. For ARM64, where we cache the contents of scratch
registers to reuse some or all of the contained values, we need to invalidate these
caches. We do this when re-enabling scratch register usage, that is when we transition
from disallow to allow scratch register usage.

Added a new Air regression test.

  • assembler/AllowMacroScratchRegisterUsage.h: (JSC::AllowMacroScratchRegisterUsage::AllowMacroScratchRegisterUsage):
  • assembler/AllowMacroScratchRegisterUsageIf.h: (JSC::AllowMacroScratchRegisterUsageIf::AllowMacroScratchRegisterUsageIf):
  • assembler/DisallowMacroScratchRegisterUsage.h: (JSC::DisallowMacroScratchRegisterUsage::~DisallowMacroScratchRegisterUsage):
  • b3/air/testair.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231317 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:41 PM Changeset in webkit [231829] by Kocsen Chung
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r231267. rdar://problem/39988097

REGRESSION(r225868): Release assert when removing an SVGUseElement from Document::m_svgUseElements
https://bugs.webkit.org/show_bug.cgi?id=182188
<rdar://problem/36689240>

Reviewed by Antti Koivisto.

Fixed the crash by removing up the release assert.

The crash is likely caused by re-entrancy to Document::resolveStyle during SVGUseElement::updateShadowTree.
Because Document::resolveStyle invokes updateShadowTree on SVG use elements in Document::m_svgUseElements
without clearing the map, the nested call to resolveStyle ends up calling updateShadowTree() for all elements
in m_svgUseElements and removing them all from the map. When the stack frame eventually comes back to the outer
invocation of Document::resolveStyle, updateShadowTree gets invoked for the second time on SVG use elements
whose shadow tree had already been updated within the inner invocation to updateShadowTree, and release-asserts.

There is an alternative fix: avoid calling updateShadowTree on a svg element when shadowTreeNeedsUpdate returns
true on the element in resolveStyle. However, removing the release assert is a sure way to fix the crash so
this patch opts for that fix instead especially since we don't have any reproducible test case for this crash.

This release assertion was added in r225868 as a cautious measure to catch any use-after-frees of SVGUseElement's
since m_svgUseElements stored raw pointes to SVG use elements but this crash is not an indicative of any UAF,
and there is no evidence that r225868 has led to new UAFs even after five months.

No new tests. I couldn't find a way to trigger a nested style update inside SVGUseElement::updateShadowTree.

  • dom/Document.cpp: (WebCore::Document::removeSVGUseElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231267 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:41 PM Changeset in webkit [231828] by Kocsen Chung
  • 3 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r230983. rdar://problem/39988114

Release assert in ScriptController::canExecuteScripts via CachedSVGFont::ensureCustomFontData during
Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=184950

Reviewed by Zalan Bujtas.

Convert an existing ScriptDisallowedScope::EventAllowedScope which only disables the debug assertions
by ScriptDisallowedScope::DisableAssertionsInScope which also disables the release assertion.

Because SVG font is loaded in a document isolated from the rest of the page (m_externalSVGDocument),
there is no security implication to execute scripts in this isolated document.

Unfortunately, no new tests. I could never make CachedSVGFont::ensureCustomFontData to get called inside
style resolution with m_externalSVGDocument set to nullptr after many attempts. Even EventAllowedScope
I added 13 months ago in r211965, which this patch replaces by DisableAssertionsInScope, is not utilized
by the existing layout tests since removing the assertion doesn't cause any layout test to hit an assertion.

  • dom/ScriptDisallowedScope.h: Updated the comment.
  • loader/cache/CachedSVGFont.cpp: (WebCore::CachedSVGFont::ensureCustomFontData): Replaced the asssertion.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230983 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:41 PM Changeset in webkit [231827] by Kocsen Chung
  • 2 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r230486. rdar://problem/39988121

ExecutableToCodeBlockEdge::visitChildren() should be cool with m_codeBlock being null since we clear it in finalizeUnconditionally()
https://bugs.webkit.org/show_bug.cgi?id=184460
<rdar://problem/37610966>

Reviewed by Mark Lam.

  • bytecode/ExecutableToCodeBlockEdge.cpp: (JSC::ExecutableToCodeBlockEdge::visitChildren):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230486 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:41 PM Changeset in webkit [231826] by Kocsen Chung
  • 3 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r230465. rdar://problem/39988131

Executing known edge types may reveal a contradiction causing us to emit an exit at a node that is not allowed to exit
https://bugs.webkit.org/show_bug.cgi?id=184372

Reviewed by Saam Barati.

We do a pretty good job of not emitting checks for KnownBlah edges, since those mean that we
have already proved, using techniques that are more precise than AI, that the edge has type
Blah. Unfortunately, we do not handle this case gracefully when AI state becomes bottom,
because we have a bad habit of treating terminate/terminateSpeculativeExecution as something
other than a check - so we think we can call those just because we should have already
bailed. It's better to think of them as the result of folding a check. Therefore, we should
only do it if there had been a check to begin with.

  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateInt52): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lowInt32): (JSC::FTL::DFG::LowerDFGToB3::lowInt52): (JSC::FTL::DFG::LowerDFGToB3::lowCell): (JSC::FTL::DFG::LowerDFGToB3::lowBoolean): (JSC::FTL::DFG::LowerDFGToB3::lowDouble): (JSC::FTL::DFG::LowerDFGToB3::speculate): (JSC::FTL::DFG::LowerDFGToB3::speculateCellOrOther): (JSC::FTL::DFG::LowerDFGToB3::speculateStringOrOther):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230465 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:39 PM Changeset in webkit [231825] by dino@apple.com
  • 3 edits in trunk/Source/WebKit

Launch System Preview as the download starts, rather than waiting for a response
https://bugs.webkit.org/show_bug.cgi?id=185669
<rdar://problem/40278181>

Reviewed by Tim Horton.

We were waiting for the RequestResponse to get a MIME-type before
launching the system preview. This causes an annoying delay.

Instead, assume that the system preview is one of the handled
mime types and launch the viewer immediately. If it gets something it
didn't expect, it will show an error.

  • UIProcess/Cocoa/DownloadClient.mm:

(WebKit::DownloadClient::didStart):
(WebKit::DownloadClient::didReceiveResponse):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(WebKit::SystemPreviewController::start): Small cleanup to ensure we
don't try to present twice (this shouldn't happen).

5:30 PM Changeset in webkit [231824] by dino@apple.com
  • 4 edits in trunk/Source/WebKit

Post-review cleanup for 185459
https://bugs.webkit.org/show_bug.cgi?id=185665
<rdar://problem/40276689>

Reviewed by Tim Horton.

Jon made some comments in 185459 that I'm addressing here.

  • UIProcess/Cocoa/DownloadClient.h:
  • UIProcess/Cocoa/DownloadClient.mm: Guard the activity token for iOS

in a way that means it will still work ok on macOS.
(WebKit::DownloadClient::didStart):
(WebKit::DownloadClient::processDidCrash):
(WebKit::DownloadClient::didFinish):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::didCancel):
(WebKit::DownloadClient::takeActivityToken):
(WebKit::DownloadClient::releaseActivityTokenIfNecessary):
(WebKit::DownloadClient::releaseActivityToken): Deleted.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Add an early return.

(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

5:01 PM Changeset in webkit [231823] by commit-queue@webkit.org
  • 4 edits
    2 deletes in trunk

Unreviewed, rolling out r231765.
https://bugs.webkit.org/show_bug.cgi?id=185668

the layout test added with this change is very flaky
(Requested by realdawei on #webkit).

Reverted changeset:

"REGRESSION (r230574): Interrupted hardware transitions don't
behave correctly"
https://bugs.webkit.org/show_bug.cgi?id=185299
https://trac.webkit.org/changeset/231765

4:51 PM Changeset in webkit [231822] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

4:50 PM Changeset in webkit [231821] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Update touch event tracking type on every touch
https://bugs.webkit.org/show_bug.cgi?id=184250
<rdar://problem/39145092>

Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-05-15
Reviewed by Geoffrey Garen.

The tracking type for touch events were only update on touchstart, which meant that event
listeners added after the touchstart would always be treated as passive, even if explicitly
setting passive to false.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEvent):

LayoutTests:

  • fast/events/touch/ios/touchmove-cancelable-after-touchstart-expected.txt: Added.
  • fast/events/touch/ios/touchmove-cancelable-after-touchstart.html: Added.
4:45 PM Changeset in webkit [231820] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.17.6

Tag Safari-606.1.17.6.

4:20 PM Changeset in webkit [231819] by webkit@devinrousso.com
  • 8 edits in trunk/Source

Web Inspector: Add rulers and guides
https://bugs.webkit.org/show_bug.cgi?id=32263
<rdar://problem/19281564>

Reviewed by Matt Baker.

Source/JavaScriptCore:

  • inspector/protocol/OverlayTypes.json:

Source/WebCore:

This patch is purely a visual change for WebInspector, and doesn't affect anything else.

  • inspector/InspectorOverlay.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::reset):
(WebCore::InspectorOverlay::drawGutter): Deleted.

  • inspector/InspectorOverlayPage.html:
  • inspector/InspectorOverlayPage.js:

(Bounds): Added.
(Bounds.prototype.get minX): Added.
(Bounds.prototype.get minY): Added.
(Bounds.prototype.get maxX): Added.
(Bounds.prototype.get maxY): Added.
(Bounds.prototype.update): Added.
(drawNodeHighlight):
(drawQuadHighlight):
(reset):
(_isolateActions): Added.
(_quadToPath): Added.
(_quadToPath.parseQuadPoint): Added.
(_drawOutlinedQuad): Added.
(_drawPath): Added.
(_drawPath.parsePoints): Added.
(_drawOutlinedQuadWithClip): Added.
(_drawElementTitle):
(_drawShapeHighlight):
(_drawFragmentHighlight):
(_drawRulers): Added.
(quadToPath): Deleted.
(drawOutlinedQuad): Deleted.
(pathCommand): Deleted.
(drawPath): Deleted.
(drawOutlinedQuadWithClip): Deleted.
(drawGutter): Deleted.

  • inspector/InspectorOverlayPage.css:

(#log): Added.
(#right-gutter): Deleted.
(#bottom-gutter): Deleted.

4:06 PM Changeset in webkit [231818] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Pause display links when window is not visible.
https://bugs.webkit.org/show_bug.cgi?id=185627
<rdar://problem/39401106>

Reviewed by Simon Fraser.

Pause/resume display links created in the UI process when the window is hidden/shown.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchActivityStateChange):

  • UIProcess/mac/DisplayLink.cpp:

(WebKit::DisplayLink::pause):
(WebKit::DisplayLink::resume):

  • UIProcess/mac/DisplayLink.h:
4:01 PM Changeset in webkit [231817] by jer.noble@apple.com
  • 18 edits
    2 adds in trunk

Media continues loading after rendered invisible (removed from DOM; scrolled off screen)
https://bugs.webkit.org/show_bug.cgi?id=185487

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-buffering-allowed.html

When a media element is removed from the dom (e.g. through innerHTML=""), it doesn't
necessarily stop loading media data; it will continue to do so until its destructor is
called through garbage collection. Similarly, when a media element is rendered not-visible
by being scrolled off-screen or being made display:none, media loading continues. There
are legitimate use cases for out-of-DOM media loading, so only temporarily block loading
when the element transitions out of the document. Similarly, only block loading for non-visible
media elements when returning from the "page is hidden" state, and only until the media
element is asked to play or is otherwise made visible.

Note: this refactors a lot of code out of PlatformMediaSession and into MediaElementSession,
since this code is specific to "media elements".

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::insertedIntoAncestor):
(WebCore::HTMLMediaElement::removedFromAncestor):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::visibilityStateChanged):
(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::setShouldBufferData):
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):
(WebCore::HTMLMediaElement::fullscreenModeChanged):
(WebCore::HTMLMediaElement::setInActiveDocument):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::shouldBufferData const):
(WebCore::HTMLMediaElement::elementIsHidden const):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::clientWillBeginAutoplaying):
(WebCore::MediaElementSession::clientWillBeginPlayback):
(WebCore::MediaElementSession::clientWillPausePlayback):
(WebCore::MediaElementSession::visibilityChanged):
(WebCore::MediaElementSession::isVisibleInViewportChanged):
(WebCore::MediaElementSession::inActiveDocumentChanged):
(WebCore::MediaElementSession::scheduleClientDataBufferingCheck):
(WebCore::MediaElementSession::clientDataBufferingTimerFired):
(WebCore::MediaElementSession::updateClientDataBuffering):
(WebCore::MediaElementSession::dataBufferingPermitted const):
(WebCore::MediaElementSession::wantsToObserveViewportVisibilityForAutoplay const):

  • html/MediaElementSession.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::clientWillBeginAutoplaying):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(): Deleted.
(WebCore::PlatformMediaSession::visibilityChanged): Deleted.
(WebCore::PlatformMediaSession::scheduleClientDataBufferingCheck): Deleted.
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired): Deleted.
(WebCore::PlatformMediaSession::updateClientDataBuffering): Deleted.
(WebCore::PlatformMediaSession::isHidden const): Deleted.

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSessionClient::setShouldBufferData): Deleted.
(WebCore::PlatformMediaSessionClient::elementIsHidden const): Deleted.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia const): Deleted.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionCanLoadMedia const): Deleted.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::willBeDestroyed):

  • testing/Internals.cpp:

(WebCore::Internals::elementShouldBufferData):

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

LayoutTests:

  • media/video-buffering-allowed-expected.txt: Added.
  • media/video-buffering-allowed.html: Added.
  • media/video-test.js:

(compare):
(testExpected):
(sleepFor):
(testArraysEqual): Deleted.

3:48 PM WPE edited by clopez@igalia.com
(diff)
2:52 PM Changeset in webkit [231816] by Kocsen Chung
  • 7 edits in tags/Safari-606.1.17.2.2/Source

Versioning.

2:45 PM Changeset in webkit [231815] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.17.2.2

New tag.

1:38 PM Changeset in webkit [231814] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Provide UIView and UIImage for zoom transition
https://bugs.webkit.org/show_bug.cgi?id=185655
<rdar://problem/40267224>

Reviewed by Antoine Quint.

Provide a UIView* for the frameForPreviewItem to use as a source view.
Also implement the transitionImageForPreviewItem delegate, even though
we're returning nil.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]):
(-[_WKPreviewControllerDelegate previewController:transitionImageForPreviewItem:contentRect:]):

12:24 PM Changeset in webkit [231813] by commit-queue@webkit.org
  • 17 edits
    199 adds in trunk

Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser.
https://bugs.webkit.org/show_bug.cgi?id=175569

Patch by Charles Vazac <cvazac@gmail.com> on 2018-05-15
Reviewed by Youenn Fablet.

Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/*

LayoutTests/imported/w3c:

  • web-platform-tests/server-timing/cross_origin.html: Added.
  • web-platform-tests/server-timing/navigation_timing_idl.html: Added.
  • web-platform-tests/server-timing/navigation_timing_idl.https.html: Added.
  • web-platform-tests/server-timing/resources/blue.png: Added.
  • web-platform-tests/server-timing/resources/blue.png.sub.headers: Added.
  • web-platform-tests/server-timing/resources/blue_tao.png: Added.
  • web-platform-tests/server-timing/resources/blue_tao.png.sub.headers: Added.
  • web-platform-tests/server-timing/resources/green.png: Added.
  • web-platform-tests/server-timing/resources/green.png.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/0.js: Added.
  • web-platform-tests/server-timing/resources/parsing/0.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/1.js: Added.
  • web-platform-tests/server-timing/resources/parsing/1.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/10.js: Added.
  • web-platform-tests/server-timing/resources/parsing/10.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/11.js: Added.
  • web-platform-tests/server-timing/resources/parsing/11.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/12.js: Added.
  • web-platform-tests/server-timing/resources/parsing/12.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/13.js: Added.
  • web-platform-tests/server-timing/resources/parsing/13.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/14.js: Added.
  • web-platform-tests/server-timing/resources/parsing/14.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/15.js: Added.
  • web-platform-tests/server-timing/resources/parsing/15.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/16.js: Added.
  • web-platform-tests/server-timing/resources/parsing/16.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/17.js: Added.
  • web-platform-tests/server-timing/resources/parsing/17.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/18.js: Added.
  • web-platform-tests/server-timing/resources/parsing/18.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/19.js: Added.
  • web-platform-tests/server-timing/resources/parsing/19.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/2.js: Added.
  • web-platform-tests/server-timing/resources/parsing/2.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/20.js: Added.
  • web-platform-tests/server-timing/resources/parsing/20.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/21.js: Added.
  • web-platform-tests/server-timing/resources/parsing/21.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/22.js: Added.
  • web-platform-tests/server-timing/resources/parsing/22.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/23.js: Added.
  • web-platform-tests/server-timing/resources/parsing/23.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/24.js: Added.
  • web-platform-tests/server-timing/resources/parsing/24.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/25.js: Added.
  • web-platform-tests/server-timing/resources/parsing/25.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/26.js: Added.
  • web-platform-tests/server-timing/resources/parsing/26.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/27.js: Added.
  • web-platform-tests/server-timing/resources/parsing/27.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/28.js: Added.
  • web-platform-tests/server-timing/resources/parsing/28.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/29.js: Added.
  • web-platform-tests/server-timing/resources/parsing/29.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/3.js: Added.
  • web-platform-tests/server-timing/resources/parsing/3.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/30.js: Added.
  • web-platform-tests/server-timing/resources/parsing/30.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/31.js: Added.
  • web-platform-tests/server-timing/resources/parsing/31.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/32.js: Added.
  • web-platform-tests/server-timing/resources/parsing/32.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/33.js: Added.
  • web-platform-tests/server-timing/resources/parsing/33.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/34.js: Added.
  • web-platform-tests/server-timing/resources/parsing/34.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/35.js: Added.
  • web-platform-tests/server-timing/resources/parsing/35.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/36.js: Added.
  • web-platform-tests/server-timing/resources/parsing/36.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/37.js: Added.
  • web-platform-tests/server-timing/resources/parsing/37.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/38.js: Added.
  • web-platform-tests/server-timing/resources/parsing/38.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/39.js: Added.
  • web-platform-tests/server-timing/resources/parsing/39.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/4.js: Added.
  • web-platform-tests/server-timing/resources/parsing/4.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/40.js: Added.
  • web-platform-tests/server-timing/resources/parsing/40.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/41.js: Added.
  • web-platform-tests/server-timing/resources/parsing/41.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/42.js: Added.
  • web-platform-tests/server-timing/resources/parsing/42.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/43.js: Added.
  • web-platform-tests/server-timing/resources/parsing/43.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/44.js: Added.
  • web-platform-tests/server-timing/resources/parsing/44.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/45.js: Added.
  • web-platform-tests/server-timing/resources/parsing/45.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/46.js: Added.
  • web-platform-tests/server-timing/resources/parsing/46.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/47.js: Added.
  • web-platform-tests/server-timing/resources/parsing/47.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/48.js: Added.
  • web-platform-tests/server-timing/resources/parsing/48.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/49.js: Added.
  • web-platform-tests/server-timing/resources/parsing/49.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/5.js: Added.
  • web-platform-tests/server-timing/resources/parsing/5.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/50.js: Added.
  • web-platform-tests/server-timing/resources/parsing/50.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/51.js: Added.
  • web-platform-tests/server-timing/resources/parsing/51.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/52.js: Added.
  • web-platform-tests/server-timing/resources/parsing/52.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/53.js: Added.
  • web-platform-tests/server-timing/resources/parsing/53.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/54.js: Added.
  • web-platform-tests/server-timing/resources/parsing/54.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/55.js: Added.
  • web-platform-tests/server-timing/resources/parsing/55.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/56.js: Added.
  • web-platform-tests/server-timing/resources/parsing/56.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/57.js: Added.
  • web-platform-tests/server-timing/resources/parsing/57.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/58.js: Added.
  • web-platform-tests/server-timing/resources/parsing/58.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/59.js: Added.
  • web-platform-tests/server-timing/resources/parsing/59.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/6.js: Added.
  • web-platform-tests/server-timing/resources/parsing/6.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/60.js: Added.
  • web-platform-tests/server-timing/resources/parsing/60.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/61.js: Added.
  • web-platform-tests/server-timing/resources/parsing/61.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/62.js: Added.
  • web-platform-tests/server-timing/resources/parsing/62.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/63.js: Added.
  • web-platform-tests/server-timing/resources/parsing/63.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/64.js: Added.
  • web-platform-tests/server-timing/resources/parsing/64.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/65.js: Added.
  • web-platform-tests/server-timing/resources/parsing/65.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/66.js: Added.
  • web-platform-tests/server-timing/resources/parsing/66.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/67.js: Added.
  • web-platform-tests/server-timing/resources/parsing/67.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/68.js: Added.
  • web-platform-tests/server-timing/resources/parsing/68.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/69.js: Added.
  • web-platform-tests/server-timing/resources/parsing/69.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/7.js: Added.
  • web-platform-tests/server-timing/resources/parsing/7.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/70.js: Added.
  • web-platform-tests/server-timing/resources/parsing/70.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/71.js: Added.
  • web-platform-tests/server-timing/resources/parsing/71.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/72.js: Added.
  • web-platform-tests/server-timing/resources/parsing/72.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/73.js: Added.
  • web-platform-tests/server-timing/resources/parsing/73.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/74.js: Added.
  • web-platform-tests/server-timing/resources/parsing/74.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/75.js: Added.
  • web-platform-tests/server-timing/resources/parsing/75.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/76.js: Added.
  • web-platform-tests/server-timing/resources/parsing/76.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/77.js: Added.
  • web-platform-tests/server-timing/resources/parsing/77.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/78.js: Added.
  • web-platform-tests/server-timing/resources/parsing/78.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/79.js: Added.
  • web-platform-tests/server-timing/resources/parsing/79.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/8.js: Added.
  • web-platform-tests/server-timing/resources/parsing/8.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/80.js: Added.
  • web-platform-tests/server-timing/resources/parsing/80.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/81.js: Added.
  • web-platform-tests/server-timing/resources/parsing/81.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/82.js: Added.
  • web-platform-tests/server-timing/resources/parsing/82.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/83.js: Added.
  • web-platform-tests/server-timing/resources/parsing/83.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/9.js: Added.
  • web-platform-tests/server-timing/resources/parsing/9.js.sub.headers: Added.
  • web-platform-tests/server-timing/resources/parsing/w3c-import.log: Added.
  • web-platform-tests/server-timing/resources/w3c-import.log: Added.
  • web-platform-tests/server-timing/resource_timing_idl.html: Added.
  • web-platform-tests/server-timing/resource_timing_idl.https.html: Added.
  • web-platform-tests/server-timing/server_timing_header-parsing.html: Added.
  • web-platform-tests/server-timing/server_timing_header-parsing.https.html: Added.
  • web-platform-tests/server-timing/test_server_timing.html: Added.
  • web-platform-tests/server-timing/test_server_timing.html.sub.headers: Added.
  • web-platform-tests/server-timing/test_server_timing.https.html: Added.
  • web-platform-tests/server-timing/test_server_timing.https.html.sub.headers: Added.
  • web-platform-tests/server-timing/w3c-import.log: Added.

Source/WebCore:

  • Sources.txt: Added references to HeaderFieldTokenizer.cpp, ServerTiming.cpp, and ServerTimingParser.cpp.
  • WebCore.xcodeproj/project.pbxproj: Added various files.
  • loader/HeaderFieldTokenizer.cpp: Added.

(WebCore::HeaderFieldTokenizer::HeaderFieldTokenizer): Added class for tokenizing header values.
(WebCore::HeaderFieldTokenizer::consume): Added method to consume a specified character.
(WebCore::HeaderFieldTokenizer::consumeQuotedString): Added method to consume a quote-string.
(WebCore::HeaderFieldTokenizer::consumeToken): Added a method to consume a token.
(WebCore::HeaderFieldTokenizer::consumeTokenOrQuotedString): Added method to consume a quote-string or quote-string, depending on net character.
(WebCore::HeaderFieldTokenizer::skipSpaces): Added method to skip whitespace.
(WebCore::HeaderFieldTokenizer::consumeBeforeAnyCharMatch): Added method to advance the cursor up until any of a list of characters.

  • loader/HeaderFieldTokenizer.h: Added.
  • loader/HTTPHeaderField.cpp: Expose isTokenCharacter and isWhitespace.
  • loader/HTTPHeaderField.h: Expose isTokenCharacter and isWhitespace.
  • loader/PolicyChecker.cpp: Added #include so source compiled on my machine.
  • loader/ResourceTiming.cpp:

(WebCore::ResourceTiming::ResourceTiming): Added call to initServerTiming to parse the header.
(WebCore::ResourceTiming::initServerTiming): Added method to parse the header.
(WebCore::ResourceTiming::populateServerTiming): Added method to populate the server timing entries on a PerformanceResourceTiming object.
(WebCore::ResourceTiming::isolatedCopy const): Added code to copy over the server timing entries.

  • loader/ResourceTiming.h:

(WebCore::ResourceTiming::ResourceTiming): Accept collection of server timing entries in c'tor.

  • loader/ServerTiming.cpp: Added.

(WebCore::ServerTiming::setParameter): Set named parameters, ignoring unrecognized or duplicates.
(WebCore::ServerTiming::isolatedCopy const): Return a new pointer to the object.

  • loader/ServerTiming.h: Added.

(WebCore::ServerTiming::ServerTiming): Added struct for the data needed by a server timing entry.
(WebCore::ServerTiming::name const): Added name field of a server timing entry.
(WebCore::ServerTiming::duration const): Added duration field of a server timing entry.
(WebCore::ServerTiming::description const): Added description field of a server timing entry.

  • loader/ServerTimingParser.cpp: Added.

(WebCore::ServerTimingParser::parseServerTiming): Parses the header generating a collection of server timing structs.

  • loader/ServerTimingParser.h: Added.
  • loader/WorkerThreadableLoader.h: Fix build.
  • page/Performance.cpp:

(WebCore::Performance::addResourceTiming): Fixed a typo.

  • page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::PerformanceResourceTiming): Given a ResourceTiming object, populate our collection of PerformanceServerTiming objects.

  • page/PerformanceResourceTiming.h: Added serverTiming member and getter.
  • page/PerformanceResourceTiming.idl: Added serverTiming member to interface.
  • platform/network/HTTPHeaderNames.in: Added "Server-Timing" to the header enum.
  • platform/network/ResourceResponseBase.cpp: Added "Server-Timing" to isSafeCrossOriginResponseHeader whitelist.

LayoutTests:

  • imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt: Added.
  • imported/w3c/web-platform-tests/server-timing/resource_timing_idl-expected.txt: Added.
  • imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https-expected.txt: Added.
  • imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt: Added.
  • imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https-expected.txt: Added.
12:07 PM Changeset in webkit [231812] by beidson@apple.com
  • 3 edits
    3 adds in trunk

Fix crash after a Worker terminates but there are still IDB transactions the server is trying to open for it.
<rdar://problem/33744241> and https://bugs.webkit.org/show_bug.cgi?id=185653

Reviewed by Andy Estes.

Source/WebCore:

Test: storage/indexeddb/modern/worker-transaction-open-after-worker-stop.html

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction): It's okay to not be able to find a pending TX

that the server has started. e.g. When it was a WebWorker that asked for the TX but it has since terminated.

LayoutTests:

  • storage/indexeddb/modern/resources/worker-transaction-open-after-worker-stop.js: Added.

(const.errorHandler):
(openRequest.onupgradeneeded):
(tx.oncomplete):
(openRequest.onsuccess):
(deleteRequest.onerror.deleteRequest.onblocked.deleteRequest.onsuccess):

  • storage/indexeddb/modern/worker-transaction-open-after-worker-stop-expected.txt: Added.
  • storage/indexeddb/modern/worker-transaction-open-after-worker-stop.html: Added.
12:04 PM Changeset in webkit [231811] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix the Apple Internal build

Make a similar change to WebKit as I did for LegacyWebKit in r231777. See <rdar://problem/40237873> for more details.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController exitFullScreen]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):

11:48 AM Changeset in webkit [231810] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Clear selections from web content with single tap
https://bugs.webkit.org/show_bug.cgi?id=185634

Reviewed by Tim Horton.

With the switch to the single text selection assistant, we were not correctly clearing the selection when a
single tap happened.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapCommited:]):

11:06 AM Changeset in webkit [231809] by Kocsen Chung
  • 7 edits in tags/Safari-606.1.17.2.1/Source

Versioning.

10:47 AM Changeset in webkit [231808] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.17.2.1

New tag.

10:20 AM Changeset in webkit [231807] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r231763.

The test added with this change is failing an assertion.

Reverted changeset:

"NSEvent event trackers don't work from WebKitTestRunner"
https://bugs.webkit.org/show_bug.cgi?id=185383
https://trac.webkit.org/changeset/231763

9:44 AM Changeset in webkit [231806] by ddkilzer@apple.com
  • 7 edits in trunk/Tools

TestWebKitAPI: Fix warnings found by new clang compiler
<https://webkit.org/b/185631>

Reviewed by Michael Catanzaro.

  • TestWebKitAPI/Tests/WTF/NakedPtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Poisoned.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/RefPtr.cpp:

(TestWebKitAPI::TEST):

  • Add #pragma statements to ignore the new -Wself-assign-overloaded warning and to ignore this as an unknown warning on older clang versions. We want to keep these self assigments as this code is designed to test that use case.
  • TestWebKitAPI/Tests/WebKit/FindMatches.mm:

(TestWebKitAPI::didFindStringMatches):

  • Replace the "rect = rect;" statement that was used to avoid an unused variable warning with two expectations.
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):

  • Switch from -integerValue to -unsignedIntegerValue when comparing against _WKRectEdgeAll since it's an enum declared as an NSUInteger.
9:40 AM Changeset in webkit [231805] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add test to verify behavior of -webkit-text-fill-color when inherited.
https://bugs.webkit.org/show_bug.cgi?id=185427

Patch by Aditya Keerthi <Aditya Keerthi> on 2018-05-15
Reviewed by Daniel Bates.

  • fast/css/webkit-text-fill-color-inherit-expected.html: Added.
  • fast/css/webkit-text-fill-color-inherit.html: Added.
9:30 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
9:29 AM Changeset in webkit [231804] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Add missing header to fix build.
https://bugs.webkit.org/show_bug.cgi?id=185378

Patch by Thomas Klausner <tk@giga.or.at> on 2018-05-15
Reviewed by Michael Catanzaro.

  • platform/network/soup/SoupNetworkSession.h:
8:36 AM Changeset in webkit [231803] by bshafiei@apple.com
  • 3 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231797. rdar://problem/39652624

Update animation when presenting QuickLook
https://bugs.webkit.org/show_bug.cgi?id=185648
<rdar://problem/39652624>

Reviewed by Antoine Quint.

Implement the QuickLook delegate on _WKPreviewControllerDelegate that
produces a zoom-like animation when the QLPreviewController appears.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: (-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]):
  • UIProcess/SystemPreviewController.h: Add a reference back to the page, so that the delegate implementation can access the presentingViewController. (WebKit::SystemPreviewController::page):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:36 AM Changeset in webkit [231802] by bshafiei@apple.com
  • 11 edits in branches/safari-606.1.17-branch/Source

Cherry-pick r231795. rdar://problem/40079228

Download and present System Preview
https://bugs.webkit.org/show_bug.cgi?id=185459
<rdar://problem/40079228>

Reviewed by Tim Horton.

Source/WebCore:

If an <a> is a system preview, tell the resource request about it.

  • html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::handleClick):

Source/WebKit:

Extend DownloadClient so that it can handle the case where
the download was triggered by a System Preview. In this situation
the result (and progress) are piped into QuickLook via the SystemPreviewController.

The DownloadProxy class is also extended to handle the destination
filename and the size of the content.

Lastly, SystemPreviewController is updated to have a start(), show()
and cancel() interface, and no longer adjusts page navigation.

  • UIProcess/Cocoa/DownloadClient.h:
  • UIProcess/Cocoa/DownloadClient.mm: Handle the SystemPreview case, which doesn't have a download delegate, but instead needs to communicate with the SystemPreviewController, if one exists. (WebKit::DownloadClient::didStart): (WebKit::DownloadClient::didReceiveResponse): (WebKit::DownloadClient::didReceiveData): (WebKit::DownloadClient::didCreateDestination): (WebKit::DownloadClient::processDidCrash): (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): (WebKit::DownloadClient::didFinish): (WebKit::DownloadClient::didFail): (WebKit::DownloadClient::didCancel): (WebKit::DownloadClient::releaseActivityToken):
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the new API. (-[_WKPreviewControllerDataSource initWithMIMEType:]): (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): (-[_WKPreviewControllerDataSource setProgress:]): (-[_WKPreviewControllerDataSource finish:]): (-[_WKPreviewControllerDelegate previewControllerDidDismiss:]): (WebKit::SystemPreviewController::start): (WebKit::SystemPreviewController::updateProgress): (WebKit::SystemPreviewController::finish): (WebKit::SystemPreviewController::cancel): (-[_WKPreviewControllerDataSource initWithURL:]): Deleted. (-[_WKPreviewControllerDelegate previewControllerWillDismiss:]): Deleted. (WebKit::SystemPreviewController::canPreview const): Deleted. (WebKit::SystemPreviewController::showPreview): Deleted.
  • UIProcess/Downloads/DownloadProxy.h: Track the destination file by name and size. Also expose a helper to identify system preview downloads. (WebKit::DownloadProxy::destinationFilename const): (WebKit::DownloadProxy::setDestinationFilename): (WebKit::DownloadProxy::expectedContentLength const): (WebKit::DownloadProxy::setExpectedContentLength): (WebKit::DownloadProxy::bytesLoaded const): (WebKit::DownloadProxy::setBytesLoaded): (WebKit::DownloadProxy::isSystemPreviewDownload const):
  • UIProcess/SystemPreviewController.cpp: New API. (WebKit::SystemPreviewController::canPreview const): (WebKit::SystemPreviewController::sendPageBack): Deleted. (WebKit::SystemPreviewController::showPreview): Deleted.
  • UIProcess/SystemPreviewController.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::m_configurationPreferenceValues): (WebKit::WebPageProxy::reattachToWebProcess): (WebKit::WebPageProxy::resetState):
  • UIProcess/WebPageProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:15 AM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
8:14 AM Changeset in webkit [231801] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[WPE] Build failure with RPi userland drivers and gstreamer-gl
https://bugs.webkit.org/show_bug.cgi?id=185639

Reviewed by Philippe Normand.

When building for the RPi with userland drivers (dispmanx) override the
value of GST_GL_HAVE_GLSYNC to 1 to avoid that the gstreamer-gl headers
try to redefine the GLsync type that is already defined in libepoxy.

Defining gl2_h_ is also needed to avoid other conflicting type
definitions that happen between libepoxy and RPi GLES2 userland
headers when the gstreamer-gl headers are included.

The issue doesn't happen with 1.14.0, so a check for that is added
as well.

No new tests, no behavior change. It is a build fix.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
7:24 AM Changeset in webkit [231800] by Michael Catanzaro
  • 4 edits in trunk

Unreviewed, rolling out r230749

This did not work as desired.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

6:49 AM Changeset in webkit [231799] by krit@webkit.org
  • 12 edits in trunk

Add new SVGDOM SVGFEBLEND constants
https://bugs.webkit.org/show_bug.cgi?id=185581

Reviewed by Simon Fraser.

Provide new SVG DOM constants for the new blend modes added to feBlend.

https://drafts.fxtf.org/filter-effects-1/#InterfaceSVGFEBlendElement

Source/WebCore:

  • platform/graphics/GraphicsTypes.cpp:

(WebCore::blendModeName):

  • platform/graphics/GraphicsTypes.h:
  • svg/SVGFEBlendElement.h:

(WebCore::SVGPropertyTraits<BlendMode>::highestEnumValue):
(WebCore::SVGPropertyTraits<BlendMode>::toString):

  • svg/SVGFEBlendElement.idl:

LayoutTests:

  • svg/custom/js-svg-constructors-expected.txt:
  • svg/custom/js-svg-constructors.svg:
  • svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement.html:
  • svg/dom/SVGAnimatedEnumeration-case-sensitive-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-case-sensitive.html:
4:01 AM Changeset in webkit [231798] by graouts@webkit.org
  • 264 edits in trunk

[Web Animations] Expose Web Animations CSS integration as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=185647

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

  • css-animations/test_animation-cancel.html:
  • css-animations/test_animation-computed-timing.html:
  • css-animations/test_animation-currenttime.html:
  • css-animations/test_animation-finish.html:
  • css-animations/test_animation-finished.html:
  • css-animations/test_animation-id.html:
  • css-animations/test_animation-pausing.html:
  • css-animations/test_animation-playstate.html:
  • css-animations/test_animation-ready.html:
  • css-animations/test_animation-reverse.html:
  • css-animations/test_animation-starttime.html:
  • css-animations/test_animations-dynamic-changes.html:
  • css-animations/test_cssanimation-animationname.html:
  • css-animations/test_document-get-animations.html:
  • css-animations/test_effect-target.html:
  • css-animations/test_element-get-animations.html:
  • css-animations/test_event-dispatch.html:
  • css-animations/test_event-order.html:
  • css-animations/test_keyframeeffect-getkeyframes.html:
  • css-animations/test_pseudoElement-get-animations.html:
  • css-animations/test_setting-effect.html:
  • css-transitions/test_animation-cancel.html:
  • css-transitions/test_animation-computed-timing.html:
  • css-transitions/test_animation-currenttime.html:
  • css-transitions/test_animation-finished.html:
  • css-transitions/test_animation-pausing.html:
  • css-transitions/test_animation-ready.html:
  • css-transitions/test_animation-starttime.html:
  • css-transitions/test_csstransition-transitionproperty.html:
  • css-transitions/test_document-get-animations.html:
  • css-transitions/test_effect-target.html:
  • css-transitions/test_element-get-animations.html:
  • css-transitions/test_event-dispatch.html:
  • css-transitions/test_keyframeeffect-getkeyframes.html:
  • css-transitions/test_pseudoElement-get-animations.html:
  • css-transitions/test_setting-effect.html:

LayoutTests/imported/w3c:

Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

  • web-platform-tests/css-timing-1/frames-timing-functions-output.html:
  • web-platform-tests/web-animations/interfaces/Animation/ready.html:
  • web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
  • web-platform-tests/web-animations/timing-model/animations/reversing-an-animation.html:

Source/WebCore:

Make the Web Animations CSS integration flag an experimental feature, and only indicate that it is on if the Web Animations
experimental feature is also enabled.

  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::resume):

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::clearHostElement):

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):

  • page/Frame.cpp:

(WebCore::Frame::clearTimers):

  • page/FrameView.cpp:

(WebCore::FrameView::didDestroyRenderTree):

  • page/Page.cpp:

(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebAnimationsCSSIntegrationEnabled):
(WebCore::RuntimeEnabledFeatures::webAnimationsCSSIntegrationEnabled const):
(WebCore::RuntimeEnabledFeatures::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled const): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform const):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const):
(WebCore::RenderLayerCompositor::isRunningTransformAnimation const):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::webAnimationsCSSIntegrationEnabled):
(WebCore::InternalSettings::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.

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

(WebCore::Internals::numberOfActiveAnimations const):
(WebCore::Internals::animationsAreSuspended const):
(WebCore::Internals::animationsInterval const):
(WebCore::Internals::suspendAnimations const):
(WebCore::Internals::resumeAnimations const):

Source/WebKit:

Rename the Web Animations CSS integration flag.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebAnimationsCSSIntegrationEnabled):
(WKPreferencesGetWebAnimationsCSSIntegrationEnabled):
(WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
(WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setWebAnimationsCSSIntegrationEnabled:]):
(-[WKPreferences _webAnimationsCSSIntegrationEnabled]):
(-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): Deleted.
(-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): Deleted.

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

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setWebAnimationsCSSIntegrationEnabled):
(WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.

  • WebProcess/InjectedBundle/InjectedBundle.h:

Source/WebKitLegacy/mac:

Rename the Web Animations CSS integration flag.

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

(+[WebPreferences initialize]):
(-[WebPreferences webAnimationsCSSIntegrationEnabled]):
(-[WebPreferences setWebAnimationsCSSIntegrationEnabled:]):
(-[WebPreferences cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): Deleted.
(-[WebPreferences setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): Deleted.

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

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Rename the Web Animations CSS integration flag.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::webAnimationsCSSIntegrationEnabled):
(WebPreferences::setWebAnimationsCSSIntegrationEnabled):
(WebPreferences::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
(WebPreferences::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Rename the Web Animations CSS integration flag.

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

  • animations/3d/matrix-transform-type-animation.html:
  • animations/3d/replace-filling-transform.html:
  • animations/3d/transform-origin-vs-functions.html:
  • animations/3d/transform-perspective.html:
  • animations/additive-transform-animations.html:
  • animations/animation-border-overflow.html:
  • animations/animation-callback-timestamp.html:
  • animations/animation-controller-drt-api.html:
  • animations/animation-direction-reverse-fill-mode-hardware.html:
  • animations/animation-direction-reverse-hardware-opacity.html:
  • animations/animation-direction-reverse-hardware.html:
  • animations/animation-direction-reverse-non-hardware.html:
  • animations/animation-direction-reverse-timing-functions-hardware.html:
  • animations/animation-direction-reverse-timing-functions.html:
  • animations/animation-direction.html:
  • animations/animation-followed-by-transition.html:
  • animations/animation-hit-test-transform.html:
  • animations/animation-hit-test.html:
  • animations/animation-offscreen-to-onscreen.html:
  • animations/change-completed-animation-transform.html:
  • animations/change-keyframes.html:
  • animations/combo-transform-rotate+scale.html:
  • animations/cross-fade-background-image.html:
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/duplicate-keys-expected.html:
  • animations/duplicate-keys.html:
  • animations/font-variations/font-stretch.html:
  • animations/font-variations/font-style.html:
  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • animations/font-variations/font-weight.html:
  • animations/generic-from-to.html:
  • animations/import.html:
  • animations/keyframe-multiple-timing-functions-transform.html:
  • animations/keyframe-timing-functions-transform.html:
  • animations/keyframe-timing-functions.html:
  • animations/keyframe-timing-functions2.html:
  • animations/keyframes-comma-separated.html:
  • animations/keyframes-dynamic.html:
  • animations/keyframes-infinite-iterations.html:
  • animations/keyframes-invalid-keys.html:
  • animations/keyframes-out-of-order.html:
  • animations/keyframes.html:
  • animations/lineheight-animation.html:
  • animations/longhand-timing-function.html:
  • animations/matrix-anim.html:
  • animations/missing-from-to-transforms.html:
  • animations/missing-from-to.html:
  • animations/missing-keyframe-properties-repeating.html:
  • animations/missing-keyframe-properties-timing-function.html:
  • animations/missing-keyframe-properties.html:
  • animations/missing-values-first-keyframe.html:
  • animations/missing-values-last-keyframe.html:
  • animations/multiple-animations-timing-function.html:
  • animations/multiple-animations.html:
  • animations/multiple-keyframes.html:
  • animations/negative-delay.html:
  • animations/pause-crash.html:
  • animations/play-state-start-paused.html:
  • animations/resources/animation-test-helpers.js:

(pauseAnimationAtTimeOnElement):

  • animations/simultaneous-start-left.html:
  • animations/simultaneous-start-transform.html:
  • animations/spring-function.html:
  • animations/stacking-context-unchanged-while-running.html:
  • animations/timing-functions.html:
  • animations/transition-and-animation-1.html:
  • animations/transition-and-animation-2.html:
  • animations/transition-and-animation-3.html:
  • animations/unanimated-style.html:
  • animations/unprefixed-keyframes.html:
  • animations/width-using-ems.html:
  • compositing/animation/animated-composited-inside-hidden.html:
  • compositing/animation/computed-style-during-delay.html:
  • compositing/animation/layer-for-filling-animation.html:
  • compositing/backing/backface-visibility-flip.html:
  • compositing/contents-scale/animating.html:
  • compositing/layer-creation/animation-overlap-with-children.html:
  • compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
  • compositing/layer-creation/multiple-keyframes-animation-overlap.html:
  • compositing/layer-creation/overlap-animation-clipping.html:
  • compositing/layer-creation/overlap-animation-container.html:
  • compositing/layer-creation/overlap-animation.html:
  • compositing/layer-creation/scale-rotation-animation-overlap.html:
  • compositing/layer-creation/translate-animation-overlap.html:
  • compositing/layer-creation/translate-scale-animation-overlap.html:
  • compositing/overflow/overflow-positioning.html:
  • compositing/reflections/animation-inside-reflection.html:
  • compositing/reflections/nested-reflection-animated.html:
  • compositing/reflections/nested-reflection-transition.html:
  • compositing/transitions/scale-transition-no-start.html:
  • compositing/transitions/singular-scale-transition.html:
  • compositing/visible-rect/animated.html:
  • css3/calc/transitions-dependent.html:
  • css3/calc/transitions.html:
  • css3/filters/backdrop/animation.html:
  • css3/filters/composited-during-animation.html:
  • css3/filters/filter-animation-from-none-hw.html:
  • css3/filters/filter-animation-from-none-multi-hw.html:
  • css3/filters/filter-animation-from-none-multi.html:
  • css3/filters/filter-animation-from-none.html:
  • css3/filters/filter-animation-hw.html:
  • css3/filters/filter-animation-multi-hw.html:
  • css3/filters/filter-animation-multi.html:
  • css3/filters/filter-animation.html:
  • css3/masking/clip-path-animation.html:
  • fast/animation/css-animation-resuming-when-visible-with-style-change.html:
  • fast/animation/css-animation-resuming-when-visible.html:
  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/css-generated-content/pseudo-animation.html:
  • fast/filter-image/filter-image-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
  • imported/blink/transitions/unprefixed-transform.html:
  • transitions/background-position-transitions.html:
  • transitions/background-transitions.html:
  • transitions/blendmode-transitions.html:
  • transitions/border-radius-transition.html:
  • transitions/clip-path-path-transitions.html:
  • transitions/clip-path-transitions.html:
  • transitions/clip-transition.html:
  • transitions/color-transition-all.html:
  • transitions/color-transition-premultiplied.html:
  • transitions/color-transition-rounding.html:
  • transitions/cross-fade-background-image.html:
  • transitions/cross-fade-border-image.html:
  • transitions/cubic-bezier-overflow-color.html:
  • transitions/cubic-bezier-overflow-length.html:
  • transitions/cubic-bezier-overflow-shadow.html:
  • transitions/cubic-bezier-overflow-svg-length.html:
  • transitions/cubic-bezier-overflow-transform.html:
  • transitions/default-timing-function.html:
  • transitions/delay.html:
  • transitions/flex-transitions.html:
  • transitions/font-family-during-transition.html:
  • transitions/frames-timing-function.html:
  • transitions/interrupted-all-transition.html:
  • transitions/longhand-vs-shorthand-initial.html:
  • transitions/mask-transitions.html:
  • transitions/min-max-width-height-transitions.html:
  • transitions/mismatched-shadow-styles.html:
  • transitions/mismatched-shadow-transitions.html:
  • transitions/mixed-type.html:
  • transitions/move-after-transition.html:
  • transitions/multiple-background-size-transitions.html:
  • transitions/multiple-background-transitions.html:
  • transitions/multiple-mask-transitions.html:
  • transitions/multiple-shadow-transitions.html:
  • transitions/negative-delay.html:
  • transitions/opacity-transition-zindex.html:
  • transitions/resources/transition-test-helpers.js:
  • transitions/shape-outside-transitions.html:
  • transitions/shorthand-border-transitions.html:
  • transitions/shorthand-transitions.html:
  • transitions/steps-timing-function.html:
  • transitions/svg-layout-transition.html:
  • transitions/svg-text-shadow-transition.html:
  • transitions/svg-transitions.html:
  • transitions/text-indent-transition.html:
  • transitions/transform-op-list-match.html:
  • transitions/transform-op-list-no-match.html:
  • transitions/transition-end-event-rendering.html:
  • transitions/transition-hit-test-transform.html:
  • transitions/transition-hit-test.html:
  • transitions/transition-in-delay-phase.html:
  • transitions/transition-on-element-with-content.html:
  • transitions/transition-shorthand-delay.html:
  • transitions/transition-timing-function.html:
  • transitions/transition-to-from-auto.html:
  • transitions/transition-to-from-undefined.html:
  • transitions/visited-link-color.html:
  • transitions/zero-duration-in-list.html:
  • transitions/zero-duration-with-non-zero-delay-start.html:
  • webanimations/css-animations.html:
  • webanimations/css-transitions.html:
3:36 AM Changeset in webkit [231797] by dino@apple.com
  • 3 edits in trunk/Source/WebKit

Update animation when presenting QuickLook
https://bugs.webkit.org/show_bug.cgi?id=185648
<rdar://problem/39652624>

Reviewed by Antoine Quint.

Implement the QuickLook delegate on _WKPreviewControllerDelegate that
produces a zoom-like animation when the QLPreviewController appears.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]):

  • UIProcess/SystemPreviewController.h: Add a reference back to the page, so that

the delegate implementation can access the presentingViewController.
(WebKit::SystemPreviewController::page):

3:24 AM Changeset in webkit [231796] by ddkilzer@apple.com
  • 5 edits in trunk/Source/WebCore

Fix -Wreturn-std-move warnings in WebKit found by new clang compiler
<https://webkit.org/b/185621>

Reviewed by Youenn Fablet.

Fix warnings like the following:

In file included from DerivedSources/WebCore/unified-sources/UnifiedSource139.cpp:5:
./Modules/mediastream/PeerConnectionBackend.cpp:412:16: error: local variable 'sdp' will be copied despite being returned by name [-Werror,-Wreturn-std-move]

return sdp;


./Modules/mediastream/PeerConnectionBackend.cpp:412:16: note: call 'std::move' explicitly to avoid copying

return sdp;


std::move(sdp)

1 error generated.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::filterSDP const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::rangeClosestToRange):

  • bindings/js/JSDOMConvertSequences.h:

(WebCore::Detail::GenericSequenceConverter::convert):
(WebCore::Detail::NumericSequenceConverter::convertArray):

  • bindings/js/JSDOMConvertStrings.cpp:

(WebCore::stringToByteString):
(WebCore::stringToUSVString):

  • Use WTFMove() in return statements to fix the warnings.
2:50 AM Changeset in webkit [231795] by dino@apple.com
  • 11 edits in trunk/Source

Download and present System Preview
https://bugs.webkit.org/show_bug.cgi?id=185459
<rdar://problem/40079228>

Reviewed by Tim Horton.

Source/WebCore:

If an <a> is a system preview, tell the resource request about it.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

Source/WebKit:

Extend DownloadClient so that it can handle the case where
the download was triggered by a System Preview. In this situation
the result (and progress) are piped into QuickLook via the SystemPreviewController.

The DownloadProxy class is also extended to handle the destination
filename and the size of the content.

Lastly, SystemPreviewController is updated to have a start(), show()
and cancel() interface, and no longer adjusts page navigation.

  • UIProcess/Cocoa/DownloadClient.h:
  • UIProcess/Cocoa/DownloadClient.mm: Handle the SystemPreview case, which

doesn't have a download delegate, but instead needs to communicate with
the SystemPreviewController, if one exists.
(WebKit::DownloadClient::didStart):
(WebKit::DownloadClient::didReceiveResponse):
(WebKit::DownloadClient::didReceiveData):
(WebKit::DownloadClient::didCreateDestination):
(WebKit::DownloadClient::processDidCrash):
(WebKit::DownloadClient::decideDestinationWithSuggestedFilename):
(WebKit::DownloadClient::didFinish):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::didCancel):
(WebKit::DownloadClient::releaseActivityToken):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the new API.

(-[_WKPreviewControllerDataSource initWithMIMEType:]):
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(-[_WKPreviewControllerDataSource setProgress:]):
(-[_WKPreviewControllerDataSource finish:]):
(-[_WKPreviewControllerDelegate previewControllerDidDismiss:]):
(WebKit::SystemPreviewController::start):
(WebKit::SystemPreviewController::updateProgress):
(WebKit::SystemPreviewController::finish):
(WebKit::SystemPreviewController::cancel):
(-[_WKPreviewControllerDataSource initWithURL:]): Deleted.
(-[_WKPreviewControllerDelegate previewControllerWillDismiss:]): Deleted.
(WebKit::SystemPreviewController::canPreview const): Deleted.
(WebKit::SystemPreviewController::showPreview): Deleted.

  • UIProcess/Downloads/DownloadProxy.h: Track the destination file by name

and size. Also expose a helper to identify system preview downloads.
(WebKit::DownloadProxy::destinationFilename const):
(WebKit::DownloadProxy::setDestinationFilename):
(WebKit::DownloadProxy::expectedContentLength const):
(WebKit::DownloadProxy::setExpectedContentLength):
(WebKit::DownloadProxy::bytesLoaded const):
(WebKit::DownloadProxy::setBytesLoaded):
(WebKit::DownloadProxy::isSystemPreviewDownload const):

  • UIProcess/SystemPreviewController.cpp: New API.

(WebKit::SystemPreviewController::canPreview const):
(WebKit::SystemPreviewController::sendPageBack): Deleted.
(WebKit::SystemPreviewController::showPreview): Deleted.

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

(WebKit::m_configurationPreferenceValues):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:
1:59 AM Changeset in webkit [231794] by Antti Koivisto
  • 3 edits
    2 adds in trunk

animation-play-state: paused causes very high cpu load because of style invalidation loop
https://bugs.webkit.org/show_bug.cgi?id=182436
<rdar://problem/37182562>

Reviewed by Dean Jackson.

Source/WebCore:

Test: animations/animation-playstate-paused-style-resolution.html

If the style of an element with 'animation-play-state: paused' is recomputed so it stays
paused we would enter zero-duration animation timer loop.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):

Don't move to AnimationState::PausedWaitResponse unless we get AnimationStateInput::StyleAvailable
(matching the comments). Otherwise just stay in the existing paused state.

Remove AnimationStateInput::StartAnimation from assertion as the case can't happen.

LayoutTests:

  • animations/animation-playstate-paused-style-resolution-expected.txt: Added.
  • animations/animation-playstate-paused-style-resolution.html: Added.
1:07 AM Changeset in webkit [231793] by bshafiei@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231702. rdar://problem/40038478

REGRESSION(r231057): Encrypted media content playback failures
https://bugs.webkit.org/show_bug.cgi?id=185537
<rdar://problem/40038478>

Reviewed by Eric Carlson.

Put access to the SecurityServer back in the sandbox so we can validate the
signatures of media encoder/decoders.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231702 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:07 AM Changeset in webkit [231792] by bshafiei@apple.com
  • 4 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231676. rdar://problem/40038038

[iOS] Release page load process assertion if the screen is locked
https://bugs.webkit.org/show_bug.cgi?id=185333

Reviewed by Geoff Garen.

We normally take a background process assertion during page loads to allow them to complete
even if the tab / app is backgrounded. We should however avoid doing so when the backgrounding
is caused by the screen locking. Keeping the process assertion in this case would prevent the
whole device from sleeping longer than it should, thus negatively impacting power.

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationState): (WebKit::NavigationState::releaseNetworkActivityToken): (WebKit::NavigationState::didChangeIsLoading):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231676 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:06 AM Changeset in webkit [231791] by bshafiei@apple.com
  • 3 edits in branches/safari-606.1.17-branch

Cherry-pick r231663. rdar://problem/39987839

[iOS] Apps that are not visible may not get suspended if they trigger page loads while in the background
https://bugs.webkit.org/show_bug.cgi?id=185318

Reviewed by Geoffrey Garen.

Whenever there is a page load going on, we take a background process assertion to delay process
suspension until this load completes. However, there is also a 3 seconds grace period after
a load is complete to allow the app to trigger a new load shortly after. This grace period was
introduced to support use cases where a visible app does loads in an offscreen view. However,
it can be abused by apps running in the background as they could trigger new page loads while
in the background to delay process suspension. This patch tightens the policy so that only
apps that are currently visible get to use this grace period. Apps that are in the background
get to finish their current load and will then get suspended.

  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::didChangeIsLoading):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231663 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:06 AM Changeset in webkit [231790] by bshafiei@apple.com
  • 4 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231648. rdar://problem/39627764

REGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility setting changes
https://bugs.webkit.org/show_bug.cgi?id=185515
<rdar://problem/39627764>

Reviewed by Chris Fleizach.

The UIProcess needs to register for relevant Accessibility preference updates so that it can notify the
WebContent processes that screen properties have changed.

This is represented by NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification.

Tested manually with the Accessibility preferences pane.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers): Add notification observer. When the notification is received, call 'screenPropertiesStateChanged' to message the information to the WebContent processes. (WebKit::WebProcessPool::unregisterNotificationObservers): Clean up observer.
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::screenPropertiesStateChanged): Added helper function.
  • UIProcess/WebProcessPool.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231648 268f45cc-cd09-0410-ab3c-d52691b4dbfc

May 14, 2018:

10:35 PM Changeset in webkit [231789] by youenn@apple.com
  • 13 edits in trunk

readableStreamDefaultControllerError should return early if stream is not readable
https://bugs.webkit.org/show_bug.cgi?id=185602

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/bad-underlying-sources-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.serviceworker.https-expected.txt:
  • web-platform-tests/streams/readable-streams/garbage-collection-expected.txt:
  • web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/garbage-collection.serviceworker.https-expected.txt:
  • web-platform-tests/streams/readable-streams/tee-expected.txt:

Source/WebCore:

Return early if stream is not readable in @readableStreamDefaultControllerError.
Update call sites to no longer check for ReadableStream state.
Covered by unflaked and rebased tests.

  • Modules/streams/ReadableStreamDefaultController.js:

(error):

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamDefaultControllerError):
(readableStreamDefaultControllerCallPullIfNeeded):

LayoutTests:

10:31 PM Changeset in webkit [231788] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-6.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=185549

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Catch any potential rejected promise.

  • web-platform-tests/fetch/api/response/response-stream-disturbed-6.html:

LayoutTests:

10:27 PM Changeset in webkit [231787] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Remove butterflyMask from DFGAbstractHeap
https://bugs.webkit.org/show_bug.cgi?id=185640

Reviewed by Saam Barati.

We don't have a butterfly indexing mask anymore so we don't need
the abstract heap information for it anymore.

  • dfg/DFGAbstractHeap.h:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

10:23 PM Changeset in webkit [231786] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Implement width computation for non-replaced block level inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185641

Reviewed by Sam Weinig.

Block level inflow elements participate in block formatting context.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeWidth const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeInFlowWidth const):

  • layout/inlineformatting/InlineFormattingContext.h:
8:09 PM Changeset in webkit [231785] by beidson@apple.com
  • 8 edits
    2 adds in trunk

Add an API test to guard against regressions while re-entering setDefersLoading:.
<rdar://problem/37033737> and https://bugs.webkit.org/show_bug.cgi?id=185630

Reviewed by Chris Dumez.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setDefersLoadingForTesting:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setDefersLoadingForTesting):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm: Added.

(-[DoubleDefersNavigationDelegate _webView:navigation:didSameDocumentNavigation:]):
(-[DoubleDefersNavigationDelegate webView:didFinishNavigation:]):
(-[DefersScheme initWithBytes:]):
(-[DefersScheme webView:startURLSchemeTask:]):
(-[DefersScheme webView:stopURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoadingPlugin.mm: Added.

(-[DoubleDefersLoadingPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[DoubleDefersLoadingPlugIn webProcessPlugInBrowserContextController:didSameDocumentNavigation:forFrame:]):
(-[DoubleDefersLoadingPlugIn dealloc]):

8:00 PM Changeset in webkit [231784] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the iOS build after r231779

Also address a minor in-person review comment by returning "extrazoom" instead of the empty string.

  • page/DisabledAdaptations.cpp:

(WebCore::extraZoomModeAdaptationName):

7:24 PM Changeset in webkit [231783] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Use the system font by default in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=185638
<rdar://problem/40230277>

Reviewed by Wenson Hsieh.

  • Shared/WebPreferencesDefaultValues.h:
6:52 PM Changeset in webkit [231782] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: Remove unused --value-visual-highlight CSS variable
https://bugs.webkit.org/show_bug.cgi?id=185636

Reviewed by Matt Baker.

  • UserInterface/Views/Variables.css:

(:root):

6:44 PM Changeset in webkit [231781] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r231755.

Change is not correct

Reverted changeset:

"-Wmemset-elt-size warning in LibWebRTCSocket constructor"
https://bugs.webkit.org/show_bug.cgi?id=185555
https://trac.webkit.org/changeset/231755

6:31 PM Changeset in webkit [231780] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] FormattingContext:computeOutOfFlowNonReplacedHeight/Width should use the computed margins/paddings/borders
https://bugs.webkit.org/show_bug.cgi?id=185633

Reviewed by Sam Weinig.

By the time we start computing height and width, DisplayBox should already have the computed values for margin/padding/border.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::paddingTop const):
(WebCore::Display::Box::paddingLeft const):
(WebCore::Display::Box::paddingBottom const):
(WebCore::Display::Box::paddingRight const):
(WebCore::Display::Box::borderTop const):
(WebCore::Display::Box::borderLeft const):
(WebCore::Display::Box::borderBottom const):
(WebCore::Display::Box::borderRight const):

6:07 PM Changeset in webkit [231779] by Wenson Hsieh
  • 33 edits
    2 copies
    1 add
    1 delete in trunk

[Extra zoom mode] Google search results are excessively zoomed in
https://bugs.webkit.org/show_bug.cgi?id=185347
<rdar://problem/39999778>

Reviewed by Tim Horton.

Source/WebCore:

It turns out that basing minimum layout size and shrink-to-fit behaviors off of the shrink-to-fit viewport
argument poses compatibility risks with web pages that already specify shrink-to-fit to opt out of default
viewport shrinking behaviors in 1/3 multitasking mode on iPad.

One way to resolve this is to introduce a new viewport meta content attribute to disable viewport heuristics in
extra zoom mode. However, combined shrink-to-fit and minimum device width behaviors are difficult to describe
using a single backwards-compatible viewport meta content attribute, and the need to suppress the default
behavior of shrink-to-fit=no if such an attribute is not disabled further muddles our viewport story.

After some internal deliberation, we’ve decided to experiment with a new meta tag named "disabled-adaptations".
The content of this meta tag is a comma-separated list of adaptation names; if an adaptation name matches a
known adaptation type (for instance, extra zoom mode), we disable the class of behaviors used to adapt web
content. The first and only known adaptation type is extra zoom mode, which affects shrink-to-fit and layout
size adjustments.

See per-method changes below for more details.

Test: fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::processDisabledAdaptations):

  • dom/Document.h:

(WebCore::Document::disabledAdaptations const):

Add disabled adaptations to Document. Changes to disabled adaptations are not propagated if the parsed disabled
adaptation types don't change; upon changing adaptation types, notify the client to adjust for the new disabled
adaptations (currently, this only affects the viewport configuration).

  • dom/ViewportArguments.h:
  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::process):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

Restore the set of disabled adaptations when restoring a page from the cache.

  • page/Chrome.cpp:

(WebCore::Chrome::dispatchDisabledAdaptationsDidChange const):

  • page/Chrome.h:
  • page/ChromeClient.h:

Add plumbing for changes to the set of disabled adaptations.

  • page/DisabledAdaptations.cpp: Added.

(WebCore::extraZoomModeAdaptationName):

  • page/DisabledAdaptations.h: Added.

Introduce a header containing a new enum for the extra zoom mode adaptation, as well as a helper function to
return the extra zoom mode adaptation name.

  • page/Page.cpp:

(WebCore::Page::disabledAdaptations const):

Returns the mainframe's set of adaptations to disable.

  • page/Page.h:
  • page/RemoteFrame.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setDisabledAdaptationsMetaTagEnabled):
(WebCore::RuntimeEnabledFeatures::disabledAdaptationsMetaTagEnabled const):

Add a new runtime feature to gate handling the "disabled-adaptations" meta tag.

  • page/ViewportConfiguration.cpp:

(WebCore::shouldOverrideShrinkToFitArgument):
(WebCore::needsUpdateAfterChangingDisabledAdaptations):
(WebCore::ViewportConfiguration::setDisabledAdaptations):
(WebCore::ViewportConfiguration::shouldOverrideDeviceWidthAndShrinkToFit const):

Consult whether or not extra zoom mode adaptations are disabled, instead of the shrink-to-fit attribute value.

(WebCore::ViewportConfiguration::updateConfiguration):

  • page/ViewportConfiguration.h:

Add an OptionSet of disabled adaptation types to ViewportConfiguration. Updates to the adaptation type are
propagated to the ViewportConfiguration from Document, through the ChromeClient and the client layer (refer to
changes in WebKit). Once the OptionSet is changed, we recompute the viewport configuration only if needed by the
platform.

(WebCore::ViewportConfiguration::viewLayoutSize const):
(WebCore::ViewportConfiguration::disabledAdaptations const):

  • page/WindowFeatures.cpp:

(WebCore::parseDisabledAdaptations):

  • page/WindowFeatures.h:

Add a new helper to parse the meta content of a "disabled-adaptations" tag as an OptionSet of disabled
adaptation types. The string is parsed by first splitting on the comma character, and then iterating over lower
case, whitespace-stripped tokens to look for known adaptation names. So far, only extra zoom mode is supported.

  • testing/Internals.cpp:

(WebCore::Internals::extraZoomModeAdaptationName const):

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

Expose the extra zoom mode adaptation name to the DOM, only when running layout tests.

Source/WebKit:

Adds a new experimental feature for the "disabled-adaptations" meta tag, and adds plumbing in WebKit to
propagate disabled adaptation changes to the ViewportConfiguration. The experimental feature is on by default in
extra zoom mode.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::dispatchDisabledAdaptationsDidChange const):

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

(WebKit::WebPage::disabledAdaptationsDidChange):

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/ios:

Adds a WebKitLegacy method stub for disabled adaptation plumbing.

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::dispatchDisabledAdaptationsDidChange const):

LayoutTests:

Refactor an existing layout test to exercise disabled adaptations in extra zoom mode.

  • fast/viewport/extrazoom/viewport-change-min-device-width.html: Removed.
  • fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html: Added.
5:32 PM Changeset in webkit [231778] by jdiggs@igalia.com
  • 10 edits
    2 adds in trunk

AX: Listbox and Combobox roles embedded in labels should participate in name calculation
https://bugs.webkit.org/show_bug.cgi?id=185521

Reviewed by Chris Fleizach.

Source/WebCore:

Take selected children into account when computing the name in accessibleNameForNode.
Add ListBox to the roles for which accessibleNameDerivesFromContent returns false so
that native select elements with size > 1 are treated the same way as ARIA listbox.
Also add ListBox to the roles which are treated as controls when used in ARIA. Finally,
prevent labels which contain unrelated controls from being used as an AXTitleUIElement.
This causes us to build a string from the label and its descendants, ensuring the latter
participate in the name calculation.

Test: accessibility/text-alternative-calculation-from-listbox.html

  • accessibility/AccessibilityLabel.cpp:

(WebCore::childrenContainUnrelatedControls):
(WebCore::AccessibilityLabel::containsUnrelatedControls const):

  • accessibility/AccessibilityLabel.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::accessibleNameForNode):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
(WebCore::AccessibilityObject::isARIAControl):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::exposesTitleUIElement const):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

LayoutTests:

  • accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
  • accessibility/text-alternative-calculation-from-listbox-expected.txt: Added.
  • accessibility/text-alternative-calculation-from-listbox.html: Added.
  • platform/mac/accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
  • platform/win/accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
4:34 PM Changeset in webkit [231777] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/mac

Fix the Apple Internal build

See <rdar://problem/40237873> for more details.

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController enterFullScreen:]):
(-[WebFullScreenController finishedEnterFullScreenAnimation:]):
(-[WebFullScreenController exitFullScreen]):
(-[WebFullScreenController finishedExitFullScreenAnimation:]):
(-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]):
(-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]):

4:19 PM Changeset in webkit [231776] by dbates@webkit.org
  • 2 edits
    2 adds in trunk/Tools

[iOS] Add a test to ensure that setTimeout() does not fire more than expected when using UIWebView
https://bugs.webkit.org/show_bug.cgi?id=185599
<rdar://problem/22493890>

Reviewed by Simon Fraser.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/SetTimeoutFunction.mm: Added.

(-[SetTimeoutFunctionWebViewDelegate webViewDidFinishLoad:]):
(-[SetTimeoutFunctionWebViewDelegate webView:didFailLoadWithError:]):
(-[SetTimeoutFunctionWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/set-timeout-function.html: Added.
4:18 PM Changeset in webkit [231775] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: small bugs in CLI and error codes
https://bugs.webkit.org/show_bug.cgi?id=185629

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-14
Reviewed by Michael Saboff.

Fix two commandline args with use '-f', correct
error code of failures.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):

4:16 PM Changeset in webkit [231774] by Ryan Haddad
  • 5 edits in trunk/Tools

Disable API tests that time out after pointer poisioning was disabled.
https://bugs.webkit.org/show_bug.cgi?id=185586

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WTF/Poisoned.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

4:01 PM Changeset in webkit [231773] by webkit@devinrousso.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas tab: don't automatically select a recording when viewing a canvas
https://bugs.webkit.org/show_bug.cgi?id=182950

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel):
(WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
(WI.CanvasSidebarPanel.prototype._canvasChanged):
(WI.CanvasSidebarPanel.prototype._recordingChanged):
(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
Add a "dummy" ScopeBarItem to the recording ScopeBar that is selected whenever a TreeElement
that doesn't correspond to a Recording is selected. This way, the Recording ScopeBar will
become deselected, and the list of actions will disappear. Clicking on the Recording ScopeBar
will show the previously selected Recording.

3:38 PM Changeset in webkit [231772] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[INTL] Handle error in defineProperty for supported locales length
https://bugs.webkit.org/show_bug.cgi?id=185623

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-05-14
Reviewed by Saam Barati.

Adds the missing RETURN_IF_EXCEPTION after defineOwnProperty for the
length of the supported locales array.

  • runtime/IntlObject.cpp:

(JSC::supportedLocales):

3:31 PM Changeset in webkit [231771] by Chris Dumez
  • 14 edits
    1 delete in trunk/Source/WebKit

Overly aggressive timer throttling in service workers
https://bugs.webkit.org/show_bug.cgi?id=185575
<rdar://problem/40219038>

Reviewed by Geoff Garen.

After ~30 seconds, the system would put the service worker process in "App Nap",
causing its timers to get aggressively throttled. This happens because the
service worker processes are WebProcesses that have no visible WebPages.

To address the issue, we now disable process suppression for all service worker
processes. This causes those processes to construct a UserActivity which prevents
App Nap.

This patch also refactors the code a bit to avoid duplication. The ProcessSuppression
suppression logic in now all on ChildProcessProxy / ChildProcess.

  • NetworkProcess/NetworkProcess.messages.in:
  • PluginProcess/PluginProcess.messages.in:
  • Shared/ChildProcess.messages.in:
  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::setProcessSuppressionEnabled):

  • UIProcess/ChildProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/mac/NetworkProcessProxyMac.mm: Removed.
  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::didFinishLaunching):

  • UIProcess/ServiceWorkerProcessProxy.h:
  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.messages.in:
3:14 PM Changeset in webkit [231770] by aestes@apple.com
  • 9 edits in trunk/Source/WebKit

[Wi-Fi Assertions] Allow clients to specify a context identifier
https://bugs.webkit.org/show_bug.cgi?id=185620
<rdar://problem/39915196>

Reviewed by Brady Eidson.

Added an SPI on _WKProcessPoolConfiguration that allows clients to specify a
context identifier.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration wirelessContextIdentifier]):
(-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

2:26 PM Changeset in webkit [231769] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: Automation.getBrowsingContext returns window origin that differs from window.screenX/Y
https://bugs.webkit.org/show_bug.cgi?id=185571
<rdar://problem/40180785>

Reviewed by Timothy Hatcher.

This code path was refactored to use completion handlers. It seems that the window.screenX/Y
code path converts back to user coordinates but the WebDriver code path does not. Make them
consistent since that is how it is spec'd and tested.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getWindowFrameWithCallback):
Convert the window frame to user coordinate space so it's the same as window.screenY.

2:19 PM Changeset in webkit [231768] by commit-queue@webkit.org
  • 3 edits in trunk

Test262-Runner: Fix RegExp for capturing tests metadata"
https://bugs.webkit.org/show_bug.cgi?id=185622

Patch by Leo Balter <Leo Balter> on 2018-05-14
Reviewed by Michael Saboff.

This patch fixes the RegExp used to capture each test metadata regarding their EOL characters for
both LF and CRLF forms.

The fix also allows the runner to capture the proper results from two specific files using CR and
CRLF line terminators. They are updated in the expectations file.

  • Scripts/test262/Runner.pm:

(parseData):

12:09 PM Changeset in webkit [231767] by BJ Burg
  • 5 edits in trunk/Source/WebKit

WebDriver: W3C test case actions/key.py::test_lone_keyup_sends_no_events is failing
https://bugs.webkit.org/show_bug.cgi?id=185577
<rdar://problem/40185478>

Reviewed by Timothy Hatcher.

This test is failing because it expects Release Actions to not emit any
events if nothing has changed from the initial state. Because the two code paths
for creating empty states don't actually produce the same empty state, a difference
in location was detected between the two empty states. This generates a mousemove.

To fix this, unify the code that creates an empty state. For mouse input sources, always
initialize the location to (0, 0) so that the mouse input source always has
a location that is valid to click at.

  • UIProcess/Automation/SimulatedInputDispatcher.h:

Extract the type enum out of the class to avoid circular definitions of
SimulatedInputSource and SimulatedInputSourceState.

  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputSourceState::emptyStateForSourceType):
Take the input source type when generating an empty state. We always want location
set for a mouse input source, but not set it for other input sources like keys.

(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources):
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
(WebKit::SimulatedInputSource::create):
(WebKit::SimulatedInputSource::SimulatedInputSource):
(WebKit::SimulatedInputSourceState::emptyState): Deleted.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::WebAutomationSession):
(WebKit::WebAutomationSession::inputSourceForType const):
(WebKit::simulatedInputSourceTypeFromProtocolSourceType):
(WebKit::WebAutomationSession::performInteractionSequence):

  • UIProcess/Automation/WebAutomationSession.h:
11:19 AM Changeset in webkit [231766] by graouts@webkit.org
  • 14 edits in trunk

[Web Animations] Tests using the new animation engine may crash under WebCore::FrameView::didDestroyRenderTree when using internals methods
https://bugs.webkit.org/show_bug.cgi?id=185612
<rdar://problem/39579344>

Reviewed by Dean Jackson.

Source/WebCore:

Add a new internals.pseudoElement() method to obtain a pseudo element matching a given pseudo-id. This is necessary to be able to move off
internals.pauseTransitionAtTimeOnPseudoElement() and internals.pauseAnimationAtTimeOnPseudoElement() for Web Animations testing.

  • testing/Internals.cpp:

(WebCore::Internals::pseudoElement):

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

LayoutTests:

Some tests that were opting into the new animation engine were using internals methods (pauseAnimationAtTimeOnElement, pauseTransitionAtTimeOnElement, etc.)
that enforce the creation of animations in the old animation engine. Meanwhile, the code that toggles the animation engine used based on HTML comments is run
prior to teardown of the previous test and so a test running with the new engine would run with the legacy engine during teardown. These two factors would
cause ASSERT(!frame().animation().hasAnimations()) to fail under FrameView::didDestroyRenderTree().

We update tests that use these internals method to use the Web Animations API instead and opt into the new animation engine if they didn't already do that.

  • animations/animation-hit-test-transform.html:
  • animations/keyframes-dynamic-expected.txt:
  • animations/keyframes-dynamic.html:
  • animations/missing-from-to-expected.txt:
  • animations/missing-from-to-transforms-expected.txt:
  • animations/missing-from-to-transforms.html:
  • animations/missing-from-to.html:
  • fast/css-generated-content/pseudo-animation.html:
  • transitions/transition-hit-test-transform.html:
11:15 AM Changeset in webkit [231765] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=185299
<rdar://problem/39630230>

Reviewed by Simon Fraser.

Source/WebCore:

In r230574, the fix for webkit.org/b/184518, we changed the processing order in GraphicsLayerCA::updateAnimations() to first
process m_uncomittedAnimations and then m_animationsToProcess, so we are guaranteed animations exist before we attempt to pause
or seek them. This broke interrupting and resuming hardware animations (such as an interrupted CSS Transition or an animation
running in a non-visible tab) since a pause operation recorded _before_ an animation was added would be paused anyway since
the animation was now first added, and then paused. The fix is simply to clear any pending AnimationProcessingAction for a
newly-uncommitted animation.

Test: transitions/interrupted-transition-hardware.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):

LayoutTests:

Add a new test where we interrupt a transition and check that upon returning to the original value,
an animated value is still used and not the initial value. This test fails prior to this patch.

  • transitions/interrupted-transition-hardware-expected.html: Added.
  • transitions/interrupted-transition-hardware.html: Added.
10:39 AM Changeset in webkit [231764] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Fix a legacy CRLF eol from Test262
https://bugs.webkit.org/show_bug.cgi?id=185565

Patch by Leo Balter <Leo Balter> on 2018-05-14
Reviewed by Yusuke Suzuki.

  • test262/config.yaml:
  • test262/test/built-ins/Math/cbrt/prop-desc.js:
10:26 AM Changeset in webkit [231763] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

NSEvent event trackers don't work from WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=185383
rdar://problem/40025045

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-05-14
Reviewed by Simon Fraser.

Tools:

Post simulated wheel events to _sendEventToObservers: so they can be handled by NSEvent observers.
NSEvent swipe tracking is used for webkit swipe navigation.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):

LayoutTests:

This test initiates back navigation with wheel events.

  • swipe/wheel-event-initiated-back-navigation-expected.txt: Added.
  • swipe/wheel-event-initiated-back-navigation.html: Added.
10:18 AM Changeset in webkit [231762] by Yusuke Suzuki
  • 6 edits
    1 add in trunk

[JSC] timeClip(-0) should produce +0
https://bugs.webkit.org/show_bug.cgi?id=185589

Reviewed by Saam Barati.

JSTests:

Fix several test262 failures.

  • stress/date-negative-zero.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/WTF:

According to the spec[1], timeClip(-0) should produce +0.
We achieve this by adding 0.0 to the result of trunc(t).

[1]: https://tc39.github.io/ecma262/#sec-timeclip

  • wtf/DateMath.cpp:

(WTF::timeClip):

LayoutTests:

  • sputnik/Implementation_Diagnostics/S15.9.1.14_D1-expected.txt:
9:47 AM Changeset in webkit [231761] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Tweak LiteralParser to improve lexing performance
https://bugs.webkit.org/show_bug.cgi?id=185541

Reviewed by Saam Barati.

This patch attemps to improve LiteralParser performance.

This patch improves Kraken/json-parse-financial by roughly ~10%.

baseline patched

json-parse-financial 65.810+-1.591 59.943+-1.784 definitely 1.0979x faster

  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):

  • runtime/ArgList.h:

(JSC::MarkedArgumentBuffer::takeLast):
Add takeLast() for idiomatic last() + removeLast() calls.

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::Lexer::lex):
Do not have mode in its template parameter. While lex function is large, this mode is not used in a critical path.
We should not include this mode in its template parameter to reduce the code size.
And we do not use template parameter for a terminator since duplicating ' and " code for lexString is not good.
Also, we construct TokenType table to remove bunch of unnecessary switch cases.

(JSC::LiteralParser<CharType>::Lexer::next):
(JSC::isSafeStringCharacter):
Take mode in its template parameter. But do not take terminator character in its template parameter.

(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
Duplicate while statements manually since this is a critical path.

(JSC::LiteralParser<CharType>::parse):
Use takeLast().

  • runtime/LiteralParser.h:
9:45 AM Changeset in webkit [231760] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Simplified Mach exception handling
https://bugs.webkit.org/show_bug.cgi?id=185595

Reviewed by Keith Miller.

  • wtf/threads/Signals.cpp:

(WTF::startMachExceptionHandlerThread): Use mach_msg_server_once instead
of duplicating its functionality. Separate error handling logic from
program logic to help program logic stand out. Use
DISPATCH_TARGET_QUEUE_* instead of explicitly fetching a queue.

Also, we don't need the high priority queue. The kernel donates a
priority voucher from the exception thread to the receiver thread, and
mach_msg_server_once takes care to forward that voucher.

9:18 AM Changeset in webkit [231759] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix style issue in MediaPlayerPrivateGStreamerBase
https://bugs.webkit.org/show_bug.cgi?id=185510

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-14
Reviewed by Philippe Normand.

ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:629: More than one command on the same line [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:684: More than one command on the same line [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:807: More than one command on the same line [whitespace/newline] [4]

Indentation and style issue fixed only.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

8:59 AM Changeset in webkit [231758] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Implement height computation for non-replaced out of flow elements.
https://bugs.webkit.org/show_bug.cgi?id=185585

Reviewed by Antti Koivisto.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const):
(WebCore::Layout::FormattingContext::computeHeightForBlockFormattingContextRootWithAutoHeight const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/displaytree/DisplayBox.h:
8:20 AM Changeset in webkit [231757] by Manuel Rego Casasnovas
  • 17 edits in trunk/Source/WebCore

Renaming of overrides in LayoutBox
https://bugs.webkit.org/show_bug.cgi?id=185609

Reviewed by Javier Fernandez.

The names of the methods for the overrides were not consistent,
this patch fixes it by using the same structure in all the cases.

No new tests, no change of behavior.

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::hasOverrideContainingBlockContentSizeForChild):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeChildPreferredLogicalWidths const):
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::updateRubyForJustifiedText):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::hasOverrideContentLogicalHeight const):
(WebCore::RenderBox::hasOverrideContentLogicalWidth const):
(WebCore::RenderBox::setOverrideContentLogicalHeight):
(WebCore::RenderBox::setOverrideContentLogicalWidth):
(WebCore::RenderBox::clearOverrideContentLogicalHeight):
(WebCore::RenderBox::clearOverrideContentLogicalWidth):
(WebCore::RenderBox::clearOverrideContentSize):
(WebCore::RenderBox::overrideContentLogicalWidth const):
(WebCore::RenderBox::overrideContentLogicalHeight const):
(WebCore::RenderBox::overrideContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::overrideContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::hasOverrideContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::hasOverrideContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::clearOverrideContainingBlockContentSize):
(WebCore::RenderBox::clearOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::containingBlockLogicalWidthForContent const):
(WebCore::RenderBox::containingBlockLogicalHeightForContent const):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight const):
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::computePercentageLogicalHeight const):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned const):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned const):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::contentWidthForChild):
(WebCore::contentHeightForChild):
(WebCore::gatherFlexChildrenInfo):
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::constructFlexItem):
(WebCore::RenderFlexibleBox::setOverrideMainAxisContentSizeForChild):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::unwrapRenderer):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::adjustInlineDirectionLineBounds const):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::setOverrideContentLogicalHeightFromRowHeight):

  • rendering/RenderTableCell.h:
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::relayoutCellIfFlexed):

7:52 AM Changeset in webkit [231756] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Implement width computation for non-replaced out of flow elements.
https://bugs.webkit.org/show_bug.cgi?id=185598

Reviewed by Antti Koivisto.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const):
(WebCore::Layout::FormattingContext::shrinkToFitWidth const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):

  • layout/displaytree/DisplayBox.h:
7:39 AM Changeset in webkit [231755] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

-Wmemset-elt-size warning in LibWebRTCSocket constructor
https://bugs.webkit.org/show_bug.cgi?id=185555

Reviewed by Youenn Fablet.

Add missing multiplication.

  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::LibWebRTCSocket):

5:57 AM Changeset in webkit [231754] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Drop the m_compositorTexture member variable in TextureMapperGC3DPlatformLayer.
It's not used at all inside the class or outside it.

Rubber-stamped by Michael Catanzaro.

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:
5:52 AM Changeset in webkit [231753] by zandobersek@gmail.com
  • 18 edits in trunk

[GTK] REGRESSION(r231170) Build broken with Clang 5.0
https://bugs.webkit.org/show_bug.cgi?id=185198

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/WebKitCompilerFlags.cmake: Fall back to the -std=c++1z

compiler flag if -std=c++17 is not supported. If that flag is not
supported either, bail with an error message.

Source/WebCore:

Avoid gperf files using the register keyword which has been made
reserved and as such unusable in C++17.

  • css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
  • css/makeSelectorPseudoElementsMap.py:
  • css/makeprop.pl:
  • css/makevalues.pl:
  • platform/ColorData.gperf:
  • platform/ReferrerPolicy.h: With std::optional forward declaration

gone, explicitly include the WTF Optional.h header.

  • platform/Theme.h: Ditto.
  • platform/network/create-http-header-name-table:

Source/WebKit:

  • Shared/RTCNetwork.h: With std::optional forward declaration gone,

explicitly include the WTF Optional.h header.

Source/WTF:

  • wtf/Compiler.h:
  • wtf/Forward.h: Delete the std::optional forward declaration that is

potentially incompatible with definition provided by the standard library.

  • wtf/Hasher.h:
  • wtf/StdLibExtras.h: In addition to the remaining C++14 configurations,

also use custom std::in_place_t implementation when compiling with
libstdc++ 6.x, which doesn't provide its own.

3:41 AM Changeset in webkit [231752] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

Enable service-worker/navigation-redirect-body.https.html and service-worker/postmessage.https.html
https://bugs.webkit.org/show_bug.cgi?id=185605

Unreviewed.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:

LayoutTests:

3:20 AM Changeset in webkit [231751] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[MIPS] Use btpz to compare against 0 instead of bpeq
https://bugs.webkit.org/show_bug.cgi?id=185607

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-14
Reviewed by Yusuke Suzuki.

Fixes build on MIPS since MIPS doesn't have an instruction to
compare a register against an immediate. Since the immediate is just 0
in this case the simplest solution is just to use btpz instead of bpeq
to compare to 0.

  • llint/LowLevelInterpreter.asm:
1:32 AM Changeset in webkit [231750] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/service-workers/service-worker/redirected-response.https.html as slow in debug
https://bugs.webkit.org/show_bug.cgi?id=185604

Unreviewed.

12:33 AM Changeset in webkit [231749] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r219515.
https://bugs.webkit.org/show_bug.cgi?id=185603

It sometimes makes AudioUnitInitialize call to fail in
CoreAudioCaptureSource (Requested by youenn on #webkit).

Reverted changeset:

"Remove CoreAudioCaptureSource speaker configuration"
https://bugs.webkit.org/show_bug.cgi?id=174512
https://trac.webkit.org/changeset/219515

May 13, 2018:

9:36 PM Changeset in webkit [231748] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

6:12 PM Changeset in webkit [231747] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.17.5

Tag Safari-606.1.17.5.

5:15 PM Changeset in webkit [231746] by bshafiei@apple.com
  • 3 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231744. rdar://problem/40196581

WebKit2_Sim-7606.1.17.4 introduced dep cycle
https://bugs.webkit.org/show_bug.cgi?id=185588
<rdar://problem/40196581>

Reviewed by Tim Horton.

Soft link AssetViewer.framework to avoid a dependency cycle.

  • Configurations/WebKit.xcconfig:
  • UIProcess/ios/WKSystemPreviewView.mm: (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231744 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:39 PM Changeset in webkit [231745] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

12:29 PM Changeset in webkit [231744] by dino@apple.com
  • 3 edits in trunk/Source/WebKit

WebKit2_Sim-7606.1.17.4 introduced dep cycle
https://bugs.webkit.org/show_bug.cgi?id=185588
<rdar://problem/40196581>

Reviewed by Tim Horton.

Soft link AssetViewer.framework to avoid a dependency cycle.

  • Configurations/WebKit.xcconfig:
  • UIProcess/ios/WKSystemPreviewView.mm:

(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):

11:57 AM Changeset in webkit [231743] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Disable pointer poisoning
https://bugs.webkit.org/show_bug.cgi?id=185586

Reviewed by Yusuke Suzuki.

This seems like a 0.3% speed-up on microbenchmarks. It seems like it may be a small speed-up on
other tests, too.

  • wtf/Platform.h:
11:16 AM Changeset in webkit [231742] by Caio Lima
  • 2 edits in trunk/JSTests

[BigInt] stress/big-int-spec-to-primitive.js test is failing
https://bugs.webkit.org/show_bug.cgi?id=185582

Reviewed by Yusuke Suzuki.

This patch is removing the use of numberOfDFGCompiles from
stress/big-int-spec-to-primitive.js because it makes this est fail
sometimes.

  • stress/big-int-spec-to-primitive.js:
9:54 AM Changeset in webkit [231741] by fpizlo@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

CachedCall::call() should be faster
https://bugs.webkit.org/show_bug.cgi?id=185583

Reviewed by Yusuke Suzuki.

CachedCall is an optimization for String.prototype.replace(r, f) where f is a function.
Unfortunately, because of a combination of abstraction and assertions, this code path had a
lot of overhead. This patch reduces this overhead by:

  • Turning off some assertions. These assertions don't look to have security value; they're mostly for sanity. I turned off stack alignment checks and VM state checks having to do with whether the JSLock is held. The JSLock checks are not relevant when doing a cached call, considering that the caller would have already been strongly assuming that the JSLock is held.


  • Making more things inlineable.


This looks like a small (4% ish) speed-up on SunSpider/string-unpack-code.

(JSC::CachedCall::call):

  • interpreter/Interpreter.cpp:

(JSC::checkedReturn): Deleted.

  • interpreter/Interpreter.h:

(JSC::Interpreter::checkedReturn):

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::execute):

  • jit/JITCode.cpp:

(JSC::JITCode::execute): Deleted.

  • jit/JITCodeInlines.h: Added.

(JSC::JITCode::execute):

  • llint/LowLevelInterpreter.asm:
  • runtime/StringPrototype.cpp:
7:28 AM Changeset in webkit [231740] by commit-queue@webkit.org
  • 22 edits in trunk

[INTL] Improve spec & test262 compliance for Intl APIs
https://bugs.webkit.org/show_bug.cgi?id=185578

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-05-13
Reviewed by Yusuke Suzuki.

JSTests:

Remove intl402 failures that have been fixed.

  • test262/expectations.yaml:
  • stress/regress-178385.js: toStringTag is configurable, but not writable.

Source/JavaScriptCore:

Use putDirectIndex over push for lists to arrays.
Update default options to construct with a null prototype.
Define constructor and toStringTag on prototypes.
Add proper time clipping.
Remove some outdated comment spec text, use url instead.

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructor::finishCreation):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototype::finishCreation):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructor::finishCreation):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):
(JSC::IntlDateTimeFormatFuncFormatDateTime):
(JSC::IntlDateTimeFormatPrototypeFuncFormatToParts):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructor::finishCreation):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlObject.cpp:

(JSC::lookupSupportedLocales):
(JSC::supportedLocales):
(JSC::intlObjectFuncGetCanonicalLocales):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::IntlPluralRulesConstructor::finishCreation):

LayoutTests:

Update Intl tests for prototype changes.

  • js/intl-collator-expected.txt:
  • js/intl-datetimeformat-expected.txt:
  • js/intl-numberformat-expected.txt:
  • js/script-tests/intl-collator.js:
  • js/script-tests/intl-datetimeformat.js:
  • js/script-tests/intl-numberformat.js:
2:25 AM Changeset in webkit [231739] by krit@webkit.org
  • 13 edits
    4 adds in trunk

Implement SVGGeometryElement's isPointInFill and isPointInStroke
https://bugs.webkit.org/show_bug.cgi?id=185580

Reviewed by Antti Koivisto.

Implement isPointInFill and isPointInStroke methods for
SVGGeometryElement interface from SVG2.

https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement

Source/WebCore:

Tests: svg/dom/SVGGeometry-isPointInFill.xhtml

svg/dom/SVGGeometry-isPointInStroke.xhtml

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::shapeDependentStrokeContains): Flag

to switch between local and "global" coordinate space for hit testing.

  • rendering/svg/RenderSVGEllipse.h:
  • rendering/svg/RenderSVGPath.cpp:

(WebCore::RenderSVGPath::shapeDependentStrokeContains): Flag

to switch between local and "global" coordinate space for hit testing.

  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::shapeDependentStrokeContains): Flag

to switch between local and "global" coordinate space for hit testing.

  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::shapeDependentStrokeContains): Flag

to switch between local and "global" coordinate space for hit testing.

(WebCore::RenderSVGShape::isPointInFill): Take the winding rule given by

fill-rule to test if a given point is in the fill area of a path.

(WebCore::RenderSVGShape::isPointInStroke): Take stroke properties into

account to check if a point is on top of the stroke area.

  • rendering/svg/RenderSVGShape.h:
  • svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::isPointInFill):
(WebCore::SVGGeometryElement::isPointInStroke):
(WebCore::SVGGeometryElement::createElementRenderer): Deleted. This is getting implemented

by inheriting classes. No need to create RenderSVGPath here.

  • svg/SVGGeometryElement.h:
  • svg/SVGGeometryElement.idl:

LayoutTests:

  • svg/dom/SVGGeometry-isPointInFill-expected.txt: Added.
  • svg/dom/SVGGeometry-isPointInFill.xhtml: Added.
  • svg/dom/SVGGeometry-isPointInStroke-expected.txt: Added.
  • svg/dom/SVGGeometry-isPointInStroke.xhtml: Added.
Note: See TracTimeline for information about the timeline view.