OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2010 The Native Client Authors. All rights reserved. | 2 * Copyright 2010 The Native Client Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can | 3 * Use of this source code is governed by a BSD-style license that can |
4 * be found in the LICENSE file. | 4 * be found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 #include "native_client/src/shared/ppapi_proxy/browser_instance.h" | 7 #include "native_client/src/shared/ppapi_proxy/browser_instance.h" |
8 | 8 |
9 #include <stdio.h> | 9 #include <stdio.h> |
10 #include <string.h> | 10 #include <string.h> |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 size_t pos = 0; | 60 size_t pos = 0; |
61 for (int i = 0; i < argc; ++i) { | 61 for (int i = 0; i < argc; ++i) { |
62 size_t len = strlen(array[i]) + 1; | 62 size_t len = strlen(array[i]) + 1; |
63 strncpy(serial_array + pos, array[i], len); | 63 strncpy(serial_array + pos, array[i], len); |
64 pos += len; | 64 pos += len; |
65 } | 65 } |
66 return serial_array; | 66 return serial_array; |
67 } | 67 } |
68 | 68 |
69 PP_Bool DidCreate(PP_Instance instance, | 69 PP_Bool DidCreate(PP_Instance instance, |
70 uint32_t argc, | 70 uint32_t argc, |
71 const char* argn[], | 71 const char* argn[], |
72 const char* argv[]) { | 72 const char* argv[]) { |
73 DebugPrintf("BrowserInstance::DidCreate(%"NACL_PRId64")\n", instance); | 73 DebugPrintf("Browser::PPP_Instance::DidCreate(%"NACL_PRId64")\n", instance); |
74 uint32_t argn_size; | 74 uint32_t argn_size; |
75 scoped_array<char> argn_serial(ArgArraySerialize(argc, argn, &argn_size)); | 75 scoped_array<char> argn_serial(ArgArraySerialize(argc, argn, &argn_size)); |
76 if (argn_serial.get() == NULL) { | 76 if (argn_serial.get() == NULL) { |
77 return PP_FALSE; | 77 return PP_FALSE; |
78 } | 78 } |
79 uint32_t argv_size; | 79 uint32_t argv_size; |
80 scoped_array<char> argv_serial(ArgArraySerialize(argc, argv, &argv_size)); | 80 scoped_array<char> argv_serial(ArgArraySerialize(argc, argv, &argv_size)); |
81 if (argv_serial.get() == NULL) { | 81 if (argv_serial.get() == NULL) { |
82 return PP_FALSE; | 82 return PP_FALSE; |
83 } | 83 } |
84 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); | 84 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); |
85 int32_t int_argc = static_cast<int32_t>(argc); | 85 int32_t int_argc = static_cast<int32_t>(argc); |
86 int32_t success; | 86 int32_t success; |
87 NaClSrpcError retval = | 87 NaClSrpcError retval = |
88 PppInstanceRpcClient::PPP_Instance_DidCreate(channel, | 88 PppInstanceRpcClient::PPP_Instance_DidCreate(channel, |
89 instance, | 89 instance, |
90 int_argc, | 90 int_argc, |
91 argn_size, | 91 argn_size, |
92 argn_serial.get(), | 92 argn_serial.get(), |
93 argv_size, | 93 argv_size, |
94 argv_serial.get(), | 94 argv_serial.get(), |
95 &success); | 95 &success); |
96 if (retval != NACL_SRPC_RESULT_OK) { | 96 if (retval != NACL_SRPC_RESULT_OK) { |
97 return PP_FALSE; | 97 return PP_FALSE; |
98 } | 98 } |
99 return static_cast<PP_Bool>(success != 0); | 99 return static_cast<PP_Bool>(success != 0); |
100 } | 100 } |
101 | 101 |
102 void DidDestroy(PP_Instance instance) { | 102 void DidDestroy(PP_Instance instance) { |
103 DebugPrintf("BrowserInstance::Delete(%"NACL_PRId64")\n", instance); | 103 DebugPrintf("Browser::PPP_Instance::Delete(%"NACL_PRId64")\n", instance); |
104 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); | 104 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); |
105 (void) PppInstanceRpcClient::PPP_Instance_DidDestroy(channel, instance); | 105 (void) PppInstanceRpcClient::PPP_Instance_DidDestroy(channel, instance); |
106 } | 106 } |
107 | 107 |
108 void DidChangeView(PP_Instance instance, | 108 void DidChangeView(PP_Instance instance, |
109 const PP_Rect* position, | 109 const PP_Rect* position, |
110 const PP_Rect* clip) { | 110 const PP_Rect* clip) { |
111 DebugPrintf("BrowserInstance::DidChangeView(%"NACL_PRId64")\n", instance); | 111 DebugPrintf("Browser::PPP_Instance::DidChangeView(%"NACL_PRId64")\n", |
| 112 instance); |
112 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); | 113 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); |
113 int32_t position_array[4]; | 114 int32_t position_array[4]; |
114 const uint32_t kPositionArraySize = NACL_ARRAY_SIZE(position_array); | 115 const uint32_t kPositionArraySize = NACL_ARRAY_SIZE(position_array); |
115 position_array[0] = position->point.x; | 116 position_array[0] = position->point.x; |
116 position_array[1] = position->point.y; | 117 position_array[1] = position->point.y; |
117 position_array[2] = position->size.width; | 118 position_array[2] = position->size.width; |
118 position_array[3] = position->size.height; | 119 position_array[3] = position->size.height; |
119 int32_t clip_array[4]; | 120 int32_t clip_array[4]; |
120 const uint32_t kClipArraySize = NACL_ARRAY_SIZE(clip_array); | 121 const uint32_t kClipArraySize = NACL_ARRAY_SIZE(clip_array); |
121 clip_array[0] = clip->point.x; | 122 clip_array[0] = clip->point.x; |
122 clip_array[1] = clip->point.y; | 123 clip_array[1] = clip->point.y; |
123 clip_array[2] = clip->size.width; | 124 clip_array[2] = clip->size.width; |
124 clip_array[3] = clip->size.height; | 125 clip_array[3] = clip->size.height; |
125 (void) PppInstanceRpcClient::PPP_Instance_DidChangeView(channel, | 126 (void) PppInstanceRpcClient::PPP_Instance_DidChangeView(channel, |
126 instance, | 127 instance, |
127 kPositionArraySize, | 128 kPositionArraySize, |
128 position_array, | 129 position_array, |
129 kClipArraySize, | 130 kClipArraySize, |
130 clip_array); | 131 clip_array); |
131 } | 132 } |
132 | 133 |
133 void DidChangeFocus(PP_Instance instance, PP_Bool has_focus) { | 134 void DidChangeFocus(PP_Instance instance, PP_Bool has_focus) { |
134 DebugPrintf("BrowserInstance::DidChangeFocus(%"NACL_PRId64")\n", instance); | 135 DebugPrintf("Browser::PPP_Instance::DidChangeFocus(%"NACL_PRId64")\n", |
| 136 instance); |
135 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); | 137 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); |
136 // DidChangeFocus() always succeeds, no need to check the SRPC return value. | 138 // DidChangeFocus() always succeeds, no need to check the SRPC return value. |
137 (void) PppInstanceRpcClient::PPP_Instance_DidChangeFocus(channel, | 139 (void) PppInstanceRpcClient::PPP_Instance_DidChangeFocus(channel, |
138 instance, static_cast<bool>(PP_TRUE == has_focus)); | 140 instance, static_cast<bool>(PP_TRUE == has_focus)); |
139 } | 141 } |
140 | 142 |
141 PP_Bool HandleInputEvent(PP_Instance instance, const PP_InputEvent* event) { | 143 PP_Bool HandleInputEvent(PP_Instance instance, const PP_InputEvent* event) { |
142 DebugPrintf("BrowserInstance::HandleInputEvent(%"NACL_PRId64")\n", instance); | 144 DebugPrintf("Browser::PPP_Instance::HandleInputEvent(%"NACL_PRId64")\n", |
| 145 instance); |
143 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); | 146 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); |
144 int32_t success; | 147 int32_t success; |
145 char* event_data = const_cast<char*>(reinterpret_cast<const char*>(event)); | 148 char* event_data = const_cast<char*>(reinterpret_cast<const char*>(event)); |
146 NaClSrpcError retval = | 149 NaClSrpcError retval = |
147 PppInstanceRpcClient::PPP_Instance_HandleInputEvent(channel, | 150 PppInstanceRpcClient::PPP_Instance_HandleInputEvent(channel, |
148 instance, | 151 instance, |
149 sizeof(*event), | 152 sizeof(*event), |
150 event_data, | 153 event_data, |
151 &success); | 154 &success); |
152 if (retval != NACL_SRPC_RESULT_OK) { | 155 if (retval != NACL_SRPC_RESULT_OK) { |
153 return PP_FALSE; | 156 return PP_FALSE; |
154 } | 157 } |
155 return static_cast<PP_Bool>(success != 0); | 158 return static_cast<PP_Bool>(success != 0); |
156 } | 159 } |
157 | 160 |
158 PP_Bool HandleDocumentLoad(PP_Instance instance, PP_Resource url_loader) { | 161 PP_Bool HandleDocumentLoad(PP_Instance instance, PP_Resource url_loader) { |
159 DebugPrintf("BrowserInstance::HandleDocumentLoad(%"NACL_PRId64")\n", | 162 DebugPrintf("Browser::PPP_Instance::HandleDocumentLoad(%"NACL_PRId64")\n", |
160 instance); | 163 instance); |
161 // TODO(sehr): implement HandleDocumentLoad. | 164 // TODO(sehr): implement HandleDocumentLoad. |
162 UNREFERENCED_PARAMETER(instance); | 165 UNREFERENCED_PARAMETER(instance); |
163 UNREFERENCED_PARAMETER(url_loader); | 166 UNREFERENCED_PARAMETER(url_loader); |
164 return PP_FALSE; | 167 return PP_FALSE; |
165 } | 168 } |
166 | 169 |
167 PP_Var GetInstanceObject(PP_Instance instance) { | 170 PP_Var GetInstanceObject(PP_Instance instance) { |
168 DebugPrintf("BrowserInstance::GetInstanceObject(%"NACL_PRId64")\n", instance); | 171 DebugPrintf("Browser::PPP_Instance::GetInstanceObject(%"NACL_PRId64")\n", |
| 172 instance); |
169 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); | 173 NaClSrpcChannel* channel = LookupBrowserPppForInstance(instance)->channel(); |
170 ObjectCapability capability; | 174 ObjectCapability capability; |
171 uint32_t capability_bytes = static_cast<uint32_t>(sizeof(capability)); | 175 uint32_t capability_bytes = static_cast<uint32_t>(sizeof(capability)); |
172 NaClSrpcError retval = | 176 NaClSrpcError retval = |
173 PppInstanceRpcClient::PPP_Instance_GetInstanceObject( | 177 PppInstanceRpcClient::PPP_Instance_GetInstanceObject( |
174 channel, | 178 channel, |
175 instance, | 179 instance, |
176 &capability_bytes, | 180 &capability_bytes, |
177 reinterpret_cast<char*>(&capability)); | 181 reinterpret_cast<char*>(&capability)); |
178 if (retval != NACL_SRPC_RESULT_OK) { | 182 if (retval != NACL_SRPC_RESULT_OK) { |
(...skipping 10 matching lines...) Expand all Loading... |
189 DidChangeView, | 193 DidChangeView, |
190 DidChangeFocus, | 194 DidChangeFocus, |
191 HandleInputEvent, | 195 HandleInputEvent, |
192 HandleDocumentLoad, | 196 HandleDocumentLoad, |
193 GetInstanceObject | 197 GetInstanceObject |
194 }; | 198 }; |
195 return &intf; | 199 return &intf; |
196 } | 200 } |
197 | 201 |
198 } // namespace ppapi_proxy | 202 } // namespace ppapi_proxy |
OLD | NEW |