Diff
Modified: trunk/Source/WebKit2/ChangeLog (179869 => 179870)
--- trunk/Source/WebKit2/ChangeLog 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/ChangeLog 2015-02-10 16:01:30 UTC (rev 179870)
@@ -1,3 +1,27 @@
+2015-02-10 Zhuo Li <zac...@apple.com>
+
+ [WK2] Add support for registering url schemes to bypass Content Security Policy.
+ https://bugs.webkit.org/show_bug.cgi?id=140736
+
+ Reviewed by Anders Carlsson.
+
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy):
+ * UIProcess/API/C/WKContextPrivate.h:
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::createNewWebProcess):
+ (WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
+ * UIProcess/WebProcessPool.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::initializeWebProcess):
+ (WebKit::WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy):
+ * WebProcess/WebProcess.h:
+ * WebProcess/WebProcess.messages.in:
+
2015-02-10 Sanghyup Lee <sh53....@samsung.com>
[EFL] Use a variable to set flicking time instead of hardcoding
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (179869 => 179870)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2015-02-10 16:01:30 UTC (rev 179870)
@@ -82,6 +82,7 @@
encoder << shouldUseTestingNetworkSession;
encoder << urlSchemesRegistererdAsEmptyDocument;
encoder << urlSchemesRegisteredAsSecure;
+ encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy;
encoder << urlSchemesForWhichDomainRelaxationIsForbidden;
encoder << urlSchemesRegisteredAsLocal;
encoder << urlSchemesRegisteredAsNoAccess;
@@ -187,6 +188,8 @@
return false;
if (!decoder.decode(parameters.urlSchemesRegisteredAsSecure))
return false;
+ if (!decoder.decode(parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy))
+ return false;
if (!decoder.decode(parameters.urlSchemesForWhichDomainRelaxationIsForbidden))
return false;
if (!decoder.decode(parameters.urlSchemesRegisteredAsLocal))
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (179869 => 179870)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2015-02-10 16:01:30 UTC (rev 179870)
@@ -89,6 +89,7 @@
Vector<String> urlSchemesRegistererdAsEmptyDocument;
Vector<String> urlSchemesRegisteredAsSecure;
+ Vector<String> urlSchemesRegisteredAsBypassingContentSecurityPolicy;
Vector<String> urlSchemesForWhichDomainRelaxationIsForbidden;
Vector<String> urlSchemesRegisteredAsLocal;
Vector<String> urlSchemesRegisteredAsNoAccess;
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (179869 => 179870)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2015-02-10 16:01:30 UTC (rev 179870)
@@ -379,6 +379,11 @@
toImpl(contextRef)->registerURLSchemeAsSecure(toImpl(urlScheme)->string());
}
+void WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy(WKContextRef contextRef, WKStringRef urlScheme)
+{
+ toImpl(contextRef)->registerURLSchemeAsBypassingContentSecurityPolicy(toImpl(urlScheme)->string());
+}
+
void WKContextRegisterURLSchemeAsCachePartitioned(WKContextRef contextRef, WKStringRef urlScheme)
{
#if ENABLE(CACHE_PARTITIONING)
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h (179869 => 179870)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h 2015-02-10 16:01:30 UTC (rev 179870)
@@ -52,6 +52,8 @@
WK_EXPORT void WKContextRegisterURLSchemeAsSecure(WKContextRef context, WKStringRef urlScheme);
+WK_EXPORT void WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy(WKContextRef context, WKStringRef urlScheme);
+
WK_EXPORT void WKContextRegisterURLSchemeAsCachePartitioned(WKContextRef context, WKStringRef urlScheme);
WK_EXPORT void WKContextSetDomainRelaxationForbiddenForURLScheme(WKContextRef context, WKStringRef urlScheme);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (179869 => 179870)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2015-02-10 16:01:30 UTC (rev 179870)
@@ -637,6 +637,7 @@
copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
+ copyToVector(m_schemesToRegisterAsBypassingContentSecurityPolicy, parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy);
copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
copyToVector(m_schemesToRegisterAsLocal, parameters.urlSchemesRegisteredAsLocal);
copyToVector(m_schemesToRegisterAsNoAccess, parameters.urlSchemesRegisteredAsNoAccess);
@@ -974,6 +975,12 @@
sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsSecure(urlScheme));
}
+void WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy(const String& urlScheme)
+{
+ m_schemesToRegisterAsBypassingContentSecurityPolicy.add(urlScheme);
+ sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsBypassingContentSecurityPolicy(urlScheme));
+}
+
void WebProcessPool::setDomainRelaxationForbiddenForURLScheme(const String& urlScheme)
{
m_schemesToSetDomainRelaxationForbiddenFor.add(urlScheme);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (179869 => 179870)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2015-02-10 16:01:30 UTC (rev 179870)
@@ -196,6 +196,7 @@
void registerURLSchemeAsEmptyDocument(const String&);
void registerURLSchemeAsSecure(const String&);
+ void registerURLSchemeAsBypassingContentSecurityPolicy(const String&);
void setDomainRelaxationForbiddenForURLScheme(const String&);
void setCanHandleHTTPSServerTrustEvaluation(bool);
void registerURLSchemeAsLocal(const String&);
@@ -453,6 +454,7 @@
HashSet<String> m_schemesToRegisterAsEmptyDocument;
HashSet<String> m_schemesToRegisterAsSecure;
+ HashSet<String> m_schemesToRegisterAsBypassingContentSecurityPolicy;
HashSet<String> m_schemesToSetDomainRelaxationForbiddenFor;
HashSet<String> m_schemesToRegisterAsLocal;
HashSet<String> m_schemesToRegisterAsNoAccess;
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (179869 => 179870)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2015-02-10 16:01:30 UTC (rev 179870)
@@ -313,6 +313,9 @@
for (size_t i = 0; i < parameters.urlSchemesRegisteredAsSecure.size(); ++i)
registerURLSchemeAsSecure(parameters.urlSchemesRegisteredAsSecure[i]);
+ for (size_t i = 0; i < parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy.size(); ++i)
+ registerURLSchemeAsBypassingContentSecurityPolicy(parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy[i]);
+
for (size_t i = 0; i < parameters.urlSchemesForWhichDomainRelaxationIsForbidden.size(); ++i)
setDomainRelaxationForbiddenForURLScheme(parameters.urlSchemesForWhichDomainRelaxationIsForbidden[i]);
@@ -415,6 +418,11 @@
SchemeRegistry::registerURLSchemeAsSecure(urlScheme);
}
+void WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy(const String& urlScheme) const
+{
+ SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy(urlScheme);
+}
+
void WebProcess::setDomainRelaxationForbiddenForURLScheme(const String& urlScheme) const
{
SchemeRegistry::setDomainRelaxationForbiddenForURLScheme(true, urlScheme);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (179869 => 179870)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2015-02-10 16:01:30 UTC (rev 179870)
@@ -216,6 +216,7 @@
void platformTerminate();
void registerURLSchemeAsEmptyDocument(const String&);
void registerURLSchemeAsSecure(const String&) const;
+ void registerURLSchemeAsBypassingContentSecurityPolicy(const String&) const;
void setDomainRelaxationForbiddenForURLScheme(const String&) const;
void registerURLSchemeAsLocal(const String&) const;
void registerURLSchemeAsNoAccess(const String&) const;
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (179869 => 179870)
--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2015-02-10 15:47:51 UTC (rev 179869)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2015-02-10 16:01:30 UTC (rev 179870)
@@ -30,6 +30,7 @@
SetCacheModel(uint32_t cacheModel)
RegisterURLSchemeAsEmptyDocument(String scheme)
RegisterURLSchemeAsSecure(String scheme)
+ RegisterURLSchemeAsBypassingContentSecurityPolicy(String scheme)
SetDomainRelaxationForbiddenForURLScheme(String scheme)
RegisterURLSchemeAsLocal(String scheme)
RegisterURLSchemeAsNoAccess(String scheme)