WebKit Bugzilla
Attachment 357726 Details for
Bug 192736
: HTTPS Upgrade: Use full sqlite upgrade list
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192736-20181219143449.patch (text/plain), 22.55 KB, created by
Vivek Seth
on 2018-12-19 14:34:59 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Vivek Seth
Created:
2018-12-19 14:34:59 PST
Size:
22.55 KB
patch
obsolete
>Subversion Revision: 239355 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 324e9086aaeb54aceca37b3bf51e2d758e598069..a3271b56618c9f0d8d7ad4db0ddd78f179fa9e1c 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,28 @@ >+2018-12-18 Vivek Seth <v_seth@apple.com> >+ >+ HTTPS Upgrade: Use full sqlite upgrade list >+ https://bugs.webkit.org/show_bug.cgi?id=192736 >+ <rdar://problem/45851427> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Added. >+ (WebKit::NetworkHTTPSUpgradeCheckerDatabasePath): >+ (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker): >+ (WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker): >+ (WebKit::NetworkHTTPSUpgradeChecker::query): >+ (WebKit::NetworkHTTPSUpgradeChecker::isAlwaysOnLoggingAllowed const): >+ * NetworkProcess/NetworkHTTPSUpgradeChecker.h: Added. >+ (WebKit::NetworkHTTPSUpgradeChecker::didSetupCompleteSuccessfully const): >+ * NetworkProcess/NetworkLoadChecker.cpp: >+ (WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const): >+ (WebKit::NetworkLoadChecker::checkRequest): >+ * NetworkProcess/NetworkLoadChecker.h: >+ * NetworkProcess/NetworkProcess.h: >+ (WebKit::NetworkProcess::networkHTTPSUpgradeChecker): >+ * Sources.txt: >+ * WebKit.xcodeproj/project.pbxproj: >+ > 2018-12-18 Vivek Seth <v_seth@apple.com> > > HTTPS Upgrade: Scripts / preprocessing necessary to create new database in future >diff --git a/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..5914e21efc8b5a1af02138eaf9b56869ae26187e >--- /dev/null >+++ b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp >@@ -0,0 +1,113 @@ >+/* >+ * Copyright (C) 2018 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#include "config.h" >+#include "NetworkHTTPSUpgradeChecker.h" >+ >+#if ENABLE(HTTPS_UPGRADE) >+ >+#include "Logging.h" >+#include <WebCore/SQLiteDatabase.h> >+#include <WebCore/SQLiteStatement.h> >+#include <pal/SessionID.h> >+#include <wtf/CompletionHandler.h> >+#include <wtf/NeverDestroyed.h> >+#include <wtf/RunLoop.h> >+#include <wtf/WorkQueue.h> >+ >+#define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), Network, "%p - NetworkHTTPSUpgradeChecker::" fmt, this, ##__VA_ARGS__) >+#define RELEASE_LOG_ERROR_IF_ALLOWED(fmt, ...) RELEASE_LOG_ERROR_IF(sessionID.isAlwaysOnLoggingAllowed(), Network, "%p - NetworkHTTPSUpgradeChecker::" fmt, this, ##__VA_ARGS__) >+ >+namespace WebKit { >+ >+static const String& networkHTTPSUpgradeCheckerDatabasePath() >+{ >+ static NeverDestroyed<String> networkHTTPSUpgradeCheckerDatabasePath; >+#if PLATFORM(COCOA) >+ if (networkHTTPSUpgradeCheckerDatabasePath.get().isNull()) { >+ CFBundleRef webKitBundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.WebKit")); >+ networkHTTPSUpgradeCheckerDatabasePath.get() = CFURLGetString(adoptCF(CFBundleCopyResourceURL(webKitBundle, CFSTR("HTTPSUpgradeList"), CFSTR("db"), nullptr)).get()); >+ } >+#endif // PLATFORM(COCOA) >+ return networkHTTPSUpgradeCheckerDatabasePath; >+} >+ >+NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker() >+ : m_workQueue(WorkQueue::create("HTTPS Upgrade Checker Thread")) >+ , m_database(makeUniqueRef<WebCore::SQLiteDatabase>()) >+ , m_statement(makeUniqueRef<WebCore::SQLiteStatement>(m_database.get(), "SELECT host FROM hosts WHERE host = ?;"_s)) >+{ >+ ASSERT(RunLoop::isMain()); >+ >+ m_workQueue->dispatch([this] { >+ auto path = networkHTTPSUpgradeCheckerDatabasePath(); >+ ASSERT(path); >+ >+ bool isDatabaseOpen = this->m_database->open(path); >+ ASSERT(isDatabaseOpen); >+ >+ // Since we are using a workerQueue, the sequential dispatch blocks may be called by different threads. >+ this->m_database->disableThreadingChecks(); >+ >+ int statementPreparedResult = this->m_statement->prepare(); >+ ASSERT(statementPreparedResult == SQLITE_OK); >+ >+ this->m_didSetupCompleteSuccessfully = true; >+ }); >+} >+ >+NO_RETURN_DUE_TO_ASSERT NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker() >+{ >+ // This object should be owned by a singleton object. >+ ASSERT_NOT_REACHED(); >+} >+ >+void NetworkHTTPSUpgradeChecker::query(String&& host, PAL::SessionID sessionID, CompletionHandler<void(bool)>&& callback) >+{ >+ ASSERT(RunLoop::isMain()); >+ >+ m_workQueue->dispatch([this, host = host.isolatedCopy(), sessionID, callback = WTFMove(callback)] () mutable { >+ ASSERT(this->m_didSetupCompleteSuccessfully); >+ >+ int bindTextResult = this->m_statement->bindText(1, WTFMove(host)); >+ ASSERT(bindTextResult == SQLITE_OK); >+ >+ int stepResult = this->m_statement->step(); >+ ASSERT(stepResult == SQLITE_ROW || stepResult == SQLITE_DONE); >+ >+ int resetResult = this->m_statement->reset(); >+ ASSERT(resetResult == SQLITE_OK); >+ >+ bool foundHost = (stepResult == SQLITE_ROW); >+ RELEASE_LOG_IF_ALLOWED("query - Ran successfully. Result = %s", (foundHost ? "true" : "false")); >+ RunLoop::main().dispatch([foundHost, callback = WTFMove(callback)] () mutable { >+ callback(foundHost); >+ }); >+ }); >+} >+ >+} // namespace WebKit >+ >+#endif // ENABLE(HTTPS_UPGRADE) >diff --git a/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h >new file mode 100644 >index 0000000000000000000000000000000000000000..c6303a76140b608dc54a8da2fda097e4e4b9adf1 >--- /dev/null >+++ b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h >@@ -0,0 +1,67 @@ >+/* >+ * Copyright (C) 2018 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#pragma once >+ >+#if ENABLE(HTTPS_UPGRADE) >+ >+#include <wtf/UniqueRef.h> >+ >+namespace WTF { >+class WorkQueue; >+} >+ >+namespace WebCore { >+class SQLiteDatabase; >+class SQLiteStatement; >+} >+ >+namespace PAL { >+class SessionID; >+} >+ >+namespace WebKit { >+ >+class NetworkHTTPSUpgradeChecker { >+public: >+ NetworkHTTPSUpgradeChecker(); >+ ~NetworkHTTPSUpgradeChecker(); >+ >+ // Returns `true` after internal setup is successfully completed. If there is an error with setup, or if setup is in-progress, it will return `false`. >+ bool didSetupCompleteSuccessfully() const { return m_didSetupCompleteSuccessfully; }; >+ >+ // Queries database after setup is complete. >+ void query(String&&, PAL::SessionID, CompletionHandler<void(bool)>&&); >+ >+private: >+ Ref<WTF::WorkQueue> m_workQueue; >+ WTF::UniqueRef<WebCore::SQLiteDatabase> m_database; >+ WTF::UniqueRef<WebCore::SQLiteStatement> m_statement; >+ std::atomic<bool> m_didSetupCompleteSuccessfully { false }; >+}; >+ >+} // namespace WebKit >+ >+#endif // ENABLE(HTTPS_UPGRADE) >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >index 3511f759cc000a4fa292177ab4500aaa4d4d0f54..0f302dc6815e2e98b0d032e32b6c171b54f5306d 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >@@ -30,6 +30,7 @@ > #include "NetworkCORSPreflightChecker.h" > #include "NetworkProcess.h" > #include <WebCore/ContentSecurityPolicy.h> >+#include <WebCore/CrossOriginAccessControl.h> > #include <WebCore/CrossOriginPreflightResultCache.h> > #include <WebCore/SchemeRegistry.h> > #include <wtf/Scope.h> >@@ -191,32 +192,38 @@ auto NetworkLoadChecker::accessControlErrorForValidationHandler(String&& message > } > > #if ENABLE(HTTPS_UPGRADE) >-void NetworkLoadChecker::applyHTTPSUpgradeIfNeeded(ResourceRequest& request) const >+void NetworkLoadChecker::applyHTTPSUpgradeIfNeeded(ResourceRequest&& request, CompletionHandler<void(ResourceRequest&&)>&& handler) const > { >- if (m_requestLoadType != LoadType::MainFrame) >+ if (m_requestLoadType != LoadType::MainFrame) { >+ handler(WTFMove(request)); > return; >- >- // Use dummy list for now. >- static NeverDestroyed<HashSet<String>> upgradableHosts = std::initializer_list<String> { >- "www.bbc.com"_s, // (source: https://whynohttps.com) >- "www.speedtest.net"_s, // (source: https://whynohttps.com) >- "www.bea.gov"_s // (source: https://pulse.cio.gov/data/domains/https.csv) >- }; >+ } > > auto& url = request.url(); > > // Only upgrade http urls. >- if (!url.protocolIs("http")) >+ if (!url.protocolIs("http")) { >+ handler(WTFMove(request)); > return; >+ } > >- if (!upgradableHosts.get().contains(url.host().toString())) >+ auto& httpsUpgradeChecker = NetworkProcess::singleton().networkHTTPSUpgradeChecker(); >+ >+ // Do not wait for httpsUpgradeChecker to complete its setup. >+ if (!httpsUpgradeChecker.didSetupCompleteSuccessfully()) { >+ handler(WTFMove(request)); > return; >+ } > >- auto newURL = url; >- newURL.setProtocol("https"_s); >- request.setURL(newURL); >+ httpsUpgradeChecker.query(url.host().toString(), m_sessionID, [request = WTFMove(request), handler = WTFMove(handler)] (bool foundHost) mutable { >+ if (foundHost) { >+ auto newURL = request.url(); >+ newURL.setProtocol("https"_s); >+ request.setURL(newURL); >+ } > >- RELEASE_LOG_IF_ALLOWED("applyHTTPSUpgradeIfNeeded - Upgrade URL from HTTP to HTTPS"); >+ handler(WTFMove(request)); >+ }); > } > #endif // ENABLE(HTTPS_UPGRADE) > >@@ -225,37 +232,42 @@ void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurity > ResourceRequest originalRequest = request; > > #if ENABLE(HTTPS_UPGRADE) >- applyHTTPSUpgradeIfNeeded(request); >+ applyHTTPSUpgradeIfNeeded(WTFMove(request), [this, client, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto request) mutable { > #endif // ENABLE(HTTPS_UPGRADE) > >- if (auto* contentSecurityPolicy = this->contentSecurityPolicy()) { >- if (isRedirected()) { >- auto type = m_options.mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load; >- contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type); >- } >- if (!isAllowedByContentSecurityPolicy(request, client)) { >- handler(accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s)); >- return; >+ if (auto* contentSecurityPolicy = this->contentSecurityPolicy()) { >+ if (isRedirected()) { >+ auto type = m_options.mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load; >+ contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type); >+ } >+ if (!isAllowedByContentSecurityPolicy(request, client)) { >+ handler(accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s)); >+ return; >+ } > } >- } > > #if ENABLE(CONTENT_EXTENSIONS) >- processContentExtensionRulesForLoad(WTFMove(request), [this, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto result) mutable { >- if (!result.has_value()) { >- ASSERT(result.error().isCancellation()); >- handler(WTFMove(result.error())); >- return; >- } >- if (result.value().status.blockedLoad) { >- handler(this->accessControlErrorForValidationHandler("Blocked by content extension"_s)); >- return; >- } >+ processContentExtensionRulesForLoad(WTFMove(request), [this, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto result) mutable { >+ if (!result.has_value()) { >+ ASSERT(result.error().isCancellation()); >+ handler(WTFMove(result.error())); >+ return; >+ } >+ if (result.value().status.blockedLoad) { >+ handler(this->accessControlErrorForValidationHandler("Blocked by content extension"_s)); >+ return; >+ } > >- continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler)); >- }); >+ continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler)); >+ }); > #else >- continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(request), WTFMove(handler)); >+ continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(request), WTFMove(handler)); > #endif >+ >+#if ENABLE(HTTPS_UPGRADE) >+ }); >+#endif // ENABLE(HTTPS_UPGRADE) >+ > } > > void NetworkLoadChecker::continueCheckingRequestOrDoSyntheticRedirect(ResourceRequest&& originalRequest, ResourceRequest&& currentRequest, ValidationHandler&& handler) >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.h b/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >index 6227c957d44ce62b6436033a834538169077e8c8..dbd961a491337fe9ef7f7f1aece60e7746f0d41c 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.h >@@ -25,16 +25,23 @@ > > #pragma once > >+#include "UserContentControllerIdentifier.h" > #include <WebCore/ContentExtensionActions.h> >+#include <WebCore/ContentSecurityPolicyResponseHeaders.h> >+#include <WebCore/FetchOptions.h> > #include <WebCore/NetworkLoadInformation.h> > #include <WebCore/ResourceError.h> > #include <wtf/CompletionHandler.h> > #include <wtf/Expected.h> > #include <wtf/Variant.h> >+#include <wtf/WeakPtr.h> > > namespace WebCore { > class ContentSecurityPolicy; > struct ContentSecurityPolicyClient; >+class SecurityOrigin; >+enum class PreflightPolicy : uint8_t; >+enum class StoredCredentialsPolicy : bool; > } > > namespace WebKit { >@@ -113,7 +120,7 @@ private: > #endif > > #if ENABLE(HTTPS_UPGRADE) >- void applyHTTPSUpgradeIfNeeded(WebCore::ResourceRequest&) const; >+ void applyHTTPSUpgradeIfNeeded(WebCore::ResourceRequest&&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&) const; > #endif // ENABLE(HTTPS_UPGRADE) > > WebCore::FetchOptions m_options; >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h >index f5c2fedbfc7e779b51d350e1c1e9e6a550458ee3..2348fc853cad0f7515a1dfd8e995be4f7bdb7340 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.h >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.h >@@ -29,6 +29,7 @@ > #include "ChildProcess.h" > #include "DownloadManager.h" > #include "NetworkContentRuleListManager.h" >+#include "NetworkHTTPSUpgradeChecker.h" > #include "SandboxExtension.h" > #include <WebCore/DiagnosticLoggingClient.h> > #include <WebCore/FetchIdentifier.h> >@@ -204,6 +205,10 @@ public: > bool parentProcessHasServiceWorkerEntitlement() const { return true; } > #endif > >+#if ENABLE(HTTPS_UPGRADE) >+ NetworkHTTPSUpgradeChecker& networkHTTPSUpgradeChecker() { return m_networkHTTPSUpgradeChecker; }; >+#endif // ENABLE(HTTPS_UPGRADE) >+ > private: > NetworkProcess(); > ~NetworkProcess(); >@@ -393,6 +398,9 @@ private: > HashMap<WebCore::SWServerConnectionIdentifier, WebSWServerConnection*> m_swServerConnections; > #endif > >+#if ENABLE(HTTPS_UPGRADE) >+ NetworkHTTPSUpgradeChecker m_networkHTTPSUpgradeChecker; >+#endif // ENABLE(HTTPS_UPGRADE) > }; > > } // namespace WebKit >diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt >index 055ec5e576102f78649847ae3e34ae3e3c2c24a3..b52ae6bd7b6319d61626b4bae083aac956856269 100644 >--- a/Source/WebKit/Sources.txt >+++ b/Source/WebKit/Sources.txt >@@ -27,6 +27,7 @@ NetworkProcess/NetworkConnectionToWebProcess.cpp > NetworkProcess/NetworkContentRuleListManager.cpp > NetworkProcess/NetworkDataTask.cpp > NetworkProcess/NetworkDataTaskBlob.cpp >+NetworkProcess/NetworkHTTPSUpgradeChecker.cpp > NetworkProcess/NetworkLoad.cpp > NetworkProcess/NetworkLoadChecker.cpp > NetworkProcess/NetworkProcess.cpp >diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >index ffb8f95036b852b7854c494f4420ba958a1282d5..94fd561e303330c35c30c8a0df13e6dc3f4de281 100644 >--- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj >+++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >@@ -1037,6 +1037,7 @@ > 57DCEDC3214F114C0016B847 /* MockLocalService.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCEDC1214F114C0016B847 /* MockLocalService.h */; }; > 57DCEDC7214F18300016B847 /* MockLocalConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCEDC5214F18300016B847 /* MockLocalConnection.h */; }; > 57DCEDCB214F4E420016B847 /* MockAuthenticatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DCEDC9214F4E420016B847 /* MockAuthenticatorManager.h */; }; >+ 58E977DF21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */; }; > 587743A621C30BBE00AE9084 /* HTTPSUpgradeList.db in Resources */ = {isa = PBXBuildFile; fileRef = 587743A421C30AD800AE9084 /* HTTPSUpgradeList.db */; }; > 5C0B17781E7C880E00E9123C /* NetworkSocketStreamMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B17741E7C879C00E9123C /* NetworkSocketStreamMessageReceiver.cpp */; }; > 5C0B17791E7C882100E9123C /* WebSocketStreamMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B17761E7C879C00E9123C /* WebSocketStreamMessageReceiver.cpp */; }; >@@ -3402,6 +3403,8 @@ > 57DCEDC6214F18300016B847 /* MockLocalConnection.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MockLocalConnection.mm; sourceTree = "<group>"; }; > 57DCEDC9214F4E420016B847 /* MockAuthenticatorManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockAuthenticatorManager.h; sourceTree = "<group>"; }; > 57DCEDCD214F51680016B847 /* MockAuthenticatorManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockAuthenticatorManager.cpp; sourceTree = "<group>"; }; >+ 58E977DC21C499FE005D92A6 /* NetworkHTTPSUpgradeChecker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkHTTPSUpgradeChecker.cpp; sourceTree = "<group>"; }; >+ 58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkHTTPSUpgradeChecker.h; sourceTree = "<group>"; }; > 587743A421C30AD800AE9084 /* HTTPSUpgradeList.db */ = {isa = PBXFileReference; lastKnownFileType = file; name = HTTPSUpgradeList.db; path = DerivedSources/WebKit2/HTTPSUpgradeList.db; sourceTree = BUILT_PRODUCTS_DIR; }; > 5C0B17741E7C879C00E9123C /* NetworkSocketStreamMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkSocketStreamMessageReceiver.cpp; path = DerivedSources/WebKit2/NetworkSocketStreamMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; > 5C0B17751E7C879C00E9123C /* NetworkSocketStreamMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSocketStreamMessages.h; path = DerivedSources/WebKit2/NetworkSocketStreamMessages.h; sourceTree = BUILT_PRODUCTS_DIR; }; >@@ -6422,6 +6425,8 @@ > 5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */, > 539EB5461DC2EE40009D48CF /* NetworkDataTaskBlob.cpp */, > 539EB5471DC2EE40009D48CF /* NetworkDataTaskBlob.h */, >+ 58E977DC21C499FE005D92A6 /* NetworkHTTPSUpgradeChecker.cpp */, >+ 58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */, > 839901FF1BE9A01B000F3653 /* NetworkLoad.cpp */, > 839901FE1BE9A01B000F3653 /* NetworkLoad.h */, > 4103FBA22061BDB800C2EAF8 /* NetworkLoadChecker.cpp */, >@@ -9113,6 +9118,7 @@ > 5CBC9B8E1C652CA000A8FDCF /* NetworkDataTask.h in Headers */, > 53BA47D11DC2EF5E004DF4AD /* NetworkDataTaskBlob.h in Headers */, > 532159561DBAE72D0054AA3C /* NetworkDataTaskCocoa.h in Headers */, >+ 58E977DF21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h in Headers */, > 839902031BE9A02B000F3653 /* NetworkLoad.h in Headers */, > 83D454D71BE9D3C4006C93BD /* NetworkLoadClient.h in Headers */, > 839149651BEA838500D2D953 /* NetworkLoadParameters.h in Headers */,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192736
:
357378
|
357505
|
357507
|
357587
|
357640
|
357726
|
357727
|
357730
|
357739