Changeset 267502 in webkit
- Timestamp:
- Sep 23, 2020, 3:14:15 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 31 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/network/soup/SoupNetworkSession.cpp (modified) (2 diffs)
-
Source/WebCore/platform/network/soup/SoupNetworkSession.h (modified) (2 diffs)
-
Source/WebCore/testing/InternalSettings.cpp (modified) (2 diffs)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkProcess.h (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkProcess.messages.in (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (modified) (2 diffs)
-
Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp (modified) (3 diffs)
-
Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (modified) (1 diff)
-
Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp (modified) (1 diff)
-
Source/WebKit/NetworkProcess/soup/NetworkProcessSoup.cpp (modified) (2 diffs)
-
Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp (modified) (3 diffs)
-
Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h (modified) (1 diff)
-
Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp (modified) (6 diffs)
-
Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (modified) (3 diffs)
-
Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.cpp (modified) (4 diffs)
-
Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/gtk/WebKitWebsiteDataManager.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt (modified) (3 diffs)
-
Source/WebKit/UIProcess/API/wpe/WebKitWebContext.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/wpe/WebKitWebsiteDataManager.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/wpe/docs/wpe-1.0-sections.txt (modified) (3 diffs)
-
Source/WebKit/UIProcess/WebProcessPool.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/soup/WebProcessPoolSoup.cpp (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r267499 r267502 1 2020-09-23 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK][WPE] Move TLS errors API from WebKitContext to WebKitWebsiteDataManager 4 https://bugs.webkit.org/show_bug.cgi?id=216822 5 6 Reviewed by Alex Christensen. 7 8 Make ignoreTLSErrors a member of SoupNetworkSession, instead of being global. 9 10 * platform/network/soup/SoupNetworkSession.cpp: 11 (WebCore::SoupNetworkSession::setIgnoreTLSErrors): 12 (WebCore::SoupNetworkSession::checkTLSErrors): 13 (WebCore::SoupNetworkSession::setShouldIgnoreTLSErrors): Deleted. 14 * platform/network/soup/SoupNetworkSession.h: 15 * testing/InternalSettings.cpp: 16 (WebCore::InternalSettings::setAllowsAnySSLCertificate): Do not use SoupNetworkSession in the web process. 17 1 18 2020-09-23 Tim Horton <timothy_horton@apple.com> 2 19 -
trunk/Source/WebCore/platform/network/soup/SoupNetworkSession.cpp
r266819 r267502 45 45 namespace WebCore { 46 46 47 static bool gIgnoreTLSErrors;48 49 47 static CString& initialAcceptLanguages() 50 48 { … … 326 324 } 327 325 328 void SoupNetworkSession::set ShouldIgnoreTLSErrors(bool ignoreTLSErrors)329 { 330 gIgnoreTLSErrors = ignoreTLSErrors;326 void SoupNetworkSession::setIgnoreTLSErrors(bool ignoreTLSErrors) 327 { 328 m_ignoreTLSErrors = ignoreTLSErrors; 331 329 } 332 330 333 331 Optional<ResourceError> SoupNetworkSession::checkTLSErrors(const URL& requestURL, GTlsCertificate* certificate, GTlsCertificateFlags tlsErrors) 334 332 { 335 if (gIgnoreTLSErrors) 336 return WTF::nullopt; 337 338 if (!tlsErrors) 333 if (m_ignoreTLSErrors || !tlsErrors) 339 334 return WTF::nullopt; 340 335 -
trunk/Source/WebCore/platform/network/soup/SoupNetworkSession.h
r266112 r267502 67 67 void setAcceptLanguages(const CString&); 68 68 69 WEBCORE_EXPORT static void setShouldIgnoreTLSErrors(bool);70 staticOptional<ResourceError> checkTLSErrors(const URL&, GTlsCertificate*, GTlsCertificateFlags);69 WEBCORE_EXPORT void setIgnoreTLSErrors(bool); 70 Optional<ResourceError> checkTLSErrors(const URL&, GTlsCertificate*, GTlsCertificateFlags); 71 71 static void allowSpecificHTTPSCertificateForHost(const CertificateInfo&, const String& host); 72 72 … … 80 80 GRefPtr<SoupSession> m_soupSession; 81 81 PAL::SessionID m_sessionID; 82 bool m_ignoreTLSErrors { false }; 82 83 }; 83 84 -
trunk/Source/WebCore/testing/InternalSettings.cpp
r267188 r267502 48 48 #endif 49 49 50 #if USE(SOUP)51 #include "SoupNetworkSession.h"52 #endif53 54 50 #if ENABLE(WEB_AUDIO) 55 51 #include "AudioContext.h" … … 899 895 { 900 896 DeprecatedGlobalSettings::setAllowsAnySSLCertificate(allowsAnyCertificate); 901 #if USE(SOUP)902 SoupNetworkSession::setShouldIgnoreTLSErrors(allowsAnyCertificate);903 #endif904 897 } 905 898 -
trunk/Source/WebKit/ChangeLog
r267498 r267502 1 2020-09-23 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK][WPE] Move TLS errors API from WebKitContext to WebKitWebsiteDataManager 4 https://bugs.webkit.org/show_bug.cgi?id=216822 5 6 Reviewed by Alex Christensen. 7 8 Make TLS errors policy per session instead of global to the network process. The web context API now simply 9 forwards the request to the website data manager. The website data manager created for an ephemeral web view 10 will inherit the network settings from the web context website data manager. This ensures backwards 11 compatibility, but it's also convenient, since it's the desired behavior in most of the cases. Apps can still 12 change the network settings of the web view by getting the website data manager. 13 14 * NetworkProcess/NetworkProcess.h: 15 * NetworkProcess/NetworkProcess.messages.in: 16 * NetworkProcess/NetworkProcessCreationParameters.cpp: 17 (WebKit::NetworkProcessCreationParameters::encode const): 18 (WebKit::NetworkProcessCreationParameters::decode): 19 * NetworkProcess/NetworkProcessCreationParameters.h: 20 * NetworkProcess/NetworkSessionCreationParameters.cpp: 21 (WebKit::NetworkSessionCreationParameters::encode const): 22 (WebKit::NetworkSessionCreationParameters::decode): 23 * NetworkProcess/NetworkSessionCreationParameters.h: 24 * NetworkProcess/soup/NetworkDataTaskSoup.cpp: 25 (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): 26 * NetworkProcess/soup/NetworkProcessSoup.cpp: 27 (WebKit::NetworkProcess::platformInitializeNetworkProcess): 28 (WebKit::NetworkProcess::setIgnoreTLSErrors): 29 * NetworkProcess/soup/NetworkSessionSoup.cpp: 30 (WebKit::NetworkSessionSoup::NetworkSessionSoup): 31 (WebKit::webSocketAcceptCertificateCallback): 32 (WebKit::webSocketMessageNetworkEventCallback): 33 (WebKit::NetworkSessionSoup::createWebSocketTask): 34 (WebKit::NetworkSessionSoup::setIgnoreTLSErrors): 35 * NetworkProcess/soup/NetworkSessionSoup.h: 36 * UIProcess/API/glib/WebKitAutomationSession.cpp: 37 (webkitAutomationSessionCreate): 38 * UIProcess/API/glib/WebKitWebContext.cpp: 39 (webkitWebContextConstructed): 40 (webkit_web_context_set_tls_errors_policy): 41 (webkit_web_context_get_tls_errors_policy): 42 * UIProcess/API/glib/WebKitWebView.cpp: 43 (webkitWebViewConstructed): 44 (webkit_web_view_class_init): 45 (webkitWebViewLoadFailedWithTLSErrors): 46 * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: 47 (webkitWebsiteDataManagerConstructed): 48 (webkitWebsiteDataManagerGetDataStore): 49 (webkit_website_data_manager_set_tls_errors_policy): 50 (webkit_website_data_manager_get_tls_errors_policy): 51 * UIProcess/API/gtk/WebKitWebContext.h: 52 * UIProcess/API/gtk/WebKitWebsiteDataManager.h: 53 * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: 54 * UIProcess/API/wpe/WebKitWebContext.h: 55 * UIProcess/API/wpe/WebKitWebsiteDataManager.h: 56 * UIProcess/API/wpe/docs/wpe-1.0-sections.txt: 57 * UIProcess/WebProcessPool.h: 58 * UIProcess/WebsiteData/WebsiteDataStore.h: 59 (WebKit::WebsiteDataStore::ignoreTLSErrors const): 60 * UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp: 61 (WebKit::WebsiteDataStore::setIgnoreTLSErrors): 62 * UIProcess/soup/WebProcessPoolSoup.cpp: 63 (WebKit::WebProcessPool::platformInitializeNetworkProcess): 64 (WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted. 65 1 66 2020-09-23 Per Arne Vollan <pvollan@apple.com> 2 67 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r267123 r267502 446 446 447 447 #if USE(SOUP) 448 void setIgnoreTLSErrors( bool);448 void setIgnoreTLSErrors(PAL::SessionID, bool); 449 449 void userPreferredLanguagesChanged(const Vector<String>&); 450 450 void setNetworkProxySettings(const WebCore::SoupNetworkProxySettings&); -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
r267123 r267502 29 29 30 30 #if USE(SOUP) 31 SetIgnoreTLSErrors( bool ignoreTLSErrors)31 SetIgnoreTLSErrors(PAL::SessionID sessionID, bool ignoreTLSErrors) 32 32 UserPreferredLanguagesChanged(Vector<String> languages) 33 33 SetNetworkProxySettings(struct WebCore::SoupNetworkProxySettings settings) -
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
r267090 r267502 59 59 #if USE(SOUP) 60 60 encoder << cookieAcceptPolicy; 61 encoder << ignoreTLSErrors;62 61 encoder << languages; 63 62 encoder << proxySettings; … … 126 125 if (!decoder.decode(result.cookieAcceptPolicy)) 127 126 return false; 128 if (!decoder.decode(result.ignoreTLSErrors))129 return false;130 127 if (!decoder.decode(result.languages)) 131 128 return false; -
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
r267090 r267502 76 76 #if USE(SOUP) 77 77 WebCore::HTTPCookieAcceptPolicy cookieAcceptPolicy { WebCore::HTTPCookieAcceptPolicy::AlwaysAccept }; 78 bool ignoreTLSErrors { false };79 78 Vector<String> languages; 80 79 WebCore::SoupNetworkProxySettings proxySettings; -
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
r266086 r267502 64 64 encoder << cookiePersistentStorageType; 65 65 encoder << persistentCredentialStorageEnabled; 66 encoder << ignoreTLSErrors; 66 67 #endif 67 68 #if USE(CURL) … … 182 183 if (!persistentCredentialStorageEnabled) 183 184 return WTF::nullopt; 185 186 Optional<bool> ignoreTLSErrors; 187 decoder >> ignoreTLSErrors; 188 if (!ignoreTLSErrors) 189 return WTF::nullopt; 184 190 #endif 185 191 … … 300 306 , WTFMove(*cookiePersistentStorageType) 301 307 , WTFMove(*persistentCredentialStorageEnabled) 308 , WTFMove(*ignoreTLSErrors) 302 309 #endif 303 310 #if USE(CURL) -
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
r266086 r267502 76 76 SoupCookiePersistentStorageType cookiePersistentStorageType { SoupCookiePersistentStorageType::Text }; 77 77 bool persistentCredentialStorageEnabled { true }; 78 bool ignoreTLSErrors { false }; 78 79 #endif 79 80 #if USE(CURL) -
trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
r266576 r267502 445 445 ASSERT(m_soupRequest); 446 446 URL url = soupURIToURL(soup_request_get_uri(m_soupRequest.get())); 447 auto error = SoupNetworkSession::checkTLSErrors(url, certificate, tlsErrors);447 auto error = static_cast<NetworkSessionSoup&>(*m_session).soupNetworkSession().checkTLSErrors(url, certificate, tlsErrors); 448 448 if (!error) 449 449 return true; -
trunk/Source/WebKit/NetworkProcess/soup/NetworkProcessSoup.cpp
r266112 r267502 137 137 if (!parameters.languages.isEmpty()) 138 138 userPreferredLanguagesChanged(parameters.languages); 139 140 setIgnoreTLSErrors(parameters.ignoreTLSErrors);141 139 } 142 140 … … 146 144 } 147 145 148 void NetworkProcess::setIgnoreTLSErrors( bool ignoreTLSErrors)146 void NetworkProcess::setIgnoreTLSErrors(PAL::SessionID sessionID, bool ignoreTLSErrors) 149 147 { 150 SoupNetworkSession::setShouldIgnoreTLSErrors(ignoreTLSErrors); 148 if (auto* session = networkSession(sessionID)) 149 static_cast<NetworkSessionSoup&>(*session).setIgnoreTLSErrors(ignoreTLSErrors); 151 150 } 152 151 -
trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp
r266112 r267502 47 47 auto* storageSession = networkStorageSession(); 48 48 ASSERT(storageSession); 49 50 setIgnoreTLSErrors(parameters.ignoreTLSErrors); 49 51 50 52 if (!parameters.cookiePersistentStoragePath.isEmpty()) … … 99 101 } 100 102 101 static gboolean webSocketAcceptCertificateCallback(GTlsConnection* , GTlsCertificate* certificate, GTlsCertificateFlags errors, SoupMessage* soupMessage)103 static gboolean webSocketAcceptCertificateCallback(GTlsConnection* connection, GTlsCertificate* certificate, GTlsCertificateFlags errors, NetworkSessionSoup* session) 102 104 { 103 105 if (DeprecatedGlobalSettings::allowsAnySSLCertificate()) 104 106 return TRUE; 105 107 106 return !SoupNetworkSession::checkTLSErrors(soupURIToURL(soup_message_get_uri(soupMessage)), certificate, errors); 108 auto* soupMessage = static_cast<SoupMessage*>(g_object_get_data(G_OBJECT(connection), "wk-soup-message")); 109 return !session->soupNetworkSession().checkTLSErrors(soupURIToURL(soup_message_get_uri(soupMessage)), certificate, errors); 107 110 } 108 111 109 static void webSocketMessageNetworkEventCallback(SoupMessage* soupMessage, GSocketClientEvent event, GIOStream* connection )112 static void webSocketMessageNetworkEventCallback(SoupMessage* soupMessage, GSocketClientEvent event, GIOStream* connection, NetworkSessionSoup* session) 110 113 { 111 114 if (event != G_SOCKET_CLIENT_TLS_HANDSHAKING) 112 115 return; 113 116 114 g_signal_connect(connection, "accept-certificate", G_CALLBACK(webSocketAcceptCertificateCallback), soupMessage); 117 g_object_set_data(G_OBJECT(connection), "wk-soup-message", soupMessage); 118 g_signal_connect(connection, "accept-certificate", G_CALLBACK(webSocketAcceptCertificateCallback), session); 115 119 } 116 120 … … 124 128 request.updateSoupMessage(soupMessage.get(), blobRegistry()); 125 129 if (request.url().protocolIs("wss")) 126 g_signal_connect(soupMessage.get(), "network-event", G_CALLBACK(webSocketMessageNetworkEventCallback), nullptr);130 g_signal_connect(soupMessage.get(), "network-event", G_CALLBACK(webSocketMessageNetworkEventCallback), this); 127 131 return makeUnique<WebSocketTask>(channel, soupSession(), soupMessage.get(), protocol); 128 132 } 129 133 134 void NetworkSessionSoup::setIgnoreTLSErrors(bool ignoreTLSErrors) 135 { 136 m_networkSession->setIgnoreTLSErrors(ignoreTLSErrors); 137 } 138 130 139 } // namespace WebKit -
trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h
r263444 r267502 58 58 bool persistentCredentialStorageEnabled() const { return m_persistentCredentialStorageEnabled; } 59 59 60 void setIgnoreTLSErrors(bool); 61 60 62 private: 61 63 std::unique_ptr<WebSocketTask> createWebSocketTask(NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol) final; -
trunk/Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp
r252356 r267502 351 351 session->priv->webContext = webContext; 352 352 if (capabilities.acceptInsecureCertificates) 353 webkit_web_context_set_tls_errors_policy(webContext, WEBKIT_TLS_ERRORS_POLICY_IGNORE); 353 webkit_website_data_manager_set_tls_errors_policy(webkit_web_context_get_website_data_manager(webContext), WEBKIT_TLS_ERRORS_POLICY_IGNORE); 354 354 355 for (auto& certificate : capabilities.certificates) { 355 356 GRefPtr<GTlsCertificate> tlsCertificate = adoptGRef(g_tls_certificate_new_from_file(certificate.second.utf8().data(), nullptr)); -
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
r267155 r267502 223 223 224 224 CString faviconDatabaseDirectory; 225 WebKitTLSErrorsPolicy tlsErrorsPolicy;226 225 WebKitProcessModel processModel; 227 226 … … 414 413 415 414 webkitWebsiteDataManagerAddProcessPool(priv->websiteDataManager.get(), *priv->processPool); 416 417 priv->tlsErrorsPolicy = WEBKIT_TLS_ERRORS_POLICY_FAIL;418 priv->processPool->setIgnoreTLSErrors(false);419 415 420 416 priv->processModel = WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES; … … 1497 1493 * 1498 1494 * Set the TLS errors policy of @context as @policy 1495 * 1496 * Deprecated: 2.32. Use webkit_website_data_manager_set_tls_errors_policy() instead. 1499 1497 */ 1500 1498 void webkit_web_context_set_tls_errors_policy(WebKitWebContext* context, WebKitTLSErrorsPolicy policy) … … 1502 1500 g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context)); 1503 1501 1504 if (context->priv->tlsErrorsPolicy == policy) 1505 return; 1506 1507 context->priv->tlsErrorsPolicy = policy; 1508 bool ignoreTLSErrors = policy == WEBKIT_TLS_ERRORS_POLICY_IGNORE; 1509 if (context->priv->processPool->ignoreTLSErrors() != ignoreTLSErrors) 1510 context->priv->processPool->setIgnoreTLSErrors(ignoreTLSErrors); 1502 webkit_website_data_manager_set_tls_errors_policy(context->priv->websiteDataManager.get(), policy); 1511 1503 } 1512 1504 … … 1518 1510 * 1519 1511 * Returns: a #WebKitTLSErrorsPolicy 1512 * 1513 * Deprecated: 2.32. Use webkit_website_data_manager_get_tls_errors_policy() instead. 1520 1514 */ 1521 1515 WebKitTLSErrorsPolicy webkit_web_context_get_tls_errors_policy(WebKitWebContext* context) … … 1523 1517 g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), WEBKIT_TLS_ERRORS_POLICY_IGNORE); 1524 1518 1525 return context->priv->tlsErrorsPolicy;1519 return webkit_website_data_manager_get_tls_errors_policy(context->priv->websiteDataManager.get()); 1526 1520 } 1527 1521 -
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp
r265753 r267502 756 756 if (priv->isEphemeral && !webkit_web_context_is_ephemeral(priv->context.get())) { 757 757 priv->websiteDataManager = adoptGRef(webkit_website_data_manager_new_ephemeral()); 758 auto* contextDataManager = webkit_web_context_get_website_data_manager(priv->context.get()); 759 webkit_website_data_manager_set_tls_errors_policy(priv->websiteDataManager.get(), webkit_website_data_manager_get_tls_errors_policy(contextDataManager)); 758 760 webkitWebsiteDataManagerAddProcessPool(priv->websiteDataManager.get(), webkitWebContextGetProcessPool(priv->context.get())); 759 761 } … … 1193 1195 * website data to the client storage, no matter what #WebKitWebsiteDataManager 1194 1196 * its context is using. This is normally used to implement private browsing mode. 1195 * This is a %G_PARAM_CONSTRUCT_ONLY property, so you have to create a ephemeral 1196 * #WebKitWebView and it can't be changed. Note that all #WebKitWebView<!-- -->s 1197 * created with an ephemeral #WebKitWebContext will be ephemeral automatically. 1197 * This is a %G_PARAM_CONSTRUCT_ONLY property, so you have to create an ephemeral 1198 * #WebKitWebView and it can't be changed. The ephemeral #WebKitWebsiteDataManager 1199 * created for the #WebKitWebView will inherit the network settings from the 1200 * #WebKitWebContext<!-- -->'s #WebKitWebsiteDataManager. To use different settings 1201 * you can get the #WebKitWebsiteDataManager with webkit_web_view_get_website_data_manager() 1202 * and set the new ones. 1203 * Note that all #WebKitWebView<!-- -->s created with an ephemeral #WebKitWebContext 1204 * will be ephemeral automatically. 1198 1205 * See also webkit_web_context_new_ephemeral(). 1199 1206 * … … 2357 2364 webkitWebViewCompleteAuthenticationRequest(webView); 2358 2365 2359 WebKitTLSErrorsPolicy tlsErrorsPolicy = webkit_web_context_get_tls_errors_policy(webView->priv->context.get()); 2366 auto* websiteDataManager = webkit_web_view_get_website_data_manager(webView); 2367 WebKitTLSErrorsPolicy tlsErrorsPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 2360 2368 if (tlsErrorsPolicy == WEBKIT_TLS_ERRORS_POLICY_FAIL) { 2361 2369 gboolean returnValue; -
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.cpp
r266990 r267502 112 112 GUniquePtr<char> swRegistrationsDirectory; 113 113 GUniquePtr<char> domCacheDirectory; 114 WebKitTLSErrorsPolicy tlsErrorsPolicy; 114 115 115 116 GRefPtr<WebKitCookieManager> cookieManager; … … 242 243 priv->domCacheDirectory.reset(g_build_filename(priv->baseCacheDirectory.get(), "CacheStorage", nullptr)); 243 244 } 245 246 priv->tlsErrorsPolicy = WEBKIT_TLS_ERRORS_POLICY_FAIL; 244 247 } 245 248 … … 490 493 configuration->setCacheStorageDirectory(FileSystem::stringFromFileSystemRepresentation(priv->domCacheDirectory.get())); 491 494 priv->websiteDataStore = WebKit::WebsiteDataStore::create(WTFMove(configuration), PAL::SessionID::defaultSessionID()); 495 priv->websiteDataStore->setIgnoreTLSErrors(priv->tlsErrorsPolicy == WEBKIT_TLS_ERRORS_POLICY_IGNORE); 492 496 } 493 497 … … 908 912 909 913 return webkitWebsiteDataManagerGetDataStore(manager).persistentCredentialStorageEnabled(); 914 } 915 916 /** 917 * webkit_website_data_manager_set_tls_errors_policy: 918 * @manager: a #WebKitWebsiteDataManager 919 * @policy: a #WebKitTLSErrorsPolicy 920 * 921 * Set the TLS errors policy of @manager as @policy 922 * 923 * Since: 2.32 924 */ 925 void webkit_website_data_manager_set_tls_errors_policy(WebKitWebsiteDataManager* manager, WebKitTLSErrorsPolicy policy) 926 { 927 g_return_if_fail(WEBKIT_IS_WEBSITE_DATA_MANAGER(manager)); 928 929 if (manager->priv->tlsErrorsPolicy == policy) 930 return; 931 932 manager->priv->tlsErrorsPolicy = policy; 933 webkitWebsiteDataManagerGetDataStore(manager).setIgnoreTLSErrors(policy == WEBKIT_TLS_ERRORS_POLICY_IGNORE); 934 } 935 936 /** 937 * webkit_website_data_manager_get_tls_errors_policy: 938 * @manager: a #WebKitWebsiteDataManager 939 * 940 * Get the TLS errors policy of @manager 941 * 942 * Returns: a #WebKitTLSErrorsPolicy 943 * 944 * Since: 2.32 945 */ 946 WebKitTLSErrorsPolicy webkit_website_data_manager_get_tls_errors_policy(WebKitWebsiteDataManager* manager) 947 { 948 g_return_val_if_fail(WEBKIT_IS_WEBSITE_DATA_MANAGER(manager), WEBKIT_TLS_ERRORS_POLICY_FAIL); 949 950 return manager->priv->tlsErrorsPolicy; 910 951 } 911 952 -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h
r265753 r267502 90 90 91 91 /** 92 * WebKitTLSErrorsPolicy:93 * @WEBKIT_TLS_ERRORS_POLICY_IGNORE: Ignore TLS errors.94 * @WEBKIT_TLS_ERRORS_POLICY_FAIL: TLS errors will emit95 * #WebKitWebView::load-failed-with-tls-errors and, if the signal is handled,96 * finish the load. In case the signal is not handled,97 * #WebKitWebView::load-failed is emitted before the load finishes.98 *99 * Enum values used to denote the TLS errors policy.100 */101 typedef enum {102 WEBKIT_TLS_ERRORS_POLICY_IGNORE,103 WEBKIT_TLS_ERRORS_POLICY_FAIL104 } WebKitTLSErrorsPolicy;105 106 /**107 92 * WebKitNetworkProxyMode: 108 93 * @WEBKIT_NETWORK_PROXY_MODE_DEFAULT: Use the default proxy of the system. … … 279 264 const gchar * const *languages); 280 265 281 WEBKIT_ APIvoid266 WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_set_tls_errors_policy) void 282 267 webkit_web_context_set_tls_errors_policy (WebKitWebContext *context, 283 268 WebKitTLSErrorsPolicy policy); 284 269 285 WEBKIT_ APIWebKitTLSErrorsPolicy270 WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_get_tls_errors_policy) WebKitTLSErrorsPolicy 286 271 webkit_web_context_get_tls_errors_policy (WebKitWebContext *context); 287 272 -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebsiteDataManager.h
r264910 r267502 39 39 #define WEBKIT_WEBSITE_DATA_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEBSITE_DATA_MANAGER, WebKitWebsiteDataManagerClass)) 40 40 41 /** 42 * WebKitTLSErrorsPolicy: 43 * @WEBKIT_TLS_ERRORS_POLICY_IGNORE: Ignore TLS errors. 44 * @WEBKIT_TLS_ERRORS_POLICY_FAIL: TLS errors will emit 45 * #WebKitWebView::load-failed-with-tls-errors and, if the signal is handled, 46 * finish the load. In case the signal is not handled, 47 * #WebKitWebView::load-failed is emitted before the load finishes. 48 * 49 * Enum values used to denote the TLS errors policy. 50 */ 51 typedef enum { 52 WEBKIT_TLS_ERRORS_POLICY_IGNORE, 53 WEBKIT_TLS_ERRORS_POLICY_FAIL 54 } WebKitTLSErrorsPolicy; 55 41 56 typedef struct _WebKitWebsiteDataManager WebKitWebsiteDataManager; 42 57 typedef struct _WebKitWebsiteDataManagerClass WebKitWebsiteDataManagerClass; … … 119 134 WEBKIT_API gboolean 120 135 webkit_website_data_manager_get_persistent_credential_storage_enabled (WebKitWebsiteDataManager *manager); 136 137 WEBKIT_API void 138 webkit_website_data_manager_set_tls_errors_policy (WebKitWebsiteDataManager *manager, 139 WebKitTLSErrorsPolicy policy); 140 141 WEBKIT_API WebKitTLSErrorsPolicy 142 webkit_website_data_manager_get_tls_errors_policy (WebKitWebsiteDataManager *manager); 121 143 122 144 WEBKIT_API void -
trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt
r264910 r267502 27 27 WebKitCacheModel 28 28 WebKitProcessModel 29 WebKitTLSErrorsPolicy30 29 WebKitNetworkProxyMode 31 30 webkit_web_context_get_default … … 1454 1453 <FILE>WebKitWebsiteDataManager</FILE> 1455 1454 WebKitWebsiteDataManager 1455 WebKitTLSErrorsPolicy 1456 1456 webkit_website_data_manager_new 1457 1457 webkit_website_data_manager_new_ephemeral … … 1473 1473 webkit_website_data_manager_set_persistent_credential_storage_enabled 1474 1474 webkit_website_data_manager_get_persistent_credential_storage_enabled 1475 webkit_website_data_manager_set_tls_errors_policy 1476 webkit_website_data_manager_get_tls_errors_policy 1475 1477 webkit_website_data_manager_fetch 1476 1478 webkit_website_data_manager_fetch_finish -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebContext.h
r265753 r267502 90 90 91 91 /** 92 * WebKitTLSErrorsPolicy:93 * @WEBKIT_TLS_ERRORS_POLICY_IGNORE: Ignore TLS errors.94 * @WEBKIT_TLS_ERRORS_POLICY_FAIL: TLS errors will emit95 * #WebKitWebView::load-failed-with-tls-errors and, if the signal is handled,96 * finish the load. In case the signal is not handled,97 * #WebKitWebView::load-failed is emitted before the load finishes.98 *99 * Enum values used to denote the TLS errors policy.100 */101 typedef enum {102 WEBKIT_TLS_ERRORS_POLICY_IGNORE,103 WEBKIT_TLS_ERRORS_POLICY_FAIL104 } WebKitTLSErrorsPolicy;105 106 /**107 92 * WebKitNetworkProxyMode: 108 93 * @WEBKIT_NETWORK_PROXY_MODE_DEFAULT: Use the default proxy of the system. … … 279 264 const gchar * const *languages); 280 265 281 WEBKIT_ APIvoid266 WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_set_tls_errors_policy) void 282 267 webkit_web_context_set_tls_errors_policy (WebKitWebContext *context, 283 268 WebKitTLSErrorsPolicy policy); 284 269 285 WEBKIT_ APIWebKitTLSErrorsPolicy270 WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_get_tls_errors_policy) WebKitTLSErrorsPolicy 286 271 webkit_web_context_get_tls_errors_policy (WebKitWebContext *context); 287 272 -
trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebsiteDataManager.h
r264910 r267502 39 39 #define WEBKIT_WEBSITE_DATA_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEBSITE_DATA_MANAGER, WebKitWebsiteDataManagerClass)) 40 40 41 /** 42 * WebKitTLSErrorsPolicy: 43 * @WEBKIT_TLS_ERRORS_POLICY_IGNORE: Ignore TLS errors. 44 * @WEBKIT_TLS_ERRORS_POLICY_FAIL: TLS errors will emit 45 * #WebKitWebView::load-failed-with-tls-errors and, if the signal is handled, 46 * finish the load. In case the signal is not handled, 47 * #WebKitWebView::load-failed is emitted before the load finishes. 48 * 49 * Enum values used to denote the TLS errors policy. 50 */ 51 typedef enum { 52 WEBKIT_TLS_ERRORS_POLICY_IGNORE, 53 WEBKIT_TLS_ERRORS_POLICY_FAIL 54 } WebKitTLSErrorsPolicy; 55 41 56 typedef struct _WebKitWebsiteDataManager WebKitWebsiteDataManager; 42 57 typedef struct _WebKitWebsiteDataManagerClass WebKitWebsiteDataManagerClass; … … 119 134 WEBKIT_API gboolean 120 135 webkit_website_data_manager_get_persistent_credential_storage_enabled (WebKitWebsiteDataManager *manager); 136 137 WEBKIT_API void 138 webkit_website_data_manager_set_tls_errors_policy (WebKitWebsiteDataManager *manager, 139 WebKitTLSErrorsPolicy policy); 140 141 WEBKIT_API WebKitTLSErrorsPolicy 142 webkit_website_data_manager_get_tls_errors_policy (WebKitWebsiteDataManager *manager); 121 143 122 144 WEBKIT_API void -
trunk/Source/WebKit/UIProcess/API/wpe/docs/wpe-1.0-sections.txt
r264910 r267502 5 5 WebKitCacheModel 6 6 WebKitProcessModel 7 WebKitTLSErrorsPolicy8 7 WebKitNetworkProxyMode 9 8 webkit_web_context_get_default … … 1388 1387 <FILE>WebKitWebsiteDataManager</FILE> 1389 1388 WebKitWebsiteDataManager 1389 WebKitTLSErrorsPolicy 1390 1390 webkit_website_data_manager_new 1391 1391 webkit_website_data_manager_new_ephemeral … … 1407 1407 webkit_website_data_manager_set_persistent_credential_storage_enabled 1408 1408 webkit_website_data_manager_get_persistent_credential_storage_enabled 1409 webkit_website_data_manager_set_tls_errors_policy 1410 webkit_website_data_manager_get_tls_errors_policy 1409 1411 webkit_website_data_manager_fetch 1410 1412 webkit_website_data_manager_fetch_finish -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r267155 r267502 415 415 void windowServerConnectionStateChanged(); 416 416 417 #if USE(SOUP)418 void setIgnoreTLSErrors(bool);419 bool ignoreTLSErrors() const { return m_ignoreTLSErrors; }420 #endif421 422 417 static void setInvalidMessageCallback(void (*)(WKStringRef)); 423 418 static void didReceiveInvalidMessage(IPC::MessageName); … … 718 713 719 714 HashMap<uint64_t, RefPtr<DictionaryCallback>> m_dictionaryCallbacks; 720 721 #if USE(SOUP)722 bool m_ignoreTLSErrors { true };723 #endif724 715 725 716 bool m_memoryCacheDisabled { false }; -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r267344 r267502 260 260 void setPersistentCredentialStorageEnabled(bool); 261 261 bool persistentCredentialStorageEnabled() const { return m_persistentCredentialStorageEnabled && isPersistent(); } 262 void setIgnoreTLSErrors(bool); 263 bool ignoreTLSErrors() const { return m_ignoreTLSErrors; } 262 264 #endif 263 265 … … 396 398 #if USE(SOUP) 397 399 bool m_persistentCredentialStorageEnabled { true }; 400 bool m_ignoreTLSErrors { true }; 398 401 #endif 399 402 -
trunk/Source/WebKit/UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp
r263444 r267502 57 57 } 58 58 59 void WebsiteDataStore::setIgnoreTLSErrors(bool ignoreTLSErrors) 60 { 61 if (m_ignoreTLSErrors == ignoreTLSErrors) 62 return; 63 64 m_ignoreTLSErrors = ignoreTLSErrors; 65 for (auto& processPool : processPools()) 66 processPool->sendToNetworkingProcess(Messages::NetworkProcess::SetIgnoreTLSErrors(m_sessionID, m_ignoreTLSErrors)); 67 } 68 59 69 } // namespace WebKit -
trunk/Source/WebKit/UIProcess/soup/WebProcessPoolSoup.cpp
r264694 r267502 40 40 NetworkSessionCreationParameters& defaultSessionParameters = parameters.defaultDataStoreParameters.networkSessionParameters; 41 41 supplement<WebCookieManagerProxy>()->getCookiePersistentStorage(defaultSessionParameters.sessionID, defaultSessionParameters.cookiePersistentStoragePath, defaultSessionParameters.cookiePersistentStorageType); 42 if (m_websiteDataStore) 42 if (m_websiteDataStore) { 43 43 defaultSessionParameters.persistentCredentialStorageEnabled = m_websiteDataStore->persistentCredentialStorageEnabled(); 44 defaultSessionParameters.ignoreTLSErrors = m_websiteDataStore->ignoreTLSErrors(); 45 } 44 46 45 47 parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy; 46 parameters.ignoreTLSErrors = m_ignoreTLSErrors;47 48 parameters.languages = userPreferredLanguages(); 48 49 parameters.proxySettings = m_networkProxySettings; 49 50 parameters.shouldEnableITPDatabase = true; 50 }51 52 void WebProcessPool::setIgnoreTLSErrors(bool ignoreTLSErrors)53 {54 m_ignoreTLSErrors = ignoreTLSErrors;55 if (networkProcess())56 networkProcess()->send(Messages::NetworkProcess::SetIgnoreTLSErrors(m_ignoreTLSErrors), 0);57 51 } 58 52 -
trunk/Tools/ChangeLog
r267501 r267502 1 2020-09-23 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK][WPE] Move TLS errors API from WebKitContext to WebKitWebsiteDataManager 4 https://bugs.webkit.org/show_bug.cgi?id=216822 5 6 Reviewed by Alex Christensen. 7 8 Update tests to use the new API instead of the deprecated one. Also update the TLSErrorsPolicy test to also 9 check that ephemeral web views inherit the network settings from its web context. 10 11 * TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: 12 (testSSL): 13 (testInsecureContent): 14 (testTLSErrorsPolicy): 15 (testTLSErrorsRedirect): 16 (testTLSErrorsHTTPAuth): 17 (testLoadFailedWithTLSErrors): 18 (testSubresourceLoadFailedWithTLSErrors): 19 (testWebSocketTLSErrors): 20 1 21 2020-09-23 Jonathan Bedard <jbedard@apple.com> 2 22 -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp
r246677 r267502 67 67 static void testSSL(SSLTest* test, gconstpointer) 68 68 { 69 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);70 WebKitTLSErrorsPolicy originalPolicy = webkit_web _context_get_tls_errors_policy(context);71 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_IGNORE);69 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 70 WebKitTLSErrorsPolicy originalPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 71 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_IGNORE); 72 72 73 73 test->loadURI(kHttpsServer->getURIForPath("/").data()); … … 86 86 g_assert_cmpuint(test->m_tlsErrors, ==, 0); 87 87 88 webkit_web _context_set_tls_errors_policy(context, originalPolicy);88 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, originalPolicy); 89 89 } 90 90 … … 117 117 static void testInsecureContent(InsecureContentTest* test, gconstpointer) 118 118 { 119 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);120 WebKitTLSErrorsPolicy originalPolicy = webkit_web _context_get_tls_errors_policy(context);121 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_IGNORE);119 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 120 WebKitTLSErrorsPolicy originalPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 121 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_IGNORE); 122 122 123 123 test->loadURI(kHttpsServer->getURIForPath("/insecure-content/").data()); … … 129 129 g_assert_true(test->m_insecureContentDisplayed); 130 130 131 webkit_web _context_set_tls_errors_policy(context, originalPolicy);131 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, originalPolicy); 132 132 } 133 133 … … 136 136 static void testTLSErrorsPolicy(SSLTest* test, gconstpointer) 137 137 { 138 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);138 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 139 139 // TLS errors are treated as transport failures by default. 140 g_assert_cmpint(webkit_web _context_get_tls_errors_policy(context), ==, WEBKIT_TLS_ERRORS_POLICY_FAIL);140 g_assert_cmpint(webkit_website_data_manager_get_tls_errors_policy(websiteDataManager), ==, WEBKIT_TLS_ERRORS_POLICY_FAIL); 141 141 142 142 assertIfSSLRequestProcessed = true; … … 148 148 assertIfSSLRequestProcessed = false; 149 149 150 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_IGNORE);151 g_assert_cmpint(webkit_web _context_get_tls_errors_policy(context), ==, WEBKIT_TLS_ERRORS_POLICY_IGNORE);150 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_IGNORE); 151 g_assert_cmpint(webkit_website_data_manager_get_tls_errors_policy(websiteDataManager), ==, WEBKIT_TLS_ERRORS_POLICY_IGNORE); 152 152 153 153 test->m_loadFailed = false; … … 156 156 g_assert_false(test->m_loadFailed); 157 157 158 webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL); 159 g_assert_cmpint(webkit_web_context_get_tls_errors_policy(context), ==, WEBKIT_TLS_ERRORS_POLICY_FAIL); 158 // An ephemeral web view should keep the same network settings by default. 159 auto webView = Test::adoptView(g_object_new(WEBKIT_TYPE_WEB_VIEW, 160 #if PLATFORM(WPE) 161 "backend", Test::createWebViewBackend(), 162 #endif 163 "web-context", test->m_webContext.get(), 164 "is-ephemeral", TRUE, 165 nullptr)); 166 g_assert_true(webkit_web_view_is_ephemeral(webView.get())); 167 g_assert_false(webkit_web_context_is_ephemeral(test->m_webContext.get())); 168 auto* webViewDataManager = webkit_web_view_get_website_data_manager(webView.get()); 169 g_assert_false(websiteDataManager == webViewDataManager); 170 g_assert_cmpint(webkit_website_data_manager_get_tls_errors_policy(websiteDataManager), ==, webkit_website_data_manager_get_tls_errors_policy(webViewDataManager)); 171 172 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_FAIL); 173 g_assert_cmpint(webkit_website_data_manager_get_tls_errors_policy(websiteDataManager), ==, WEBKIT_TLS_ERRORS_POLICY_FAIL); 160 174 } 161 175 162 176 static void testTLSErrorsRedirect(SSLTest* test, gconstpointer) 163 177 { 164 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);165 WebKitTLSErrorsPolicy originalPolicy = webkit_web _context_get_tls_errors_policy(context);166 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);178 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 179 WebKitTLSErrorsPolicy originalPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 180 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_FAIL); 167 181 168 182 assertIfSSLRequestProcessed = true; … … 174 188 assertIfSSLRequestProcessed = false; 175 189 176 webkit_web _context_set_tls_errors_policy(context, originalPolicy);190 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, originalPolicy); 177 191 } 178 192 … … 186 200 static void testTLSErrorsHTTPAuth(SSLTest* test, gconstpointer) 187 201 { 188 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);189 WebKitTLSErrorsPolicy originalPolicy = webkit_web _context_get_tls_errors_policy(context);190 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);202 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 203 WebKitTLSErrorsPolicy originalPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 204 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_FAIL); 191 205 192 206 assertIfSSLRequestProcessed = true; … … 199 213 assertIfSSLRequestProcessed = false; 200 214 201 webkit_web _context_set_tls_errors_policy(context, originalPolicy);215 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, originalPolicy); 202 216 } 203 217 … … 243 257 static void testLoadFailedWithTLSErrors(TLSErrorsTest* test, gconstpointer) 244 258 { 245 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);246 WebKitTLSErrorsPolicy originalPolicy = webkit_web _context_get_tls_errors_policy(context);247 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);259 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 260 WebKitTLSErrorsPolicy originalPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 261 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_FAIL); 248 262 249 263 assertIfSSLRequestProcessed = true; … … 260 274 261 275 // Test allowing an exception for this certificate on this host. 262 webkit_web_context_allow_tls_certificate_for_host( context, test->certificate(), test->host());276 webkit_web_context_allow_tls_certificate_for_host(test->m_webContext.get(), test->certificate(), test->host()); 263 277 // The page should now load without errors. 264 278 test->loadURI(kHttpsServer->getURIForPath("/test-tls/").data()); … … 270 284 g_assert_cmpstr(webkit_web_view_get_title(test->m_webView), ==, TLSExpectedSuccessTitle); 271 285 272 webkit_web _context_set_tls_errors_policy(context, originalPolicy);286 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, originalPolicy); 273 287 } 274 288 … … 329 343 static void testSubresourceLoadFailedWithTLSErrors(TLSSubresourceTest* test, gconstpointer) 330 344 { 331 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);332 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);345 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 346 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_FAIL); 333 347 334 348 assertIfSSLRequestProcessed = true; … … 411 425 static void testWebSocketTLSErrors(WebSocketTest* test, gconstpointer) 412 426 { 413 WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);414 WebKitTLSErrorsPolicy originalPolicy = webkit_web _context_get_tls_errors_policy(context);415 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);427 auto* websiteDataManager = webkit_web_context_get_website_data_manager(test->m_webContext.get()); 428 WebKitTLSErrorsPolicy originalPolicy = webkit_website_data_manager_get_tls_errors_policy(websiteDataManager); 429 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_FAIL); 416 430 417 431 // First, check that insecure ws:// web sockets work fine. … … 431 445 432 446 // Now try wss:// again, this time ignoring TLS errors. 433 webkit_web _context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_IGNORE);447 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, WEBKIT_TLS_ERRORS_POLICY_IGNORE); 434 448 events = test->connectToServerAndWaitForEvents(kHttpsServer); 435 449 g_assert_true(events & WebSocketTest::EventFlags::DidServerCompleteHandshake); … … 437 451 g_assert_false(events & WebSocketTest::EventFlags::DidClose); 438 452 439 webkit_web _context_set_tls_errors_policy(context, originalPolicy);453 webkit_website_data_manager_set_tls_errors_policy(websiteDataManager, originalPolicy); 440 454 } 441 455
Note:
See TracChangeset
for help on using the changeset viewer.