Index: content/browser/renderer_host/render_widget_host_view_aura.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc |
index 849dd8b2d5ae84c10750804a5e52c9cb5da654df..7608c7b652a396f5c3024a5c581397edf1b714de 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -141,97 +141,6 @@ const int kMouseLockBorderPercentage = 15; |
const int kResizeLockTimeoutMs = 67; |
#if defined(OS_WIN) |
-// Used to associate a plugin HWND with its RenderWidgetHostViewAura instance. |
-const wchar_t kWidgetOwnerProperty[] = L"RenderWidgetHostViewAuraOwner"; |
- |
-BOOL CALLBACK WindowDestroyingCallback(HWND window, LPARAM param) { |
- RenderWidgetHostViewAura* widget = |
- reinterpret_cast<RenderWidgetHostViewAura*>(param); |
- if (GetProp(window, kWidgetOwnerProperty) == widget) { |
- // Properties set on HWNDs must be removed to avoid leaks. |
- RemoveProp(window, kWidgetOwnerProperty); |
- RenderWidgetHostViewBase::DetachPluginWindowsCallback(window); |
- } |
- return TRUE; |
-} |
- |
-BOOL CALLBACK HideWindowsCallback(HWND window, LPARAM param) { |
- RenderWidgetHostViewAura* widget = |
- reinterpret_cast<RenderWidgetHostViewAura*>(param); |
- if (GetProp(window, kWidgetOwnerProperty) == widget) |
- SetParent(window, ui::GetHiddenWindow()); |
- return TRUE; |
-} |
- |
-BOOL CALLBACK ShowWindowsCallback(HWND window, LPARAM param) { |
- RenderWidgetHostViewAura* widget = |
- reinterpret_cast<RenderWidgetHostViewAura*>(param); |
- |
- if (GetProp(window, kWidgetOwnerProperty) == widget && |
- widget->GetNativeView()->GetHost()) { |
- HWND parent = widget->GetNativeView()->GetHost()->GetAcceleratedWidget(); |
- SetParent(window, parent); |
- } |
- return TRUE; |
-} |
- |
-struct CutoutRectsParams { |
- RenderWidgetHostViewAura* widget; |
- std::vector<gfx::Rect> cutout_rects; |
- std::map<HWND, WebPluginGeometry>* geometry; |
-}; |
- |
-// Used to update the region for the windowed plugin to draw in. We start with |
-// the clip rect from the renderer, then remove the cutout rects from the |
-// renderer, and then remove the transient windows from the root window and the |
-// constrained windows from the parent window. |
-BOOL CALLBACK SetCutoutRectsCallback(HWND window, LPARAM param) { |
- CutoutRectsParams* params = reinterpret_cast<CutoutRectsParams*>(param); |
- |
- if (GetProp(window, kWidgetOwnerProperty) == params->widget) { |
- // First calculate the offset of this plugin from the root window, since |
- // the cutouts are relative to the root window. |
- HWND parent = |
- params->widget->GetNativeView()->GetHost()->GetAcceleratedWidget(); |
- POINT offset; |
- offset.x = offset.y = 0; |
- MapWindowPoints(window, parent, &offset, 1); |
- |
- // Now get the cached clip rect and cutouts for this plugin window that came |
- // from the renderer. |
- std::map<HWND, WebPluginGeometry>::iterator i = params->geometry->begin(); |
- while (i != params->geometry->end() && |
- i->second.window != window && |
- GetParent(i->second.window) != window) { |
- ++i; |
- } |
- |
- if (i == params->geometry->end()) { |
- NOTREACHED(); |
- return TRUE; |
- } |
- |
- HRGN hrgn = CreateRectRgn(i->second.clip_rect.x(), |
- i->second.clip_rect.y(), |
- i->second.clip_rect.right(), |
- i->second.clip_rect.bottom()); |
- // We start with the cutout rects that came from the renderer, then add the |
- // ones that came from transient and constrained windows. |
- std::vector<gfx::Rect> cutout_rects = i->second.cutout_rects; |
- for (size_t i = 0; i < params->cutout_rects.size(); ++i) { |
- gfx::Rect offset_cutout = params->cutout_rects[i]; |
- offset_cutout.Offset(-offset.x, -offset.y); |
- cutout_rects.push_back(offset_cutout); |
- } |
- gfx::SubtractRectanglesFromRegion(hrgn, cutout_rects); |
- // If we don't have any cutout rects then no point in messing with the |
- // window region. |
- if (cutout_rects.size()) |
- SetWindowRgn(window, hrgn, TRUE); |
- } |
- return TRUE; |
-} |
- |
// A callback function for EnumThreadWindows to enumerate and dismiss |
// any owned popup windows. |
BOOL CALLBACK DismissOwnedPopups(HWND window, LPARAM arg) { |
@@ -659,12 +568,8 @@ void RenderWidgetHostViewAura::Show() { |
GetNativeView()->GetHost()->GetAcceleratedWidget()); |
legacy_render_widget_host_HWND_->SetBounds( |
window_->GetBoundsInRootWindow()); |
- } |
- LPARAM lparam = reinterpret_cast<LPARAM>(this); |
- EnumChildWindows(ui::GetHiddenWindow(), ShowWindowsCallback, lparam); |
- |
- if (legacy_render_widget_host_HWND_) |
legacy_render_widget_host_HWND_->Show(); |
+ } |
#endif |
} |
@@ -677,12 +582,8 @@ void RenderWidgetHostViewAura::Hide() { |
delegated_frame_host_->WasHidden(); |
#if defined(OS_WIN) |
- constrained_rects_.clear(); |
aura::WindowTreeHost* host = window_->GetHost(); |
if (host) { |
- HWND parent = host->GetAcceleratedWidget(); |
- LPARAM lparam = reinterpret_cast<LPARAM>(this); |
- EnumChildWindows(parent, HideWindowsCallback, lparam); |
// We reparent the legacy Chrome_RenderWidgetHostHWND window to the global |
// hidden window on the same lines as Windowed plugin windows. |
if (legacy_render_widget_host_HWND_) |
@@ -901,58 +802,6 @@ void RenderWidgetHostViewAura::ParentHierarchyChanged() { |
HandleParentBoundsChanged(); |
} |
-void RenderWidgetHostViewAura::MovePluginWindows( |
- const std::vector<WebPluginGeometry>& plugin_window_moves) { |
-#if defined(OS_WIN) |
- // We need to clip the rectangle to the tab's viewport, otherwise we will draw |
- // over the browser UI. |
- if (!window_->GetRootWindow()) { |
- DCHECK(plugin_window_moves.empty()); |
- return; |
- } |
- HWND parent = window_->GetHost()->GetAcceleratedWidget(); |
- gfx::Rect view_bounds = window_->GetBoundsInRootWindow(); |
- std::vector<WebPluginGeometry> moves = plugin_window_moves; |
- |
- gfx::Rect view_port(view_bounds.size()); |
- |
- for (size_t i = 0; i < moves.size(); ++i) { |
- gfx::Rect clip(moves[i].clip_rect); |
- gfx::Vector2d view_port_offset( |
- moves[i].window_rect.OffsetFromOrigin()); |
- clip.Offset(view_port_offset); |
- clip.Intersect(view_port); |
- clip.Offset(-view_port_offset); |
- moves[i].clip_rect = clip; |
- |
- moves[i].window_rect.Offset(view_bounds.OffsetFromOrigin()); |
- |
- plugin_window_moves_[moves[i].window] = moves[i]; |
- |
- // constrained_rects_ are relative to the root window. We want to convert |
- // them to be relative to the plugin window. |
- for (size_t j = 0; j < constrained_rects_.size(); ++j) { |
- gfx::Rect offset_cutout = constrained_rects_[j]; |
- offset_cutout -= moves[i].window_rect.OffsetFromOrigin(); |
- moves[i].cutout_rects.push_back(offset_cutout); |
- } |
- } |
- |
- MovePluginWindowsHelper(parent, moves); |
- |
- // Make sure each plugin window (or its wrapper if it exists) has a pointer to |
- // |this|. |
- for (size_t i = 0; i < moves.size(); ++i) { |
- HWND window = moves[i].window; |
- if (GetParent(window) != parent) { |
- window = GetParent(window); |
- } |
- if (!GetProp(window, kWidgetOwnerProperty)) |
- SetProp(window, kWidgetOwnerProperty, this); |
- } |
-#endif // defined(OS_WIN) |
-} |
- |
void RenderWidgetHostViewAura::Focus() { |
// Make sure we have a FocusClient before attempting to Focus(). In some |
// situations we may not yet be in a valid Window hierarchy (such as reloading |
@@ -1177,27 +1026,6 @@ bool RenderWidgetHostViewAura::UsesNativeWindowFrame() const { |
return (legacy_render_widget_host_HWND_ != NULL); |
} |
-void RenderWidgetHostViewAura::UpdateConstrainedWindowRects( |
- const std::vector<gfx::Rect>& rects) { |
- // Check this before setting constrained_rects_, so that next time they're set |
- // and we have a root window we don't early return. |
- if (!window_->GetHost()) |
- return; |
- |
- if (rects == constrained_rects_) |
- return; |
- |
- constrained_rects_ = rects; |
- |
- HWND parent = window_->GetHost()->GetAcceleratedWidget(); |
- CutoutRectsParams params; |
- params.widget = this; |
- params.cutout_rects = constrained_rects_; |
- params.geometry = &plugin_window_moves_; |
- LPARAM lparam = reinterpret_cast<LPARAM>(¶ms); |
- EnumChildWindows(parent, SetCutoutRectsCallback, lparam); |
-} |
- |
void RenderWidgetHostViewAura::UpdateMouseLockRegion() { |
RECT window_rect = |
gfx::win::DIPToScreenRect(window_->GetBoundsInScreen()).ToRECT(); |
@@ -1951,17 +1779,6 @@ void RenderWidgetHostViewAura::OnDeviceScaleFactorChanged( |
void RenderWidgetHostViewAura::OnWindowDestroying(aura::Window* window) { |
#if defined(OS_WIN) |
- HWND parent = NULL; |
- // If the tab was hidden and it's closed, host_->is_hidden would have been |
- // reset to false in RenderWidgetHostImpl::RendererExited. |
- if (!window_->GetRootWindow() || host_->is_hidden()) { |
- parent = ui::GetHiddenWindow(); |
- } else { |
- parent = window_->GetHost()->GetAcceleratedWidget(); |
- } |
- LPARAM lparam = reinterpret_cast<LPARAM>(this); |
- EnumChildWindows(parent, WindowDestroyingCallback, lparam); |
- |
// The LegacyRenderWidgetHostHWND instance is destroyed when its window is |
// destroyed. Normally we control when that happens via the Destroy call |
// in the dtor. However there may be cases where the window is destroyed |
@@ -2771,11 +2588,6 @@ void RenderWidgetHostViewAura::InternalSetBounds(const gfx::Rect& rect) { |
// Create the legacy dummy window which corresponds to the bounds of the |
// webcontents. This will be passed as the container window for windowless |
// plugins. |
- // Plugins like Flash assume the container window which is returned via the |
- // NPNVnetscapeWindow property corresponds to the bounds of the webpage. |
- // This is not true in Aura where we have only HWND which is the main Aura |
- // window. If we return this window to plugins like Flash then it causes the |
- // coordinate translations done by these plugins to break. |
// Additonally the legacy dummy window is needed for accessibility and for |
// scrolling to work in legacy drivers for trackpoints/trackpads, etc. |
if (!legacy_window_destroyed_ && GetNativeViewId()) { |