| 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_
 | 
| 
 |