| Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| index 327029732442340807a307c2f1b13fc5eadd68b6..42093ac7f8b1c696fe3f67a8f416be488dea51f6 100644
|
| --- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| @@ -50,7 +50,6 @@
|
| #include "ui/gfx/skia_util.h"
|
| #include "webkit/plugins/ppapi/common.h"
|
| #include "webkit/plugins/ppapi/event_conversion.h"
|
| -#include "webkit/plugins/ppapi/fullscreen_container.h"
|
| #include "webkit/plugins/ppapi/message_channel.h"
|
| #include "webkit/plugins/ppapi/npapi_glue.h"
|
| #include "webkit/plugins/ppapi/plugin_delegate.h"
|
| @@ -230,7 +229,7 @@ PluginInstance::PluginInstance(
|
| plugin_print_interface_(NULL),
|
| plugin_graphics_3d_interface_(NULL),
|
| always_on_top_(false),
|
| - fullscreen_container_(NULL),
|
| + desired_fullscreen_state_(false),
|
| fullscreen_(false),
|
| message_channel_(NULL),
|
| sad_plugin_(NULL),
|
| @@ -274,10 +273,6 @@ void PluginInstance::Delete() {
|
| scoped_refptr<PluginInstance> ref(this);
|
| instance_interface_->DidDestroy(pp_instance());
|
|
|
| - if (fullscreen_container_) {
|
| - fullscreen_container_->Destroy();
|
| - fullscreen_container_ = NULL;
|
| - }
|
| container_ = NULL;
|
| }
|
|
|
| @@ -298,32 +293,21 @@ void PluginInstance::Paint(WebCanvas* canvas,
|
| }
|
|
|
| void PluginInstance::InvalidateRect(const gfx::Rect& rect) {
|
| - if (fullscreen_container_) {
|
| - if (rect.IsEmpty())
|
| - fullscreen_container_->Invalidate();
|
| - else
|
| - fullscreen_container_->InvalidateRect(rect);
|
| - } else {
|
| - if (!container_ || position_.IsEmpty())
|
| - return; // Nothing to do.
|
| - if (rect.IsEmpty())
|
| - container_->invalidate();
|
| - else
|
| - container_->invalidateRect(rect);
|
| - }
|
| + if (!container_ || position_.IsEmpty())
|
| + return; // Nothing to do.
|
| + if (rect.IsEmpty())
|
| + container_->invalidate();
|
| + else
|
| + container_->invalidateRect(rect);
|
| }
|
|
|
| void PluginInstance::ScrollRect(int dx, int dy, const gfx::Rect& rect) {
|
| - if (fullscreen_container_) {
|
| - fullscreen_container_->ScrollRect(dx, dy, rect);
|
| + if (full_frame_) {
|
| + container_->scrollRect(dx, dy, rect);
|
| } else {
|
| - if (full_frame_) {
|
| - container_->scrollRect(dx, dy, rect);
|
| - } else {
|
| - // Can't do optimized scrolling since there could be other elements on top
|
| - // of us.
|
| - InvalidateRect(rect);
|
| - }
|
| + // Can't do optimized scrolling since there could be other elements on top
|
| + // of us.
|
| + InvalidateRect(rect);
|
| }
|
| }
|
|
|
| @@ -337,10 +321,7 @@ unsigned PluginInstance::GetBackingTextureId() {
|
| }
|
|
|
| void PluginInstance::CommitBackingTexture() {
|
| - if (fullscreen_container_)
|
| - fullscreen_container_->Invalidate();
|
| - else
|
| - container_->commitBackingTexture();
|
| + container_->commitBackingTexture();
|
| }
|
|
|
| void PluginInstance::InstanceCrashed() {
|
| @@ -503,7 +484,7 @@ PP_Var PluginInstance::GetInstanceObject() {
|
|
|
| void PluginInstance::ViewChanged(const gfx::Rect& position,
|
| const gfx::Rect& clip) {
|
| - fullscreen_ = (fullscreen_container_ != NULL);
|
| + fullscreen_ = desired_fullscreen_state_;
|
| position_ = position;
|
|
|
| if (clip.IsEmpty()) {
|
| @@ -775,10 +756,7 @@ bool PluginInstance::PluginHasFocus() const {
|
| }
|
|
|
| void PluginInstance::ReportGeometry() {
|
| - // If this call was delayed, we may have transitioned back to fullscreen in
|
| - // the mean time, so only report the geometry if we are actually in normal
|
| - // mode.
|
| - if (container_ && !fullscreen_container_)
|
| + if (container_)
|
| container_->reportGeometry();
|
| }
|
|
|
| @@ -954,7 +932,7 @@ void PluginInstance::PrintEnd() {
|
| }
|
|
|
| bool PluginInstance::IsFullscreenOrPending() {
|
| - return fullscreen_container_ != NULL;
|
| + return desired_fullscreen_state_;
|
| }
|
|
|
| void PluginInstance::SetFullscreen(bool fullscreen, bool delay_report) {
|
| @@ -967,22 +945,13 @@ void PluginInstance::SetFullscreen(bool fullscreen, bool delay_report) {
|
| if (fullscreen == IsFullscreenOrPending())
|
| return;
|
|
|
| - BindGraphics(pp_instance(), 0);
|
| - VLOG(1) << "Setting fullscreen to " << (fullscreen ? "on" : "off");
|
| - if (fullscreen) {
|
| - DCHECK(!fullscreen_container_);
|
| - fullscreen_container_ = delegate_->CreateFullscreenContainer(this);
|
| + desired_fullscreen_state_ = fullscreen;
|
| + delegate_->SetFullscreen(this, fullscreen);
|
| + if (!delay_report) {
|
| + ReportGeometry();
|
| } else {
|
| - DCHECK(fullscreen_container_);
|
| - fullscreen_container_->Destroy();
|
| - fullscreen_container_ = NULL;
|
| - fullscreen_ = false;
|
| - if (!delay_report) {
|
| - ReportGeometry();
|
| - } else {
|
| - MessageLoop::current()->PostTask(
|
| + MessageLoop::current()->PostTask(
|
| FROM_HERE, NewRunnableMethod(this, &PluginInstance::ReportGeometry));
|
| - }
|
| }
|
| }
|
|
|
| @@ -1026,10 +995,7 @@ int32_t PluginInstance::Navigate(PPB_URLRequestInfo_Impl* request,
|
| }
|
|
|
| PluginDelegate::PlatformContext3D* PluginInstance::CreateContext3D() {
|
| - if (fullscreen_container_)
|
| - return fullscreen_container_->CreateContext3D();
|
| - else
|
| - return delegate_->CreateContext3D();
|
| + return delegate_->CreateContext3D();
|
| }
|
|
|
| bool PluginInstance::PrintPDFOutput(PP_Resource print_output,
|
| @@ -1299,16 +1265,6 @@ PPB_Surface3D_Impl* PluginInstance::GetBoundSurface3D() const {
|
| }
|
|
|
| void PluginInstance::setBackingTextureId(unsigned int id) {
|
| - // If we have a full-screen container_ then the plugin is fullscreen,
|
| - // and the parent context is not the one for the browser page, but for the
|
| - // full-screen window, and so the parent texture ID doesn't correspond to
|
| - // anything in the page's context.
|
| - //
|
| - // TODO(alokp): It would be better at some point to have the equivalent
|
| - // in the FullscreenContainer so that we don't need to poll
|
| - if (fullscreen_container_)
|
| - return;
|
| -
|
| if (container_)
|
| container_->setBackingTextureId(id);
|
| }
|
| @@ -1354,10 +1310,6 @@ PP_Bool PluginInstance::BindGraphics(PP_Instance instance,
|
| return PP_TRUE;
|
| }
|
|
|
| - // Refuse to bind if we're transitioning to fullscreen.
|
| - if (fullscreen_container_ && !fullscreen_)
|
| - return PP_FALSE;
|
| -
|
| EnterResourceNoLock<PPB_Graphics2D_API> enter_2d(device, false);
|
| PPB_Graphics2D_Impl* graphics_2d = enter_2d.succeeded() ?
|
| static_cast<PPB_Graphics2D_Impl*>(enter_2d.object()) : NULL;
|
| @@ -1545,8 +1497,6 @@ void PluginInstance::SubscribeToPolicyUpdates(PP_Instance instance) {
|
|
|
| void PluginInstance::DoSetCursor(WebCursorInfo* cursor) {
|
| cursor_.reset(cursor);
|
| - if (fullscreen_container_)
|
| - fullscreen_container_->DidChangeCursor(*cursor);
|
| }
|
|
|
| } // namespace ppapi
|
|
|