1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef WEBKIT_CHILD_WEBURLREQUEST_EXTRADATA_IMPL_H_ 6 #define WEBKIT_CHILD_WEBURLREQUEST_EXTRADATA_IMPL_H_ 7 8 #include "base/compiler_specific.h" 9 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" 10 #include "third_party/WebKit/public/platform/WebString.h" 11 #include "third_party/WebKit/public/platform/WebURLRequest.h" 12 #include "webkit/child/webkit_child_export.h" 13 14 namespace webkit_glue { 15 16 // Base class for Chrome's implementation of the "extra data" stored in each 17 // ResourceRequest. 18 class WEBKIT_CHILD_EXPORT WebURLRequestExtraDataImpl : 19 public NON_EXPORTED_BASE(blink::WebURLRequest::ExtraData) { 20 public: 21 // |custom_user_agent| is used to communicate an overriding custom user agent 22 // to |RenderViewImpl::willSendRequest()|; set to a null string to indicate no 23 // override and an empty string to indicate that there should be no user 24 // agent. This needs to be here, instead of content's |RequestExtraData| since 25 // ppb_url_request_info_impl.cc needs to be able to set it. 26 explicit WebURLRequestExtraDataImpl( 27 blink::WebReferrerPolicy referrer_policy, 28 const blink::WebString& custom_user_agent, 29 bool was_after_preconnect_request); 30 virtual ~WebURLRequestExtraDataImpl(); 31 32 blink::WebReferrerPolicy referrer_policy() const { return referrer_policy_; } 33 const blink::WebString& custom_user_agent() const { 34 return custom_user_agent_; 35 } 36 bool was_after_preconnect_request() { return was_after_preconnect_request_; } 37 38 private: 39 blink::WebReferrerPolicy referrer_policy_; 40 blink::WebString custom_user_agent_; 41 bool was_after_preconnect_request_; 42 43 DISALLOW_COPY_AND_ASSIGN(WebURLRequestExtraDataImpl); 44 }; 45 46 } // namespace webkit_glue 47 48 #endif // WEBKIT_CHILD_WEBURLREQUEST_EXTRADATA_IMPL_H_ 49