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

Unified Diff: content/browser/browser_plugin/browser_plugin_host.cc

Issue 10412056: Browser Plugin: Remove MapInstance from BrowserPluginHost + More cross-process navigation work (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Additional small fix to visitedlink (forgot to change one CreateRenderView call) Created 8 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/browser_plugin/browser_plugin_host.cc
diff --git a/content/browser/browser_plugin/browser_plugin_host.cc b/content/browser/browser_plugin/browser_plugin_host.cc
index 949d514816945dd87e75939399d297dce79e3f3d..49b044c0b660579b456425bac27662bd37c29146 100644
--- a/content/browser/browser_plugin/browser_plugin_host.cc
+++ b/content/browser/browser_plugin/browser_plugin_host.cc
@@ -23,8 +23,7 @@ BrowserPluginHost::BrowserPluginHost(
WebContentsImpl* web_contents)
: WebContentsObserver(web_contents),
embedder_render_process_host_(NULL),
- instance_id_(0),
- pending_render_view_host_(NULL) {
+ instance_id_(0) {
// Listen to visibility changes so that an embedder hides its guests
// as well.
registrar_.Add(this,
@@ -56,19 +55,11 @@ void BrowserPluginHost::RegisterContainerInstance(
guests_by_container_id_[container_id] = observer;
}
-void BrowserPluginHost::OnPendingNavigation(RenderViewHost* dest_rvh) {
- if (web_contents()->GetRenderViewHost() != dest_rvh) {
- pending_render_view_host_ = dest_rvh;
- }
-}
-
bool BrowserPluginHost::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(BrowserPluginHost, message)
IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_NavigateFromGuest,
OnNavigateFromGuest)
- IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_MapInstance,
- OnMapInstance)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -78,8 +69,7 @@ void BrowserPluginHost::NavigateGuestFromEmbedder(
RenderViewHost* render_view_host,
int container_instance_id,
long long frame_id,
- const std::string& src,
- const gfx::Size& size) {
+ const std::string& src) {
BrowserPluginHost* guest_observer =
GetGuestByContainerID(container_instance_id);
WebContentsImpl* guest_web_contents =
@@ -100,11 +90,9 @@ void BrowserPluginHost::NavigateGuestFromEmbedder(
guest_observer->set_embedder_render_process_host(
render_view_host->GetProcess());
guest_observer->set_instance_id(container_instance_id);
- guest_observer->set_initial_size(size);
RegisterContainerInstance(container_instance_id, guest_observer);
AddGuest(guest_web_contents, frame_id);
}
-
GURL url(src);
guest_observer->web_contents()->SetDelegate(guest_observer);
guest_observer->web_contents()->GetController().LoadURL(
@@ -126,32 +114,6 @@ void BrowserPluginHost::OnNavigateFromGuest(
std::string());
}
-// TODO(fsamuel): This handler is all kinds of bad and could be racy.
-// Between the time we set the pending_render_view_host and use it here,
-// the pending_render_view_host may no longer be valid and this message
-// may not go to the right place.
-// See https://code.google.com/p/chromium/issues/detail?id=128976.
-// The correct solution is probably to send
-// "BrowserPluginMsg_CompleteNavigation" over the pepper channel to the guest
-// and then have the guest send the browser "BrowserPluginHostMsg_ResizeGuest"
-// to resize appropriately.
-void BrowserPluginHost::OnMapInstance(int container_instance_id,
- PP_Instance instance) {
- BrowserPluginHost* guest_observer =
- GetGuestByContainerID(container_instance_id);
- WebContentsImpl* guest_web_contents =
- static_cast<WebContentsImpl*>(guest_observer->web_contents());
- RenderViewHost* rvh = guest_observer->pending_render_view_host() ?
- guest_observer->pending_render_view_host() :
- guest_web_contents->GetRenderViewHost();
-
- guest_web_contents->GetView()->SizeContents(guest_observer->initial_size());
-
- rvh->Send(new BrowserPluginMsg_CompleteNavigation(
- rvh->GetRoutingID(),
- instance));
-}
-
void BrowserPluginHost::ConnectEmbedderToChannel(
RenderViewHost* render_view_host,
const IPC::ChannelHandle& channel_handle) {
« no previous file with comments | « content/browser/browser_plugin/browser_plugin_host.h ('k') | content/browser/browser_plugin/browser_plugin_host_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698