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