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

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

Issue 291403002: Remove some RenderProcessHost::IsGuest call sites (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Android build Created 6 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_link_manager.h" 5 #include "chrome/browser/prerender/prerender_link_manager.h"
6 6
7 #include <functional> 7 #include <functional>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "base/metrics/field_trial.h" 14 #include "base/metrics/field_trial.h"
15 #include "base/metrics/histogram.h" 15 #include "base/metrics/histogram.h"
16 #include "chrome/browser/guest_view/guest_view_base.h"
16 #include "chrome/browser/prerender/prerender_contents.h" 17 #include "chrome/browser/prerender/prerender_contents.h"
17 #include "chrome/browser/prerender/prerender_handle.h" 18 #include "chrome/browser/prerender/prerender_handle.h"
18 #include "chrome/browser/prerender/prerender_manager.h" 19 #include "chrome/browser/prerender/prerender_manager.h"
19 #include "chrome/browser/prerender/prerender_manager_factory.h" 20 #include "chrome/browser/prerender/prerender_manager_factory.h"
20 #include "chrome/browser/profiles/profile.h" 21 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/common/prerender_messages.h" 22 #include "chrome/common/prerender_messages.h"
22 #include "chrome/common/prerender_types.h" 23 #include "chrome/common/prerender_types.h"
23 #include "content/public/browser/render_process_host.h" 24 #include "content/public/browser/render_process_host.h"
24 #include "content/public/browser/render_view_host.h" 25 #include "content/public/browser/render_view_host.h"
25 #include "content/public/browser/session_storage_namespace.h" 26 #include "content/public/browser/session_storage_namespace.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 void PrerenderLinkManager::OnAddPrerender(int launcher_child_id, 159 void PrerenderLinkManager::OnAddPrerender(int launcher_child_id,
159 int prerender_id, 160 int prerender_id,
160 const GURL& url, 161 const GURL& url,
161 uint32 rel_types, 162 uint32 rel_types,
162 const content::Referrer& referrer, 163 const content::Referrer& referrer,
163 const gfx::Size& size, 164 const gfx::Size& size,
164 int render_view_route_id) { 165 int render_view_route_id) {
165 DCHECK_EQ(static_cast<LinkPrerender*>(NULL), 166 DCHECK_EQ(static_cast<LinkPrerender*>(NULL),
166 FindByLauncherChildIdAndPrerenderId(launcher_child_id, 167 FindByLauncherChildIdAndPrerenderId(launcher_child_id,
167 prerender_id)); 168 prerender_id));
168 content::RenderProcessHost* rph = 169 content::RenderViewHost* rvh =
169 content::RenderProcessHost::FromID(launcher_child_id); 170 content::RenderViewHost::FromID(launcher_child_id, render_view_route_id);
171 content::WebContents* web_contents =
172 rvh ? content::WebContents::FromRenderViewHost(rvh) : NULL;
170 // Guests inside <webview> do not support cross-process navigation and so we 173 // Guests inside <webview> do not support cross-process navigation and so we
171 // do not allow guests to prerender content. 174 // do not allow guests to prerender content.
172 if (rph && rph->IsGuest()) 175 if (GuestViewBase::IsGuest(web_contents))
173 return; 176 return;
174 177
175 // Check if the launcher is itself an unswapped prerender. 178 // Check if the launcher is itself an unswapped prerender.
176 PrerenderContents* prerender_contents = 179 PrerenderContents* prerender_contents =
177 manager_->GetPrerenderContentsForRoute(launcher_child_id, 180 manager_->GetPrerenderContentsForRoute(launcher_child_id,
178 render_view_route_id); 181 render_view_route_id);
179 if (prerender_contents && 182 if (prerender_contents &&
180 prerender_contents->final_status() != FINAL_STATUS_MAX) { 183 prerender_contents->final_status() != FINAL_STATUS_MAX) {
181 // The launcher is a prerender about to be destroyed asynchronously, but 184 // The launcher is a prerender about to be destroyed asynchronously, but
182 // its AddLinkRelPrerender message raced with shutdown. Ignore it. 185 // its AddLinkRelPrerender message raced with shutdown. Ignore it.
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 DCHECK(!prerender->is_match_complete_replacement); 534 DCHECK(!prerender->is_match_complete_replacement);
532 prerender->is_match_complete_replacement = true; 535 prerender->is_match_complete_replacement = true;
533 Send(prerender->launcher_child_id, 536 Send(prerender->launcher_child_id,
534 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id)); 537 new PrerenderMsg_OnPrerenderStop(prerender->prerender_id));
535 // Do not call RemovePrerender here. The replacement needs to stay connected 538 // Do not call RemovePrerender here. The replacement needs to stay connected
536 // to the HTMLLinkElement in the renderer so it notices renderer-triggered 539 // to the HTMLLinkElement in the renderer so it notices renderer-triggered
537 // cancelations. 540 // cancelations.
538 } 541 }
539 542
540 } // namespace prerender 543 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/guest_view/guest_view_base.cc ('k') | chrome/browser/task_manager/extension_information.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698