#include "base/memory/scoped_vector.h"
#include "base/message_loop/message_loop.h"
#include "base/metrics/field_trial.h"
+#include "base/prefs/pref_service.h"
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
+#include "chrome/browser/net/prediction_options.h"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_handle.h"
#include "chrome/browser/prerender/prerender_link_manager.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_origin.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
#include "chrome/common/prerender_types.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
virtual void StartPrerendering(
int ALLOW_UNUSED creator_child_id,
const gfx::Size& ALLOW_UNUSED size,
- content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace)
+ content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
+ net::URLRequestContextGetter* ALLOW_UNUSED request_context)
OVERRIDE;
virtual bool GetChildId(int* child_id) const OVERRIDE {
time_ticks_(TimeTicks::Now()),
prerender_tracker_(prerender_tracker) {
set_rate_limit_enabled(false);
+ OnCookieStoreLoaded();
}
virtual ~UnitTestPrerenderManager() {
prerender_contents_map_.erase(std::make_pair(child_id, route_id));
}
+ protected:
+ virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE {
+ return NULL;
+ }
+
private:
void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) {
CHECK(!next_prerender_contents_.get());
void DummyPrerenderContents::StartPrerendering(
int ALLOW_UNUSED creator_child_id,
const gfx::Size& ALLOW_UNUSED size,
- content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace) {
+ content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
+ net::URLRequestContextGetter* ALLOW_UNUSED request_context) {
// In the base PrerenderContents implementation, StartPrerendering will
// be called even when the PrerenderManager is part of the control group,
// but it will early exit before actually creating a new RenderView if
return LauncherHasRunningPrerender(kDefaultChildId, last_prerender_id());
}
+ void DisablePrerender() {
+ profile_.GetPrefs()->SetInteger(
+ prefs::kNetworkPredictionOptions,
+ chrome_browser_net::NETWORK_PREDICTION_NEVER);
+ }
+
private:
PrerenderTracker* prerender_tracker() {
return g_browser_process->prerender_tracker();
// Tests that our PPLT dummy prerender gets created properly.
TEST_F(PrerenderTest, PPLTDummy) {
+ RestorePrerenderMode restore_prerender_mode;
+ PrerenderManager::SetMode(
+ PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
+
GURL url("http://www.google.com/");
DummyPrerenderContents* prerender_contents =
prerender_manager()->CreateNextPrerenderContents(
// Tests that our PPLT dummy prerender gets created properly, even
// when navigating to a page that has been recently navigated to.
TEST_F(PrerenderTest, RecentlyVisitedPPLTDummy) {
+ RestorePrerenderMode restore_prerender_mode;
+ PrerenderManager::SetMode(
+ PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
+
GURL url("http://www.google.com/");
DummyPrerenderContents* prerender_contents =
prerender_manager()->CreateNextPrerenderContents(
}
TEST_F(PrerenderTest, PPLTLateCancel) {
+ RestorePrerenderMode restore_prerender_mode;
+ PrerenderManager::SetMode(
+ PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
+
GURL url("http://www.google.com");
DummyPrerenderContents* prerender_contents =
prerender_manager()->CreateNextPrerenderContents(
}
TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) {
- prerender_manager()->set_enabled(false);
+ DisablePrerender();
EXPECT_FALSE(prerender_manager()->AddPrerenderFromOmnibox(
GURL("http://www.example.com"), NULL, gfx::Size()));
}
TEST_F(PrerenderTest, LinkRelNotAllowedWhenDisabled) {
- prerender_manager()->set_enabled(false);
+ DisablePrerender();
EXPECT_FALSE(AddSimplePrerender(
GURL("http://www.example.com")));
}
ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
"EmbeddedSearch",
"Group82 espv:8 use_cacheable_ntp:1 prefetch_results:1"));
- prerender_manager()->set_enabled(false);
+ DisablePrerender();
EXPECT_FALSE(prerender_manager()->AddPrerenderForInstant(
GURL("http://www.example.com/instant_search"), NULL, gfx::Size()));
}