Index: chrome/browser/renderer_host/render_widget_host_view_win.cc |
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc |
index 6945b2e3f10e0d9a3cadc42d80a36dd34d16e3a9..3f9b9b1d19837353e6aa782d58035346fececa23 100644 |
--- a/chrome/browser/renderer_host/render_widget_host_view_win.cc |
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc |
@@ -7,6 +7,7 @@ |
#include "app/l10n_util.h" |
#include "app/l10n_util_win.h" |
#include "app/resource_bundle.h" |
+#include "app/view_prop.h" |
#include "app/win/scoped_prop.h" |
#include "base/command_line.h" |
#include "base/i18n/rtl.h" |
@@ -51,6 +52,7 @@ |
#include "webkit/glue/webaccessibility.h" |
#include "webkit/glue/webcursor.h" |
+using app::ViewProp; |
using base::TimeDelta; |
using base::TimeTicks; |
using WebKit::WebInputEvent; |
@@ -71,7 +73,7 @@ const int kMaxTooltipLength = 1024; |
// listening for MSAA events. |
const int kIdCustom = 1; |
-const wchar_t* kRenderWidgetHostViewKey = L"__RENDER_WIDGET_HOST_VIEW__"; |
+const char* const kRenderWidgetHostViewKey = "__RENDER_WIDGET_HOST_VIEW__"; |
// A callback function for EnumThreadWindows to enumerate and dismiss |
// any owned popop windows |
@@ -308,9 +310,10 @@ void RenderWidgetHostViewWin::CreateWnd(HWND parent) { |
// Add a property indicating that a particular renderer is associated with |
// this window. Used by the GPU process to validate window handles it |
- // receives from renderer processes. |
+ // receives from renderer processes. As this is used by a separate process we |
+ // have to use ScopedProp here instead of ViewProp. |
int renderer_id = render_widget_host_->process()->id(); |
- props_.push_back( |
+ renderer_id_prop_.reset( |
new app::win::ScopedProp(m_hWnd, |
chrome::kChromiumRendererIdProperty, |
reinterpret_cast<HANDLE>(renderer_id))); |
@@ -798,12 +801,11 @@ LRESULT RenderWidgetHostViewWin::OnCreate(CREATESTRUCT* create_struct) { |
props_.push_back(views::SetWindowSupportsRerouteMouseWheel(m_hWnd)); |
// Save away our HWND in the parent window as a property so that the |
// accessibility code can find it. |
- props_.push_back(new app::win::ScopedProp( |
- GetParent(), kViewsNativeHostPropForAccessibility, |
- m_hWnd)); |
- props_.push_back(new app::win::ScopedProp( |
- m_hWnd, kRenderWidgetHostViewKey, |
- static_cast<RenderWidgetHostView*>(this))); |
+ props_.push_back(new ViewProp(GetParent(), |
+ kViewsNativeHostPropForAccessibility, |
+ m_hWnd)); |
+ props_.push_back(new ViewProp(m_hWnd, kRenderWidgetHostViewKey, |
+ static_cast<RenderWidgetHostView*>(this))); |
return 0; |
} |
@@ -834,6 +836,7 @@ void RenderWidgetHostViewWin::OnDestroy() { |
// sequence as part of the usual cleanup when the plugin instance goes away. |
EnumChildWindows(m_hWnd, DetachPluginWindowsCallback, NULL); |
+ renderer_id_prop_.reset(); |
props_.reset(); |
ResetTooltip(); |
@@ -1635,11 +1638,7 @@ void RenderWidgetHostViewWin::ShutdownHost() { |
RenderWidgetHostView* |
RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView( |
gfx::NativeView native_view) { |
- if (::IsWindow(native_view)) { |
- HANDLE raw_render_host_view = ::GetProp(native_view, |
- kRenderWidgetHostViewKey); |
- if (raw_render_host_view) |
- return reinterpret_cast<RenderWidgetHostView*>(raw_render_host_view); |
- } |
- return NULL; |
+ return ::IsWindow(native_view) ? |
+ reinterpret_cast<RenderWidgetHostView*>( |
+ ViewProp::GetValue(native_view, kRenderWidgetHostViewKey)) : NULL; |
} |