request_extra_data.h revision effb81e5f8246d0db0270817048dc992db66e9fb
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#ifndef CONTENT_CHILD_REQUEST_EXTRA_DATA_H_
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#define CONTENT_CHILD_REQUEST_EXTRA_DATA_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/page_transition_types.h"
11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "third_party/WebKit/public/platform/WebString.h"
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "third_party/WebKit/public/platform/WebURLRequest.h"
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageVisibilityState.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The RenderView stores an instance of this class in the "extra data" of each
18a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// ResourceRequest (see RenderFrameImpl::willSendRequest).
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CONTENT_EXPORT RequestExtraData
20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    : public NON_EXPORTED_BASE(blink::WebURLRequest::ExtraData) {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  RequestExtraData();
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~RequestExtraData();
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  blink::WebPageVisibilityState visibility_state() const {
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    return visibility_state_;
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  }
28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_visibility_state(blink::WebPageVisibilityState visibility_state) {
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    visibility_state_ = visibility_state;
30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  int render_frame_id() const { return render_frame_id_; }
32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_render_frame_id(int render_frame_id) {
33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    render_frame_id_ = render_frame_id;
34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool is_main_frame() const { return is_main_frame_; }
36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_is_main_frame(bool is_main_frame) {
37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    is_main_frame_ = is_main_frame;
38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
39424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  GURL frame_origin() const { return frame_origin_; }
40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_frame_origin(const GURL& frame_origin) {
41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    frame_origin_ = frame_origin;
42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool parent_is_main_frame() const { return parent_is_main_frame_; }
44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_parent_is_main_frame(bool parent_is_main_frame) {
45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    parent_is_main_frame_ = parent_is_main_frame;
46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  int parent_render_frame_id() const { return parent_render_frame_id_; }
48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_parent_render_frame_id(int parent_render_frame_id) {
49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    parent_render_frame_id_ = parent_render_frame_id;
50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool allow_download() const { return allow_download_; }
52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_allow_download(bool allow_download) {
53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    allow_download_ = allow_download;
54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PageTransition transition_type() const { return transition_type_; }
56effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_transition_type(PageTransition transition_type) {
57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    transition_type_ = transition_type;
58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  bool should_replace_current_entry() const {
60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    return should_replace_current_entry_;
61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  }
62effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_should_replace_current_entry(
63effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      bool should_replace_current_entry) {
64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    should_replace_current_entry_ = should_replace_current_entry;
65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int transferred_request_child_id() const {
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return transferred_request_child_id_;
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
69effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_transferred_request_child_id(
70effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      int transferred_request_child_id) {
71effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    transferred_request_child_id_ = transferred_request_child_id;
72effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int transferred_request_request_id() const {
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return transferred_request_request_id_;
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
76effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_transferred_request_request_id(
77effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      int transferred_request_request_id) {
78effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    transferred_request_request_id_ = transferred_request_request_id;
79effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
80a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  int service_worker_provider_id() const {
81a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    return service_worker_provider_id_;
82a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  }
83effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_service_worker_provider_id(
84effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      int service_worker_provider_id) {
85effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    service_worker_provider_id_ = service_worker_provider_id;
86effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
87effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  // |custom_user_agent| is used to communicate an overriding custom user agent
88effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  // to |RenderViewImpl::willSendRequest()|; set to a null string to indicate no
89effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  // override and an empty string to indicate that there should be no user
90effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  // agent.
91effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  const blink::WebString& custom_user_agent() const {
92effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      return custom_user_agent_;
93effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
94effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_custom_user_agent(
95effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      const blink::WebString& custom_user_agent) {
96effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    custom_user_agent_ = custom_user_agent;
97effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
98effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  bool was_after_preconnect_request() { return was_after_preconnect_request_; }
99effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void set_was_after_preconnect_request(
100effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      bool was_after_preconnect_request) {
101effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    was_after_preconnect_request_ = was_after_preconnect_request;
102effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
1055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  blink::WebPageVisibilityState visibility_state_;
106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  int render_frame_id_;
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool is_main_frame_;
108424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  GURL frame_origin_;
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool parent_is_main_frame_;
110a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  int parent_render_frame_id_;
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool allow_download_;
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PageTransition transition_type_;
113f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  bool should_replace_current_entry_;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int transferred_request_child_id_;
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int transferred_request_request_id_;
116a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  int service_worker_provider_id_;
117effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  blink::WebString custom_user_agent_;
118effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  bool was_after_preconnect_request_;
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(RequestExtraData);
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif  // CONTENT_CHILD_REQUEST_EXTRA_DATA_H_
126