diff options
author | mpcomplete@google.com <mpcomplete@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-29 22:24:31 +0000 |
---|---|---|
committer | mpcomplete@google.com <mpcomplete@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-29 22:24:31 +0000 |
commit | c64631651a4267994dbdd336243e06b64e4e7a5f (patch) | |
tree | 23700eae496a6cf3cda0beea3742f12656c8cd4b /chrome/browser/renderer_host | |
parent | 45671618a6690a8501f01905a4ed6d19cfcdc0b1 (diff) | |
download | chromium_src-c64631651a4267994dbdd336243e06b64e4e7a5f.zip chromium_src-c64631651a4267994dbdd336243e06b64e4e7a5f.tar.gz chromium_src-c64631651a4267994dbdd336243e06b64e4e7a5f.tar.bz2 |
Refactor ExtensionView to support a UI-less extension instance.
- Introduce ExtensionHost, which is the guy that talks to the RenderViewHost.
- ExtensionView holds an ExtensionHost, and also renders its contents in an
HWND.
- Added code to load a page optionally specified in the manifest as a
background process whenever it exists.
Review URL: http://codereview.chromium.org/92043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14902 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 4 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host.cc | 14 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host.h | 4 |
3 files changed, 14 insertions, 8 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index d778250..3646358 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -160,14 +160,12 @@ bool RenderViewHost::CreateRenderView() { "Couldn't duplicate the modal dialog handle for the renderer."; #endif - DCHECK(view()); - ModalDialogEvent modal_dialog_event; #if defined(OS_WIN) modal_dialog_event.event = modal_dialog_event_handle; #endif - Send(new ViewMsg_New(gfx::IdFromNativeView(view()->GetPluginNativeView()), + Send(new ViewMsg_New(GetPluginNativeViewId(), modal_dialog_event, delegate_->GetWebkitPrefs(), routing_id())); diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc index 9e07de7..7a2122a 100644 --- a/chrome/browser/renderer_host/render_widget_host.cc +++ b/chrome/browser/renderer_host/render_widget_host.cc @@ -4,7 +4,6 @@ #include "chrome/browser/renderer_host/render_widget_host.h" -#include "base/gfx/native_widget_types.h" #include "base/histogram.h" #include "base/message_loop.h" #include "base/keyboard_codes.h" @@ -79,15 +78,19 @@ RenderWidgetHost::~RenderWidgetHost() { process_->Release(routing_id_); } +gfx::NativeViewId RenderWidgetHost::GetPluginNativeViewId() { + if (view_) + return gfx::IdFromNativeView(view_->GetPluginNativeView()); + return NULL; +} + void RenderWidgetHost::Init() { DCHECK(process_->channel()); renderer_initialized_ = true; // Send the ack along with the information on placement. - gfx::NativeView plugin_view = view_->GetPluginNativeView(); - Send(new ViewMsg_CreatingNew_ACK(routing_id_, - gfx::IdFromNativeView(plugin_view))); + Send(new ViewMsg_CreatingNew_ACK(routing_id_, GetPluginNativeViewId())); WasResized(); } @@ -459,7 +462,8 @@ void RenderWidgetHost::OnMsgClose() { void RenderWidgetHost::OnMsgRequestMove(const gfx::Rect& pos) { // Note that we ignore the position. - view_->SetSize(pos.size()); + if (view_) + view_->SetSize(pos.size()); } void RenderWidgetHost::OnMsgPaintRect( diff --git a/chrome/browser/renderer_host/render_widget_host.h b/chrome/browser/renderer_host/render_widget_host.h index 0e93a84..861152a 100644 --- a/chrome/browser/renderer_host/render_widget_host.h +++ b/chrome/browser/renderer_host/render_widget_host.h @@ -8,6 +8,7 @@ #include <queue> #include <vector> +#include "base/gfx/native_widget_types.h" #include "base/gfx/size.h" #include "base/scoped_ptr.h" #include "base/timer.h" @@ -267,6 +268,9 @@ class RenderWidgetHost : public IPC::Channel::Listener { // consistent if a new renderer is created. void RendererExited(); + // Retrieves the native view used to contain plugins. + gfx::NativeViewId GetPluginNativeViewId(); + // Called when we an InputEvent was not processed by the renderer. This is // overridden by RenderView to send upwards to its delegate. virtual void UnhandledKeyboardEvent(const NativeWebKeyboardEvent& event) {} |