request_extra_data.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef CONTENT_CHILD_REQUEST_EXTRA_DATA_H_
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define CONTENT_CHILD_REQUEST_EXTRA_DATA_H_
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/compiler_specific.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "content/common/content_export.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "third_party/WebKit/public/platform/WebString.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebURLRequest.h"
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageVisibilityState.h"
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/base/page_transition_types.h"
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace content {
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Can be used by callers to store extra data on every ResourceRequest
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// which will be incorporated into the ResourceHostMsg_Request message
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// sent by ResourceDispatcher.
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class CONTENT_EXPORT RequestExtraData
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    : public NON_EXPORTED_BASE(blink::WebURLRequest::ExtraData) {
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  RequestExtraData();
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual ~RequestExtraData();
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  blink::WebPageVisibilityState visibility_state() const {
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return visibility_state_;
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_visibility_state(blink::WebPageVisibilityState visibility_state) {
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    visibility_state_ = visibility_state;
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int render_frame_id() const { return render_frame_id_; }
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_render_frame_id(int render_frame_id) {
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    render_frame_id_ = render_frame_id;
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool is_main_frame() const { return is_main_frame_; }
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_is_main_frame(bool is_main_frame) {
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    is_main_frame_ = is_main_frame;
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  GURL frame_origin() const { return frame_origin_; }
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_frame_origin(const GURL& frame_origin) {
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    frame_origin_ = frame_origin;
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool parent_is_main_frame() const { return parent_is_main_frame_; }
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_parent_is_main_frame(bool parent_is_main_frame) {
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    parent_is_main_frame_ = parent_is_main_frame;
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int parent_render_frame_id() const { return parent_render_frame_id_; }
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_parent_render_frame_id(int parent_render_frame_id) {
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    parent_render_frame_id_ = parent_render_frame_id;
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool allow_download() const { return allow_download_; }
53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_allow_download(bool allow_download) {
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    allow_download_ = allow_download;
55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ui::PageTransition transition_type() const { return transition_type_; }
57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_transition_type(ui::PageTransition transition_type) {
58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    transition_type_ = transition_type;
59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool should_replace_current_entry() const {
61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return should_replace_current_entry_;
62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_should_replace_current_entry(
64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      bool should_replace_current_entry) {
65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    should_replace_current_entry_ = should_replace_current_entry;
66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int transferred_request_child_id() const {
68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return transferred_request_child_id_;
69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_transferred_request_child_id(
71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      int transferred_request_child_id) {
72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    transferred_request_child_id_ = transferred_request_child_id;
73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int transferred_request_request_id() const {
75cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return transferred_request_request_id_;
76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
77cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_transferred_request_request_id(
78cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      int transferred_request_request_id) {
79cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    transferred_request_request_id_ = transferred_request_request_id;
80cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
81cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int service_worker_provider_id() const {
82cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return service_worker_provider_id_;
83cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
84cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_service_worker_provider_id(
85cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      int service_worker_provider_id) {
86cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    service_worker_provider_id_ = service_worker_provider_id;
87cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
88cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // |custom_user_agent| is used to communicate an overriding custom user agent
89cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // to |RenderViewImpl::willSendRequest()|; set to a null string to indicate no
90cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // override and an empty string to indicate that there should be no user
91cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // agent.
92cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  const blink::WebString& custom_user_agent() const {
93cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return custom_user_agent_;
94cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
95cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_custom_user_agent(const blink::WebString& custom_user_agent) {
96cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    custom_user_agent_ = custom_user_agent;
97cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
98cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  const blink::WebString& requested_with() const {
99cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return requested_with_;
100cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
101cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void set_requested_with(const blink::WebString& requested_with) {
102cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    requested_with_ = requested_with;
103cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
104cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
105cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private:
106cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  blink::WebPageVisibilityState visibility_state_;
107cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int render_frame_id_;
108cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool is_main_frame_;
109cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  GURL frame_origin_;
110cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool parent_is_main_frame_;
111cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int parent_render_frame_id_;
112cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool allow_download_;
113cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ui::PageTransition transition_type_;
114cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool should_replace_current_entry_;
115cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int transferred_request_child_id_;
116cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int transferred_request_request_id_;
117cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  int service_worker_provider_id_;
118cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  blink::WebString custom_user_agent_;
119cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  blink::WebString requested_with_;
120cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
121cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(RequestExtraData);
122cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
123cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
124cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace content
125cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
126cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // CONTENT_CHILD_REQUEST_EXTRA_DATA_H_
127cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)