Bug 191572 - Enable process swap on cross-site navigation by default on macOS
Summary: Enable process swap on cross-site navigation by default on macOS
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Ryosuke Niwa
URL:
Keywords: InRadar
Depends on: 191602 191616 191618 191619 191624 191634 191638 191640 191671
Blocks:
  Show dependency treegraph
 
Reported: 2018-11-12 16:55 PST by Ryosuke Niwa
Modified: 2018-11-15 14:07 PST (History)
9 users (show)

See Also:


Attachments
Enables the feature (2.12 KB, patch)
2018-11-12 16:56 PST, Ryosuke Niwa
no flags Details | Formatted Diff | Diff
Patch (1.72 KB, patch)
2018-11-13 14:49 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Enables PSON by default on macOS (1.92 KB, patch)
2018-11-14 23:50 PST, Ryosuke Niwa
cdumez: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryosuke Niwa 2018-11-12 16:55:21 PST
Do that.
Comment 1 Ryosuke Niwa 2018-11-12 16:56:45 PST
Created attachment 354611 [details]
Enables the feature
Comment 2 Chris Dumez 2018-11-13 08:45:50 PST
Comment on attachment 354611 [details]
Enables the feature

r=me
Comment 3 WebKit Commit Bot 2018-11-13 10:43:28 PST
Comment on attachment 354611 [details]
Enables the feature

Clearing flags on attachment: 354611

Committed r238137: <https://trac.webkit.org/changeset/238137>
Comment 4 WebKit Commit Bot 2018-11-13 10:43:30 PST
All reviewed patches have been landed.  Closing bug.
Comment 5 Radar WebKit Bug Importer 2018-11-13 10:44:27 PST
<rdar://problem/46033843>
Comment 6 Ryan Haddad 2018-11-13 11:59:07 PST
Enabling this introduced API test failures on macOS: 
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK1%20%28Tests%29/builds/9226/steps/run-api-tests/logs/stdio
Comment 7 Chris Dumez 2018-11-13 12:18:24 PST
The ProcessSwapOnNavigation API test failures are likely due to PSON getting forced to true now in cases where the tests are trying to test when PSON is disabled. Those are not too worrisome and can probably easily be fixed.

However, I am concerned about the other API test failures. We may want to roll out and investigate offline.
Comment 8 Chris Dumez 2018-11-13 12:56:12 PST
------------------------------
Test suite failed

Failed

    TestWebKitAPI.WebKit.ApplicationManifestBasic
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:98
        Value of: [manifest.name isEqualToString:@"A Web Application"]
          Actual: false
        Expected: true
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:99
        Value of: [manifest.shortName isEqualToString:@"WebApp"]
          Actual: false
        Expected: true
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:100
        Value of: [manifest.applicationDescription isEqualToString:@"Hello."]
          Actual: false
        Expected: true
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:101
        Value of: [manifest.startURL isEqual:[NSURL URLWithString:@"http://example.com/app/start"]]
          Actual: false
        Expected: true
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:102
        Value of: [manifest.scope isEqual:[NSURL URLWithString:@"http://example.com/app"]]
          Actual: false
        Expected: true
        

    TestWebKitAPI.WebKit.DecidePolicyForNavigationActionForPOSTFormSubmissionThatRedirectsToGET
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:517
        Expected equality of these values:
          WKNavigationTypeFormSubmitted
            Which is: 1
          [action navigationType]
            Which is: -1
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:522
        Expected equality of these values:
          "http"
          [[[action sourceFrame] securityOrigin] protocol]
            Which is: ""
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:523
        Expected equality of these values:
          "webkit.org"
          [[[action sourceFrame] securityOrigin] host]
            Which is: ""
        

    TestWebKitAPI.ProcessSwap.NavigationWithLockedHistoryWithoutPSON
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1493
        Expected equality of these values:
          webkitPID
            Which is: 65707
          applePID
            Which is: 65709
        

    TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:473
        Expected equality of these values:
          "PersistentCookieName=CookieValue; SessionCookieName=CookieValue"
          message.UTF8String
            Which is: "PersistentCookieName=CookieValue"
        

    TestWebKitAPI.ServiceWorkers.HasServiceWorkerRegistrationBit
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:1144
        Expected equality of these values:
          1u
            Which is: 1
          webView.get().configuration.processPool._webProcessCount
            Which is: 2
        

    TestWebKitAPI.WebKit.DecidePolicyForNavigationActionForHyperlinkThatRedirects
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:470
        Expected equality of these values:
          WKNavigationTypeLinkActivated
            Which is: 0
          [action navigationType]
            Which is: -1
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:475
        Expected equality of these values:
          "http"
          [[[action sourceFrame] securityOrigin] protocol]
            Which is: ""
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:476
        Expected equality of these values:
          "webkit.org"
          [[[action sourceFrame] securityOrigin] host]
            Which is: ""
        

    TestWebKitAPI.ServiceWorkers.ServiceWorkerProcessCreation
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:1060
        Expected equality of these values:
          3u
            Which is: 3
          webView.get().configuration.processPool._webProcessCount
            Which is: 4
        

    TestWebKitAPI.WKProcessPool.InitialWarmedProcessUsed
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm:74
        Value of: [pool _hasPrewarmedWebProcess]
          Actual: true
        Expected: false
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm:75
        Expected equality of these values:
          1U
            Which is: 1
          [pool _webPageContentProcessCount]
            Which is: 2
        

    TestWebKitAPI.WebKit.DecidePolicyForNavigationActionForPOSTFormSubmissionThatRedirectsToPOST
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:564
        Expected equality of these values:
          WKNavigationTypeFormSubmitted
            Which is: 1
          [action navigationType]
            Which is: -1
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:569
        Expected equality of these values:
          "http"
          [[[action sourceFrame] securityOrigin] protocol]
            Which is: ""
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:570
        Expected equality of these values:
          "webkit.org"
          [[[action sourceFrame] securityOrigin] host]
            Which is: ""
        

    TestWebKitAPI.WebKit.WebsiteDataStoreCustomPaths
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:262
        Value of: [WKWebsiteDataStore _defaultDataStoreExists]
          Actual: true
        Expected: false
        

    TestWebKitAPI.ProcessSwap.CrossSiteClientSideRedirectWithoutPSON
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        Received data during response processing, queuing it.
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1358
        Expected equality of these values:
          webkitPID
            Which is: 65640
          googlePID
            Which is: 65642
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1370
        Expected equality of these values:
          webkitPID
            Which is: 65640
          applePID
            Which is: 65643
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1371
        Expected equality of these values:
          webkitPID
            Which is: 65640
          googlePID
            Which is: 65642
        

