Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_mus.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_mus.h" |
| 6 | 6 |
| 7 #include "components/mus/public/cpp/window.h" | |
| 8 #include "components/mus/public/cpp/window_tree_connection.h" | |
| 9 #include "content/browser/mojo/mojo_shell_client_host.h" | |
| 10 #include "content/browser/renderer_host/render_process_host_impl.h" | |
| 7 #include "content/browser/renderer_host/render_widget_host_impl.h" | 11 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 12 #include "content/public/common/mojo_shell_connection.h" | |
| 13 #include "mojo/application/public/cpp/application_impl.h" | |
| 8 | 14 |
| 9 namespace blink { | 15 namespace blink { |
| 10 struct WebScreenInfo; | 16 struct WebScreenInfo; |
| 11 } | 17 } |
| 12 | 18 |
| 13 namespace content { | 19 namespace content { |
| 14 | 20 |
| 15 RenderWidgetHostViewMus::RenderWidgetHostViewMus( | 21 RenderWidgetHostViewMus::RenderWidgetHostViewMus( |
| 22 mus::Window* parent_window, | |
| 16 RenderWidgetHostImpl* host, | 23 RenderWidgetHostImpl* host, |
| 17 base::WeakPtr<RenderWidgetHostViewBase> platform_view) | 24 base::WeakPtr<RenderWidgetHostViewBase> platform_view) |
| 18 : host_(host), platform_view_(platform_view) { | 25 : host_(host), platform_view_(platform_view) { |
| 26 DCHECK(parent_window); | |
| 27 mus::Window* window = parent_window->connection()->NewWindow(); | |
| 28 window->SetVisible(true); | |
| 29 window->SetBounds(parent_window->bounds()); | |
| 30 parent_window->AddChild(window); | |
| 31 window_.reset(new mus::ScopedWindowPtr(window)); | |
| 19 host_->SetView(this); | 32 host_->SetView(this); |
| 33 | |
| 34 //if (!host_->GetProcess()->IsReady()) { | |
|
Fady Samuel
2015/11/24 04:42:38
Delete this.
| |
| 35 // host_->GetProcess()->AddObserver(this); | |
| 36 // return; | |
| 37 //} | |
| 38 | |
| 39 //EmbedClient(); | |
| 20 } | 40 } |
| 21 | 41 |
| 22 RenderWidgetHostViewMus::~RenderWidgetHostViewMus() {} | 42 RenderWidgetHostViewMus::~RenderWidgetHostViewMus() {} |
| 23 | 43 |
| 24 void RenderWidgetHostViewMus::Show() { | 44 void RenderWidgetHostViewMus::Show() { |
| 25 // TODO(fsamuel): Update visibility in Mus. | 45 // TODO(fsamuel): Update visibility in Mus. |
| 26 // There is some interstitial complexity that we'll need to figure out here. | 46 // There is some interstitial complexity that we'll need to figure out here. |
| 27 host_->WasShown(ui::LatencyInfo()); | 47 host_->WasShown(ui::LatencyInfo()); |
| 28 } | 48 } |
| 29 | 49 |
| 30 void RenderWidgetHostViewMus::Hide() { | 50 void RenderWidgetHostViewMus::Hide() { |
| 31 host_->WasHidden(); | 51 host_->WasHidden(); |
| 32 } | 52 } |
| 33 | 53 |
| 34 bool RenderWidgetHostViewMus::IsShowing() { | 54 bool RenderWidgetHostViewMus::IsShowing() { |
| 35 return !host_->is_hidden(); | 55 return !host_->is_hidden(); |
| 36 } | 56 } |
| 37 | 57 |
| 38 void RenderWidgetHostViewMus::SetSize(const gfx::Size& size) { | 58 void RenderWidgetHostViewMus::SetSize(const gfx::Size& size) { |
| 39 size_ = size; | 59 gfx::Rect bounds = window_->window()->bounds(); |
| 40 host_->WasResized(); | 60 bounds.set_size(size); |
| 61 SetBounds(bounds); | |
| 41 } | 62 } |
| 42 | 63 |
| 43 void RenderWidgetHostViewMus::SetBounds(const gfx::Rect& rect) { | 64 void RenderWidgetHostViewMus::SetBounds(const gfx::Rect& rect) { |
| 44 SetSize(rect.size()); | 65 window_->window()->SetBounds(rect); |
| 66 host_->WasResized(); | |
| 45 } | 67 } |
| 46 | 68 |
| 47 void RenderWidgetHostViewMus::Focus() { | 69 void RenderWidgetHostViewMus::Focus() { |
| 48 // TODO(fsamuel): Request focus for the associated Mus::Window | 70 // TODO(fsamuel): Request focus for the associated Mus::Window |
| 49 // We need to be careful how we propagate focus as we navigate to and | 71 // We need to be careful how we propagate focus as we navigate to and |
| 50 // from interstitials. | 72 // from interstitials. |
| 73 window_->window()->SetFocus(); | |
| 51 } | 74 } |
| 52 | 75 |
| 53 bool RenderWidgetHostViewMus::HasFocus() const { | 76 bool RenderWidgetHostViewMus::HasFocus() const { |
| 54 return true; | 77 return true; |
| 55 } | 78 } |
| 56 | 79 |
| 57 bool RenderWidgetHostViewMus::IsSurfaceAvailableForCopy() const { | 80 bool RenderWidgetHostViewMus::IsSurfaceAvailableForCopy() const { |
| 58 NOTIMPLEMENTED(); | 81 NOTIMPLEMENTED(); |
| 59 return false; | 82 return false; |
| 60 } | 83 } |
| 61 | 84 |
| 62 gfx::Rect RenderWidgetHostViewMus::GetViewBounds() const { | 85 gfx::Rect RenderWidgetHostViewMus::GetViewBounds() const { |
| 63 return gfx::Rect(size_); | 86 return window_->window()->bounds(); |
| 64 } | 87 } |
| 65 | 88 |
| 66 gfx::Vector2dF RenderWidgetHostViewMus::GetLastScrollOffset() const { | 89 gfx::Vector2dF RenderWidgetHostViewMus::GetLastScrollOffset() const { |
| 67 return gfx::Vector2dF(); | 90 return gfx::Vector2dF(); |
| 68 } | 91 } |
| 69 | 92 |
| 70 void RenderWidgetHostViewMus::RenderProcessGone(base::TerminationStatus status, | 93 void RenderWidgetHostViewMus::RenderProcessGone(base::TerminationStatus status, |
| 71 int error_code) { | 94 int error_code) { |
| 72 // TODO(fsamuel): Figure out the interstitial lifetime issues here. | 95 // TODO(fsamuel): Figure out the interstitial lifetime issues here. |
| 73 platform_view_->Destroy(); | 96 platform_view_->Destroy(); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 84 | 107 |
| 85 base::string16 RenderWidgetHostViewMus::GetSelectedText() const { | 108 base::string16 RenderWidgetHostViewMus::GetSelectedText() const { |
| 86 return platform_view_->GetSelectedText(); | 109 return platform_view_->GetSelectedText(); |
| 87 } | 110 } |
| 88 | 111 |
| 89 void RenderWidgetHostViewMus::SetTooltipText( | 112 void RenderWidgetHostViewMus::SetTooltipText( |
| 90 const base::string16& tooltip_text) { | 113 const base::string16& tooltip_text) { |
| 91 // TOOD(fsamuel): Ask window manager for tooltip? | 114 // TOOD(fsamuel): Ask window manager for tooltip? |
| 92 } | 115 } |
| 93 | 116 |
| 117 void RenderWidgetHostViewMus::EmbedWindowTreeClient( | |
| 118 mus::mojom::WindowTreeClientPtr tree_client) { | |
| 119 fprintf(stderr, ">>>%s\n", __PRETTY_FUNCTION__); | |
| 120 window_->window()->Embed(tree_client.Pass()); | |
| 121 } | |
| 122 | |
| 94 void RenderWidgetHostViewMus::InitAsChild(gfx::NativeView parent_view) { | 123 void RenderWidgetHostViewMus::InitAsChild(gfx::NativeView parent_view) { |
| 95 platform_view_->InitAsChild(parent_view); | 124 platform_view_->InitAsChild(parent_view); |
| 96 } | 125 } |
| 97 | 126 |
| 98 RenderWidgetHost* RenderWidgetHostViewMus::GetRenderWidgetHost() const { | 127 RenderWidgetHost* RenderWidgetHostViewMus::GetRenderWidgetHost() const { |
| 99 return host_; | 128 return host_; |
| 100 } | 129 } |
| 101 | 130 |
| 102 void RenderWidgetHostViewMus::InitAsPopup( | 131 void RenderWidgetHostViewMus::InitAsPopup( |
| 103 RenderWidgetHostView* parent_host_view, | 132 RenderWidgetHostView* parent_host_view, |
| 104 const gfx::Rect& bounds) { | 133 const gfx::Rect& bounds) { |
| 105 // TODO(fsamuel): Implement popups in Mus. | 134 // TODO(fsamuel): Implement popups in Mus. |
| 106 } | 135 } |
| 107 | 136 |
| 108 void RenderWidgetHostViewMus::InitAsFullscreen( | 137 void RenderWidgetHostViewMus::InitAsFullscreen( |
| 109 RenderWidgetHostView* reference_host_view) { | 138 RenderWidgetHostView* reference_host_view) { |
| 110 // TODO(fsamuel): Implement full screen windows in Mus. | 139 // TODO(fsamuel): Implement full screen windows in Mus. |
| 111 } | 140 } |
| 112 | 141 |
| 113 gfx::NativeView RenderWidgetHostViewMus::GetNativeView() const { | 142 gfx::NativeView RenderWidgetHostViewMus::GetNativeView() const { |
| 114 return gfx::NativeView(); | 143 return platform_view_->GetNativeView(); |
| 115 } | 144 } |
| 116 | 145 |
| 117 gfx::NativeViewId RenderWidgetHostViewMus::GetNativeViewId() const { | 146 gfx::NativeViewId RenderWidgetHostViewMus::GetNativeViewId() const { |
| 118 return gfx::NativeViewId(); | 147 return platform_view_->GetNativeViewId(); |
| 119 } | 148 } |
| 120 | 149 |
| 121 gfx::NativeViewAccessible RenderWidgetHostViewMus::GetNativeViewAccessible() { | 150 gfx::NativeViewAccessible RenderWidgetHostViewMus::GetNativeViewAccessible() { |
| 122 return gfx::NativeViewAccessible(); | 151 return gfx::NativeViewAccessible(); |
| 123 } | 152 } |
| 124 | 153 |
| 125 void RenderWidgetHostViewMus::MovePluginWindows( | 154 void RenderWidgetHostViewMus::MovePluginWindows( |
| 126 const std::vector<WebPluginGeometry>& moves) { | 155 const std::vector<WebPluginGeometry>& moves) { |
| 127 platform_view_->MovePluginWindows(moves); | 156 platform_view_->MovePluginWindows(moves); |
| 128 } | 157 } |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 // TODO(fsamuel): Populate screen info from Mus. | 234 // TODO(fsamuel): Populate screen info from Mus. |
| 206 } | 235 } |
| 207 | 236 |
| 208 bool RenderWidgetHostViewMus::GetScreenColorProfile( | 237 bool RenderWidgetHostViewMus::GetScreenColorProfile( |
| 209 std::vector<char>* color_profile) { | 238 std::vector<char>* color_profile) { |
| 210 // TODO(fsamuel): Implement color profile in Mus. | 239 // TODO(fsamuel): Implement color profile in Mus. |
| 211 return false; | 240 return false; |
| 212 } | 241 } |
| 213 | 242 |
| 214 gfx::Rect RenderWidgetHostViewMus::GetBoundsInRootWindow() { | 243 gfx::Rect RenderWidgetHostViewMus::GetBoundsInRootWindow() { |
| 215 return GetViewBounds(); | 244 return platform_view_->GetBoundsInRootWindow(); |
| 216 } | 245 } |
| 217 | 246 |
| 218 #if defined(OS_MACOSX) | 247 #if defined(OS_MACOSX) |
| 219 void RenderWidgetHostViewMus::SetActive(bool active) { | 248 void RenderWidgetHostViewMus::SetActive(bool active) { |
| 220 platform_view_->SetActive(active); | 249 platform_view_->SetActive(active); |
| 221 } | 250 } |
| 222 | 251 |
| 223 void RenderWidgetHostViewMus::SetWindowVisibility(bool visible) { | 252 void RenderWidgetHostViewMus::SetWindowVisibility(bool visible) { |
| 224 // TODO(fsamuel): Propagate visibility to Mus? | 253 // TODO(fsamuel): Propagate visibility to Mus? |
| 225 platform_view_->SetWindowVisibility(visible); | 254 platform_view_->SetWindowVisibility(visible); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 270 void RenderWidgetHostViewMus::SetParentNativeViewAccessible( | 299 void RenderWidgetHostViewMus::SetParentNativeViewAccessible( |
| 271 gfx::NativeViewAccessible accessible_parent) {} | 300 gfx::NativeViewAccessible accessible_parent) {} |
| 272 | 301 |
| 273 gfx::NativeViewId RenderWidgetHostViewMus::GetParentForWindowlessPlugin() | 302 gfx::NativeViewId RenderWidgetHostViewMus::GetParentForWindowlessPlugin() |
| 274 const { | 303 const { |
| 275 return gfx::NativeViewId(); | 304 return gfx::NativeViewId(); |
| 276 } | 305 } |
| 277 #endif | 306 #endif |
| 278 | 307 |
| 279 } // namespace content | 308 } // namespace content |
| OLD | NEW |