OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_CHILD_NPAPI_URL_FETCHER_H_ | 5 #ifndef CONTENT_CHILD_NPAPI_URL_FETCHER_H_ |
6 #define CONTENT_CHILD_NPAPI_URL_FETCHER_H_ | 6 #define CONTENT_CHILD_NPAPI_URL_FETCHER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "content/public/child/request_peer.h" | 11 #include "content/public/child/request_peer.h" |
| 12 #include "content/public/common/referrer.h" |
12 #include "url/gurl.h" | 13 #include "url/gurl.h" |
13 | 14 |
14 namespace content { | 15 namespace content { |
15 class MultipartResponseDelegate; | 16 class MultipartResponseDelegate; |
16 class PluginStreamUrl; | 17 class PluginStreamUrl; |
17 class ResourceLoaderBridge; | 18 class ResourceLoaderBridge; |
18 | 19 |
19 // Fetches URLS for a plugin using ResourceDispatcher. | 20 // Fetches URLS for a plugin using ResourceDispatcher. |
20 class PluginURLFetcher : public RequestPeer { | 21 class PluginURLFetcher : public RequestPeer { |
21 public: | 22 public: |
22 PluginURLFetcher(PluginStreamUrl* plugin_stream, | 23 PluginURLFetcher(PluginStreamUrl* plugin_stream, |
23 const GURL& url, | 24 const GURL& url, |
24 const GURL& first_party_for_cookies, | 25 const GURL& first_party_for_cookies, |
25 const std::string& method, | 26 const std::string& method, |
26 const char* buf, | 27 const char* buf, |
27 unsigned int len, | 28 unsigned int len, |
28 const GURL& referrer, | 29 const Referrer& referrer, |
29 const std::string& range, | 30 const std::string& range, |
30 bool notify_redirects, | 31 bool notify_redirects, |
31 bool is_plugin_src_load, | 32 bool is_plugin_src_load, |
32 int origin_pid, | 33 int origin_pid, |
33 int render_frame_id, | 34 int render_frame_id, |
34 int render_view_id, | 35 int render_view_id, |
35 unsigned long resource_id, | 36 unsigned long resource_id, |
36 bool copy_stream_data); | 37 bool copy_stream_data); |
37 ~PluginURLFetcher() override; | 38 ~PluginURLFetcher() override; |
38 | 39 |
39 // Cancels the current request. | 40 // Cancels the current request. |
40 void Cancel(); | 41 void Cancel(); |
41 | 42 |
42 // Called with the plugin's reply to NPP_URLRedirectNotify. | 43 // Called with the plugin's reply to NPP_URLRedirectNotify. |
43 void URLRedirectResponse(bool allow); | 44 void URLRedirectResponse(bool allow); |
44 | 45 |
45 GURL first_party_for_cookies() { return first_party_for_cookies_; } | 46 GURL first_party_for_cookies() { return first_party_for_cookies_; } |
46 GURL referrer() { return referrer_; } | 47 Referrer referrer() { return referrer_; } |
47 int origin_pid() { return origin_pid_; } | 48 int origin_pid() { return origin_pid_; } |
48 int render_frame_id() { return render_frame_id_; } | 49 int render_frame_id() { return render_frame_id_; } |
49 int render_view_id() { return render_view_id_; } | 50 int render_view_id() { return render_view_id_; } |
50 bool copy_stream_data() { return copy_stream_data_; } | 51 bool copy_stream_data() { return copy_stream_data_; } |
51 bool pending_failure_notification() { return pending_failure_notification_; } | 52 bool pending_failure_notification() { return pending_failure_notification_; } |
52 | 53 |
53 private: | 54 private: |
54 // RequestPeer implementation: | 55 // RequestPeer implementation: |
55 void OnUploadProgress(uint64 position, uint64 size) override; | 56 void OnUploadProgress(uint64 position, uint64 size) override; |
56 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, | 57 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, |
57 const ResourceResponseInfo& info) override; | 58 const ResourceResponseInfo& info) override; |
58 void OnReceivedResponse(const ResourceResponseInfo& info) override; | 59 void OnReceivedResponse(const ResourceResponseInfo& info) override; |
59 void OnDownloadedData(int len, int encoded_data_length) override; | 60 void OnDownloadedData(int len, int encoded_data_length) override; |
60 void OnReceivedData(const char* data, | 61 void OnReceivedData(const char* data, |
61 int data_length, | 62 int data_length, |
62 int encoded_data_length) override; | 63 int encoded_data_length) override; |
63 void OnCompletedRequest(int error_code, | 64 void OnCompletedRequest(int error_code, |
64 bool was_ignored_by_handler, | 65 bool was_ignored_by_handler, |
65 bool stale_copy_in_cache, | 66 bool stale_copy_in_cache, |
66 const std::string& security_info, | 67 const std::string& security_info, |
67 const base::TimeTicks& completion_time, | 68 const base::TimeTicks& completion_time, |
68 int64 total_transfer_size) override; | 69 int64 total_transfer_size) override; |
69 | 70 |
70 // |plugin_stream_| becomes NULL after Cancel() to ensure no further calls | 71 // |plugin_stream_| becomes NULL after Cancel() to ensure no further calls |
71 // |reach it. | 72 // |reach it. |
72 PluginStreamUrl* plugin_stream_; | 73 PluginStreamUrl* plugin_stream_; |
73 GURL url_; | 74 GURL url_; |
74 GURL first_party_for_cookies_; | 75 GURL first_party_for_cookies_; |
75 GURL referrer_; | 76 Referrer referrer_; |
76 bool notify_redirects_; | 77 bool notify_redirects_; |
77 bool is_plugin_src_load_; | 78 bool is_plugin_src_load_; |
78 int origin_pid_; | 79 int origin_pid_; |
79 int render_frame_id_; | 80 int render_frame_id_; |
80 int render_view_id_; | 81 int render_view_id_; |
81 unsigned long resource_id_; | 82 unsigned long resource_id_; |
82 bool copy_stream_data_; | 83 bool copy_stream_data_; |
83 int64 data_offset_; | 84 int64 data_offset_; |
84 bool pending_failure_notification_; | 85 bool pending_failure_notification_; |
85 | 86 |
86 scoped_ptr<MultipartResponseDelegate> multipart_delegate_; | 87 scoped_ptr<MultipartResponseDelegate> multipart_delegate_; |
87 | 88 |
88 scoped_ptr<ResourceLoaderBridge> bridge_; | 89 scoped_ptr<ResourceLoaderBridge> bridge_; |
89 | 90 |
90 DISALLOW_COPY_AND_ASSIGN(PluginURLFetcher); | 91 DISALLOW_COPY_AND_ASSIGN(PluginURLFetcher); |
91 }; | 92 }; |
92 | 93 |
93 } // namespace content | 94 } // namespace content |
94 | 95 |
95 #endif // CONTENT_CHILD_NPAPI_URL_FETCHER_H_ | 96 #endif // CONTENT_CHILD_NPAPI_URL_FETCHER_H_ |
OLD | NEW |