OLD | NEW |
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/renderer/render_widget_fullscreen_pepper.h" | 5 #include "content/renderer/render_widget_fullscreen_pepper.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 WebSize size_; | 246 WebSize size_; |
247 | 247 |
248 DISALLOW_COPY_AND_ASSIGN(PepperWidget); | 248 DISALLOW_COPY_AND_ASSIGN(PepperWidget); |
249 }; | 249 }; |
250 | 250 |
251 } // anonymous namespace | 251 } // anonymous namespace |
252 | 252 |
253 // static | 253 // static |
254 RenderWidgetFullscreenPepper* RenderWidgetFullscreenPepper::Create( | 254 RenderWidgetFullscreenPepper* RenderWidgetFullscreenPepper::Create( |
255 int32_t routing_id, | 255 int32_t routing_id, |
256 int32_t opener_id, | 256 const RenderWidget::ShowCallback& show_callback, |
257 CompositorDependencies* compositor_deps, | 257 CompositorDependencies* compositor_deps, |
258 PepperPluginInstanceImpl* plugin, | 258 PepperPluginInstanceImpl* plugin, |
259 const GURL& active_url, | 259 const GURL& active_url, |
260 const ScreenInfo& screen_info) { | 260 const ScreenInfo& screen_info) { |
261 DCHECK_NE(MSG_ROUTING_NONE, routing_id); | 261 DCHECK_NE(MSG_ROUTING_NONE, routing_id); |
262 DCHECK_NE(MSG_ROUTING_NONE, opener_id); | 262 DCHECK(!show_callback.is_null()); |
263 scoped_refptr<RenderWidgetFullscreenPepper> widget( | 263 scoped_refptr<RenderWidgetFullscreenPepper> widget( |
264 new RenderWidgetFullscreenPepper(routing_id, compositor_deps, plugin, | 264 new RenderWidgetFullscreenPepper(routing_id, compositor_deps, plugin, |
265 active_url, screen_info)); | 265 active_url, screen_info)); |
266 widget->Init(opener_id); | 266 widget->Init(show_callback, new PepperWidget(widget.get())); |
267 widget->AddRef(); | 267 widget->AddRef(); |
268 return widget.get(); | 268 return widget.get(); |
269 } | 269 } |
270 | 270 |
271 RenderWidgetFullscreenPepper::RenderWidgetFullscreenPepper( | 271 RenderWidgetFullscreenPepper::RenderWidgetFullscreenPepper( |
272 int32_t routing_id, | 272 int32_t routing_id, |
273 CompositorDependencies* compositor_deps, | 273 CompositorDependencies* compositor_deps, |
274 PepperPluginInstanceImpl* plugin, | 274 PepperPluginInstanceImpl* plugin, |
275 const GURL& active_url, | 275 const GURL& active_url, |
276 const ScreenInfo& screen_info) | 276 const ScreenInfo& screen_info) |
277 : RenderWidgetFullscreen(routing_id, compositor_deps, screen_info), | 277 : RenderWidget(routing_id, |
| 278 compositor_deps, |
| 279 blink::WebPopupTypeNone, |
| 280 screen_info, |
| 281 false, |
| 282 false, |
| 283 false), |
278 active_url_(active_url), | 284 active_url_(active_url), |
279 plugin_(plugin), | 285 plugin_(plugin), |
280 layer_(NULL), | 286 layer_(NULL), |
281 mouse_lock_dispatcher_(new FullscreenMouseLockDispatcher(this)) {} | 287 mouse_lock_dispatcher_(new FullscreenMouseLockDispatcher(this)) {} |
282 | 288 |
283 RenderWidgetFullscreenPepper::~RenderWidgetFullscreenPepper() { | 289 RenderWidgetFullscreenPepper::~RenderWidgetFullscreenPepper() { |
284 } | 290 } |
285 | 291 |
286 void RenderWidgetFullscreenPepper::Invalidate() { | 292 void RenderWidgetFullscreenPepper::Invalidate() { |
287 InvalidateRect(gfx::Rect(size_.width(), size_.height())); | 293 InvalidateRect(gfx::Rect(size_.width(), size_.height())); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 mouse_lock_dispatcher_.get(), | 342 mouse_lock_dispatcher_.get(), |
337 MouseLockDispatcher::OnLockMouseACK) | 343 MouseLockDispatcher::OnLockMouseACK) |
338 IPC_MESSAGE_FORWARD(ViewMsg_MouseLockLost, | 344 IPC_MESSAGE_FORWARD(ViewMsg_MouseLockLost, |
339 mouse_lock_dispatcher_.get(), | 345 mouse_lock_dispatcher_.get(), |
340 MouseLockDispatcher::OnMouseLockLost) | 346 MouseLockDispatcher::OnMouseLockLost) |
341 IPC_MESSAGE_UNHANDLED(handled = false) | 347 IPC_MESSAGE_UNHANDLED(handled = false) |
342 IPC_END_MESSAGE_MAP() | 348 IPC_END_MESSAGE_MAP() |
343 if (handled) | 349 if (handled) |
344 return true; | 350 return true; |
345 | 351 |
346 return RenderWidgetFullscreen::OnMessageReceived(msg); | 352 return RenderWidget::OnMessageReceived(msg); |
347 } | 353 } |
348 | 354 |
349 void RenderWidgetFullscreenPepper::DidInitiatePaint() { | 355 void RenderWidgetFullscreenPepper::DidInitiatePaint() { |
350 if (plugin_) | 356 if (plugin_) |
351 plugin_->ViewInitiatedPaint(); | 357 plugin_->ViewInitiatedPaint(); |
352 } | 358 } |
353 | 359 |
354 void RenderWidgetFullscreenPepper::Close() { | 360 void RenderWidgetFullscreenPepper::Close() { |
355 // If the fullscreen window is closed (e.g. user pressed escape), reset to | 361 // If the fullscreen window is closed (e.g. user pressed escape), reset to |
356 // normal mode. | 362 // normal mode. |
357 if (plugin_) | 363 if (plugin_) |
358 plugin_->FlashSetFullscreen(false, false); | 364 plugin_->FlashSetFullscreen(false, false); |
359 | 365 |
360 // Call Close on the base class to destroy the WebWidget instance. | 366 // Call Close on the base class to destroy the WebWidget instance. |
361 RenderWidget::Close(); | 367 RenderWidget::Close(); |
362 } | 368 } |
363 | 369 |
364 void RenderWidgetFullscreenPepper::OnResize(const ResizeParams& params) { | 370 void RenderWidgetFullscreenPepper::OnResize(const ResizeParams& params) { |
365 if (layer_) | 371 if (layer_) |
366 layer_->setBounds(blink::WebSize(params.new_size)); | 372 layer_->setBounds(blink::WebSize(params.new_size)); |
367 RenderWidget::OnResize(params); | 373 RenderWidget::OnResize(params); |
368 } | 374 } |
369 | 375 |
370 WebWidget* RenderWidgetFullscreenPepper::CreateWebWidget() { | |
371 return new PepperWidget(this); | |
372 } | |
373 | |
374 GURL RenderWidgetFullscreenPepper::GetURLForGraphicsContext3D() { | 376 GURL RenderWidgetFullscreenPepper::GetURLForGraphicsContext3D() { |
375 return active_url_; | 377 return active_url_; |
376 } | 378 } |
377 | 379 |
378 void RenderWidgetFullscreenPepper::OnDeviceScaleFactorChanged() { | 380 void RenderWidgetFullscreenPepper::OnDeviceScaleFactorChanged() { |
379 if (compositor_) | 381 if (compositor_) |
380 compositor_->setDeviceScaleFactor(device_scale_factor_); | 382 compositor_->setDeviceScaleFactor(device_scale_factor_); |
381 } | 383 } |
382 | 384 |
383 } // namespace content | 385 } // namespace content |
OLD | NEW |