| Index: content/public/renderer/document_state.h
|
| diff --git a/content/public/renderer/navigation_state.h b/content/public/renderer/document_state.h
|
| similarity index 73%
|
| copy from content/public/renderer/navigation_state.h
|
| copy to content/public/renderer/document_state.h
|
| index 30ccd01198f4afa195010fb89d098357fe48c1ec..ee6fa585b129e45748dcde276a1e7df44712e021 100644
|
| --- a/content/public/renderer/navigation_state.h
|
| +++ b/content/public/renderer/document_state.h
|
| @@ -2,8 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CONTENT_PUBLIC_RENDERER_NAVIGATION_STATE_H_
|
| -#define CONTENT_PUBLIC_RENDERER_NAVIGATION_STATE_H_
|
| +#ifndef CONTENT_PUBLIC_RENDERER_DOCUMENT_STATE_H_
|
| +#define CONTENT_PUBLIC_RENDERER_DOCUMENT_STATE_H_
|
| #pragma once
|
|
|
| #include <string>
|
| @@ -11,7 +11,6 @@
|
| #include "base/logging.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/time.h"
|
| -#include "content/public/common/page_transition_types.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDataSource.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
|
|
|
| @@ -22,9 +21,11 @@ class AltErrorPageResourceFetcher;
|
|
|
| namespace content {
|
|
|
| +class NavigationState;
|
| +
|
| // The RenderView stores an instance of this class in the "extra data" of each
|
| // WebDataSource (see RenderView::DidCreateDataSource).
|
| -class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| +class DocumentState : public WebKit::WebDataSource::ExtraData {
|
| public:
|
| // The exact values of this enum are used in histograms, so new values must be
|
| // added to the end.
|
| @@ -41,48 +42,13 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| kLoadTypeMax // Bounding value for this enum.
|
| };
|
|
|
| - virtual ~NavigationState();
|
| -
|
| - static NavigationState* CreateBrowserInitiated(
|
| - int32 pending_page_id,
|
| - int pending_history_list_offset,
|
| - content::PageTransition transition_type,
|
| - base::Time request_time) {
|
| - return new NavigationState(transition_type, request_time, false,
|
| - pending_page_id,
|
| - pending_history_list_offset);
|
| - }
|
| -
|
| - static NavigationState* CreateContentInitiated() {
|
| - // We assume navigations initiated by content are link clicks.
|
| - return new NavigationState(
|
| - content::PAGE_TRANSITION_LINK, base::Time(), true, -1, -1);
|
| - }
|
| -
|
| - static NavigationState* FromDataSource(WebKit::WebDataSource* ds) {
|
| - return static_cast<NavigationState*>(ds->extraData());
|
| - }
|
| -
|
| - // Contains the page_id for this navigation or -1 if there is none yet.
|
| - int32 pending_page_id() const { return pending_page_id_; }
|
| + DocumentState();
|
| + virtual ~DocumentState();
|
|
|
| - // If pending_page_id() is not -1, then this contains the corresponding
|
| - // offset of the page in the back/forward history list.
|
| - int pending_history_list_offset() const {
|
| - return pending_history_list_offset_;
|
| + static DocumentState* FromDataSource(WebKit::WebDataSource* ds) {
|
| + return static_cast<DocumentState*>(ds->extraData());
|
| }
|
|
|
| - // Contains the transition type that the browser specified when it
|
| - // initiated the load.
|
| - content::PageTransition transition_type() const { return transition_type_; }
|
| - void set_transition_type(content::PageTransition type) {
|
| - transition_type_ = type;
|
| - }
|
| -
|
| - // Record the nature of this load, for use when histogramming page load times.
|
| - LoadType load_type() const { return load_type_; }
|
| - void set_load_type(LoadType load_type) { load_type_ = load_type; }
|
| -
|
| // The time that this navigation was requested.
|
| const base::Time& request_time() const {
|
| return request_time_;
|
| @@ -142,7 +108,7 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| first_paint_time_ = value;
|
| }
|
|
|
| - // The time that painting first happened after the document finished loading.
|
| + // The time that painting first happened after the document loaded.
|
| const base::Time& first_paint_after_load_time() const {
|
| return first_paint_after_load_time_;
|
| }
|
| @@ -163,13 +129,29 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| web_timing_histograms_recorded_ = value;
|
| }
|
|
|
| - // True if we have already processed the "DidCommitLoad" event for this
|
| - // request. Used by session history.
|
| - bool request_committed() const { return request_committed_; }
|
| - void set_request_committed(bool value) { request_committed_ = 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;
|
| + }
|
| +
|
| + // Indicator if SPDY was used as part of this page load.
|
| + void set_was_fetched_via_spdy(bool value) { was_fetched_via_spdy_ = value; }
|
| + bool was_fetched_via_spdy() const { return was_fetched_via_spdy_; }
|
|
|
| - // True if this navigation was not initiated via WebFrame::LoadRequest.
|
| - bool is_content_initiated() const { return is_content_initiated_; }
|
| + void set_was_npn_negotiated(bool value) { was_npn_negotiated_ = value; }
|
| + bool was_npn_negotiated() const { return was_npn_negotiated_; }
|
| +
|
| + void set_was_alternate_protocol_available(bool value) {
|
| + was_alternate_protocol_available_ = value;
|
| + }
|
| + bool was_alternate_protocol_available() const {
|
| + return was_alternate_protocol_available_;
|
| + }
|
| +
|
| + void set_was_fetched_via_proxy(bool value) {
|
| + was_fetched_via_proxy_ = value;
|
| + }
|
| + bool was_fetched_via_proxy() const { return was_fetched_via_proxy_; }
|
|
|
| const GURL& searchable_form_url() const { return searchable_form_url_; }
|
| void set_searchable_form_url(const GURL& url) { searchable_form_url_ = url; }
|
| @@ -185,11 +167,6 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| }
|
| void set_password_form_data(webkit_glue::PasswordForm* data);
|
|
|
| - webkit_glue::AltErrorPageResourceFetcher* alt_error_page_fetcher() const {
|
| - return alt_error_page_fetcher_.get();
|
| - }
|
| - void set_alt_error_page_fetcher(webkit_glue::AltErrorPageResourceFetcher* f);
|
| -
|
| const std::string& security_info() const { return security_info_; }
|
| void set_security_info(const std::string& security_info) {
|
| security_info_ = security_info;
|
| @@ -202,11 +179,20 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| use_error_page_ = use_error_page;
|
| }
|
|
|
| - int http_status_code() const { return http_status_code_; }
|
| - void set_http_status_code(int http_status_code) {
|
| - http_status_code_ = http_status_code;
|
| + void set_was_prefetcher(bool value) { was_prefetcher_ = value; }
|
| + bool was_prefetcher() const { return was_prefetcher_; }
|
| +
|
| + void set_was_referred_by_prefetcher(bool value) {
|
| + was_referred_by_prefetcher_ = value;
|
| + }
|
| + bool was_referred_by_prefetcher() const {
|
| + return was_referred_by_prefetcher_;
|
| }
|
|
|
| + // Record the nature of this load, for use when histogramming page load times.
|
| + LoadType load_type() const { return load_type_; }
|
| + void set_load_type(LoadType load_type) { load_type_ = load_type; }
|
| +
|
| // 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.
|
| @@ -226,52 +212,15 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| return cache_policy_override_set_;
|
| }
|
|
|
| - // Indicator if SPDY was used as part of this page load.
|
| - void set_was_fetched_via_spdy(bool value) { was_fetched_via_spdy_ = value; }
|
| - bool was_fetched_via_spdy() const { return was_fetched_via_spdy_; }
|
| -
|
| - void set_was_npn_negotiated(bool value) { was_npn_negotiated_ = value; }
|
| - bool was_npn_negotiated() const { return was_npn_negotiated_; }
|
| -
|
| - void set_was_alternate_protocol_available(bool value) {
|
| - was_alternate_protocol_available_ = value;
|
| - }
|
| - bool was_alternate_protocol_available() const {
|
| - return was_alternate_protocol_available_;
|
| - }
|
| -
|
| - void set_was_fetched_via_proxy(bool value) {
|
| - was_fetched_via_proxy_ = value;
|
| + webkit_glue::AltErrorPageResourceFetcher* alt_error_page_fetcher() const {
|
| + return alt_error_page_fetcher_.get();
|
| }
|
| - bool was_fetched_via_proxy() const { return was_fetched_via_proxy_; }
|
| -
|
| - // Whether the frame text contents was translated to a different language.
|
| - void set_was_translated(bool value) { was_translated_ = value; }
|
| - bool was_translated() const { return was_translated_; }
|
| -
|
| - // True iff the frame's navigation was within the same page.
|
| - void set_was_within_same_page(bool value) { was_within_same_page_ = value; }
|
| - bool was_within_same_page() const { return was_within_same_page_; }
|
| -
|
| - void set_was_prefetcher(bool value) { was_prefetcher_ = value; }
|
| - bool was_prefetcher() const { return was_prefetcher_; }
|
| + void set_alt_error_page_fetcher(webkit_glue::AltErrorPageResourceFetcher* f);
|
|
|
| - void set_was_referred_by_prefetcher(bool value) {
|
| - was_referred_by_prefetcher_ = value;
|
| - }
|
| - bool was_referred_by_prefetcher() const {
|
| - return was_referred_by_prefetcher_;
|
| - }
|
| + NavigationState* navigation_state() { return navigation_state_.get(); }
|
| + void set_navigation_state(NavigationState* navigation_state);
|
|
|
| private:
|
| - NavigationState(content::PageTransition transition_type,
|
| - const base::Time& request_time,
|
| - bool is_content_initiated,
|
| - int32 pending_page_id,
|
| - int pending_history_list_offset);
|
| -
|
| - content::PageTransition transition_type_;
|
| - LoadType load_type_;
|
| base::Time request_time_;
|
| base::Time start_load_time_;
|
| base::Time commit_load_time_;
|
| @@ -281,37 +230,33 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
|
| base::Time first_paint_after_load_time_;
|
| bool load_histograms_recorded_;
|
| bool web_timing_histograms_recorded_;
|
| - bool request_committed_;
|
| - bool is_content_initiated_;
|
| - int32 pending_page_id_;
|
| - int pending_history_list_offset_;
|
| + int http_status_code_;
|
| + bool was_fetched_via_spdy_;
|
| + bool was_npn_negotiated_;
|
| + bool was_alternate_protocol_available_;
|
| + bool was_fetched_via_proxy_;
|
| +
|
| GURL searchable_form_url_;
|
| std::string searchable_form_encoding_;
|
| scoped_ptr<webkit_glue::PasswordForm> password_form_data_;
|
| - scoped_ptr<webkit_glue::AltErrorPageResourceFetcher> alt_error_page_fetcher_;
|
| std::string security_info_;
|
|
|
| bool use_error_page_;
|
|
|
| - bool cache_policy_override_set_;
|
| - WebKit::WebURLRequest::CachePolicy cache_policy_override_;
|
| -
|
| - int http_status_code_;
|
| -
|
| - bool was_fetched_via_spdy_;
|
| - bool was_npn_negotiated_;
|
| - bool was_alternate_protocol_available_;
|
| - bool was_fetched_via_proxy_;
|
| - bool was_translated_;
|
| - bool was_within_same_page_;
|
| -
|
| // A prefetcher is a page that contains link rel=prefetch elements.
|
| bool was_prefetcher_;
|
| bool was_referred_by_prefetcher_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(NavigationState);
|
| + LoadType load_type_;
|
| +
|
| + bool cache_policy_override_set_;
|
| + WebKit::WebURLRequest::CachePolicy cache_policy_override_;
|
| +
|
| + scoped_ptr<webkit_glue::AltErrorPageResourceFetcher> alt_error_page_fetcher_;
|
| +
|
| + scoped_ptr<NavigationState> navigation_state_;
|
| };
|
|
|
| -#endif // CONTENT_PUBLIC_RENDERER_NAVIGATION_STATE_H_
|
| +#endif // CONTENT_PUBLIC_RENDERER_DOCUMENT_STATE_H_
|
|
|
| } // namespace content
|
|
|