diff options
Diffstat (limited to 'content/browser/loader/navigation_resource_throttle.h')
-rw-r--r-- | content/browser/loader/navigation_resource_throttle.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/content/browser/loader/navigation_resource_throttle.h b/content/browser/loader/navigation_resource_throttle.h new file mode 100644 index 0000000..e46b59d --- /dev/null +++ b/content/browser/loader/navigation_resource_throttle.h @@ -0,0 +1,44 @@ +// Copyright 2015 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_LOADER_NAVIGATION_RESOURCE_THROTTLE_H_ +#define CONTENT_BROWSER_LOADER_NAVIGATION_RESOURCE_THROTTLE_H_ + +#include "base/basictypes.h" +#include "base/memory/weak_ptr.h" +#include "content/public/browser/navigation_throttle.h" +#include "content/public/browser/resource_throttle.h" + +namespace net { +class URLRequest; +} + +namespace content { + +// This ResourceThrottle is used to convey throttling information to the UI +// thread during navigations. The UI thread can then use its NavigationThrottle +// mechanism to interact with the navigation. +class NavigationResourceThrottle : public ResourceThrottle { + public: + NavigationResourceThrottle(net::URLRequest* request); + ~NavigationResourceThrottle() override; + + // ResourceThrottle overrides: + void WillStartRequest(bool* defer) override; + void WillRedirectRequest(const net::RedirectInfo& redirect_info, + bool* defer) override; + const char* GetNameForLogging() const override; + + private: + void OnUIChecksPerformed(NavigationThrottle::ThrottleCheckResult result); + + net::URLRequest* request_; + base::WeakPtrFactory<NavigationResourceThrottle> weak_ptr_factory_; + + DISALLOW_COPY_AND_ASSIGN(NavigationResourceThrottle); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_LOADER_NAVIGATION_RESOURCE_THROTTLE_H_ |