Index: ppapi/native_client/src/shared/ppapi_proxy/browser_ppp_instance.cc |
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/browser_ppp_instance.cc b/ppapi/native_client/src/shared/ppapi_proxy/browser_ppp_instance.cc |
index 933b9730dc993bfc02074a2640d3faa2eb81671f..c01cd7b61609c6c036ee6b31fa4b96b6e91d2b6e 100644 |
--- a/ppapi/native_client/src/shared/ppapi_proxy/browser_ppp_instance.cc |
+++ b/ppapi/native_client/src/shared/ppapi_proxy/browser_ppp_instance.cc |
@@ -15,11 +15,14 @@ |
#include "native_client/src/shared/ppapi_proxy/browser_ppp.h" |
#include "native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppp_rpc.h" |
#include "native_client/src/shared/ppapi_proxy/utility.h" |
+#include "native_client/src/shared/ppapi_proxy/view_data.h" |
#include "ppapi/c/pp_resource.h" |
#include "ppapi/c/pp_var.h" |
#include "ppapi/c/ppp_instance.h" |
+#include "ppapi/c/ppb_view.h" |
using nacl::scoped_array; |
+using ppapi_proxy::ViewData; |
namespace ppapi_proxy { |
@@ -100,31 +103,26 @@ void DidDestroy(PP_Instance instance) { |
NaClSrpcErrorString(srpc_result)); |
} |
-void DidChangeView(PP_Instance instance, |
- const PP_Rect* position, |
- const PP_Rect* clip) { |
+void DidChangeView(PP_Instance instance, PP_Resource view) { |
DebugPrintf("PPP_Instance::DidChangeView: instance=%"NACL_PRIu32"\n", |
instance); |
- int32_t position_array[4]; |
- const uint32_t kPositionArraySize = NACL_ARRAY_SIZE(position_array); |
- position_array[0] = position->point.x; |
- position_array[1] = position->point.y; |
- position_array[2] = position->size.width; |
- position_array[3] = position->size.height; |
- int32_t clip_array[4]; |
- const uint32_t kClipArraySize = NACL_ARRAY_SIZE(clip_array); |
- clip_array[0] = clip->point.x; |
- clip_array[1] = clip->point.y; |
- clip_array[2] = clip->size.width; |
- clip_array[3] = clip->size.height; |
+ ViewData view_data; |
+ |
+ // We only send the new view info. The plugin side keeps track of the |
+ // previous state it sent out, so can do the "changed" part itself. |
dmichael (off chromium)
2011/12/20 19:01:34
Is this comment still valid with no PPB_ViewChange
|
+ const PPB_View* view_interface = static_cast<const PPB_View*>( |
+ GetBrowserInterface(PPB_VIEW_INTERFACE)); |
dmichael (off chromium)
2011/12/20 19:01:34
Could you just use PPBViewInterface that you added
|
+ view_interface->GetRect(view, &view_data.viewport_rect); |
+ view_data.is_fullscreen = view_interface->IsFullscreen(view); |
+ view_data.is_page_visible = view_interface->IsPageVisible(view); |
+ view_interface->GetClipRect(view, &view_data.clip_rect); |
+ |
NaClSrpcError srpc_result = PppInstanceRpcClient::PPP_Instance_DidChangeView( |
GetMainSrpcChannel(instance), |
instance, |
- kPositionArraySize, |
- position_array, |
- kClipArraySize, |
- clip_array, |
- static_cast<int32_t>(PPBFullscreenInterface()->IsFullscreen(instance))); |
+ view, |
+ sizeof(ViewData), |
+ reinterpret_cast<char*>(&view_data)); |
DebugPrintf("PPP_Instance::DidChangeView: %s\n", |
NaClSrpcErrorString(srpc_result)); |
} |