Changeset 234513 in webkit
- Timestamp:
- Aug 2, 2018 1:13:05 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r234504 r234513 1 2018-08-02 Alex Christensen <achristensen@webkit.org> 2 3 Check with SafeBrowsing during navigation in WKWebView 4 https://bugs.webkit.org/show_bug.cgi?id=188133 5 6 Reviewed by Chris Dumez. 7 8 This turns WebFramePolicyListenerProxy into an object that now listens for the results 9 of two processes happening in parallel: the API::NavigationClient's decidePolicyForNavigation{Action, Response} 10 (which it was already waiting for) and, on platforms that support it, the SafariSafeBrowsing framework's check. 11 The first result is stored as it waits for the second result unless the first result is the API::NavigationClient 12 saying to cancel or convert the navigation to a download, in which cases we don't care what the safe browsing 13 framework results are because we won't show the URL in the browser. 14 15 Nothing is done with the safe browsing results yet. 16 17 * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Added. 18 (WebKit::SafeBrowsingResult::SafeBrowsingResult): 19 * UIProcess/Cocoa/WebPageProxyCocoa.mm: 20 (WebKit::WebPageProxy::beginSafeBrowsingCheck): 21 * UIProcess/SafeBrowsingResult.h: Added. 22 (WebKit::SafeBrowsingResult::provider const): 23 (WebKit::SafeBrowsingResult::isPhishing const): 24 (WebKit::SafeBrowsingResult::isMalware const): 25 (WebKit::SafeBrowsingResult::isUnwantedSoftware const): 26 (WebKit::SafeBrowsingResult::isKnownToBeUnsafe const): 27 * UIProcess/WebFramePolicyListenerProxy.cpp: 28 (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): 29 (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): 30 (WebKit::WebFramePolicyListenerProxy::use): 31 (WebKit::WebFramePolicyListenerProxy::download): 32 (WebKit::WebFramePolicyListenerProxy::ignore): 33 * UIProcess/WebFramePolicyListenerProxy.h: 34 (WebKit::WebFramePolicyListenerProxy::create): 35 * UIProcess/WebFrameProxy.cpp: 36 (WebKit::WebFrameProxy::setUpPolicyListenerProxy): 37 * UIProcess/WebFrameProxy.h: 38 * UIProcess/WebPageProxy.cpp: 39 (WebKit::WebPageProxy::decidePolicyForNavigationAction): 40 (WebKit::WebPageProxy::decidePolicyForNewWindowAction): 41 (WebKit::WebPageProxy::decidePolicyForResponse): 42 * UIProcess/WebPageProxy.h: 43 * WebKit.xcodeproj/project.pbxproj: 44 1 45 2018-08-02 Wenson Hsieh <wenson_hsieh@apple.com> 2 46 -
trunk/Source/WebKit/Platform/spi/Cocoa/SafeBrowsingSPI.h
r227752 r234513 26 26 #pragma once 27 27 28 #if WK_API_ENABLED && ((PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000))28 #if HAVE(SAFE_BROWSING) 29 29 30 30 #import <Foundation/Foundation.h> … … 74 74 75 75 #endif 76 -
trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
r226899 r234513 31 31 #import "LoadParameters.h" 32 32 #import "PageClient.h" 33 #import "SafeBrowsingResult.h" 34 #import "SafeBrowsingSPI.h" 33 35 #import "WebProcessProxy.h" 34 36 #import <WebCore/DragItem.h> … … 36 38 #import <WebCore/SearchPopupMenuCocoa.h> 37 39 #import <WebCore/ValidationBubble.h> 40 #import <wtf/BlockPtr.h> 38 41 #import <wtf/cf/TypeCastsCF.h> 39 42 … … 67 70 68 71 searchItems = WebCore::loadRecentSearches(name); 72 } 73 74 void WebPageProxy::beginSafeBrowsingCheck(const URL& url, WebFramePolicyListenerProxy& listener) 75 { 76 #if HAVE(SAFE_BROWSING) 77 [[SSBLookupContext sharedLookupContext] lookUpURL:url completionHandler:BlockPtr<void(SSBLookupResult *, NSError *)>::fromCallable([listener = makeRef(listener)] (SSBLookupResult *result, NSError *error) mutable { 78 RunLoop::main().dispatch([listener = WTFMove(listener), result = retainPtr(result), error = retainPtr(error)] { 79 if (error) { 80 listener->didReceiveSafeBrowsingResults({ }); 81 return; 82 } 83 84 NSArray<SSBServiceLookupResult *> *results = [result serviceLookupResults]; 85 Vector<SafeBrowsingResult> resultsVector; 86 resultsVector.reserveInitialCapacity([results count]); 87 for (SSBServiceLookupResult *result in results) 88 resultsVector.uncheckedAppend({ result }); 89 listener->didReceiveSafeBrowsingResults(WTFMove(resultsVector)); 90 }); 91 }).get()]; 92 #else 93 listener.didReceiveSafeBrowsingResults({ }); 94 #endif 69 95 } 70 96 -
trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp
r234462 r234513 1 1 /* 2 * Copyright (C) 2010 Apple Inc. All rights reserved.2 * Copyright (C) 2010-2018 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 30 30 #include "APIWebsiteDataStore.h" 31 31 #include "APIWebsitePolicies.h" 32 #include "SafeBrowsingResult.h" 32 33 #include "WebFrameProxy.h" 33 34 #include "WebsiteDataStore.h" … … 36 37 namespace WebKit { 37 38 38 WebFramePolicyListenerProxy::WebFramePolicyListenerProxy( CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible)>&& completionHandler)39 : m_ completionHandler(WTFMove(completionHandler))39 WebFramePolicyListenerProxy::WebFramePolicyListenerProxy(Reply&& reply, ShouldExpectSafeBrowsingResult expect) 40 : m_reply(WTFMove(reply)) 40 41 { 42 if (expect == ShouldExpectSafeBrowsingResult::No) 43 didReceiveSafeBrowsingResults({ }); 44 } 45 46 WebFramePolicyListenerProxy::~WebFramePolicyListenerProxy() = default; 47 48 void WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults(Vector<SafeBrowsingResult>&& safeBrowsingResults) 49 { 50 ASSERT(!m_safeBrowsingResults); 51 if (m_policyResult) { 52 if (m_reply) 53 m_reply(WebCore::PolicyAction::Use, m_policyResult->first.get(), m_policyResult->second, WTFMove(safeBrowsingResults)); 54 } else 55 m_safeBrowsingResults = WTFMove(safeBrowsingResults); 41 56 } 42 57 43 58 void WebFramePolicyListenerProxy::use(API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap) 44 59 { 45 if (m_completionHandler) 46 m_completionHandler(WebCore::PolicyAction::Use, policies, swap); 60 ASSERT(!m_policyResult); 61 if (m_safeBrowsingResults) { 62 if (m_reply) 63 m_reply(WebCore::PolicyAction::Use, policies, swap, WTFMove(*m_safeBrowsingResults)); 64 } else 65 m_policyResult = {{ policies, swap }}; 47 66 } 48 67 49 68 void WebFramePolicyListenerProxy::download() 50 69 { 51 if (m_completionHandler) 52 m_completionHandler(WebCore::PolicyAction::Download, nullptr, ShouldProcessSwapIfPossible::No); 70 ASSERT(!m_policyResult); 71 if (m_reply) 72 m_reply(WebCore::PolicyAction::Download, nullptr, ShouldProcessSwapIfPossible::No, { }); 53 73 } 54 74 55 75 void WebFramePolicyListenerProxy::ignore() 56 76 { 57 if (m_completionHandler) 58 m_completionHandler(WebCore::PolicyAction::Ignore, nullptr, ShouldProcessSwapIfPossible::No); 77 ASSERT(!m_policyResult); 78 if (m_reply) 79 m_reply(WebCore::PolicyAction::Ignore, nullptr, ShouldProcessSwapIfPossible::No, { }); 59 80 } 60 81 -
trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h
r234210 r234513 1 1 /* 2 * Copyright (C) 2010 Apple Inc. All rights reserved.2 * Copyright (C) 2010-2018 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 28 28 #include "APIObject.h" 29 29 #include <wtf/CompletionHandler.h> 30 #include <wtf/Vector.h> 30 31 31 32 namespace API { … … 39 40 namespace WebKit { 40 41 42 class SafeBrowsingResult; 43 41 44 enum class ShouldProcessSwapIfPossible { No, Yes }; 45 enum class ShouldExpectSafeBrowsingResult { No, Yes }; 42 46 43 47 class WebFramePolicyListenerProxy : public API::ObjectImpl<API::Object::Type::FramePolicyListener> { 44 48 public: 45 49 46 static Ref<WebFramePolicyListenerProxy> create(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible)>&& completionHandler) 50 using Reply = CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible, Vector<SafeBrowsingResult>&&)>; 51 static Ref<WebFramePolicyListenerProxy> create(Reply&& reply, ShouldExpectSafeBrowsingResult expect) 47 52 { 48 return adoptRef(*new WebFramePolicyListenerProxy(WTFMove( completionHandler)));53 return adoptRef(*new WebFramePolicyListenerProxy(WTFMove(reply), expect)); 49 54 } 55 ~WebFramePolicyListenerProxy(); 50 56 51 57 void use(API::WebsitePolicies* = nullptr, ShouldProcessSwapIfPossible = ShouldProcessSwapIfPossible::No); 52 58 void download(); 53 59 void ignore(); 60 61 void didReceiveSafeBrowsingResults(Vector<SafeBrowsingResult>&&); 54 62 55 63 private: 56 WebFramePolicyListenerProxy( CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible)>&&);64 WebFramePolicyListenerProxy(Reply&&, ShouldExpectSafeBrowsingResult); 57 65 58 CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible)> m_completionHandler; 66 std::optional<std::pair<RefPtr<API::WebsitePolicies>, ShouldProcessSwapIfPossible>> m_policyResult; 67 std::optional<Vector<SafeBrowsingResult>> m_safeBrowsingResults; 68 Reply m_reply; 59 69 }; 60 70 -
trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp
r234332 r234513 179 179 } 180 180 181 WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible )>&& completionHandler)181 WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible, Vector<SafeBrowsingResult>&&)>&& completionHandler, ShouldExpectSafeBrowsingResult expect) 182 182 { 183 183 if (m_activeListener) 184 184 m_activeListener->ignore(); 185 m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap ) mutable {186 completionHandler(action, policies, swap );185 m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable { 186 completionHandler(action, policies, swap, WTFMove(safeBrowsingResults)); 187 187 m_activeListener = nullptr; 188 } );188 }, expect); 189 189 return *m_activeListener; 190 190 } -
trunk/Source/WebKit/UIProcess/WebFrameProxy.h
r234210 r234513 49 49 50 50 namespace WebKit { 51 class SafeBrowsingResult; 51 52 class WebCertificateInfo; 52 53 class WebFramePolicyListenerProxy; 53 54 class WebPageProxy; 54 55 class WebsiteDataStore; 56 enum class ShouldExpectSafeBrowsingResult; 55 57 enum class ShouldProcessSwapIfPossible; 56 58 struct WebsitePoliciesData; … … 116 118 void didChangeTitle(const String&); 117 119 118 WebFramePolicyListenerProxy& setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible )>&&);120 WebFramePolicyListenerProxy& setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible, Vector<SafeBrowsingResult>&&)>&&, ShouldExpectSafeBrowsingResult); 119 121 120 122 #if ENABLE(CONTENT_FILTERING) -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r234459 r234513 77 77 #include "PluginProcessManager.h" 78 78 #include "PrintInfo.h" 79 #include "SafeBrowsingResult.h" 79 80 #include "TextChecker.h" 80 81 #include "TextCheckerState.h" … … 4003 4004 } 4004 4005 4006 #if !PLATFORM(COCOA) 4007 void WebPageProxy::beginSafeBrowsingCheck(const URL&, WebFramePolicyListenerProxy& listener) 4008 { 4009 listener.didReceiveSafeBrowsingResults({ }); 4010 } 4011 #endif 4012 4005 4013 void WebPageProxy::decidePolicyForNavigationActionAsync(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, const FrameInfoData& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID) 4006 4014 { … … 4064 4072 #endif 4065 4073 4066 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frame = makeRef(*frame), sender = sender.copyRef(), navigation] (WebCore::PolicyAction policyAction, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap) mutable { 4074 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frame = makeRef(*frame), sender = sender.copyRef(), navigation] (WebCore::PolicyAction policyAction, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&&) mutable { 4075 // FIXME: do something with the SafeBrowsingResults. 4076 4067 4077 std::optional<WebsitePoliciesData> data; 4068 4078 if (policies) { … … 4085 4095 4086 4096 receivedPolicyDecision(policyAction, navigation.get(), WTFMove(data), WTFMove(sender)); 4087 })); 4097 }, ShouldExpectSafeBrowsingResult::Yes)); 4098 beginSafeBrowsingCheck(request.url(), listener); 4088 4099 4089 4100 API::Navigation* mainFrameNavigation = frame->isMainFrame() ? navigation.get() : nullptr; … … 4131 4142 MESSAGE_CHECK_URL(request.url()); 4132 4143 4133 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible swap ) mutable {4144 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable { 4134 4145 // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away. 4135 4146 RELEASE_ASSERT(swap == ShouldProcessSwapIfPossible::No); 4147 ASSERT_UNUSED(safeBrowsingResults, safeBrowsingResults.isEmpty()); 4136 4148 receivedPolicyDecision(policyAction, nullptr, std::nullopt, PolicyDecisionSender::create([this, protectedThis = WTFMove(protectedThis), frameID, listenerID] (auto... args) { 4137 4149 m_process->send(Messages::WebPage::DidReceivePolicyDecision(frameID, listenerID, args...), m_pageID); 4138 4150 })); 4139 } ));4151 }, ShouldExpectSafeBrowsingResult::No)); 4140 4152 4141 4153 if (m_navigationClient) { … … 4166 4178 4167 4179 RefPtr<API::Navigation> navigation = navigationID ? &m_navigationState->navigation(navigationID) : nullptr; 4168 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation)] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible swap ) mutable {4180 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation)] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable { 4169 4181 // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away. 4170 4182 RELEASE_ASSERT(swap == ShouldProcessSwapIfPossible::No); 4183 ASSERT_UNUSED(safeBrowsingResults, safeBrowsingResults.isEmpty()); 4171 4184 receivedPolicyDecision(policyAction, navigation.get(), std::nullopt, PolicyDecisionSender::create([this, protectedThis = WTFMove(protectedThis), frameID, listenerID] (auto... args) { 4172 4185 m_process->send(Messages::WebPage::DidReceivePolicyDecision(frameID, listenerID, args...), m_pageID); 4173 4186 })); 4174 } ));4187 }, ShouldExpectSafeBrowsingResult::No)); 4175 4188 4176 4189 if (m_navigationClient) { -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r234375 r234513 1429 1429 void decidePolicyForResponse(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&); 1430 1430 void unableToImplementPolicy(uint64_t frameID, const WebCore::ResourceError&, const UserData&); 1431 void beginSafeBrowsingCheck(const WebCore::URL&, WebFramePolicyListenerProxy&); 1431 1432 1432 1433 void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector<std::pair<String, String>>& textFieldValues, uint64_t listenerID, const UserData&); -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r234488 r234513 1290 1290 5C9E56821DF7F1AB00C9EE33 /* WKWebsitePolicies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C9E56801DF7F05500C9EE33 /* WKWebsitePolicies.cpp */; }; 1291 1291 5C9E56831DF7F1B300C9EE33 /* WKWebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C9E56811DF7F05500C9EE33 /* WKWebsitePolicies.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1292 5CA9854A210BEB640057EB6B /* SafeBrowsingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CA98549210BEB5A0057EB6B /* SafeBrowsingResult.h */; }; 1293 5CA9854C210BEB7D0057EB6B /* SafeBrowsingResultCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CA9854B210BEB730057EB6B /* SafeBrowsingResultCocoa.mm */; }; 1292 1294 5CB2378B1DF0DE5300117AA3 /* _WKWebsitePolicies.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2378A1DF0DD4300117AA3 /* _WKWebsitePolicies.mm */; }; 1293 1295 5CB2378C1DF0DE6E00117AA3 /* _WKWebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB237891DF0DD4300117AA3 /* _WKWebsitePolicies.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 3855 3857 5C9E56801DF7F05500C9EE33 /* WKWebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKWebsitePolicies.cpp; sourceTree = "<group>"; }; 3856 3858 5C9E56811DF7F05500C9EE33 /* WKWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebsitePolicies.h; sourceTree = "<group>"; }; 3859 5CA98549210BEB5A0057EB6B /* SafeBrowsingResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SafeBrowsingResult.h; sourceTree = "<group>"; }; 3860 5CA9854B210BEB730057EB6B /* SafeBrowsingResultCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SafeBrowsingResultCocoa.mm; sourceTree = "<group>"; }; 3857 3861 5CB237891DF0DD4300117AA3 /* _WKWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKWebsitePolicies.h; sourceTree = "<group>"; }; 3858 3862 5CB2378A1DF0DD4300117AA3 /* _WKWebsitePolicies.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebsitePolicies.mm; sourceTree = "<group>"; }; … … 5669 5673 CDA29A1F1CBEB5FB00901CCF /* PlaybackSessionManagerProxy.mm */, 5670 5674 837A660020E2AD8400A9DBD8 /* ResourceLoadStatisticsMemoryStoreCocoa.mm */, 5675 5CA9854B210BEB730057EB6B /* SafeBrowsingResultCocoa.mm */, 5671 5676 1A002D47196B345D00B9AD44 /* SessionStateCoding.h */, 5672 5677 1A002D46196B345D00B9AD44 /* SessionStateCoding.mm */, … … 7454 7459 BC111B08112F5E3C00337BAB /* ResponsivenessTimer.cpp */, 7455 7460 1A30066C1110F4F70031937C /* ResponsivenessTimer.h */, 7461 5CA98549210BEB5A0057EB6B /* SafeBrowsingResult.h */, 7456 7462 414DEDD61F9EDDE00047C40D /* ServiceWorkerProcessProxy.cpp */, 7457 7463 414DEDD51F9EDDDF0047C40D /* ServiceWorkerProcessProxy.h */, … … 9348 9354 1A30066E1110F4F70031937C /* ResponsivenessTimer.h in Headers */, 9349 9355 410482CE1DDD324F00F006D0 /* RTCNetwork.h in Headers */, 9356 5CA9854A210BEB640057EB6B /* SafeBrowsingResult.h in Headers */, 9350 9357 0E97D74D200E900400BF6643 /* SafeBrowsingSPI.h in Headers */, 9351 9358 BC2D021712AC41CB00E732A3 /* SameDocumentNavigationType.h in Headers */, … … 11172 11179 410482CD1DDD324C00F006D0 /* RTCNetwork.cpp in Sources */, 11173 11180 41B28B0A1F83AD4200FB52AC /* RTCPacketOptions.cpp in Sources */, 11181 5CA9854C210BEB7D0057EB6B /* SafeBrowsingResultCocoa.mm in Sources */, 11174 11182 1AAB4AAA1296F1540023952F /* SandboxExtensionMac.mm in Sources */, 11175 11183 E1E552C416AE065F004ED653 /* SandboxInitialiationParametersMac.mm in Sources */, -
trunk/Source/WebKit/config.h
r233501 r234513 127 127 #endif 128 128 #endif 129 130 #if ((PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000)) && !defined(__i386__) 131 #define HAVE_SAFE_BROWSING 1 132 #else 133 #define HAVE_SAFE_BROWSING 0 134 #endif
Note: See TracChangeset
for help on using the changeset viewer.