Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // The Safe Browsing service is responsible for downloading anti-phishing and | 5 // The Safe Browsing service is responsible for downloading anti-phishing and |
| 6 // anti-malware tables and checking urls against them. | 6 // anti-malware tables and checking urls against them. |
| 7 | 7 |
| 8 #ifndef CHROME_BROWSER_SAFE_BROWSING_UI_MANAGER_H_ | 8 #ifndef CHROME_BROWSER_SAFE_BROWSING_UI_MANAGER_H_ |
| 9 #define CHROME_BROWSER_SAFE_BROWSING_UI_MANAGER_H_ | 9 #define CHROME_BROWSER_SAFE_BROWSING_UI_MANAGER_H_ |
| 10 | 10 |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 121 // Called on the UI thread to display an interstitial page. | 121 // Called on the UI thread to display an interstitial page. |
| 122 // |url| is the url of the resource that matches a safe browsing list. | 122 // |url| is the url of the resource that matches a safe browsing list. |
| 123 // If the request contained a chain of redirects, |url| is the last url | 123 // If the request contained a chain of redirects, |url| is the last url |
| 124 // in the chain, and |original_url| is the first one (the root of the | 124 // in the chain, and |original_url| is the first one (the root of the |
| 125 // chain). Otherwise, |original_url| = |url|. | 125 // chain). Otherwise, |original_url| = |url|. |
| 126 virtual void DisplayBlockingPage(const UnsafeResource& resource); | 126 virtual void DisplayBlockingPage(const UnsafeResource& resource); |
| 127 | 127 |
| 128 // A convenience wrapper method for IsUrlWhitelistedOrPendingForWebContents. | 128 // A convenience wrapper method for IsUrlWhitelistedOrPendingForWebContents. |
| 129 bool IsWhitelisted(const UnsafeResource& resource); | 129 bool IsWhitelisted(const UnsafeResource& resource); |
| 130 | 130 |
| 131 // Checks if we already displayed an interstitial for that top-level | 131 // Checks if we already displayed or are displaying an interstitial |
| 132 // site in a given WebContents. If |whitelist_only|, it returns true only if | 132 // for the top-level site |url| in a given WebContents. If |
| 133 // the user chose to ignore the interstitial; otherwise it returns true as | 133 // |whitelist_only|, it returns true only if the user chose to ignore |
| 134 // long as the user has seen an interstitial (regardless of response). | 134 // the interstitial. Otherwise, it returns true if an interstitial for |
| 135 // Called on the UI thread. | 135 // |url| is already displaying *or* if the user has seen an |
| 136 // interstitial for |url| before in this WebContents and proceeded | |
| 137 // through it. Called on the UI thread. | |
| 136 bool IsUrlWhitelistedOrPendingForWebContents( | 138 bool IsUrlWhitelistedOrPendingForWebContents( |
| 137 const GURL& url, | 139 const GURL& url, |
| 138 bool is_subresource, | 140 bool is_subresource, |
| 139 content::NavigationEntry* entry, | 141 content::NavigationEntry* entry, |
| 140 content::WebContents* web_contents, | 142 content::WebContents* web_contents, |
| 141 bool whitelist_only); | 143 bool whitelist_only); |
| 142 | 144 |
| 143 // The blocking page on the UI thread has completed. | 145 // The blocking page for |web_contents| on the UI thread has |
|
Nathan Parker
2016/10/31 23:54:38
Excellent comments, thank you.
| |
| 146 // completed, with |proceed| set to true if the user has chosen to | |
| 147 // proceed through the blocking page and false | |
| 148 // otherwise. |web_contents| is the WebContents that was displaying | |
| 149 // the blocking page. |main_frame_url| is the top-level URL on which | |
| 150 // the blocking page was displayed. If |proceed| is true, | |
| 151 // |main_frame_url| is whitelisted so that the user will not see | |
| 152 // another warning for that URL in this WebContents. | |
| 144 void OnBlockingPageDone(const std::vector<UnsafeResource>& resources, | 153 void OnBlockingPageDone(const std::vector<UnsafeResource>& resources, |
| 145 bool proceed); | 154 bool proceed, |
| 155 content::WebContents* web_contents, | |
| 156 const GURL& main_frame_url); | |
| 146 | 157 |
| 147 // Log the user perceived delay caused by SafeBrowsing. This delay is the time | 158 // Log the user perceived delay caused by SafeBrowsing. This delay is the time |
| 148 // delta starting from when we would have started reading data from the | 159 // delta starting from when we would have started reading data from the |
| 149 // network, and ending when the SafeBrowsing check completes indicating that | 160 // network, and ending when the SafeBrowsing check completes indicating that |
| 150 // the current page is 'safe'. | 161 // the current page is 'safe'. |
| 151 void LogPauseDelay(base::TimeDelta time); | 162 void LogPauseDelay(base::TimeDelta time); |
| 152 | 163 |
| 153 // Called on the IO thread by the ThreatDetails with the serialized | 164 // Called on the IO thread by the ThreatDetails with the serialized |
| 154 // protocol buffer, so the service can send it over. | 165 // protocol buffer, so the service can send it over. |
| 155 virtual void SendSerializedThreatDetails(const std::string& serialized); | 166 virtual void SendSerializedThreatDetails(const std::string& serialized); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 167 const base::Closure& callback); | 178 const base::Closure& callback); |
| 168 | 179 |
| 169 // Report permission action to SafeBrowsing servers. Can only be called on UI | 180 // Report permission action to SafeBrowsing servers. Can only be called on UI |
| 170 // thread. | 181 // thread. |
| 171 void ReportPermissionAction(const PermissionReportInfo& report_info); | 182 void ReportPermissionAction(const PermissionReportInfo& report_info); |
| 172 | 183 |
| 173 // Add and remove observers. These methods must be invoked on the UI thread. | 184 // Add and remove observers. These methods must be invoked on the UI thread. |
| 174 void AddObserver(Observer* observer); | 185 void AddObserver(Observer* observer); |
| 175 void RemoveObserver(Observer* remove); | 186 void RemoveObserver(Observer* remove); |
| 176 | 187 |
| 188 // Creates the whitelist URL set for tests that create a blocking page | |
| 189 // themselves and then simulate OnBlockingPageDone(). OnBlockingPageDone() | |
| 190 // expects the whitelist to exist, but the tests don't necessarily call | |
| 191 // DisplayBlockingPage(), which creates it. | |
| 192 static void CreateWhitelistForTesting(content::WebContents* web_contents); | |
| 193 | |
| 177 protected: | 194 protected: |
| 178 virtual ~SafeBrowsingUIManager(); | 195 virtual ~SafeBrowsingUIManager(); |
| 179 | 196 |
| 180 private: | 197 private: |
| 181 friend class base::RefCountedThreadSafe<SafeBrowsingUIManager>; | 198 friend class base::RefCountedThreadSafe<SafeBrowsingUIManager>; |
| 182 friend class SafeBrowsingUIManagerTest; | 199 friend class SafeBrowsingUIManagerTest; |
| 183 friend class TestSafeBrowsingUIManager; | 200 friend class TestSafeBrowsingUIManager; |
| 184 | 201 |
| 185 // Call protocol manager on IO thread to report hits of unsafe contents. | 202 // Call protocol manager on IO thread to report hits of unsafe contents. |
| 186 void ReportSafeBrowsingHitOnIOThread( | 203 void ReportSafeBrowsingHitOnIOThread( |
| 187 const safe_browsing::HitReport& hit_report); | 204 const safe_browsing::HitReport& hit_report); |
| 188 | 205 |
| 189 // Sends an invalid certificate chain report over the network. | 206 // Sends an invalid certificate chain report over the network. |
| 190 void ReportInvalidCertificateChainOnIOThread( | 207 void ReportInvalidCertificateChainOnIOThread( |
| 191 const std::string& serialized_report); | 208 const std::string& serialized_report); |
| 192 | 209 |
| 193 // Report permission action to SafeBrowsing servers. | 210 // Report permission action to SafeBrowsing servers. |
| 194 void ReportPermissionActionOnIOThread( | 211 void ReportPermissionActionOnIOThread( |
| 195 const PermissionReportInfo& report_info); | 212 const PermissionReportInfo& report_info); |
| 196 | 213 |
| 197 // Updates the whitelist URL set. Called on the UI thread. | 214 // Updates the whitelist URL set for |web_contents|. Called on the UI thread. |
| 198 void AddToWhitelistUrlSet(const UnsafeResource& resource, bool is_pending); | 215 void AddToWhitelistUrlSet(const GURL& whitelist_url, |
|
estark
2016/10/28 18:01:33
I changed this from taking a |resource| to taking
| |
| 216 content::WebContents* web_contents, | |
| 217 bool is_pending); | |
| 218 | |
| 219 // Removes |whitelist_url| from the pending whitelist for | |
| 220 // |web_contents|. Called on the UI thread. | |
| 221 void RemoveFromPendingWhitelistUrlSet(const GURL& whitelist_url, | |
| 222 content::WebContents* web_contents); | |
| 223 | |
| 224 static GURL GetMainFrameWhitelistUrlForResourceForTesting( | |
| 225 const safe_browsing::SafeBrowsingUIManager::UnsafeResource& resource); | |
| 199 | 226 |
| 200 // Safebrowsing service. | 227 // Safebrowsing service. |
| 201 scoped_refptr<SafeBrowsingService> sb_service_; | 228 scoped_refptr<SafeBrowsingService> sb_service_; |
| 202 | 229 |
| 203 base::ObserverList<Observer> observer_list_; | 230 base::ObserverList<Observer> observer_list_; |
| 204 | 231 |
| 205 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingUIManager); | 232 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingUIManager); |
| 206 }; | 233 }; |
| 207 | 234 |
| 208 } // namespace safe_browsing | 235 } // namespace safe_browsing |
| 209 | 236 |
| 210 #endif // CHROME_BROWSER_SAFE_BROWSING_UI_MANAGER_H_ | 237 #endif // CHROME_BROWSER_SAFE_BROWSING_UI_MANAGER_H_ |
| OLD | NEW |