Title: [179870] trunk/Source/WebKit2
Revision
179870
Author
commit-qu...@webkit.org
Date
2015-02-10 08:01:30 -0800 (Tue, 10 Feb 2015)

Log Message

[WK2] Add support for registering url schemes to bypass Content Security Policy.
https://bugs.webkit.org/show_bug.cgi?id=140736

Patch by Zhuo Li <zac...@apple.com> on 2015-02-10
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:

Modified Paths

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)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to