Stop sending list of display-isolated schemes to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=202557
Reviewed by Youenn Fablet.
Source/WebCore:
They are only ever used in the WebProcess in SecurityOrigin::canDisplay.
If someone adds code that uses them in the NetworkProcess, they will hit my new assertion.
No change in behavior.
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay const):
* platform/RuntimeApplicationChecks.h:
(WebCore::isInNetworkProcess):
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::isInNetworkProcess):
Source/WebKit:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::registerURLSchemeAsDisplayIsolated):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@250739 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 8f73dd4..e17f94b 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,24 @@
2019-10-04 Alex Christensen <achristensen@webkit.org>
+ Stop sending list of display-isolated schemes to NetworkProcess
+ https://bugs.webkit.org/show_bug.cgi?id=202557
+
+ Reviewed by Youenn Fablet.
+
+ They are only ever used in the WebProcess in SecurityOrigin::canDisplay.
+ If someone adds code that uses them in the NetworkProcess, they will hit my new assertion.
+
+ No change in behavior.
+
+ * page/SecurityOrigin.cpp:
+ (WebCore::SecurityOrigin::canDisplay const):
+ * platform/RuntimeApplicationChecks.h:
+ (WebCore::isInNetworkProcess):
+ * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
+ (WebCore::isInNetworkProcess):
+
+2019-10-04 Alex Christensen <achristensen@webkit.org>
+
Rename SchemeRegistry to LegacySchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=202586
diff --git a/Source/WebCore/page/SecurityOrigin.cpp b/Source/WebCore/page/SecurityOrigin.cpp
index bbe291e..1dbfcdc 100644
--- a/Source/WebCore/page/SecurityOrigin.cpp
+++ b/Source/WebCore/page/SecurityOrigin.cpp
@@ -33,6 +33,7 @@
#include "LegacySchemeRegistry.h"
#include "OriginAccessEntry.h"
#include "PublicSuffix.h"
+#include "RuntimeApplicationChecks.h"
#include "SecurityPolicy.h"
#include "TextEncoding.h"
#include "ThreadableBlobRegistry.h"
@@ -353,6 +354,7 @@
bool SecurityOrigin::canDisplay(const URL& url) const
{
+ ASSERT(!isInNetworkProcess());
if (m_universalAccess)
return true;
diff --git a/Source/WebCore/platform/RuntimeApplicationChecks.h b/Source/WebCore/platform/RuntimeApplicationChecks.h
index b556f2f..08ac7b4 100644
--- a/Source/WebCore/platform/RuntimeApplicationChecks.h
+++ b/Source/WebCore/platform/RuntimeApplicationChecks.h
@@ -41,6 +41,7 @@
#if PLATFORM(COCOA)
bool isInWebProcess();
+bool isInNetworkProcess();
WEBCORE_EXPORT void setApplicationSDKVersion(uint32_t);
WEBCORE_EXPORT uint32_t applicationSDKVersion();
@@ -103,6 +104,10 @@
#endif // PLATFORM(IOS_FAMILY)
+#else
+
+inline bool isInNetworkProcess() { return false; }
+
#endif // PLATFORM(COCOA)
} // namespace WebCore
diff --git a/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm b/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm
index ba7486a..d1861db 100644
--- a/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm
+++ b/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm
@@ -90,6 +90,12 @@
return mainBundleIsWebProcess;
}
+bool isInNetworkProcess()
+{
+ static bool mainBundleIsNetworkProcess = [[[NSBundle mainBundle] bundleIdentifier] hasPrefix:@"com.apple.WebKit.Networking"];
+ return mainBundleIsNetworkProcess;
+}
+
static bool applicationBundleIsEqualTo(const String& bundleIdentifierString)
{
return applicationBundleIdentifier() == bundleIdentifierString;
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 689c672..80b4078 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,5 +1,25 @@
2019-10-04 Alex Christensen <achristensen@webkit.org>
+ Stop sending list of display-isolated schemes to NetworkProcess
+ https://bugs.webkit.org/show_bug.cgi?id=202557
+
+ Reviewed by Youenn Fablet.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::initializeNetworkProcess):
+ (WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const): Deleted.
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcess.messages.in:
+ * NetworkProcess/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::encode const):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * NetworkProcess/NetworkProcessCreationParameters.h:
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::ensureNetworkProcess):
+ (WebKit::WebProcessPool::registerURLSchemeAsDisplayIsolated):
+
+2019-10-04 Alex Christensen <achristensen@webkit.org>
+
Rename SchemeRegistry to LegacySchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=202586
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp
index 6e9b400..3341aed 100644
--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp
@@ -350,9 +350,6 @@
for (auto& scheme : parameters.urlSchemesRegisteredAsNoAccess)
registerURLSchemeAsNoAccess(scheme);
- for (auto& scheme : parameters.urlSchemesRegisteredAsDisplayIsolated)
- registerURLSchemeAsDisplayIsolated(scheme);
-
for (auto& scheme : parameters.urlSchemesRegisteredAsCORSEnabled)
registerURLSchemeAsCORSEnabled(scheme);
@@ -2221,11 +2218,6 @@
LegacySchemeRegistry::registerURLSchemeAsNoAccess(scheme);
}
-void NetworkProcess::registerURLSchemeAsDisplayIsolated(const String& scheme) const
-{
- LegacySchemeRegistry::registerURLSchemeAsDisplayIsolated(scheme);
-}
-
void NetworkProcess::registerURLSchemeAsCORSEnabled(const String& scheme) const
{
LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(scheme);
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h
index 1a342f9..2f70430 100644
--- a/Source/WebKit/NetworkProcess/NetworkProcess.h
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.h
@@ -439,7 +439,6 @@
void registerURLSchemeAsBypassingContentSecurityPolicy(const String&) const;
void registerURLSchemeAsLocal(const String&) const;
void registerURLSchemeAsNoAccess(const String&) const;
- void registerURLSchemeAsDisplayIsolated(const String&) const;
void registerURLSchemeAsCORSEnabled(const String&) const;
void registerURLSchemeAsCanDisplayOnlyIfCanRequest(const String&) const;
diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
index 1ef8fbc..51371d6 100644
--- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
+++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
@@ -146,7 +146,6 @@
RegisterURLSchemeAsBypassingContentSecurityPolicy(String scheme)
RegisterURLSchemeAsLocal(String scheme)
RegisterURLSchemeAsNoAccess(String scheme)
- RegisterURLSchemeAsDisplayIsolated(String scheme)
RegisterURLSchemeAsCORSEnabled(String scheme)
RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(String scheme)
diff --git a/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp b/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
index 9d298a3..6669a1d 100644
--- a/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
+++ b/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
@@ -72,7 +72,6 @@
encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy;
encoder << urlSchemesRegisteredAsLocal;
encoder << urlSchemesRegisteredAsNoAccess;
- encoder << urlSchemesRegisteredAsDisplayIsolated;
encoder << urlSchemesRegisteredAsCORSEnabled;
encoder << urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
@@ -160,8 +159,6 @@
return false;
if (!decoder.decode(result.urlSchemesRegisteredAsNoAccess))
return false;
- if (!decoder.decode(result.urlSchemesRegisteredAsDisplayIsolated))
- return false;
if (!decoder.decode(result.urlSchemesRegisteredAsCORSEnabled))
return false;
if (!decoder.decode(result.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest))
diff --git a/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h b/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
index 358cfce..e63fc9d 100644
--- a/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
+++ b/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
@@ -89,7 +89,6 @@
Vector<String> urlSchemesRegisteredAsBypassingContentSecurityPolicy;
Vector<String> urlSchemesRegisteredAsLocal;
Vector<String> urlSchemesRegisteredAsNoAccess;
- Vector<String> urlSchemesRegisteredAsDisplayIsolated;
Vector<String> urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
Vector<String> urlSchemesRegisteredAsCORSEnabled;
diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp
index 8b66de0..ad407e6 100644
--- a/Source/WebKit/UIProcess/WebProcessPool.cpp
+++ b/Source/WebKit/UIProcess/WebProcessPool.cpp
@@ -521,7 +521,6 @@
parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy = copyToVector(m_schemesToRegisterAsBypassingContentSecurityPolicy);
parameters.urlSchemesRegisteredAsLocal = copyToVector(m_schemesToRegisterAsLocal);
parameters.urlSchemesRegisteredAsNoAccess = copyToVector(m_schemesToRegisterAsNoAccess);
- parameters.urlSchemesRegisteredAsDisplayIsolated = copyToVector(m_schemesToRegisterAsDisplayIsolated);
parameters.urlSchemesRegisteredAsCORSEnabled = copyToVector(m_schemesToRegisterAsCORSEnabled);
parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest = copyToVector(m_schemesToRegisterAsCanDisplayOnlyIfCanRequest);
@@ -1494,7 +1493,6 @@
{
m_schemesToRegisterAsDisplayIsolated.add(urlScheme);
sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsDisplayIsolated(urlScheme));
- sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsDisplayIsolated(urlScheme));
}
void WebProcessPool::registerURLSchemeAsCORSEnabled(const String& urlScheme)