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

Side by Side Diff: chrome/browser/prerender/prerender_contents.cc

Issue 6255005: Browser test for prerendering in general (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Added missing file (again) Created 9 years, 11 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/prerender/prerender_contents.h" 5 #include "chrome/browser/prerender/prerender_contents.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/background_contents_service.h" 8 #include "chrome/browser/background_contents_service.h"
9 #include "chrome/browser/browsing_instance.h" 9 #include "chrome/browser/browsing_instance.h"
10 #include "chrome/browser/prerender/prerender_manager.h" 10 #include "chrome/browser/prerender/prerender_manager.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/renderer_host/render_view_host.h" 12 #include "chrome/browser/renderer_host/render_view_host.h"
13 #include "chrome/browser/renderer_host/site_instance.h" 13 #include "chrome/browser/renderer_host/site_instance.h"
14 #include "chrome/browser/renderer_preferences_util.h" 14 #include "chrome/browser/renderer_preferences_util.h"
15 #include "chrome/common/extensions/extension_constants.h" 15 #include "chrome/common/extensions/extension_constants.h"
16 #include "chrome/common/notification_service.h" 16 #include "chrome/common/notification_service.h"
17 #include "chrome/common/url_constants.h" 17 #include "chrome/common/url_constants.h"
18 #include "chrome/common/view_types.h" 18 #include "chrome/common/view_types.h"
19 #include "chrome/common/render_messages.h" 19 #include "chrome/common/render_messages.h"
20 #include "chrome/common/render_messages_params.h" 20 #include "chrome/common/render_messages_params.h"
21 #include "gfx/rect.h" 21 #include "gfx/rect.h"
22 22
23 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory {
24 public:
25 virtual PrerenderContents* CreatePrerenderContents(
26 PrerenderManager* prerender_manager, Profile* profile, const GURL& url,
27 const std::vector<GURL>& alias_urls) {
28 return new PrerenderContents(prerender_manager, profile, url, alias_urls);
29 }
30 };
31
23 PrerenderContents::PrerenderContents(PrerenderManager* prerender_manager, 32 PrerenderContents::PrerenderContents(PrerenderManager* prerender_manager,
24 Profile* profile, 33 Profile* profile,
25 const GURL& url, 34 const GURL& url,
26 const std::vector<GURL>& alias_urls) 35 const std::vector<GURL>& alias_urls)
27 : prerender_manager_(prerender_manager), 36 : prerender_manager_(prerender_manager),
28 render_view_host_(NULL), 37 render_view_host_(NULL),
29 prerender_url_(url), 38 prerender_url_(url),
30 profile_(profile), 39 profile_(profile),
31 page_id_(0) { 40 page_id_(0) {
32 DCHECK(prerender_manager != NULL); 41 DCHECK(prerender_manager != NULL);
33 AddAliasURL(prerender_url_); 42 AddAliasURL(prerender_url_);
34 for (std::vector<GURL>::const_iterator it = alias_urls.begin(); 43 for (std::vector<GURL>::const_iterator it = alias_urls.begin();
35 it != alias_urls.end(); 44 it != alias_urls.end();
36 ++it) { 45 ++it) {
37 AddAliasURL(*it); 46 AddAliasURL(*it);
38 } 47 }
39 } 48 }
40 49
50 // static
51 PrerenderContents::Factory* PrerenderContents::CreateFactory() {
52 return new PrerenderContentsFactoryImpl();
53 }
54
41 void PrerenderContents::StartPrerendering() { 55 void PrerenderContents::StartPrerendering() {
42 DCHECK(profile_ != NULL); 56 DCHECK(profile_ != NULL);
43 SiteInstance* site_instance = SiteInstance::CreateSiteInstance(profile_); 57 SiteInstance* site_instance = SiteInstance::CreateSiteInstance(profile_);
44 render_view_host_ = new RenderViewHost(site_instance, this, MSG_ROUTING_NONE, 58 render_view_host_ = new RenderViewHost(site_instance, this, MSG_ROUTING_NONE,
45 NULL); 59 NULL);
46 render_view_host_->AllowScriptToClose(true); 60 render_view_host_->AllowScriptToClose(true);
47 61
48 // Close ourselves when the application is shutting down. 62 // Close ourselves when the application is shutting down.
49 registrar_.Add(this, NotificationType::APP_TERMINATING, 63 registrar_.Add(this, NotificationType::APP_TERMINATING,
50 NotificationService::AllSources()); 64 NotificationService::AllSources());
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 } 272 }
259 273
260 void PrerenderContents::AddAliasURL(const GURL& url) { 274 void PrerenderContents::AddAliasURL(const GURL& url) {
261 alias_urls_.push_back(url); 275 alias_urls_.push_back(url);
262 } 276 }
263 277
264 bool PrerenderContents::MatchesURL(const GURL& url) const { 278 bool PrerenderContents::MatchesURL(const GURL& url) const {
265 return std::find(alias_urls_.begin(), alias_urls_.end(), url) 279 return std::find(alias_urls_.begin(), alias_urls_.end(), url)
266 != alias_urls_.end(); 280 != alias_urls_.end();
267 } 281 }
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698