Added unit test for DevTools' ephemeral port support.
[chromium-blink-merge.git] / content / child / npapi / plugin_url_fetcher.h
blob7eab78e4326e7e424f01352564540826371f5fa9
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
3 // found in the LICENSE file.
5 #ifndef CONTENT_CHILD_NPAPI_URL_FETCHER_H_
6 #define CONTENT_CHILD_NPAPI_URL_FETCHER_H_
8 #include <string>
10 #include "base/memory/scoped_ptr.h"
11 #include "content/public/child/request_peer.h"
12 #include "url/gurl.h"
14 namespace webkit_glue {
15 class MultipartResponseDelegate;
16 class ResourceLoaderBridge;
19 namespace content {
20 class PluginStreamUrl;
22 // Fetches URLS for a plugin using ResourceDispatcher.
23 class PluginURLFetcher : public RequestPeer {
24 public:
25 PluginURLFetcher(PluginStreamUrl* plugin_stream,
26 const GURL& url,
27 const GURL& first_party_for_cookies,
28 const std::string& method,
29 const char* buf,
30 unsigned int len,
31 const GURL& referrer,
32 const std::string& range,
33 bool notify_redirects,
34 bool is_plugin_src_load,
35 int origin_pid,
36 int render_frame_id,
37 int render_view_id,
38 unsigned long resource_id,
39 bool copy_stream_data);
40 virtual ~PluginURLFetcher();
42 // Cancels the current request.
43 void Cancel();
45 // Called with the plugin's reply to NPP_URLRedirectNotify.
46 void URLRedirectResponse(bool allow);
48 GURL first_party_for_cookies() { return first_party_for_cookies_; }
49 GURL referrer() { return referrer_; }
50 int origin_pid() { return origin_pid_; }
51 int render_frame_id() { return render_frame_id_; }
52 int render_view_id() { return render_view_id_; }
53 bool copy_stream_data() { return copy_stream_data_; }
54 bool pending_failure_notification() { return pending_failure_notification_; }
56 private:
57 // RequestPeer implementation:
58 virtual void OnUploadProgress(uint64 position, uint64 size) OVERRIDE;
59 virtual bool OnReceivedRedirect(const GURL& new_url,
60 const GURL& new_first_party_for_cookies,
61 const ResourceResponseInfo& info) OVERRIDE;
62 virtual void OnReceivedResponse(const ResourceResponseInfo& info) OVERRIDE;
63 virtual void OnDownloadedData(int len, int encoded_data_length) OVERRIDE;
64 virtual void OnReceivedData(const char* data,
65 int data_length,
66 int encoded_data_length) OVERRIDE;
67 virtual void OnCompletedRequest(int error_code,
68 bool was_ignored_by_handler,
69 bool stale_copy_in_cache,
70 const std::string& security_info,
71 const base::TimeTicks& completion_time,
72 int64 total_transfer_size) OVERRIDE;
74 // |plugin_stream_| becomes NULL after Cancel() to ensure no further calls
75 // |reach it.
76 PluginStreamUrl* plugin_stream_;
77 GURL url_;
78 GURL first_party_for_cookies_;
79 std::string method_;
80 GURL referrer_;
81 bool notify_redirects_;
82 bool is_plugin_src_load_;
83 int origin_pid_;
84 int render_frame_id_;
85 int render_view_id_;
86 unsigned long resource_id_;
87 bool copy_stream_data_;
88 int64 data_offset_;
89 bool pending_failure_notification_;
91 scoped_ptr<webkit_glue::MultipartResponseDelegate> multipart_delegate_;
93 scoped_ptr<webkit_glue::ResourceLoaderBridge> bridge_;
95 DISALLOW_COPY_AND_ASSIGN(PluginURLFetcher);
98 } // namespace content
100 #endif // CONTENT_CHILD_NPAPI_URL_FETCHER_H_