| Index: components/safe_browsing/base_resource_throttle.h
|
| diff --git a/components/safe_browsing/base_resource_throttle.h b/components/safe_browsing/base_resource_throttle.h
|
| deleted file mode 100644
|
| index 1fe92f316039f70ba3ba1731e5069fe1a6e1eb88..0000000000000000000000000000000000000000
|
| --- a/components/safe_browsing/base_resource_throttle.h
|
| +++ /dev/null
|
| @@ -1,194 +0,0 @@
|
| -// Copyright (c) 2017 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef COMPONENTS_SAFE_BROWSING_BASE_RESOURCE_THROTTLE_H_
|
| -#define COMPONENTS_SAFE_BROWSING_BASE_RESOURCE_THROTTLE_H_
|
| -
|
| -#include <vector>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/time/time.h"
|
| -#include "base/timer/timer.h"
|
| -#include "components/safe_browsing/base_ui_manager.h"
|
| -#include "components/safe_browsing_db/database_manager.h"
|
| -#include "components/security_interstitials/content/unsafe_resource.h"
|
| -#include "content/public/browser/resource_throttle.h"
|
| -#include "content/public/common/resource_type.h"
|
| -#include "net/log/net_log_event_type.h"
|
| -#include "net/log/net_log_with_source.h"
|
| -#include "url/gurl.h"
|
| -
|
| -namespace content {
|
| -class ResourceRequestInfo;
|
| -}
|
| -
|
| -namespace net {
|
| -class URLRequest;
|
| -}
|
| -
|
| -namespace safe_browsing {
|
| -
|
| -// BaseResourceThrottle checks that URLs are "safe" before
|
| -// navigating to them. To be considered "safe", a URL must not appear in the
|
| -// malware/phishing blacklists (see SafeBrowsingService for details).
|
| -//
|
| -// Note that the safe browsing check takes at most kCheckUrlTimeoutMs
|
| -// milliseconds. If it takes longer than this, then the system defaults to
|
| -// treating the URL as safe.
|
| -//
|
| -// If the URL is classified as dangerous, a warning page is thrown up and
|
| -// the request remains suspended. If the user clicks "proceed" on warning
|
| -// page, we resume the request.
|
| -//
|
| -// Note: The ResourceThrottle interface is called in this order:
|
| -// WillStartRequest once, WillRedirectRequest zero or more times, and then
|
| -// WillProcessReponse once.
|
| -class BaseResourceThrottle
|
| - : public content::ResourceThrottle,
|
| - public SafeBrowsingDatabaseManager::Client,
|
| - public base::SupportsWeakPtr<BaseResourceThrottle> {
|
| - public:
|
| - // Construct a BaseResourceThrottle, or return nullptr if we
|
| - // cannot access the safe browsing API on Android
|
| - static BaseResourceThrottle* MaybeCreate(
|
| - net::URLRequest* request,
|
| - content::ResourceType resource_type,
|
| - scoped_refptr<SafeBrowsingDatabaseManager>
|
| - database_manager,
|
| - scoped_refptr<BaseUIManager> ui_manager);
|
| -
|
| - // content::ResourceThrottle implementation (called on IO thread):
|
| - void WillStartRequest(bool* defer) override;
|
| - void WillRedirectRequest(const net::RedirectInfo& redirect_info,
|
| - bool* defer) override;
|
| - void WillProcessResponse(bool* defer) override;
|
| - bool MustProcessResponseBeforeReadingBody() override;
|
| -
|
| - const char* GetNameForLogging() const override;
|
| -
|
| - // SafeBrowsingDatabaseManager::Client implementation (called on IO thread):
|
| - void OnCheckBrowseUrlResult(
|
| - const GURL& url,
|
| - SBThreatType threat_type,
|
| - const ThreatMetadata& metadata) override;
|
| -
|
| - protected:
|
| - BaseResourceThrottle(
|
| - const net::URLRequest* request,
|
| - content::ResourceType resource_type,
|
| - scoped_refptr<SafeBrowsingDatabaseManager>
|
| - database_manager,
|
| - scoped_refptr<BaseUIManager> ui_manager);
|
| -
|
| - ~BaseResourceThrottle() override;
|
| -
|
| - // If our blocked resource is the main frame, this calls
|
| - // ContentSubresourceFilterDriverFactory's
|
| - // OnMainResourceMatchedSafeBrowsingBlacklist method.
|
| - static void NotifySubresourceFilterOfBlockedResource(
|
| - const security_interstitials::UnsafeResource& resource);
|
| -
|
| - // Does nothing in the base class. Override this to destroy prerender contents
|
| - // in chrome.
|
| - virtual void MaybeDestroyPrerenderContents(
|
| - const content::ResourceRequestInfo* info);
|
| -
|
| - // Posts a task for StartDisplayingBlockingPage
|
| - virtual void StartDisplayingBlockingPageHelper(
|
| - security_interstitials::UnsafeResource resource);
|
| -
|
| - // Called by OnBlockingPageComplete when proceed == false. This removes the
|
| - // blocking page. This calls ResourceThrottle::Cancel() to show the previous
|
| - // page, but may be overridden in a subclass.
|
| - virtual void CancelResourceLoad();
|
| -
|
| - scoped_refptr<BaseUIManager> ui_manager();
|
| -
|
| - private:
|
| - // Describes what phase of the check a throttle is in.
|
| - enum State {
|
| - // Haven't started checking or checking is complete. Not deferred.
|
| - STATE_NONE,
|
| - // We have one outstanding URL-check. Could be deferred.
|
| - STATE_CHECKING_URL,
|
| - // We're displaying a blocking page. Could be deferred.
|
| - STATE_DISPLAYING_BLOCKING_PAGE,
|
| - };
|
| -
|
| - // Describes what stage of the request got paused by the check.
|
| - enum DeferState {
|
| - DEFERRED_NONE,
|
| - DEFERRED_START,
|
| - DEFERRED_REDIRECT,
|
| - DEFERRED_UNCHECKED_REDIRECT, // unchecked_redirect_url_ is populated.
|
| - DEFERRED_PROCESSING,
|
| - };
|
| -
|
| - scoped_refptr<BaseUIManager> ui_manager_;
|
| -
|
| - // Called on the IO thread when the user has decided to proceed with the
|
| - // current request, or go back.
|
| - void OnBlockingPageComplete(bool proceed);
|
| -
|
| - // Starts running |url| through the safe browsing check. Returns true if the
|
| - // URL is safe to visit. Otherwise returns false and will call
|
| - // OnBrowseUrlResult() when the check has completed.
|
| - bool CheckUrl(const GURL& url);
|
| -
|
| - // Callback for when the safe browsing check (which was initiated by
|
| - // StartCheckingUrl()) has taken longer than kCheckUrlTimeoutMs.
|
| - void OnCheckUrlTimeout();
|
| -
|
| - // Starts displaying the safe browsing interstitial page. Called on the UI
|
| - // thread.
|
| - static void StartDisplayingBlockingPage(
|
| - const base::WeakPtr<BaseResourceThrottle>& throttle,
|
| - scoped_refptr<BaseUIManager> ui_manager,
|
| - const security_interstitials::UnsafeResource& resource);
|
| -
|
| - void ResumeRequest();
|
| -
|
| - // For marking network events. |name| and |value| can be null.
|
| - void BeginNetLogEvent(net::NetLogEventType type,
|
| - const GURL& url,
|
| - const char* name,
|
| - const char* value);
|
| - void EndNetLogEvent(net::NetLogEventType type,
|
| - const char* name,
|
| - const char* value);
|
| -
|
| - // The result of the most recent safe browsing check. Only valid to read this
|
| - // when state_ != STATE_CHECKING_URL.
|
| - safe_browsing::SBThreatType threat_type_;
|
| -
|
| - // The time when we started deferring the request.
|
| - base::TimeTicks defer_start_time_;
|
| -
|
| - // Timer to abort the safe browsing check if it takes too long.
|
| - base::OneShotTimer timer_;
|
| -
|
| - // The redirect chain for this resource
|
| - std::vector<GURL> redirect_urls_;
|
| -
|
| - // If in DEFERRED_UNCHECKED_REDIRECT state, this is the
|
| - // URL we still need to check before resuming.
|
| - GURL unchecked_redirect_url_;
|
| - GURL url_being_checked_;
|
| -
|
| - scoped_refptr<SafeBrowsingDatabaseManager> database_manager_;
|
| - const net::URLRequest* request_;
|
| -
|
| - State state_;
|
| - DeferState defer_state_;
|
| -
|
| - const content::ResourceType resource_type_;
|
| - net::NetLogWithSource net_log_with_source_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BaseResourceThrottle);
|
| -};
|
| -
|
| -} // namespace safe_browsing
|
| -
|
| -#endif // COMPONENTS_SAFE_BROWSING_BASE_RESOURCE_THROTTLE_H_
|
|
|