OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_BROWSER_LOADER_THROTTLING_RESOURCE_HANDLER_H_ | 5 #ifndef CONTENT_BROWSER_LOADER_THROTTLING_RESOURCE_HANDLER_H_ |
6 #define CONTENT_BROWSER_LOADER_THROTTLING_RESOURCE_HANDLER_H_ | 6 #define CONTENT_BROWSER_LOADER_THROTTLING_RESOURCE_HANDLER_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
10 #include "content/browser/loader/layered_resource_handler.h" | 10 #include "content/browser/loader/layered_resource_handler.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 struct ResourceResponse; | 22 struct ResourceResponse; |
23 | 23 |
24 // Used to apply a list of ResourceThrottle instances to an URLRequest. | 24 // Used to apply a list of ResourceThrottle instances to an URLRequest. |
25 class ThrottlingResourceHandler : public LayeredResourceHandler, | 25 class ThrottlingResourceHandler : public LayeredResourceHandler, |
26 public ResourceController { | 26 public ResourceController { |
27 public: | 27 public: |
28 // Takes ownership of the ResourceThrottle instances. | 28 // Takes ownership of the ResourceThrottle instances. |
29 ThrottlingResourceHandler(scoped_ptr<ResourceHandler> next_handler, | 29 ThrottlingResourceHandler(scoped_ptr<ResourceHandler> next_handler, |
30 net::URLRequest* request, | 30 net::URLRequest* request, |
31 ScopedVector<ResourceThrottle> throttles); | 31 ScopedVector<ResourceThrottle> throttles); |
32 virtual ~ThrottlingResourceHandler(); | 32 ~ThrottlingResourceHandler() override; |
33 | 33 |
34 // LayeredResourceHandler overrides: | 34 // LayeredResourceHandler overrides: |
35 virtual bool OnRequestRedirected(const net::RedirectInfo& redirect_info, | 35 bool OnRequestRedirected(const net::RedirectInfo& redirect_info, |
36 ResourceResponse* response, | 36 ResourceResponse* response, |
37 bool* defer) override; | 37 bool* defer) override; |
38 virtual bool OnResponseStarted(ResourceResponse* response, | 38 bool OnResponseStarted(ResourceResponse* response, bool* defer) override; |
39 bool* defer) override; | 39 bool OnWillStart(const GURL& url, bool* defer) override; |
40 virtual bool OnWillStart(const GURL& url, bool* defer) override; | 40 bool OnBeforeNetworkStart(const GURL& url, bool* defer) override; |
41 virtual bool OnBeforeNetworkStart(const GURL& url, bool* defer) override; | |
42 | 41 |
43 // ResourceController implementation: | 42 // ResourceController implementation: |
44 virtual void Cancel() override; | 43 void Cancel() override; |
45 virtual void CancelAndIgnore() override; | 44 void CancelAndIgnore() override; |
46 virtual void CancelWithError(int error_code) override; | 45 void CancelWithError(int error_code) override; |
47 virtual void Resume() override; | 46 void Resume() override; |
48 | 47 |
49 private: | 48 private: |
50 void ResumeStart(); | 49 void ResumeStart(); |
51 void ResumeNetworkStart(); | 50 void ResumeNetworkStart(); |
52 void ResumeRedirect(); | 51 void ResumeRedirect(); |
53 void ResumeResponse(); | 52 void ResumeResponse(); |
54 | 53 |
55 // Called when the throttle at |throttle_index| defers a request. Logs the | 54 // Called when the throttle at |throttle_index| defers a request. Logs the |
56 // name of the throttle that delayed the request. | 55 // name of the throttle that delayed the request. |
57 void OnRequestDefered(int throttle_index); | 56 void OnRequestDefered(int throttle_index); |
(...skipping 13 matching lines...) Expand all Loading... |
71 GURL deferred_url_; | 70 GURL deferred_url_; |
72 net::RedirectInfo deferred_redirect_; | 71 net::RedirectInfo deferred_redirect_; |
73 scoped_refptr<ResourceResponse> deferred_response_; | 72 scoped_refptr<ResourceResponse> deferred_response_; |
74 | 73 |
75 bool cancelled_by_resource_throttle_; | 74 bool cancelled_by_resource_throttle_; |
76 }; | 75 }; |
77 | 76 |
78 } // namespace content | 77 } // namespace content |
79 | 78 |
80 #endif // CONTENT_BROWSER_LOADER_THROTTLING_RESOURCE_HANDLER_H_ | 79 #endif // CONTENT_BROWSER_LOADER_THROTTLING_RESOURCE_HANDLER_H_ |
OLD | NEW |