Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Unified Diff: chrome/browser/prerender/prerender_manager.h

Issue 757723002: [Tests not passing yet] Remove prerender sessionStorage namespace merging. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/prerender/prerender_manager.h
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
index bc99eeab0d1abe31cd515f564a6b98a5f54efb61..d5259de35deb052348400b25eae04ba2d6cf6452 100644
--- a/chrome/browser/prerender/prerender_manager.h
+++ b/chrome/browser/prerender/prerender_manager.h
@@ -24,17 +24,13 @@
#include "chrome/browser/predictors/logged_in_predictor_table.h"
#include "chrome/browser/prerender/prerender_config.h"
#include "chrome/browser/prerender/prerender_contents.h"
-#include "chrome/browser/prerender/prerender_events.h"
#include "chrome/browser/prerender/prerender_final_status.h"
#include "chrome/browser/prerender/prerender_histograms.h"
#include "chrome/browser/prerender/prerender_origin.h"
-#include "chrome/browser/prerender/prerender_tracker.h"
#include "components/keyed_service/core/keyed_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/render_process_host_observer.h"
-#include "content/public/browser/session_storage_namespace.h"
-#include "content/public/browser/web_contents_observer.h"
#include "net/cookies/canonical_cookie.h"
#include "net/cookies/cookie_monster.h"
#include "url/gurl.h"
@@ -68,6 +64,7 @@ namespace prerender {
class PrerenderHandle;
class PrerenderHistory;
class PrerenderLocalPredictor;
+class PrerenderTracker;
// PrerenderManager is responsible for initiating and keeping prerendered
// views of web pages. All methods must be called on the UI thread unless
@@ -343,10 +340,6 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
PrerenderContents::CookieEvent event,
const net::CookieList* cookie_list);
- // Arranges for all session storage merges to hang indefinitely. This is used
- // to reliably test various swap abort cases.
- static void HangSessionStorageMergesForTesting();
-
// Notification that a prerender has completed and its bytes should be
// recorded.
void RecordNetworkBytes(Origin origin, bool used, int64 prerender_bytes);
@@ -380,7 +373,6 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
}
protected:
- class PendingSwap;
class PrerenderData : public base::SupportsWeakPtr<PrerenderData> {
public:
struct OrderByExpiryTime;
@@ -422,13 +414,6 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
expiry_time_ = expiry_time;
}
- void ClearPendingSwap();
-
- PendingSwap* pending_swap() { return pending_swap_.get(); }
- void set_pending_swap(PendingSwap* pending_swap) {
- pending_swap_.reset(pending_swap);
- }
-
private:
PrerenderManager* manager_;
scoped_ptr<PrerenderContents> contents_;
@@ -447,73 +432,9 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
// removed.
base::TimeTicks expiry_time_;
- // If a session storage namespace merge is in progress for this object,
- // we need to keep track of various state associated with it.
- scoped_ptr<PendingSwap> pending_swap_;
-
DISALLOW_COPY_AND_ASSIGN(PrerenderData);
};
- // When a swap can't happen immediately, due to a sesison storage namespace
- // merge, there will be a pending swap object while the merge is in
- // progress. It retains all the data needed to do the merge, maintains
- // throttles for the navigation in the target WebContents that needs to be
- // delayed, and handles all conditions which would cancel a pending swap.
- class PendingSwap : public content::WebContentsObserver {
- public:
- PendingSwap(PrerenderManager* manager,
- content::WebContents* target_contents,
- PrerenderData* prerender_data,
- const GURL& url,
- bool should_replace_current_entry);
- ~PendingSwap() override;
-
- void set_swap_successful(bool swap_successful) {
- swap_successful_ = swap_successful;
- }
-
- void BeginSwap();
-
- // content::WebContentsObserver implementation.
- void AboutToNavigateRenderFrame(
- content::RenderFrameHost* render_frame_host) override;
- void DidStartProvisionalLoadForFrame(
- content::RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- bool is_error_page,
- bool is_iframe_srcdoc) override;
- void DidCommitProvisionalLoadForFrame(
- content::RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- ui::PageTransition transition_type) override;
- void DidFailProvisionalLoad(
- content::RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- int error_code,
- const base::string16& error_description) override;
- void WebContentsDestroyed() override;
-
- private:
- void RecordEvent(PrerenderEvent event) const;
-
- void OnMergeCompleted(content::SessionStorageNamespace::MergeResult result);
- void OnMergeTimeout();
-
- // Prerender parameters.
- PrerenderManager* manager_;
- PrerenderData* prerender_data_;
- GURL url_;
- bool should_replace_current_entry_;
-
- base::TimeTicks start_time_;
- PrerenderTracker::ChildRouteIdPair target_route_id_;
- bool seen_target_route_id_;
- base::OneShotTimer<PendingSwap> merge_timeout_;
- bool swap_successful_;
-
- base::WeakPtrFactory<PendingSwap> weak_factory_;
- };
-
void SetPrerenderContentsFactory(
PrerenderContents::Factory* prerender_contents_factory);
@@ -595,11 +516,6 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
const GURL& url,
const content::SessionStorageNamespace* session_storage_namespace);
- // Finds the active PrerenderData object currently in a PendingSwap for
- // |target_contents|. Otherwise, returns NULL.
- PrerenderData* FindPrerenderDataForTargetContents(
- content::WebContents* target_contents);
-
// Given the |prerender_contents|, find the iterator in active_prerenders_
// correponding to the given prerender.
ScopedVector<PrerenderData>::iterator
@@ -652,8 +568,6 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
bool cookies_exist);
void LoggedInPredictorDataReceived(scoped_ptr<LoggedInStateMap> new_map);
- void RecordEvent(PrerenderContents* contents, PrerenderEvent event) const;
-
// Swaps a prerender |prerender_data| for |url| into the tab, replacing
// |web_contents|. Returns the new WebContents that was swapped in, or NULL
// if a swap-in was not possible. If |should_replace_current_entry| is true,
« no previous file with comments | « chrome/browser/prerender/prerender_local_predictor.cc ('k') | chrome/browser/prerender/prerender_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698