Changeset 138273 in webkit


Ignore:
Timestamp:
Dec 20, 2012 10:42:13 AM (11 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=104482

Reviewed by Martin Robinson.

Source/WebCore:

  • platform/network/soup/ResourceError.h:

(WebCore::ResourceError::setTLSErrors): Set the TLS error flags.
(WebCore::ResourceError::setCertificate): Set the certificate.

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::tlsError): Set the given TLS errors and
certificate to the ResourceError.
(WebCore::ResourceError::platformCopy): Copy also the TLS errors
and the certificate.
(WebCore::ResourceError::platformCompare): Compare also the TLS
errors.

Source/WebKit2:

Add an emum for TLS errors policy with values IGNORE and FAIL and
API to WebKitWebContext to set/get the policy.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Encode ignoreTLSErrors.
(WebKit::WebProcessCreationParameters::decode): Decode ignoreTLSErrors.

  • Shared/WebProcessCreationParameters.h:

(WebProcessCreationParameters): Add ignoreTLSErrors when building
with soup network backend.

  • Shared/soup/PlatformCertificateInfo.cpp:

(WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Add a
constructor that receives a ResourceError.

  • Shared/soup/PlatformCertificateInfo.h:
  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(CoreIPC::::encodePlatformData): Encode the
PlatformCertificateInfo as part for the ResourceError.
(CoreIPC::::decodePlatformData): Decode the
PlatformCertificateInfo and set certificate and TLS errors in the
ResourceError.

  • UIProcess/API/gtk/WebKitLoaderClient.cpp:

(didFailProvisionalLoadWithErrorForFrame): Call
webkitWebViewLoadFailedWithTLSErrors() if the load failed due to
TLS errors.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(_WebKitWebContextPrivate): Add tlsErrorsPolicy member.
(createDefaultWebContext): Initiales tlsErrorsPolicy.
(webkit_web_context_set_tls_errors_policy): Set the TLS errors
policy notify WebContext to ignore TLS errors or not.
(webkit_web_context_get_tls_errors_policy): Return the current TLS
errors policy.

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewLoadFailedWithTLSErrors): Finish the load with an
error if the TLS errors policy is FAIL.

  • UIProcess/API/gtk/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
  • UIProcess/API/gtk/tests/TestSSL.cpp:

(testTLSErrorsPolicy):
(beforeAll):

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::WebContext): Initialize m_ignoreTLSErrors.

  • UIProcess/WebContext.h:

(WebContext): Add m_ignoreTLSErrors member.
(WebKit::WebContext::ignoreTLSErrors): Return m_ignoreTLSErrors.

  • UIProcess/efl/WebContextEfl.cpp:

(WebKit::WebContext::platformInitializeWebProcess): Set
ignoreTLSErrors parameter.
(WebKit::WebContext::setIgnoreTLSErrors): Send SetIgnoreTLSErrors
message to the web process.

  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformInitializeWebProcess): Set
ignoreTLSErrors parameter.
(WebKit::WebContext::setIgnoreTLSErrors): Send SetIgnoreTLSErrors
message to the web process.
(WebKit):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/efl/WebProcessMainEfl.cpp:

(WebKit::WebProcessMainEfl): Remove the call to
ResourceHandle::setIgnoreSSLErrors().

  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMainGtk): Remove the call to
ResourceHandle::setIgnoreSSLErrors().

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::setIgnoreTLSErrors): Call
ResourceHandle::setIgnoreSSLErrors().
(WebKit):

