Bug 186610
Summary: | [WPE][GTK] Enable process swap on navigation to new origin | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | beidson, bugs-noreply, calvaris, cdumez, mcatanzaro |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | PC | ||
OS: | Linux | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=186542 |
Michael Catanzaro
We should probably enable process swap on navigation to new origin for WPE/GTK. (...right?)
Hey Brady, could you help us understand:
* Is there any reason we would NOT want to do this unconditionally? (It doesn't seem like something to expose public GTK/WPE API for.)
* This is important because it's required for site isolation slash Spectre mitigation... right?
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Michael Catanzaro
Patch is trivial:
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
index b52591d625e..829734126bc 100644
--- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
@@ -335,6 +335,7 @@ static void webkitWebContextConstructed(GObject* object)
configuration.setInjectedBundlePath(WebCore::FileSystem::stringFromFileSystemRepresentation(bundleFilename.get()));
configuration.setMaximumProcessCount(1);
configuration.setDiskCacheSpeculativeValidationEnabled(true);
+ configuration.setProcessSwapsOnNavigation(true);
WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(object);
WebKitWebContextPrivate* priv = webContext->priv;
I tested this out and it sort of works. The navigation swap seems to occur as expected. However, back/forward list is broken: trying to navigate back past a process swap does not work properly.
Chris Dumez
It is not enabled by default for COCOA yet. We are still working on layout test failures and then we'll have to work on performance. There is a cost to launching new processes (launch time and losing caches for e.g.).
Michael Catanzaro
OK, let's definitely delay until you think it's ready for Cocoa.
Michael Catanzaro
Enabled in r246148.