From e8f07ac77c1b27633eb7c6c2793d5b465e023f9f Mon Sep 17 00:00:00 2001 From: "brettw@chromium.org" Date: Tue, 3 Jan 2012 17:43:36 +0000 Subject: Change the DidChangeView update to take a new ViewChanged resource. This will allow us to be more flexible about adding data to view changed updates in the future. For now, I've incorporated fullscreen and tab foreground state into the view state. BUG= TEST= Review URL: http://codereview.chromium.org/8951014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116142 0039d316-1c4b-4281-b951-d872f2087c98 --- ppapi/shared_impl/ppb_view_shared.h | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 ppapi/shared_impl/ppb_view_shared.h (limited to 'ppapi/shared_impl/ppb_view_shared.h') diff --git a/ppapi/shared_impl/ppb_view_shared.h b/ppapi/shared_impl/ppb_view_shared.h new file mode 100644 index 0000000..6bba605 --- /dev/null +++ b/ppapi/shared_impl/ppb_view_shared.h @@ -0,0 +1,61 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_ +#define PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_ + +#include "base/compiler_specific.h" +#include "ppapi/c/pp_rect.h" +#include "ppapi/c/pp_size.h" +#include "ppapi/shared_impl/resource.h" +#include "ppapi/thunk/ppb_view_api.h" + +namespace ppapi { + +// If you add to this struct, be sure to update the serialization in +// ppapi_messages.h. +struct PPAPI_SHARED_EXPORT ViewData { + ViewData(); + ~ViewData(); + + bool Equals(const ViewData& other) const; + + PP_Rect rect; + bool is_fullscreen; + bool is_page_visible; + PP_Rect clip_rect; +}; + +class PPAPI_SHARED_EXPORT PPB_View_Shared + : public Resource, + public thunk::PPB_View_API { + public: + struct InitAsImpl {}; + struct InitAsProxy {}; + + // The dummy arguments control which version of Resource's constructor is + // called for this base class. + PPB_View_Shared(const InitAsImpl&, + PP_Instance instance, + const ViewData& data); + PPB_View_Shared(const InitAsProxy&, + PP_Instance instance, + const ViewData& data); + virtual ~PPB_View_Shared(); + + // Resource overrides. + virtual thunk::PPB_View_API* AsPPB_View_API() OVERRIDE; + + // PPB_View_API implementation. + virtual const ViewData& GetData() const OVERRIDE; + + private: + ViewData data_; + + DISALLOW_COPY_AND_ASSIGN(PPB_View_Shared); +}; + +} // namespace ppapi + +#endif // PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_ -- cgit v1.1