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)