Changeset 69661 in webkit


Ignore:
Timestamp:
Oct 13, 2010 7:42:35 AM (14 years ago)
Author:
jberlin@webkit.org
Message:

Add ability for WK2 to set domain relaxation forbidden for a URL scheme.
https://bugs.webkit.org/show_bug.cgi?id=47562

Reviewed by Jon Honeycutt.

Add the schemes for which domain relaxation is forbidden to the
WebProcessCreationParameters.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDomainRelaxationForbiddenForURLScheme):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::ensureWebProcess):
Copy over the schemes for which domain relaxation is forbidden to
WebProcessCreationParameters.
(WebKit::WebContext::setDomainRelaxationForbiddenForURLScheme):
Only send a message to the WebProcess if it is valid.

  • UIProcess/WebContext.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Set domain relaxation forbidden for the schemes in
WebProcesCreationParameters.urlSchemesForWhichDomainRelaxationIsForbidden.
(WebKit::WebProcess::setDomainRelaxationForbiddenForURLScheme):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Add the SetDomainRelaxationFobiddenForURLScheme message.

Location:
trunk/WebKit2
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r69653 r69661  
     12010-10-12  Jessie Berlin  <jberlin@apple.com>
     2
     3        Reviewed by Jon Honeycutt.
     4
     5        Add ability for WK2 to set domain relaxation forbidden for a URL scheme.
     6        https://bugs.webkit.org/show_bug.cgi?id=47562
     7
     8        Add the schemes for which domain relaxation is forbidden to the
     9        WebProcessCreationParameters.
     10        * Shared/WebProcessCreationParameters.cpp:
     11        (WebKit::WebProcessCreationParameters::encode):
     12        (WebKit::WebProcessCreationParameters::decode):
     13        * Shared/WebProcessCreationParameters.h:
     14
     15        * UIProcess/API/C/WKContext.cpp:
     16        (WKContextSetDomainRelaxationForbiddenForURLScheme):
     17        * UIProcess/API/C/WKContextPrivate.h:
     18
     19        * UIProcess/WebContext.cpp:
     20        (WebKit::WebContext::ensureWebProcess):
     21        Copy over the schemes for which domain relaxation is forbidden to
     22        WebProcessCreationParameters.
     23        (WebKit::WebContext::setDomainRelaxationForbiddenForURLScheme):
     24        Only send a message to the WebProcess if it is valid.
     25        * UIProcess/WebContext.h:
     26
     27        * WebProcess/WebProcess.cpp:
     28        (WebKit::WebProcess::initializeWebProcess):
     29        Set domain relaxation forbidden for the schemes in
     30        WebProcesCreationParameters.urlSchemesForWhichDomainRelaxationIsForbidden.
     31        (WebKit::WebProcess::setDomainRelaxationForbiddenForURLScheme):
     32        * WebProcess/WebProcess.h:
     33
     34        * WebProcess/WebProcess.messages.in:
     35        Add the SetDomainRelaxationFobiddenForURLScheme message.
     36
    1372010-10-13  Csaba Osztrogonác  <ossy@webkit.org>
    238
  • trunk/WebKit2/Shared/WebProcessCreationParameters.cpp

    r69614 r69661  
    4848    encoder->encode(urlSchemesRegistererdAsEmptyDocument);
    4949    encoder->encode(urlSchemesRegisteredAsSecure);
     50    encoder->encode(urlSchemesForWhichDomainRelaxationIsForbidden);
    5051    encoder->encode(static_cast<uint32_t>(cacheModel));
    5152    encoder->encode(shouldTrackVisitedLinks);
     
    7374    if (!decoder->decode(parameters.urlSchemesRegisteredAsSecure))
    7475        return false;
     76    if (!decoder->decode(parameters.urlSchemesForWhichDomainRelaxationIsForbidden))
     77        return false;
    7578
    7679    uint32_t cacheModel;
  • trunk/WebKit2/Shared/WebProcessCreationParameters.h

    r69614 r69661  
    5656    Vector<String> urlSchemesRegistererdAsEmptyDocument;
    5757    Vector<String> urlSchemesRegisteredAsSecure;
     58    Vector<String> urlSchemesForWhichDomainRelaxationIsForbidden;
    5859
    5960    CacheModel cacheModel;
  • trunk/WebKit2/UIProcess/API/C/WKContext.cpp

    r69614 r69661  
    126126    toImpl(contextRef)->registerURLSchemeAsSecure(toImpl(urlScheme)->string());
    127127}
     128
     129void WKContextSetDomainRelaxationForbiddenForURLScheme(WKContextRef contextRef, WKStringRef urlScheme)
     130{
     131    toImpl(contextRef)->setDomainRelaxationForbiddenForURLScheme(toImpl(urlScheme)->string());
     132}
  • trunk/WebKit2/UIProcess/API/C/WKContextPrivate.h

    r69614 r69661  
    5151WK_EXPORT void WKContextRegisterURLSchemeAsSecure(WKContextRef context, WKStringRef urlScheme);
    5252
     53WK_EXPORT void WKContextSetDomainRelaxationForbiddenForURLScheme(WKContextRef context, WKStringRef urlScheme);
     54
    5355#ifdef __cplusplus
    5456}
  • trunk/WebKit2/UIProcess/WebContext.cpp

    r69614 r69661  
    154154    copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
    155155    copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
     156    copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
    156157
    157158    // Add any platform specific parameters
     
    320321
    321322    m_process->send(Messages::WebProcess::RegisterURLSchemeAsSecure(urlScheme), 0);
     323}
     324
     325void WebContext::setDomainRelaxationForbiddenForURLScheme(const String& urlScheme)
     326{
     327    m_schemesToSetDomainRelaxationForbiddenFor.add(urlScheme);
     328
     329    if (!hasValidProcess())
     330        return;
     331
     332    m_process->send(Messages::WebProcess::SetDomainRelaxationForbiddenForURLScheme(urlScheme), 0);
    322333}
    323334
  • trunk/WebKit2/UIProcess/WebContext.h

    r69614 r69661  
    104104    void registerURLSchemeAsEmptyDocument(const String&);
    105105    void registerURLSchemeAsSecure(const String&);
    106    
     106    void setDomainRelaxationForbiddenForURLScheme(const String&);
     107
    107108    void addVisitedLink(const String&);
    108109    void addVisitedLink(WebCore::LinkHash);
     
    145146    HashSet<String> m_schemesToRegisterAsEmptyDocument;
    146147    HashSet<String> m_schemesToRegisterAsSecure;
     148    HashSet<String> m_schemesToSetDomainRelaxationForbiddenFor;
     149
    147150    Vector<pair<String, RefPtr<APIObject> > > m_pendingMessagesToPostToInjectedBundle;
    148151
  • trunk/WebKit2/WebProcess/WebProcess.cpp

    r69614 r69661  
    4242#include <WebCore/PageGroup.h>
    4343#include <WebCore/SchemeRegistry.h>
     44#include <WebCore/SecurityOrigin.h>
    4445#include <WebCore/Settings.h>
    4546#include <wtf/PassRefPtr.h>
     
    140141        registerURLSchemeAsSecure(parameters.urlSchemesRegisteredAsSecure[i]);
    141142
     143    for (size_t i = 0; i < parameters.urlSchemesForWhichDomainRelaxationIsForbidden.size(); ++i)
     144        setDomainRelaxationForbiddenForURLScheme(parameters.urlSchemesForWhichDomainRelaxationIsForbidden[i]);
     145
    142146#if USE(ACCELERATED_COMPOSITING) && PLATFORM(MAC)
    143147    m_compositingRenderServerPort = parameters.acceleratedCompositingPort.port();
     
    161165{
    162166    SchemeRegistry::registerURLSchemeAsSecure(urlScheme);
     167}
     168
     169void WebProcess::setDomainRelaxationForbiddenForURLScheme(const String& urlScheme) const
     170{
     171    SecurityOrigin::setDomainRelaxationForbiddenForURLScheme(true, urlScheme);
    163172}
    164173
  • trunk/WebKit2/WebProcess/WebProcess.h

    r69614 r69661  
    9292    void registerURLSchemeAsEmptyDocument(const String&);
    9393    void registerURLSchemeAsSecure(const String&) const;
     94    void setDomainRelaxationForbiddenForURLScheme(const String&) const;
    9495#if PLATFORM(WIN)
    9596    void setShouldPaintNativeControls(bool);
  • trunk/WebKit2/WebProcess/WebProcess.messages.in

    r69614 r69661  
    3838    RegisterURLSchemeAsEmptyDocument(WTF::String scheme)
    3939    RegisterURLSchemeAsSecure(WTF::String scheme)
     40    SetDomainRelaxationForbiddenForURLScheme(WTF::String scheme)
    4041#if PLATFORM(WIN)
    4142    SetShouldPaintNativeControls(bool shouldPaintNativeControls)
Note: See TracChangeset for help on using the changeset viewer.