Crashed

    TestWebKitAPI.WebKit.GeolocationTransitionToLowAccuracy
        2018-11-13 11:29:39.907 com.apple.WebKit.WebContent.Development[63324:18897420] Application does not have the 'com.apple.security.network.client' entitlement.

Timeout

    TestWebKitAPI.IndexedDB.IndexedDBTempFileSize
        Attempted to create a NetworkLoad with a session (id=2) that does not exist.

    TestWebKitAPI.WebKit.GeolocationPermission
    TestWebKitAPI.WebKit.NotificationPermission
    TestWebKitAPI.WebKit.GeolocationTransitionToHighAccuracy
Comment 9 Ryosuke Niwa 2018-11-13 12:59:35 PST
Okay, let's rollout the change and investigate this offline.
Comment 10 Ryan Haddad 2018-11-13 13:04:51 PST
Reverted r238137 for reason:

Introduced API test failures on macOS.

Committed r238142: <https://trac.webkit.org/changeset/238142>
Comment 11 Chris Dumez 2018-11-13 13:33:00 PST
I am investigating the API test failures. Will fix them via dependency bugs.
Comment 12 Chris Dumez 2018-11-13 14:49:48 PST
Created attachment 354705 [details]
Patch
Comment 13 Chris Dumez 2018-11-14 14:59:34 PST
I believe all API tests will be passing on macOS once Bug 191638 and Bug 191640 are fixed.
Comment 14 Chris Dumez 2018-11-14 19:05:53 PST
Comment on attachment 354611 [details]
Enables the feature

All dependencies are in the commit queue. We can land this again once they have landed.
Comment 15 Chris Dumez 2018-11-14 19:37:20 PST
Oops, I think TestWebKitAPI.IndexedDB.IndexedDBTempFileSize may still be timing out.
Comment 16 Ryosuke Niwa 2018-11-14 23:50:50 PST
Created attachment 354896 [details]
Enables PSON by default on macOS
Comment 17 Chris Dumez 2018-11-15 06:59:06 PST
Comment on attachment 354896 [details]
Enables PSON by default on macOS

I preferred the other patch now that I separated from client and experimental states. The reason is that the other patch allowed the user to disable PSON via the experimental features. This new patch does not.
Comment 18 Ryosuke Niwa 2018-11-15 11:35:55 PST
(In reply to Chris Dumez from comment #17)
> Comment on attachment 354896 [details]
> Enables PSON by default on macOS
> 
> I preferred the other patch now that I separated from client and
> experimental states. The reason is that the other patch allowed the user to
> disable PSON via the experimental features. This new patch does not.

Okay, let's re-land the old patch then once the bug 191671 is fixed.
Comment 19 Chris Dumez 2018-11-15 14:02:24 PST
Comment on attachment 354611 [details]
Enables the feature

Let's do this!
Comment 20 WebKit Commit Bot 2018-11-15 14:07:12 PST
Comment on attachment 354611 [details]
Enables the feature

Clearing flags on attachment: 354611

Committed r238252: <https://trac.webkit.org/changeset/238252>
Comment 21 WebKit Commit Bot 2018-11-15 14:07:14 PST
All reviewed patches have been landed.  Closing bug.