Chromium Code Reviews| 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)); |
| } |