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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura.cc

Issue 19761007: Move NPAPI implementation out of webkit/plugins/npapi and into content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix mac Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 HWND parent = 135 HWND parent =
136 widget->GetNativeView()->GetRootWindow()->GetAcceleratedWidget(); 136 widget->GetNativeView()->GetRootWindow()->GetAcceleratedWidget();
137 SetParent(window, parent); 137 SetParent(window, parent);
138 } 138 }
139 return TRUE; 139 return TRUE;
140 } 140 }
141 141
142 struct CutoutRectsParams { 142 struct CutoutRectsParams {
143 RenderWidgetHostViewAura* widget; 143 RenderWidgetHostViewAura* widget;
144 std::vector<gfx::Rect> cutout_rects; 144 std::vector<gfx::Rect> cutout_rects;
145 std::map<HWND, webkit::npapi::WebPluginGeometry>* geometry; 145 std::map<HWND, WebPluginGeometry>* geometry;
146 }; 146 };
147 147
148 // Used to update the region for the windowed plugin to draw in. We start with 148 // Used to update the region for the windowed plugin to draw in. We start with
149 // the clip rect from the renderer, then remove the cutout rects from the 149 // the clip rect from the renderer, then remove the cutout rects from the
150 // renderer, and then remove the transient windows from the root window and the 150 // renderer, and then remove the transient windows from the root window and the
151 // constrained windows from the parent window. 151 // constrained windows from the parent window.
152 BOOL CALLBACK SetCutoutRectsCallback(HWND window, LPARAM param) { 152 BOOL CALLBACK SetCutoutRectsCallback(HWND window, LPARAM param) {
153 CutoutRectsParams* params = reinterpret_cast<CutoutRectsParams*>(param); 153 CutoutRectsParams* params = reinterpret_cast<CutoutRectsParams*>(param);
154 154
155 if (GetProp(window, kWidgetOwnerProperty) == params->widget) { 155 if (GetProp(window, kWidgetOwnerProperty) == params->widget) {
156 // First calculate the offset of this plugin from the root window, since 156 // First calculate the offset of this plugin from the root window, since
157 // the cutouts are relative to the root window. 157 // the cutouts are relative to the root window.
158 HWND parent = params->widget->GetNativeView()->GetRootWindow()-> 158 HWND parent = params->widget->GetNativeView()->GetRootWindow()->
159 GetAcceleratedWidget(); 159 GetAcceleratedWidget();
160 POINT offset; 160 POINT offset;
161 offset.x = offset.y = 0; 161 offset.x = offset.y = 0;
162 MapWindowPoints(window, parent, &offset, 1); 162 MapWindowPoints(window, parent, &offset, 1);
163 163
164 // Now get the cached clip rect and cutouts for this plugin window that came 164 // Now get the cached clip rect and cutouts for this plugin window that came
165 // from the renderer. 165 // from the renderer.
166 std::map<HWND, webkit::npapi::WebPluginGeometry>::iterator i = 166 std::map<HWND, WebPluginGeometry>::iterator i = params->geometry->begin();
167 params->geometry->begin();
168 while (i != params->geometry->end() && 167 while (i != params->geometry->end() &&
169 i->second.window != window && 168 i->second.window != window &&
170 GetParent(i->second.window) != window) { 169 GetParent(i->second.window) != window) {
171 ++i; 170 ++i;
172 } 171 }
173 172
174 if (i == params->geometry->end()) { 173 if (i == params->geometry->end()) {
175 NOTREACHED(); 174 NOTREACHED();
176 return TRUE; 175 return TRUE;
177 } 176 }
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 #else 868 #else
870 manager = BrowserAccessibilityManager::Create(AccessibilityNodeData(), this); 869 manager = BrowserAccessibilityManager::Create(AccessibilityNodeData(), this);
871 #endif 870 #endif
872 871
873 SetBrowserAccessibilityManager(manager); 872 SetBrowserAccessibilityManager(manager);
874 return manager; 873 return manager;
875 } 874 }
876 875
877 void RenderWidgetHostViewAura::MovePluginWindows( 876 void RenderWidgetHostViewAura::MovePluginWindows(
878 const gfx::Vector2d& scroll_offset, 877 const gfx::Vector2d& scroll_offset,
879 const std::vector<webkit::npapi::WebPluginGeometry>& plugin_window_moves) { 878 const std::vector<WebPluginGeometry>& plugin_window_moves) {
880 #if defined(OS_WIN) 879 #if defined(OS_WIN)
881 // We need to clip the rectangle to the tab's viewport, otherwise we will draw 880 // We need to clip the rectangle to the tab's viewport, otherwise we will draw
882 // over the browser UI. 881 // over the browser UI.
883 if (!window_->GetRootWindow()) { 882 if (!window_->GetRootWindow()) {
884 DCHECK(plugin_window_moves.empty()); 883 DCHECK(plugin_window_moves.empty());
885 return; 884 return;
886 } 885 }
887 HWND parent = window_->GetRootWindow()->GetAcceleratedWidget(); 886 HWND parent = window_->GetRootWindow()->GetAcceleratedWidget();
888 gfx::Rect view_bounds = window_->GetBoundsInRootWindow(); 887 gfx::Rect view_bounds = window_->GetBoundsInRootWindow();
889 std::vector<webkit::npapi::WebPluginGeometry> moves = plugin_window_moves; 888 std::vector<WebPluginGeometry> moves = plugin_window_moves;
890 889
891 gfx::Rect view_port(scroll_offset.x(), scroll_offset.y(), view_bounds.width(), 890 gfx::Rect view_port(scroll_offset.x(), scroll_offset.y(), view_bounds.width(),
892 view_bounds.height()); 891 view_bounds.height());
893 892
894 for (size_t i = 0; i < moves.size(); ++i) { 893 for (size_t i = 0; i < moves.size(); ++i) {
895 gfx::Rect clip(moves[i].clip_rect); 894 gfx::Rect clip(moves[i].clip_rect);
896 gfx::Vector2d view_port_offset( 895 gfx::Vector2d view_port_offset(
897 moves[i].window_rect.OffsetFromOrigin() + scroll_offset); 896 moves[i].window_rect.OffsetFromOrigin() + scroll_offset);
898 clip.Offset(view_port_offset); 897 clip.Offset(view_port_offset);
899 clip.Intersect(view_port); 898 clip.Intersect(view_port);
(...skipping 2214 matching lines...) Expand 10 before | Expand all | Expand 10 after
3114 RenderWidgetHost* widget) { 3113 RenderWidgetHost* widget) {
3115 return new RenderWidgetHostViewAura(widget); 3114 return new RenderWidgetHostViewAura(widget);
3116 } 3115 }
3117 3116
3118 // static 3117 // static
3119 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { 3118 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) {
3120 GetScreenInfoForWindow(results, NULL); 3119 GetScreenInfoForWindow(results, NULL);
3121 } 3120 }
3122 3121
3123 } // namespace content 3122 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698