summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android_webview/browser/aw_content_browser_client.cc1
-rw-r--r--android_webview/browser/aw_content_browser_client.h1
-rw-r--r--chrome/browser/chrome_content_browser_client.cc8
-rw-r--r--chrome/browser/chrome_content_browser_client.h1
-rw-r--r--chrome/browser/devtools/devtools_targets_ui.cc4
-rw-r--r--chrome/browser/guest_view/guest_view_base.cc5
-rw-r--r--chrome/browser/guest_view/guest_view_base.h2
-rw-r--r--chrome/browser/prerender/prerender_link_manager.cc9
-rw-r--r--chrome/browser/task_manager/extension_information.cc3
-rw-r--r--content/browser/browser_plugin/browser_plugin_guest.cc12
-rw-r--r--content/browser/browser_plugin/browser_plugin_guest.h7
-rw-r--r--content/browser/browser_plugin/browser_plugin_message_filter.cc6
-rw-r--r--content/browser/browser_plugin/browser_plugin_message_filter.h3
-rw-r--r--content/browser/renderer_host/render_message_filter.cc3
-rw-r--r--content/browser/renderer_host/render_message_filter.h3
-rw-r--r--content/browser/renderer_host/render_process_host_impl.cc5
-rw-r--r--content/browser/renderer_host/render_view_host_delegate.h1
-rw-r--r--content/browser/renderer_host/render_widget_host_impl.cc6
-rw-r--r--content/browser/speech/speech_recognition_dispatcher_host.cc15
-rw-r--r--content/browser/speech/speech_recognition_dispatcher_host.h2
-rw-r--r--content/browser/web_contents/web_contents_impl.cc4
-rw-r--r--content/browser/web_contents/web_contents_view_aura.cc11
-rw-r--r--content/public/browser/content_browser_client.cc1
-rw-r--r--content/public/browser/content_browser_client.h1
24 files changed, 69 insertions, 45 deletions
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
index be21678..640fa37 100644
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
@@ -398,7 +398,6 @@ bool AwContentBrowserClient::CanCreateWindow(
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
- bool is_guest,
int opener_id,
bool* no_javascript_access) {
// We unconditionally allow popup windows at this stage and will give
diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h
index 9e4f5f3..49a2abc 100644
--- a/android_webview/browser/aw_content_browser_client.h
+++ b/android_webview/browser/aw_content_browser_client.h
@@ -133,7 +133,6 @@ class AwContentBrowserClient : public content::ContentBrowserClient {
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
- bool is_guest,
int opener_id,
bool* no_javascript_access) OVERRIDE;
virtual std::string GetWorkerProcessTitle(
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 376b97f..29f2d6b 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -34,6 +34,7 @@
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/extensions/api/web_request/web_request_api.h"
#include "chrome/browser/extensions/browser_permissions_policy_delegate.h"
+#include "chrome/browser/extensions/extension_renderer_state.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/extensions/extension_web_ui.h"
@@ -2140,7 +2141,6 @@ bool ChromeContentBrowserClient::CanCreateWindow(
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
- bool is_guest,
int opener_id,
bool* no_javascript_access) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -2174,6 +2174,12 @@ bool ChromeContentBrowserClient::CanCreateWindow(
return true;
}
+ ExtensionRendererState* renderer_state =
+ ExtensionRendererState::GetInstance();
+ ExtensionRendererState::WebViewInfo webview_info;
+ bool is_guest = renderer_state->GetWebViewInfo(render_process_id,
+ opener_id,
+ &webview_info);
if (is_guest)
return true;
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index f7d7dba..57ca5ab 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -223,7 +223,6 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
- bool is_guest,
int opener_id,
bool* no_javascript_access) OVERRIDE;
virtual std::string GetWorkerProcessTitle(
diff --git a/chrome/browser/devtools/devtools_targets_ui.cc b/chrome/browser/devtools/devtools_targets_ui.cc
index 868d8da..321d962 100644
--- a/chrome/browser/devtools/devtools_targets_ui.cc
+++ b/chrome/browser/devtools/devtools_targets_ui.cc
@@ -163,7 +163,9 @@ void RenderViewHostTargetsUIHandler::UpdateTargets() {
// Revisit this when multiple OOP frames are supported.
RenderFrameHost* rfh = rvh->GetMainFrame();
rfh_to_descriptor[rfh] = descriptor;
- if (rvh->GetProcess()->IsGuest() || rfh->IsCrossProcessSubframe()) {
+ content::WebContents* web_contents =
+ content::WebContents::FromRenderViewHost(rvh);
+ if (GuestViewBase::IsGuest(web_contents) || rfh->IsCrossProcessSubframe()) {
nested_frames.push_back(rfh);
} else {
list_value->Append(descriptor);
diff --git a/chrome/browser/guest_view/guest_view_base.cc b/chrome/browser/guest_view/guest_view_base.cc
index 274270f..625904e 100644
--- a/chrome/browser/guest_view/guest_view_base.cc
+++ b/chrome/browser/guest_view/guest_view_base.cc
@@ -101,6 +101,11 @@ GuestViewBase* GuestViewBase::From(int embedder_process_id,
}
// static
+bool GuestViewBase::IsGuest(WebContents* web_contents) {
+ return !!GuestViewBase::FromWebContents(web_contents);
+}
+
+// static
bool GuestViewBase::GetGuestPartitionConfigForSite(
const GURL& site,
std::string* partition_domain,
diff --git a/chrome/browser/guest_view/guest_view_base.h b/chrome/browser/guest_view/guest_view_base.h
index 46b89c2..059a786 100644
--- a/chrome/browser/guest_view/guest_view_base.h
+++ b/chrome/browser/guest_view/guest_view_base.h
@@ -52,6 +52,8 @@ class GuestViewBase : public content::BrowserPluginGuestDelegate {
static GuestViewBase* From(int embedder_process_id, int instance_id);
+ static bool IsGuest(content::WebContents* web_contents);
+
// For GuestViewBases, we create special guest processes, which host the
// tag content separately from the main application that embeds the tag.
// A GuestViewBase can specify both the partition name and whether the storage
diff --git a/chrome/browser/prerender/prerender_link_manager.cc b/chrome/browser/prerender/prerender_link_manager.cc
index 1f4d862..d24ccc5 100644
--- a/chrome/browser/prerender/prerender_link_manager.cc
+++ b/chrome/browser/prerender/prerender_link_manager.cc
@@ -13,6 +13,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
+#include "chrome/browser/guest_view/guest_view_base.h"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_handle.h"
#include "chrome/browser/prerender/prerender_manager.h"
@@ -165,11 +166,13 @@ void PrerenderLinkManager::OnAddPrerender(int launcher_child_id,
DCHECK_EQ(static_cast<LinkPrerender*>(NULL),
FindByLauncherChildIdAndPrerenderId(launcher_child_id,
prerender_id));
- content::RenderProcessHost* rph =
- content::RenderProcessHost::FromID(launcher_child_id);
+ content::RenderViewHost* rvh =
+ content::RenderViewHost::FromID(launcher_child_id, render_view_route_id);
+ content::WebContents* web_contents =
+ rvh ? content::WebContents::FromRenderViewHost(rvh) : NULL;
// Guests inside <webview> do not support cross-process navigation and so we
// do not allow guests to prerender content.
- if (rph && rph->IsGuest())
+ if (GuestViewBase::IsGuest(web_contents))
return;
// Check if the launcher is itself an unswapped prerender.
diff --git a/chrome/browser/task_manager/extension_information.cc b/chrome/browser/task_manager/extension_information.cc
index d95531e..b657adf 100644
--- a/chrome/browser/task_manager/extension_information.cc
+++ b/chrome/browser/task_manager/extension_information.cc
@@ -7,6 +7,7 @@
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/guest_view/guest_view_base.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/task_manager/renderer_resource.h"
@@ -147,7 +148,7 @@ void ExtensionInformation::GetAll(const NewWebContentsCallback& callback) {
bool ExtensionInformation::CheckOwnership(WebContents* web_contents) {
// Don't add WebContents that belong to a guest (those are handled by
// GuestInformation). Otherwise they will be added twice.
- if (web_contents->GetRenderProcessHost()->IsGuest())
+ if (GuestViewBase::IsGuest(web_contents))
return false;
// Extension WebContents tracked by this class will always host extension
diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc
index 5659342..026f3b5 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.cc
+++ b/content/browser/browser_plugin/browser_plugin_guest.cc
@@ -331,6 +331,18 @@ BrowserPluginGuest* BrowserPluginGuest::Create(
return guest;
}
+// static
+bool BrowserPluginGuest::IsGuest(WebContentsImpl* web_contents) {
+ return web_contents && web_contents->GetBrowserPluginGuest();
+}
+
+// static
+bool BrowserPluginGuest::IsGuest(RenderViewHostImpl* render_view_host) {
+ return render_view_host && IsGuest(
+ static_cast<WebContentsImpl*>(WebContents::FromRenderViewHost(
+ render_view_host)));
+}
+
RenderWidgetHostView* BrowserPluginGuest::GetEmbedderRenderWidgetHostView() {
if (!attached())
return NULL;
diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h
index 3f595e4..032e605 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.h
+++ b/content/browser/browser_plugin/browser_plugin_guest.h
@@ -60,6 +60,7 @@ namespace content {
class BrowserPluginGuestManager;
class BrowserPluginHostFactory;
+class RenderViewHostImpl;
class RenderWidgetHostView;
class SiteInstance;
class WebCursor;
@@ -96,6 +97,12 @@ class CONTENT_EXPORT BrowserPluginGuest
scoped_ptr<base::DictionaryValue> extra_params,
BrowserPluginGuest* opener);
+ // Returns whether the given WebContents is a BrowserPlugin guest.
+ static bool IsGuest(WebContentsImpl* web_contents);
+
+ // Returns whether the given RenderviewHost is a BrowserPlugin guest.
+ static bool IsGuest(RenderViewHostImpl* render_view_host);
+
// Returns a WeakPtr to this BrowserPluginGuest.
base::WeakPtr<BrowserPluginGuest> AsWeakPtr();
diff --git a/content/browser/browser_plugin/browser_plugin_message_filter.cc b/content/browser/browser_plugin/browser_plugin_message_filter.cc
index ace1e82..e82fb7a 100644
--- a/content/browser/browser_plugin/browser_plugin_message_filter.cc
+++ b/content/browser/browser_plugin/browser_plugin_message_filter.cc
@@ -19,11 +19,9 @@
namespace content {
-BrowserPluginMessageFilter::BrowserPluginMessageFilter(int render_process_id,
- bool is_guest)
+BrowserPluginMessageFilter::BrowserPluginMessageFilter(int render_process_id)
: BrowserMessageFilter(BrowserPluginMsgStart),
- render_process_id_(render_process_id),
- is_guest_(is_guest) {
+ render_process_id_(render_process_id) {
}
BrowserPluginMessageFilter::~BrowserPluginMessageFilter() {
diff --git a/content/browser/browser_plugin/browser_plugin_message_filter.h b/content/browser/browser_plugin/browser_plugin_message_filter.h
index 81e94b2..136c6cc 100644
--- a/content/browser/browser_plugin/browser_plugin_message_filter.h
+++ b/content/browser/browser_plugin/browser_plugin_message_filter.h
@@ -17,7 +17,7 @@ class BrowserContext;
// on the IPC thread before other message filters handle them.
class BrowserPluginMessageFilter : public BrowserMessageFilter {
public:
- BrowserPluginMessageFilter(int render_process_id, bool is_guest);
+ BrowserPluginMessageFilter(int render_process_id);
// BrowserMessageFilter implementation.
virtual void OverrideThreadForMessage(
@@ -37,7 +37,6 @@ class BrowserPluginMessageFilter : public BrowserMessageFilter {
void OnSwapBuffersACK(const FrameHostMsg_BuffersSwappedACK_Params& params);
int render_process_id_;
- int is_guest_;
DISALLOW_COPY_AND_ASSIGN(BrowserPluginMessageFilter);
};
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index 03d8b40..6fa1ccf 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -325,7 +325,6 @@ class RenderMessageFilter::OpenChannelToNpapiPluginCallback
RenderMessageFilter::RenderMessageFilter(
int render_process_id,
- bool is_guest,
PluginServiceImpl* plugin_service,
BrowserContext* browser_context,
net::URLRequestContextGetter* request_context,
@@ -344,7 +343,6 @@ RenderMessageFilter::RenderMessageFilter(
incognito_(browser_context->IsOffTheRecord()),
dom_storage_context_(dom_storage_context),
render_process_id_(render_process_id),
- is_guest_(is_guest),
cpu_usage_(0),
audio_manager_(audio_manager),
media_internals_(media_internals) {
@@ -527,7 +525,6 @@ void RenderMessageFilter::OnCreateWindow(
params.opener_suppressed,
resource_context_,
render_process_id_,
- is_guest_,
params.opener_id,
&no_javascript_access);
diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h
index e1f90a8..038b30a 100644
--- a/content/browser/renderer_host/render_message_filter.h
+++ b/content/browser/renderer_host/render_message_filter.h
@@ -87,7 +87,6 @@ class RenderMessageFilter : public BrowserMessageFilter {
public:
// Create the filter.
RenderMessageFilter(int render_process_id,
- bool is_guest,
PluginServiceImpl * plugin_service,
BrowserContext* browser_context,
net::URLRequestContextGetter* request_context,
@@ -307,8 +306,6 @@ class RenderMessageFilter : public BrowserMessageFilter {
int render_process_id_;
- bool is_guest_;
-
std::set<OpenChannelToNpapiPluginCallback*> plugin_host_clients_;
// Records the last time we sampled CPU usage of the renderer process.
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index a38027c..db99799 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -630,13 +630,12 @@ void RenderProcessHostImpl::CreateMessageFilters() {
// Add BrowserPluginMessageFilter to ensure it gets the first stab at messages
// from guests.
scoped_refptr<BrowserPluginMessageFilter> bp_message_filter(
- new BrowserPluginMessageFilter(GetID(), IsGuest()));
+ new BrowserPluginMessageFilter(GetID()));
AddFilter(bp_message_filter.get());
scoped_refptr<RenderMessageFilter> render_message_filter(
new RenderMessageFilter(
GetID(),
- IsGuest(),
#if defined(ENABLE_PLUGINS)
PluginServiceImpl::GetInstance(),
#else
@@ -724,7 +723,7 @@ void RenderProcessHostImpl::CreateMessageFilters() {
AddFilter(new PepperRendererConnection(GetID()));
#endif
AddFilter(new SpeechRecognitionDispatcherHost(
- IsGuest(), GetID(), storage_partition_impl_->GetURLRequestContext()));
+ GetID(), storage_partition_impl_->GetURLRequestContext()));
AddFilter(new FileAPIMessageFilter(
GetID(),
storage_partition_impl_->GetURLRequestContext(),
diff --git a/content/browser/renderer_host/render_view_host_delegate.h b/content/browser/renderer_host/render_view_host_delegate.h
index dbb2e74..51fc3dc 100644
--- a/content/browser/renderer_host/render_view_host_delegate.h
+++ b/content/browser/renderer_host/render_view_host_delegate.h
@@ -20,7 +20,6 @@
class GURL;
class SkBitmap;
-class WebKeyboardEvent;
struct ViewHostMsg_CreateWindow_Params;
struct FrameHostMsg_DidCommitProvisionalLoad_Params;
struct ViewMsg_PostMessage_Params;
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index c20ad5d..5afb35d 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -26,6 +26,7 @@
#include "cc/output/compositor_frame_ack.h"
#include "content/browser/accessibility/accessibility_mode_helper.h"
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
+#include "content/browser/browser_plugin/browser_plugin_guest.h"
#include "content/browser/gpu/compositor_util.h"
#include "content/browser/gpu/gpu_process_host.h"
#include "content/browser/gpu/gpu_process_host_ui_shim.h"
@@ -238,7 +239,10 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
SetOverscrollControllerEnabled(overscroll_enabled);
#endif
- if (GetProcess()->IsGuest() || !CommandLine::ForCurrentProcess()->HasSwitch(
+ RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>(
+ IsRenderView() ? RenderViewHost::From(this) : NULL);
+ if (BrowserPluginGuest::IsGuest(rvh) ||
+ !CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableHangMonitor)) {
hang_monitor_timeout_.reset(new TimeoutMonitor(
base::Bind(&RenderWidgetHostImpl::RendererIsUnresponsive,
diff --git a/content/browser/speech/speech_recognition_dispatcher_host.cc b/content/browser/speech/speech_recognition_dispatcher_host.cc
index 7f62ae8..0197bcf 100644
--- a/content/browser/speech/speech_recognition_dispatcher_host.cc
+++ b/content/browser/speech/speech_recognition_dispatcher_host.cc
@@ -21,11 +21,9 @@
namespace content {
SpeechRecognitionDispatcherHost::SpeechRecognitionDispatcherHost(
- bool is_guest,
int render_process_id,
net::URLRequestContextGetter* context_getter)
: BrowserMessageFilter(SpeechRecognitionMsgStart),
- is_guest_(is_guest),
render_process_id_(render_process_id),
context_getter_(context_getter),
weak_factory_(this) {
@@ -86,15 +84,14 @@ void SpeechRecognitionDispatcherHost::OnStartRequest(
int embedder_render_process_id = 0;
int embedder_render_view_id = MSG_ROUTING_NONE;
- if (is_guest_) {
+ RenderViewHostImpl* render_view_host =
+ RenderViewHostImpl::FromID(render_process_id_, params.render_view_id);
+ WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
+ WebContents::FromRenderViewHost(render_view_host));
+ BrowserPluginGuest* guest = web_contents->GetBrowserPluginGuest();
+ if (guest) {
// If the speech API request was from a guest, save the context of the
// embedder since we will use it to decide permission.
- RenderViewHostImpl* render_view_host =
- RenderViewHostImpl::FromID(render_process_id_, params.render_view_id);
- WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
- WebContents::FromRenderViewHost(render_view_host));
- BrowserPluginGuest* guest = web_contents->GetBrowserPluginGuest();
-
embedder_render_process_id =
guest->embedder_web_contents()->GetRenderProcessHost()->GetID();
DCHECK_NE(embedder_render_process_id, 0);
diff --git a/content/browser/speech/speech_recognition_dispatcher_host.h b/content/browser/speech/speech_recognition_dispatcher_host.h
index 0a76b67..f8853f1 100644
--- a/content/browser/speech/speech_recognition_dispatcher_host.h
+++ b/content/browser/speech/speech_recognition_dispatcher_host.h
@@ -28,7 +28,6 @@ class CONTENT_EXPORT SpeechRecognitionDispatcherHost
public SpeechRecognitionEventListener {
public:
SpeechRecognitionDispatcherHost(
- bool is_guest,
int render_process_id,
net::URLRequestContextGetter* context_getter);
@@ -73,7 +72,6 @@ class CONTENT_EXPORT SpeechRecognitionDispatcherHost
void OnAbortRequest(int render_view_id, int request_id);
void OnStopCaptureRequest(int render_view_id, int request_id);
- bool is_guest_;
int render_process_id_;
scoped_refptr<net::URLRequestContextGetter> context_getter_;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 6fea12a..a2bdcb1 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1322,7 +1322,7 @@ void WebContentsImpl::CreateNewWindow(
// script-related windows), by passing in the current SiteInstance. However,
// if the opener is being suppressed (in a non-guest), we create a new
// SiteInstance in its own BrowsingInstance.
- bool is_guest = GetRenderProcessHost()->IsGuest();
+ bool is_guest = BrowserPluginGuest::IsGuest(this);
// If the opener is to be suppressed, the new window can be in any process.
// Since routing ids are process specific, we must not have one passed in
@@ -1591,7 +1591,7 @@ WebContentsImpl* WebContentsImpl::GetCreatedWindow(int route_id) {
RemoveDestructionObserver(new_contents);
// Don't initialize the guest WebContents immediately.
- if (new_contents->GetRenderProcessHost()->IsGuest())
+ if (BrowserPluginGuest::IsGuest(new_contents))
return new_contents;
if (!new_contents->GetRenderProcessHost()->HasConnection() ||
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
index 5ed4f6c..4b740e4 100644
--- a/content/browser/web_contents/web_contents_view_aura.cc
+++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -9,6 +9,7 @@
#include "base/file_util.h"
#include "base/metrics/histogram.h"
#include "base/strings/utf_string_conversions.h"
+#include "content/browser/browser_plugin/browser_plugin_guest.h"
#include "content/browser/download/drag_download_util.h"
#include "content/browser/frame_host/interstitial_page_impl.h"
#include "content/browser/frame_host/navigation_entry_impl.h"
@@ -113,9 +114,11 @@ RenderWidgetHostViewAura* ToRenderWidgetHostViewAura(
RenderWidgetHostView* view) {
if (!view || RenderViewHostFactory::has_factory())
return NULL; // Can't cast to RenderWidgetHostViewAura in unit tests.
- RenderProcessHostImpl* process = static_cast<RenderProcessHostImpl*>(
- view->GetRenderWidgetHost()->GetProcess());
- if (process->IsGuest())
+
+ RenderViewHost* rvh = RenderViewHost::From(view->GetRenderWidgetHost());
+ WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
+ rvh ? WebContents::FromRenderViewHost(rvh) : NULL);
+ if (BrowserPluginGuest::IsGuest(web_contents))
return NULL;
return static_cast<RenderWidgetHostViewAura*>(view);
}
@@ -1080,7 +1083,7 @@ void WebContentsViewAura::CreateView(
// The use cases for WindowObserver do not apply to Browser Plugins:
// 1) guests do not support NPAPI plugins.
// 2) guests' window bounds are supposed to come from its embedder.
- if (!web_contents_->GetRenderProcessHost()->IsGuest())
+ if (!BrowserPluginGuest::IsGuest(web_contents_))
window_observer_.reset(new WindowObserver(this));
// delegate_->GetDragDestDelegate() creates a new delegate on every call.
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index 4c9b4bf..b48cfe5 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -224,7 +224,6 @@ bool ContentBrowserClient::CanCreateWindow(
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
- bool is_guest,
int opener_id,
bool* no_javascript_access) {
*no_javascript_access = false;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 806f961..54efa8b 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -485,7 +485,6 @@ class CONTENT_EXPORT ContentBrowserClient {
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
- bool is_guest,
int opener_id,
bool* no_javascript_access);