| Index: content/browser/browsing_data/clear_site_data_throttle.h
|
| diff --git a/content/browser/browsing_data/clear_site_data_throttle.h b/content/browser/browsing_data/clear_site_data_throttle.h
|
| index a149900908468fc7110979374a8c2b5796689560..601361fef764122f57979abddf84e2b3ec5de7b3 100644
|
| --- a/content/browser/browsing_data/clear_site_data_throttle.h
|
| +++ b/content/browser/browsing_data/clear_site_data_throttle.h
|
| @@ -12,20 +12,27 @@
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/values.h"
|
| -#include "content/public/browser/navigation_throttle.h"
|
| #include "content/public/browser/resource_request_info.h"
|
| +#include "content/public/browser/resource_throttle.h"
|
| #include "content/public/common/console_message_level.h"
|
| #include "url/gurl.h"
|
|
|
| -namespace content {
|
| +namespace net {
|
| +struct RedirectInfo;
|
| +class URLRequest;
|
| +}
|
| +
|
| +namespace url {
|
| +class Origin;
|
| +}
|
|
|
| -class NavigationHandle;
|
| +namespace content {
|
|
|
| // This throttle parses the Clear-Site-Data header and executes the clearing
|
| -// of browsing data. The navigation is delayed until the header is parsed and,
|
| -// if valid, until the browsing data are deleted. See the W3C working draft at
|
| -// https://www.w3.org/TR/clear-site-data/.
|
| -class CONTENT_EXPORT ClearSiteDataThrottle : public NavigationThrottle {
|
| +// of browsing data. The resource load is delayed until the header is parsed
|
| +// and, if valid, until the browsing data are deleted. See the W3C working draft
|
| +// at https://www.w3.org/TR/clear-site-data/.
|
| +class CONTENT_EXPORT ClearSiteDataThrottle : public ResourceThrottle {
|
| public:
|
| struct ConsoleMessage {
|
| GURL url;
|
| @@ -33,15 +40,19 @@ class CONTENT_EXPORT ClearSiteDataThrottle : public NavigationThrottle {
|
| ConsoleMessageLevel level;
|
| };
|
|
|
| - static std::unique_ptr<NavigationThrottle> CreateThrottleForNavigation(
|
| - NavigationHandle* handle);
|
| + // Instantiates a throttle for the given |request|. The caller must
|
| + // guarantee that |request| outlives the throttle.
|
| + static std::unique_ptr<ResourceThrottle> CreateThrottleForRequest(
|
| + net::URLRequest* request);
|
|
|
| ~ClearSiteDataThrottle() override;
|
|
|
| - // NavigationThrottle implementation:
|
| - ThrottleCheckResult WillStartRequest() override;
|
| - ThrottleCheckResult WillRedirectRequest() override;
|
| - ThrottleCheckResult WillProcessResponse() override;
|
| + // ResourceThrottle implementation:
|
| + const char* GetNameForLogging() const override;
|
| + void WillStartRequest(bool* defer) override;
|
| + void WillRedirectRequest(const net::RedirectInfo& redirect_info,
|
| + bool* defer) override;
|
| + void WillProcessResponse(bool* defer) override;
|
|
|
| private:
|
| friend class ClearSiteDataFuzzerTest;
|
| @@ -49,7 +60,7 @@ class CONTENT_EXPORT ClearSiteDataThrottle : public NavigationThrottle {
|
| FRIEND_TEST_ALL_PREFIXES(ClearSiteDataThrottleTest, ParseHeader);
|
| FRIEND_TEST_ALL_PREFIXES(ClearSiteDataThrottleTest, InvalidHeader);
|
|
|
| - explicit ClearSiteDataThrottle(NavigationHandle* navigation_handle);
|
| + explicit ClearSiteDataThrottle(net::URLRequest* request);
|
|
|
| // Scans for the first occurrence of the 'Clear-Site-Data' header, calls
|
| // ParseHeader() to parse it, and requests the actual data clearing. This is
|
| @@ -69,7 +80,10 @@ class CONTENT_EXPORT ClearSiteDataThrottle : public NavigationThrottle {
|
| // Signals that a parsing and deletion task was finished.
|
| void TaskFinished();
|
|
|
| - // Cached console messages to be output when the RenderFrameHost is ready.
|
| + // The request this throttle is observing.
|
| + net::URLRequest* request_;
|
| +
|
| + // Cached console messages to be output when the resource is loaded.
|
| std::vector<ConsoleMessage> messages_;
|
| GURL current_url_;
|
|
|
|
|