| Index: content/renderer/internal_document_state_data.h
|
| diff --git a/content/renderer/internal_document_state_data.h b/content/renderer/internal_document_state_data.h
|
| index ccb442bd812e5c4354be3ebb4071d4fd424156e8..08ca357fa60f9418cd8a7cb200f93b0c857f3213 100644
|
| --- a/content/renderer/internal_document_state_data.h
|
| +++ b/content/renderer/internal_document_state_data.h
|
| @@ -5,7 +5,17 @@
|
| #ifndef CONTENT_RENDERER_INTERNAL_DOCUMENT_STATE_DATA_H_
|
| #define CONTENT_RENDERER_INTERNAL_DOCUMENT_STATE_DATA_H_
|
|
|
| +#include <string>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/supports_user_data.h"
|
| +#include "googleurl/src/gurl.h"
|
| +#include "third_party/WebKit/Source/Platform/chromium/public/WebReferrerPolicy.h"
|
| +#include "third_party/WebKit/Source/Platform/chromium/public/WebURLRequest.h"
|
| +
|
| +namespace webkit_glue {
|
| +class AltErrorPageResourceFetcher;
|
| +}
|
|
|
| namespace WebKit {
|
| class WebDataSource;
|
| @@ -13,12 +23,15 @@ class WebDataSource;
|
|
|
| namespace content {
|
|
|
| +class DocumentState;
|
| +
|
| // Stores internal state per WebDataSource.
|
| class InternalDocumentStateData : public base::SupportsUserData::Data {
|
| public:
|
| InternalDocumentStateData();
|
|
|
| static InternalDocumentStateData* FromDataSource(WebKit::WebDataSource* ds);
|
| + static InternalDocumentStateData* FromDocumentState(DocumentState* ds);
|
|
|
| // Set to true once RenderViewImpl::didFirstVisuallyNonEmptyLayout() is
|
| // invoked.
|
| @@ -39,12 +52,99 @@ class InternalDocumentStateData : public base::SupportsUserData::Data {
|
| did_first_visually_non_empty_paint_ = value;
|
| }
|
|
|
| + int http_status_code() const { return http_status_code_; }
|
| + void set_http_status_code(int http_status_code) {
|
| + http_status_code_ = http_status_code;
|
| + }
|
| +
|
| + const GURL& searchable_form_url() const { return searchable_form_url_; }
|
| + void set_searchable_form_url(const GURL& url) { searchable_form_url_ = url; }
|
| + const std::string& searchable_form_encoding() const {
|
| + return searchable_form_encoding_;
|
| + }
|
| + void set_searchable_form_encoding(const std::string& encoding) {
|
| + searchable_form_encoding_ = encoding;
|
| + }
|
| +
|
| + // True if an error page should be used, if the http status code also
|
| + // indicates an error.
|
| + bool use_error_page() const { return use_error_page_; }
|
| + void set_use_error_page(bool use_error_page) {
|
| + use_error_page_ = use_error_page;
|
| + }
|
| +
|
| + // True if the user agent was overridden for this page.
|
| + bool is_overriding_user_agent() const { return is_overriding_user_agent_; }
|
| + void set_is_overriding_user_agent(bool state) {
|
| + is_overriding_user_agent_ = state;
|
| + }
|
| +
|
| + // True if we have to reset the scroll and scale state of the page
|
| + // after the provisional load has been committed.
|
| + bool must_reset_scroll_and_scale_state() const {
|
| + return must_reset_scroll_and_scale_state_;
|
| + }
|
| + void set_must_reset_scroll_and_scale_state(bool state) {
|
| + must_reset_scroll_and_scale_state_ = state;
|
| + }
|
| +
|
| + // Sets the cache policy. The cache policy is only used if explicitly set and
|
| + // by default is not set. You can mark a NavigationState as not having a cache
|
| + // state by way of clear_cache_policy_override.
|
| + void set_cache_policy_override(
|
| + WebKit::WebURLRequest::CachePolicy cache_policy) {
|
| + cache_policy_override_ = cache_policy;
|
| + cache_policy_override_set_ = true;
|
| + }
|
| + WebKit::WebURLRequest::CachePolicy cache_policy_override() const {
|
| + return cache_policy_override_;
|
| + }
|
| + void clear_cache_policy_override() {
|
| + cache_policy_override_set_ = false;
|
| + cache_policy_override_ = WebKit::WebURLRequest::UseProtocolCachePolicy;
|
| + }
|
| + bool is_cache_policy_override_set() const {
|
| + return cache_policy_override_set_;
|
| + }
|
| +
|
| + // Sets the referrer policy to use. This is only used for browser initiated
|
| + // navigations, otherwise, the referrer policy is defined by the frame's
|
| + // document.
|
| + WebKit::WebReferrerPolicy referrer_policy() const {
|
| + return referrer_policy_;
|
| + }
|
| + void set_referrer_policy(WebKit::WebReferrerPolicy referrer_policy) {
|
| + referrer_policy_ = referrer_policy;
|
| + referrer_policy_set_ = true;
|
| + }
|
| + void clear_referrer_policy() {
|
| + referrer_policy_ = WebKit::WebReferrerPolicyDefault;
|
| + referrer_policy_set_ = false;
|
| + }
|
| + bool is_referrer_policy_set() const { return referrer_policy_set_; }
|
| +
|
| + webkit_glue::AltErrorPageResourceFetcher* alt_error_page_fetcher() const {
|
| + return alt_error_page_fetcher_.get();
|
| + }
|
| + void set_alt_error_page_fetcher(webkit_glue::AltErrorPageResourceFetcher* f);
|
| +
|
| protected:
|
| virtual ~InternalDocumentStateData();
|
|
|
| private:
|
| bool did_first_visually_non_empty_layout_;
|
| bool did_first_visually_non_empty_paint_;
|
| + int http_status_code_;
|
| + GURL searchable_form_url_;
|
| + std::string searchable_form_encoding_;
|
| + bool use_error_page_;
|
| + bool is_overriding_user_agent_;
|
| + bool must_reset_scroll_and_scale_state_;
|
| + bool cache_policy_override_set_;
|
| + WebKit::WebURLRequest::CachePolicy cache_policy_override_;
|
| + bool referrer_policy_set_;
|
| + WebKit::WebReferrerPolicy referrer_policy_;
|
| + scoped_ptr<webkit_glue::AltErrorPageResourceFetcher> alt_error_page_fetcher_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(InternalDocumentStateData);
|
| };
|
|
|