 Chromium Code Reviews
 Chromium Code Reviews Issue 2132673002:
  Adding Navigation Throttles to DevTools  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 2132673002:
  Adding Navigation Throttles to DevTools  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: content/browser/devtools/page_navigation_throttle.h | 
| diff --git a/content/browser/devtools/page_navigation_throttle.h b/content/browser/devtools/page_navigation_throttle.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..e36c9d42f449288e103c4e79dd5191159294fddd | 
| --- /dev/null | 
| +++ b/content/browser/devtools/page_navigation_throttle.h | 
| @@ -0,0 +1,55 @@ | 
| +// 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 CONTENT_BROWSER_DEVTOOLS_PAGE_NAVIGATION_THROTTLE_H_ | 
| +#define CONTENT_BROWSER_DEVTOOLS_PAGE_NAVIGATION_THROTTLE_H_ | 
| + | 
| +#include "base/macros.h" | 
| +#include "base/memory/weak_ptr.h" | 
| +#include "content/public/browser/navigation_throttle.h" | 
| + | 
| +namespace content { | 
| +namespace devtools { | 
| +namespace page { | 
| +class PageHandler; | 
| +} // namespace page | 
| + | 
| +// Used to allow the DevTools client to optionally cancel navigations via the | 
| +// Page.setControlNavigations and Page.processNavigation commands. | 
| +class PageNavigationThrottle : public content::NavigationThrottle { | 
| + public: | 
| + PageNavigationThrottle(base::WeakPtr<page::PageHandler> page_handler, | 
| + int navigation_id, | 
| + content::NavigationHandle* navigation_handle); | 
| + ~PageNavigationThrottle() override; | 
| + | 
| + // content::NavigationThrottle implementation: | 
| + NavigationThrottle::ThrottleCheckResult WillStartRequest() override; | 
| + NavigationThrottle::ThrottleCheckResult WillRedirectRequest() override; | 
| + | 
| + int navigation_id() const { return navigation_id_; } | 
| + | 
| + // Tells the PageNavigationThrottle to not throttle anything! | 
| + void AlwaysProceed(); | 
| + | 
| + // Resumes a deferred navigation request. Does nothing if a response isn't | 
| + // expected. | 
| + void Resume(); | 
| + | 
| + // Cancels a deferred navigation request. Does nothing if a response isn't | 
| + // expected. | 
| + void CancelDeferredNavigation(NavigationThrottle::ThrottleCheckResult result); | 
| + | 
| + private: | 
| + int navigation_id_; | 
| + base::WeakPtr<page::PageHandler> page_handler_; | 
| + bool response_pending_; | 
| 
nasko
2016/07/13 22:37:34
nit: Some basic comments on these will be useful.
 
alex clarke (OOO till 29th)
2016/07/14 16:06:04
Done.
 | 
| + | 
| + DISALLOW_COPY_AND_ASSIGN(PageNavigationThrottle); | 
| +}; | 
| + | 
| +} // namespace devtools | 
| +} // namespace content | 
| + | 
| +#endif // CONTENT_BROWSER_DEVTOOLS_PAGE_NAVIGATION_THROTTLE_H_ |