⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 179870 in webkit


Ignore:
Timestamp:
Feb 10, 2015, 8:01:30 AM (12 years ago)
Author:
commit-queue@webkit.org
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 <zachli@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:
Location:
trunk/Source/WebKit2
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r179867 r179870  
     12015-02-10  Zhuo Li  <zachli@apple.com>
     2
     3        [WK2] Add support for registering url schemes to bypass Content Security Policy.
     4        https://bugs.webkit.org/show_bug.cgi?id=140736
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * Shared/WebProcessCreationParameters.cpp:
     9        (WebKit::WebProcessCreationParameters::encode):
     10        (WebKit::WebProcessCreationParameters::decode):
     11        * Shared/WebProcessCreationParameters.h:
     12        * UIProcess/API/C/WKContext.cpp:
     13        (WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy):
     14        * UIProcess/API/C/WKContextPrivate.h:
     15        * UIProcess/WebProcessPool.cpp:
     16        (WebKit::WebProcessPool::createNewWebProcess):
     17        (WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
     18        * UIProcess/WebProcessPool.h:
     19        * WebProcess/WebProcess.cpp:
     20        (WebKit::WebProcess::initializeWebProcess):
     21        (WebKit::WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy):
     22        * WebProcess/WebProcess.h:
     23        * WebProcess/WebProcess.messages.in:
     24
    1252015-02-10  Sanghyup Lee  <sh53.lee@samsung.com>
    226
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp

    r179368 r179870  
    8383    encoder << urlSchemesRegistererdAsEmptyDocument;
    8484    encoder << urlSchemesRegisteredAsSecure;
     85    encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy;
    8586    encoder << urlSchemesForWhichDomainRelaxationIsForbidden;
    8687    encoder << urlSchemesRegisteredAsLocal;
     
    188189    if (!decoder.decode(parameters.urlSchemesRegisteredAsSecure))
    189190        return false;
     191    if (!decoder.decode(parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy))
     192        return false;
    190193    if (!decoder.decode(parameters.urlSchemesForWhichDomainRelaxationIsForbidden))
    191194        return false;
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h

    r179368 r179870  
    9090    Vector<String> urlSchemesRegistererdAsEmptyDocument;
    9191    Vector<String> urlSchemesRegisteredAsSecure;
     92    Vector<String> urlSchemesRegisteredAsBypassingContentSecurityPolicy;
    9293    Vector<String> urlSchemesForWhichDomainRelaxationIsForbidden;
    9394    Vector<String> urlSchemesRegisteredAsLocal;
  • trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp

    r178685 r179870  
    380380}
    381381
     382void WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy(WKContextRef contextRef, WKStringRef urlScheme)
     383{
     384    toImpl(contextRef)->registerURLSchemeAsBypassingContentSecurityPolicy(toImpl(urlScheme)->string());
     385}
     386
    382387void WKContextRegisterURLSchemeAsCachePartitioned(WKContextRef contextRef, WKStringRef urlScheme)
    383388{
  • trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h

    r174369 r179870  
    5353WK_EXPORT void WKContextRegisterURLSchemeAsSecure(WKContextRef context, WKStringRef urlScheme);
    5454
     55WK_EXPORT void WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy(WKContextRef context, WKStringRef urlScheme);
     56
    5557WK_EXPORT void WKContextRegisterURLSchemeAsCachePartitioned(WKContextRef context, WKStringRef urlScheme);
    5658
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp

    r179754 r179870  
    638638    copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
    639639    copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
     640    copyToVector(m_schemesToRegisterAsBypassingContentSecurityPolicy, parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy);
    640641    copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
    641642    copyToVector(m_schemesToRegisterAsLocal, parameters.urlSchemesRegisteredAsLocal);
     
    975976}
    976977
     978void WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy(const String& urlScheme)
     979{
     980    m_schemesToRegisterAsBypassingContentSecurityPolicy.add(urlScheme);
     981    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsBypassingContentSecurityPolicy(urlScheme));
     982}
     983
    977984void WebProcessPool::setDomainRelaxationForbiddenForURLScheme(const String& urlScheme)
    978985{
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.h

    r179754 r179870  
    197197    void registerURLSchemeAsEmptyDocument(const String&);
    198198    void registerURLSchemeAsSecure(const String&);
     199    void registerURLSchemeAsBypassingContentSecurityPolicy(const String&);
    199200    void setDomainRelaxationForbiddenForURLScheme(const String&);
    200201    void setCanHandleHTTPSServerTrustEvaluation(bool);
     
    454455    HashSet<String> m_schemesToRegisterAsEmptyDocument;
    455456    HashSet<String> m_schemesToRegisterAsSecure;
     457    HashSet<String> m_schemesToRegisterAsBypassingContentSecurityPolicy;
    456458    HashSet<String> m_schemesToSetDomainRelaxationForbiddenFor;
    457459    HashSet<String> m_schemesToRegisterAsLocal;
  • trunk/Source/WebKit2/WebProcess/WebProcess.cpp

    r179489 r179870  
    314314        registerURLSchemeAsSecure(parameters.urlSchemesRegisteredAsSecure[i]);
    315315
     316    for (size_t i = 0; i < parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy.size(); ++i)
     317        registerURLSchemeAsBypassingContentSecurityPolicy(parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy[i]);
     318
    316319    for (size_t i = 0; i < parameters.urlSchemesForWhichDomainRelaxationIsForbidden.size(); ++i)
    317320        setDomainRelaxationForbiddenForURLScheme(parameters.urlSchemesForWhichDomainRelaxationIsForbidden[i]);
     
    414417{
    415418    SchemeRegistry::registerURLSchemeAsSecure(urlScheme);
     419}
     420
     421void WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy(const String& urlScheme) const
     422{
     423    SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy(urlScheme);
    416424}
    417425
  • trunk/Source/WebKit2/WebProcess/WebProcess.h

    r179409 r179870  
    217217    void registerURLSchemeAsEmptyDocument(const String&);
    218218    void registerURLSchemeAsSecure(const String&) const;
     219    void registerURLSchemeAsBypassingContentSecurityPolicy(const String&) const;
    219220    void setDomainRelaxationForbiddenForURLScheme(const String&) const;
    220221    void registerURLSchemeAsLocal(const String&) const;
  • trunk/Source/WebKit2/WebProcess/WebProcess.messages.in

    r178634 r179870  
    3131    RegisterURLSchemeAsEmptyDocument(String scheme)
    3232    RegisterURLSchemeAsSecure(String scheme)
     33    RegisterURLSchemeAsBypassingContentSecurityPolicy(String scheme)
    3334    SetDomainRelaxationForbiddenForURLScheme(String scheme)
    3435    RegisterURLSchemeAsLocal(String scheme)
Note: See TracChangeset for help on using the changeset viewer.