text: // Copyright 2016 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 EXTENSIONS_BROWSER_EXTENSION_NAVIGATION_THROTTLE_H_
  #define EXTENSIONS_BROWSER_EXTENSION_NAVIGATION_THROTTLE_H_
  
  #include "base/macros.h"
  #include "content/public/browser/navigation_throttle.h"
  
  namespace content {
  class NavigationHandle;
  }
  
  namespace extensions {
  
  class NavigationParams;
  
  // This class allows the extensions subsystem to have control over navigations
  // and optionally cancel/block them. This is a UI thread class.
  class ExtensionNavigationThrottle : public content::NavigationThrottle {
   public:
    explicit ExtensionNavigationThrottle(
        content::NavigationHandle* navigation_handle);
    ~ExtensionNavigationThrottle() override;
  
    // content::NavigationThrottle implementation:
    ThrottleCheckResult WillStartRequest() override;
  
   private:
    DISALLOW_COPY_AND_ASSIGN(ExtensionNavigationThrottle);
  };
  
  }  // namespace extensions
  
  #endif  // EXTENSIONS_BROWSER_EXTENSION_NAVIGATION_THROTTLE_H_
  