request_extra_data.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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" 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "third_party/WebKit/public/platform/WebString.h" 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "third_party/WebKit/public/platform/WebURLRequest.h" 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageVisibilityState.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/base/page_transition_types.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 17e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// Can be used by callers to store extra data on every ResourceRequest 18e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// which will be incorporated into the ResourceHostMsg_Request message 19e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// sent by ResourceDispatcher. 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CONTENT_EXPORT RequestExtraData 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : public NON_EXPORTED_BASE(blink::WebURLRequest::ExtraData) { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch RequestExtraData(); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~RequestExtraData(); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebPageVisibilityState visibility_state() const { 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return visibility_state_; 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_visibility_state(blink::WebPageVisibilityState visibility_state) { 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch visibility_state_ = visibility_state; 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int render_frame_id() const { return render_frame_id_; } 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_render_frame_id(int render_frame_id) { 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch render_frame_id_ = render_frame_id; 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_main_frame() const { return is_main_frame_; } 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_is_main_frame(bool is_main_frame) { 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch is_main_frame_ = is_main_frame; 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 40424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) GURL frame_origin() const { return frame_origin_; } 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_frame_origin(const GURL& frame_origin) { 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch frame_origin_ = frame_origin; 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool parent_is_main_frame() const { return parent_is_main_frame_; } 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_parent_is_main_frame(bool parent_is_main_frame) { 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch parent_is_main_frame_ = parent_is_main_frame; 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int parent_render_frame_id() const { return parent_render_frame_id_; } 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_parent_render_frame_id(int parent_render_frame_id) { 50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch parent_render_frame_id_ = parent_render_frame_id; 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool allow_download() const { return allow_download_; } 53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_allow_download(bool allow_download) { 54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch allow_download_ = allow_download; 55effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ui::PageTransition transition_type() const { return transition_type_; } 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void set_transition_type(ui::PageTransition transition_type) { 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch transition_type_ = transition_type; 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool should_replace_current_entry() const { 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return should_replace_current_entry_; 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 63effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_should_replace_current_entry( 64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch bool should_replace_current_entry) { 65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch should_replace_current_entry_ = should_replace_current_entry; 66effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int transferred_request_child_id() const { 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return transferred_request_child_id_; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 70effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_transferred_request_child_id( 71effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch int transferred_request_child_id) { 72effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch transferred_request_child_id_ = transferred_request_child_id; 73effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int transferred_request_request_id() const { 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return transferred_request_request_id_; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 77effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_transferred_request_request_id( 78effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch int transferred_request_request_id) { 79effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch transferred_request_request_id_ = transferred_request_request_id; 80effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 81a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int service_worker_provider_id() const { 82a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return service_worker_provider_id_; 83a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 84effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void set_service_worker_provider_id( 85effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch int service_worker_provider_id) { 86effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch service_worker_provider_id_ = service_worker_provider_id; 87effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 88effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // |custom_user_agent| is used to communicate an overriding custom user agent 89effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // to |RenderViewImpl::willSendRequest()|; set to a null string to indicate no 90effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // override and an empty string to indicate that there should be no user 91effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // agent. 92effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch const blink::WebString& custom_user_agent() const { 9303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return custom_user_agent_; 94effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 9503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) void set_custom_user_agent(const blink::WebString& custom_user_agent) { 96effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch custom_user_agent_ = custom_user_agent; 97effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 9803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const blink::WebString& requested_with() const { 9903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return requested_with_; 10003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 10103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) void set_requested_with(const blink::WebString& requested_with) { 10203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) requested_with_ = requested_with; 10303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebPageVisibilityState visibility_state_; 107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int render_frame_id_; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_main_frame_; 109424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) GURL frame_origin_; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool parent_is_main_frame_; 111a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int parent_render_frame_id_; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool allow_download_; 1131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ui::PageTransition transition_type_; 114f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool should_replace_current_entry_; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int transferred_request_child_id_; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int transferred_request_request_id_; 117a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int service_worker_provider_id_; 118effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch blink::WebString custom_user_agent_; 11903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) blink::WebString requested_with_; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(RequestExtraData); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 126868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif // CONTENT_CHILD_REQUEST_EXTRA_DATA_H_ 127