Location:
trunk/Source
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r138270 r138273  
     12012-12-20  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=104482
     5
     6        Reviewed by Martin Robinson.
     7
     8        * platform/network/soup/ResourceError.h:
     9        (WebCore::ResourceError::setTLSErrors): Set the TLS error flags.
     10        (WebCore::ResourceError::setCertificate): Set the certificate.
     11        * platform/network/soup/ResourceErrorSoup.cpp:
     12        (WebCore::ResourceError::tlsError): Set the given TLS errors and
     13        certificate to the ResourceError.
     14        (WebCore::ResourceError::platformCopy): Copy also the TLS errors
     15        and the certificate.
     16        (WebCore::ResourceError::platformCompare): Compare also the TLS
     17        errors.
     18
    1192012-12-20  Antoine Quint  <graouts@apple.com>
    220
  • trunk/Source/WebCore/platform/network/soup/ResourceError.h

    r132286 r138273  
    5757
    5858    unsigned tlsErrors() const { return m_tlsErrors; }
     59    void setTLSErrors(unsigned tlsErrors) { m_tlsErrors = tlsErrors; }
    5960    GTlsCertificate* certificate() const { return m_certificate.get(); }
     61    void setCertificate(GTlsCertificate* certificate) { m_certificate = certificate; }
    6062
    6163private:
     64    void platformCopy(ResourceError&) const;
     65    static bool platformCompare(const ResourceError& a, const ResourceError& b);
     66
    6267    unsigned m_tlsErrors;
    6368    GRefPtr<GTlsCertificate> m_certificate;
  • trunk/Source/WebCore/platform/network/soup/ResourceErrorSoup.cpp

    r132286 r138273  
    7070}
    7171
    72 ResourceError ResourceError::tlsError(SoupRequest* request, unsigned /* tlsErrors */, GTlsCertificate*)
     72ResourceError ResourceError::tlsError(SoupRequest* request, unsigned tlsErrors, GTlsCertificate* certificate)
    7373{
    74     return ResourceError(g_quark_to_string(SOUP_HTTP_ERROR), SOUP_STATUS_SSL_FAILED,
     74    ResourceError resourceError(g_quark_to_string(SOUP_HTTP_ERROR), SOUP_STATUS_SSL_FAILED,
    7575        failingURI(request), unacceptableTLSCertificate());
     76    resourceError.setTLSErrors(tlsErrors);
     77    resourceError.setCertificate(certificate);
     78    return resourceError;
    7679}
    7780
     
    8992}
    9093
     94void ResourceError::platformCopy(ResourceError& errorCopy) const
     95{
     96    errorCopy.m_certificate = m_certificate;
     97    errorCopy.m_tlsErrors = m_tlsErrors;
     98}
     99
     100bool ResourceError::platformCompare(const ResourceError& a, const ResourceError& b)
     101{
     102    return a.tlsErrors() == b.tlsErrors();
     103}
     104
    91105} // namespace WebCore
  • trunk/Source/WebKit2/ChangeLog

    r138248 r138273  
     12012-12-20  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=104482
     5
     6        Reviewed by Martin Robinson.
     7
     8        Add an emum for TLS errors policy with values IGNORE and FAIL and
     9        API to WebKitWebContext to set/get the policy.
     10
     11        * Shared/WebProcessCreationParameters.cpp:
     12        (WebKit::WebProcessCreationParameters::encode): Encode ignoreTLSErrors.
     13        (WebKit::WebProcessCreationParameters::decode): Decode ignoreTLSErrors.
     14        * Shared/WebProcessCreationParameters.h:
     15        (WebProcessCreationParameters): Add ignoreTLSErrors when building
     16        with soup network backend.
     17        * Shared/soup/PlatformCertificateInfo.cpp:
     18        (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Add a
     19        constructor that receives a ResourceError.
     20        * Shared/soup/PlatformCertificateInfo.h:
     21        * Shared/soup/WebCoreArgumentCodersSoup.cpp:
     22        (CoreIPC::::encodePlatformData): Encode the
     23        PlatformCertificateInfo as part for the ResourceError.
     24        (CoreIPC::::decodePlatformData): Decode the
     25        PlatformCertificateInfo and set certificate and TLS errors in the
     26        ResourceError.
     27        * UIProcess/API/gtk/WebKitLoaderClient.cpp:
     28        (didFailProvisionalLoadWithErrorForFrame): Call
     29        webkitWebViewLoadFailedWithTLSErrors() if the load failed due to
     30        TLS errors.
     31        * UIProcess/API/gtk/WebKitWebContext.cpp:
     32        (_WebKitWebContextPrivate): Add tlsErrorsPolicy member.
     33        (createDefaultWebContext): Initiales tlsErrorsPolicy.
     34        (webkit_web_context_set_tls_errors_policy): Set the TLS errors
     35        policy notify WebContext to ignore TLS errors or not.
     36        (webkit_web_context_get_tls_errors_policy): Return the current TLS
     37        errors policy.
     38        * UIProcess/API/gtk/WebKitWebContext.h:
     39        * UIProcess/API/gtk/WebKitWebView.cpp:
     40        (webkitWebViewLoadFailedWithTLSErrors): Finish the load with an
     41        error if the TLS errors policy is FAIL.
     42        * UIProcess/API/gtk/WebKitWebViewPrivate.h:
     43        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
     44        * UIProcess/API/gtk/tests/TestSSL.cpp:
     45        (testTLSErrorsPolicy):
     46        (beforeAll):
     47        * UIProcess/WebContext.cpp:
     48        (WebKit::WebContext::WebContext): Initialize m_ignoreTLSErrors.
     49        * UIProcess/WebContext.h:
     50        (WebContext): Add m_ignoreTLSErrors member.
     51        (WebKit::WebContext::ignoreTLSErrors): Return m_ignoreTLSErrors.
     52        * UIProcess/efl/WebContextEfl.cpp:
     53        (WebKit::WebContext::platformInitializeWebProcess): Set
     54        ignoreTLSErrors parameter.
     55        (WebKit::WebContext::setIgnoreTLSErrors): Send SetIgnoreTLSErrors
     56        message to the web process.
     57        * UIProcess/gtk/WebContextGtk.cpp:
     58        (WebKit::WebContext::platformInitializeWebProcess): Set
     59        ignoreTLSErrors parameter.
     60        (WebKit::WebContext::setIgnoreTLSErrors): Send SetIgnoreTLSErrors
     61        message to the web process.
     62        (WebKit):
     63        * WebProcess/WebProcess.h:
     64        * WebProcess/WebProcess.messages.in:
     65        * WebProcess/efl/WebProcessMainEfl.cpp:
     66        (WebKit::WebProcessMainEfl): Remove the call to
     67        ResourceHandle::setIgnoreSSLErrors().
     68        * WebProcess/gtk/WebProcessMainGtk.cpp:
     69        (WebKit::WebProcessMainGtk): Remove the call to
     70        ResourceHandle::setIgnoreSSLErrors().
     71        * WebProcess/soup/WebProcessSoup.cpp:
     72        (WebKit::WebProcess::platformInitializeWebProcess):
     73        (WebKit::WebProcess::setIgnoreTLSErrors): Call
     74        ResourceHandle::setIgnoreSSLErrors().
     75        (WebKit):
     76
    1772012-12-20  Dominik Röttsches  <dominik.rottsches@intel.com>
    278
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp

    r137432 r138273  
    8282    encoder << cookiePersistentStorageType;
    8383    encoder.encodeEnum(cookieAcceptPolicy);
     84    encoder << ignoreTLSErrors;
    8485#endif
    8586    encoder.encodeEnum(cacheModel);
     
    180181    if (!decoder->decode(parameters.cookiePersistentStorageType))
    181182        return false;
    182     if (!decoder->decode(parameters.cookieAcceptPolicy))
     183    if (!decoder->decodeEnum(parameters.cookieAcceptPolicy))
     184        return false;
     185    if (!decoder->decode(parameters.ignoreTLSErrors))
    183186        return false;
    184187#endif
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h

    r137432 r138273  
    8585    uint32_t cookiePersistentStorageType;
    8686    HTTPCookieAcceptPolicy cookieAcceptPolicy;
     87    bool ignoreTLSErrors;
    8788#endif
    8889
  • trunk/Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp

    r132361 r138273  
    3030#include "ArgumentEncoder.h"
    3131#include "DataReference.h"
     32#include <WebCore/ResourceError.h>
    3233#include <WebCore/ResourceResponse.h>
    3334#include <libsoup/soup.h>
     
    4546    : m_certificate(response.soupMessageCertificate())
    4647    , m_tlsErrors(response.soupMessageTLSErrors())
     48{
     49}
     50
     51PlatformCertificateInfo::PlatformCertificateInfo(const ResourceError& resourceError)
     52    : m_certificate(resourceError.certificate())
     53    , m_tlsErrors(static_cast<GTlsCertificateFlags>(resourceError.tlsErrors()))
    4754{
    4855}
  • trunk/Source/WebKit2/Shared/soup/PlatformCertificateInfo.h

    r132361 r138273  
    3737
    3838namespace WebCore {
     39class ResourceError;
    3940class ResourceResponse;
    4041}
     
    4647    PlatformCertificateInfo();
    4748    explicit PlatformCertificateInfo(const WebCore::ResourceResponse&);
     49    explicit PlatformCertificateInfo(const WebCore::ResourceError&);
    4850    ~PlatformCertificateInfo();
    4951
  • trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp

    r133075 r138273  
    2828#include "WebCoreArgumentCoders.h"
    2929
     30#include "PlatformCertificateInfo.h"
    3031#include <WebCore/ResourceError.h>
    3132#include <WebCore/ResourceRequest.h>
     
    3435
    3536using namespace WebCore;
     37using namespace WebKit;
    3638
    3739namespace CoreIPC {
     
    6769
    6870
    69 void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder&, const ResourceError&)
     71void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder& encoder, const ResourceError& resourceError)
    7072{
     73    encoder << PlatformCertificateInfo(resourceError);
    7174}
    7275
    73 bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder*, ResourceError&)
     76bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
    7477{
     78    PlatformCertificateInfo certificateInfo;
     79    if (!decoder->decode(certificateInfo))
     80        return false;
     81
     82    resourceError.setCertificate(certificateInfo.certificate());
     83    resourceError.setTLSErrors(certificateInfo.tlsErrors());
    7584    return true;
    7685}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp

    r137450 r138273  
    5858                                                 resourceError.errorCode(),
    5959                                                 resourceError.localizedDescription().utf8().data()));
    60     webkitWebViewLoadFailed(WEBKIT_WEB_VIEW(clientInfo), WEBKIT_LOAD_STARTED,
    61                             resourceError.failingURL().utf8().data(), webError.get());
     60    if (resourceError.tlsErrors()) {
     61        webkitWebViewLoadFailedWithTLSErrors(WEBKIT_WEB_VIEW(clientInfo), resourceError.failingURL().utf8().data(), webError.get(),
     62            static_cast<GTlsCertificateFlags>(resourceError.tlsErrors()), resourceError.certificate());
     63    } else
     64        webkitWebViewLoadFailed(WEBKIT_WEB_VIEW(clientInfo), WEBKIT_LOAD_STARTED, resourceError.failingURL().utf8().data(), webError.get());
    6265}
    6366
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp

    r137469 r138273  
    137137#endif
    138138    CString faviconDatabaseDirectory;
     139    WebKitTLSErrorsPolicy tlsErrorsPolicy;
    139140};
    140141
     
    172173    priv->requestManager = webContext->priv->context->soupRequestManagerProxy();
    173174    priv->context->setCacheModel(CacheModelPrimaryWebBrowser);
     175    priv->tlsErrorsPolicy = WEBKIT_TLS_ERRORS_POLICY_IGNORE;
    174176
    175177    attachDownloadClientToContext(webContext.get());
     
    695697}
    696698
     699/**
     700 * webkit_web_context_set_tls_errors_policy:
     701 * @context: a #WebKitWebContext
     702 * @policy: a #WebKitTLSErrorsPolicy
     703 *
     704 * Set the TLS errors policy of @context as @policy
     705 */
     706void webkit_web_context_set_tls_errors_policy(WebKitWebContext* context, WebKitTLSErrorsPolicy policy)
     707{
     708    g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
     709
     710    if (context->priv->tlsErrorsPolicy == policy)
     711        return;
     712
     713    context->priv->tlsErrorsPolicy = policy;
     714    bool ignoreTLSErrors = policy == WEBKIT_TLS_ERRORS_POLICY_IGNORE;
     715    if (context->priv->context->ignoreTLSErrors() != ignoreTLSErrors)
     716        context->priv->context->setIgnoreTLSErrors(ignoreTLSErrors);
     717}
     718
     719/**
     720 * webkit_web_context_get_tls_errors_policy:
     721 * @context: a #WebKitWebContext
     722 *
     723 * Get the TLS errors policy of @context
     724 *
     725 * Returns: a #WebKitTLSErrorsPolicy
     726 */
     727WebKitTLSErrorsPolicy webkit_web_context_get_tls_errors_policy(WebKitWebContext* context)
     728{
     729    g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), WEBKIT_TLS_ERRORS_POLICY_IGNORE);
     730
     731    return context->priv->tlsErrorsPolicy;
     732}
     733
    697734WebKitDownload* webkitWebContextGetOrCreateDownload(DownloadProxy* downloadProxy)
    698735{
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h

    r129906 r138273  
    6161    WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER
    6262} WebKitCacheModel;
     63
     64/**
     65 * WebKitTLSErrorsPolicy:
     66 * @WEBKIT_TLS_ERRORS_POLICY_IGNORE: Ignore TLS errors.
     67 * @WEBKIT_TLS_ERRORS_POLICY_FAIL: TLS errors make the load to finish with an error.
     68 *
     69 * Enum values used to denote the TLS errors policy.
     70 */
     71typedef enum {
     72    WEBKIT_TLS_ERRORS_POLICY_IGNORE,
     73    WEBKIT_TLS_ERRORS_POLICY_FAIL
     74} WebKitTLSErrorsPolicy;
    6375
    6476/**
     
    166178                                                     const gchar * const           *languages);
    167179
     180WEBKIT_API void
     181webkit_web_context_set_tls_errors_policy            (WebKitWebContext              *context,
     182                                                     WebKitTLSErrorsPolicy          policy);
     183
     184WEBKIT_API WebKitTLSErrorsPolicy
     185webkit_web_context_get_tls_errors_policy            (WebKitWebContext              *context);
     186
    168187G_END_DECLS
    169188
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r137748 r138273  
    13641364    gboolean returnValue;
    13651365    g_signal_emit(webView, signals[LOAD_FAILED], 0, loadEvent, failingURI, error, &returnValue);
     1366    g_signal_emit(webView, signals[LOAD_CHANGED], 0, WEBKIT_LOAD_FINISHED);
     1367}
     1368
     1369void webkitWebViewLoadFailedWithTLSErrors(WebKitWebView* webView, const char* failingURI, GError *error, GTlsCertificateFlags tlsErrors, GTlsCertificate* certificate)
     1370{
     1371    webkitWebViewSetIsLoading(webView, false);
     1372
     1373    WebKitTLSErrorsPolicy tlsErrorsPolicy = webkit_web_context_get_tls_errors_policy(webView->priv->context);
     1374    if (tlsErrorsPolicy == WEBKIT_TLS_ERRORS_POLICY_FAIL) {
     1375        webkitWebViewLoadFailed(webView, WEBKIT_LOAD_STARTED, failingURI, error);
     1376        return;
     1377    }
     1378
    13661379    g_signal_emit(webView, signals[LOAD_CHANGED], 0, WEBKIT_LOAD_FINISHED);
    13671380}
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h

    r137450 r138273  
    3333void webkitWebViewLoadChanged(WebKitWebView*, WebKitLoadEvent);
    3434void webkitWebViewLoadFailed(WebKitWebView*, WebKitLoadEvent, const char* failingURI, GError*);
     35void webkitWebViewLoadFailedWithTLSErrors(WebKitWebView*, const char* failingURI, GError *, GTlsCertificateFlags, GTlsCertificate*);
    3536void webkitWebViewSetEstimatedLoadProgress(WebKitWebView*, double estimatedLoadProgress);
    3637void webkitWebViewSetTitle(WebKitWebView*, const CString&);
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt

    r137450 r138273  
    2525WebKitWebContext
    2626WebKitCacheModel
     27WebKitTLSErrorsPolicy
    2728webkit_web_context_get_default
    2829webkit_web_context_get_cache_model
     
    4344webkit_web_context_set_spell_checking_languages
    4445webkit_web_context_set_preferred_languages
     46webkit_web_context_set_tls_errors_policy
     47webkit_web_context_get_tls_errors_policy
    4548
    4649<SUBSECTION URI Scheme>
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp

    r137450 r138273  
    3939    }
    4040
     41    virtual void provisionalLoadFailed(const gchar* failingURI, GError* error)
     42    {
     43        g_assert_error(error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED);
     44        LoadTrackingTest::provisionalLoadFailed(failingURI, error);
     45    }
     46
    4147    virtual void loadCommitted()
    4248    {
     
    4955        webkit_uri_response_get_https_status(response, &certificate, &m_tlsErrors);
    5056        m_certificate = certificate;
     57        LoadTrackingTest::loadCommitted();
    5158    }
    5259
     
    114121}
    115122
     123static void testTLSErrorsPolicy(SSLTest* test, gconstpointer)
     124{
     125    WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);
     126    // TLS errors are ignored by default.
     127    g_assert(webkit_web_context_get_tls_errors_policy(context) == WEBKIT_TLS_ERRORS_POLICY_IGNORE);
     128    test->loadURI(kHttpsServer->getURIForPath("/").data());
     129    test->waitUntilLoadFinished();
     130    g_assert(!test->m_loadFailed);
     131
     132    webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);
     133    test->loadURI(kHttpsServer->getURIForPath("/").data());
     134    test->waitUntilLoadFinished();
     135    g_assert(test->m_loadFailed);
     136    g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
     137    g_assert(!test->m_loadEvents.contains(LoadTrackingTest::LoadCommitted));
     138}
     139
    116140static void httpsServerCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
    117141{
     
    173197    SSLTest::add("WebKitWebView", "ssl", testSSL);
    174198    InsecureContentTest::add("WebKitWebView", "insecure-content", testInsecureContent);
     199    SSLTest::add("WebKitWebContext", "tls-errors-policy", testTLSErrorsPolicy);
    175200}
    176201
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r138203 r138273  
    143143    , m_usesNetworkProcess(false)
    144144#endif
     145#if USE(SOUP)
     146    , m_ignoreTLSErrors(true)
     147#endif
    145148{
    146149    platformInitialize();
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r138203 r138273  
    283283    static void willStopUsingPrivateBrowsing();
    284284
     285#if USE(SOUP)
     286    void setIgnoreTLSErrors(bool);
     287    bool ignoreTLSErrors() const { return m_ignoreTLSErrors; }
     288#endif
     289
    285290private:
    286291    WebContext(ProcessModel, const String& injectedBundlePath);
     
    464469    static bool s_applicationIsOccluded;
    465470#endif
     471
     472#if USE(SOUP)
     473    bool m_ignoreTLSErrors;
     474#endif
    466475};
    467476
  • trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp

    r137598 r138273  
    3131#include "WebInspectorServer.h"
    3232#include "WebProcessCreationParameters.h"
     33#include "WebProcessMessages.h"
    3334#include "WebSoupRequestManagerProxy.h"
    3435#include <Efreet.h>
     
    9293    m_cookieManagerProxy->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType);
    9394    parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy;
     95    parameters.ignoreTLSErrors = m_ignoreTLSErrors;
    9496}
    9597
     
    126128}
    127129
     130void WebContext::setIgnoreTLSErrors(bool ignoreTLSErrors)
     131{
     132    m_ignoreTLSErrors = ignoreTLSErrors;
     133    sendToAllProcesses(Messages::WebProcess::SetIgnoreTLSErrors(m_ignoreTLSErrors));
     134}
     135
    128136} // namespace WebKit
  • trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp

    r138147 r138273  
    3333#include "WebInspectorServer.h"
    3434#include "WebProcessCreationParameters.h"
     35#include "WebProcessMessages.h"
    3536#include "WebSoupRequestManagerProxy.h"
    3637#include <WebCore/FileSystem.h>
     
    9192    m_cookieManagerProxy->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType);
    9293    parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy;
     94    parameters.ignoreTLSErrors = m_ignoreTLSErrors;
    9395}
    9496
     
    127129}
    128130
     131void WebContext::setIgnoreTLSErrors(bool ignoreTLSErrors)
     132{
     133    m_ignoreTLSErrors = ignoreTLSErrors;
     134    sendToAllProcesses(Messages::WebProcess::SetIgnoreTLSErrors(m_ignoreTLSErrors));
     135}
     136
    129137} // namespace WebKit
  • trunk/Source/WebKit2/WebProcess/WebProcess.h

    r138203 r138273  
    286286    void setJavaScriptGarbageCollectorTimerEnabled(bool flag);
    287287
     288#if USE(SOUP)
     289    void setIgnoreTLSErrors(bool);
     290#endif
     291
    288292    void postInjectedBundleMessage(const CoreIPC::DataReference& messageData);
    289293
  • trunk/Source/WebKit2/WebProcess/WebProcess.messages.in

    r138203 r138273  
    5555    SetShouldPaintNativeControls(bool shouldPaintNativeControls)
    5656#endif
     57#if USE(SOUP)
     58    SetIgnoreTLSErrors(bool ignoreTLSErrors)
     59#endif
    5760
    5861    // Private browsing session is per process. Individual pages or page groups may use the private session or the default one as appropriate.
  • trunk/Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp

    r138234 r138273  
    112112    soup_cache_load(soupCache);
    113113
    114     WebCore::ResourceHandle::setIgnoreSSLErrors(true);
    115 
    116114    int socket = atoi(argv[1]);
    117115    WebProcess::shared().initialize(socket, RunLoop::main());
  • trunk/Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp

    r137588 r138273  
    7676    soup_cache_load(soupCache.get());
    7777
    78     // This is for compatibility, it will be removed when UI process can handle SSL errors.
    79     WebCore::ResourceHandle::setIgnoreSSLErrors(true);
    80 
    8178    RunLoop::run();
    8279
  • trunk/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp

    r137432 r138273  
    177177    WebCookieManager::shared().setHTTPCookieAcceptPolicy(parameters.cookieAcceptPolicy);
    178178
     179    setIgnoreTLSErrors(parameters.ignoreTLSErrors);
     180
    179181    WebCore::addLanguageChangeObserver(this, languageChanged);
    180182}
     
    185187}
    186188
     189void WebProcess::setIgnoreTLSErrors(bool ignoreTLSErrors)
     190{
     191    WebCore::ResourceHandle::setIgnoreSSLErrors(ignoreTLSErrors);
     192}
     193
    187194} // namespace WebKit
Note: See TracChangeset for help on using the changeset viewer.