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