OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/proxy/ppb_instance_proxy.h" | 5 #include "ppapi/proxy/ppb_instance_proxy.h" |
6 | 6 |
7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 #include "media/base/limits.h" |
9 #include "ppapi/c/pp_errors.h" | 10 #include "ppapi/c/pp_errors.h" |
10 #include "ppapi/c/pp_time.h" | 11 #include "ppapi/c/pp_time.h" |
11 #include "ppapi/c/pp_var.h" | 12 #include "ppapi/c/pp_var.h" |
12 #include "ppapi/c/ppb_audio_config.h" | 13 #include "ppapi/c/ppb_audio_config.h" |
13 #include "ppapi/c/ppb_instance.h" | 14 #include "ppapi/c/ppb_instance.h" |
14 #include "ppapi/c/ppb_messaging.h" | 15 #include "ppapi/c/ppb_messaging.h" |
15 #include "ppapi/c/ppb_mouse_lock.h" | 16 #include "ppapi/c/ppb_mouse_lock.h" |
16 #include "ppapi/c/private/pp_content_decryptor.h" | 17 #include "ppapi/c/private/pp_content_decryptor.h" |
17 #include "ppapi/proxy/broker_resource.h" | 18 #include "ppapi/proxy/broker_resource.h" |
18 #include "ppapi/proxy/browser_font_singleton_resource.h" | 19 #include "ppapi/proxy/browser_font_singleton_resource.h" |
19 #include "ppapi/proxy/content_decryptor_private_serializer.h" | 20 #include "ppapi/proxy/content_decryptor_private_serializer.h" |
20 #include "ppapi/proxy/enter_proxy.h" | 21 #include "ppapi/proxy/enter_proxy.h" |
21 #include "ppapi/proxy/file_mapping_resource.h" | 22 #include "ppapi/proxy/file_mapping_resource.h" |
22 #include "ppapi/proxy/flash_clipboard_resource.h" | 23 #include "ppapi/proxy/flash_clipboard_resource.h" |
23 #include "ppapi/proxy/flash_file_resource.h" | 24 #include "ppapi/proxy/flash_file_resource.h" |
24 #include "ppapi/proxy/flash_fullscreen_resource.h" | 25 #include "ppapi/proxy/flash_fullscreen_resource.h" |
25 #include "ppapi/proxy/flash_resource.h" | 26 #include "ppapi/proxy/flash_resource.h" |
26 #include "ppapi/proxy/gamepad_resource.h" | 27 #include "ppapi/proxy/gamepad_resource.h" |
27 #include "ppapi/proxy/host_dispatcher.h" | 28 #include "ppapi/proxy/host_dispatcher.h" |
28 #include "ppapi/proxy/isolated_file_system_private_resource.h" | 29 #include "ppapi/proxy/isolated_file_system_private_resource.h" |
29 #include "ppapi/proxy/message_handler.h" | 30 #include "ppapi/proxy/message_handler.h" |
30 #include "ppapi/proxy/network_proxy_resource.h" | 31 #include "ppapi/proxy/network_proxy_resource.h" |
31 #include "ppapi/proxy/pdf_resource.h" | 32 #include "ppapi/proxy/pdf_resource.h" |
32 #include "ppapi/proxy/plugin_dispatcher.h" | 33 #include "ppapi/proxy/plugin_dispatcher.h" |
33 #include "ppapi/proxy/ppapi_messages.h" | 34 #include "ppapi/proxy/ppapi_messages.h" |
34 #include "ppapi/proxy/serialized_var.h" | 35 #include "ppapi/proxy/serialized_var.h" |
35 #include "ppapi/proxy/truetype_font_singleton_resource.h" | 36 #include "ppapi/proxy/truetype_font_singleton_resource.h" |
36 #include "ppapi/proxy/uma_private_resource.h" | 37 #include "ppapi/proxy/uma_private_resource.h" |
| 38 #include "ppapi/shared_impl/array_var.h" |
37 #include "ppapi/shared_impl/ppapi_globals.h" | 39 #include "ppapi/shared_impl/ppapi_globals.h" |
38 #include "ppapi/shared_impl/ppb_url_util_shared.h" | 40 #include "ppapi/shared_impl/ppb_url_util_shared.h" |
39 #include "ppapi/shared_impl/ppb_view_shared.h" | 41 #include "ppapi/shared_impl/ppb_view_shared.h" |
| 42 #include "ppapi/shared_impl/scoped_pp_var.h" |
40 #include "ppapi/shared_impl/var.h" | 43 #include "ppapi/shared_impl/var.h" |
41 #include "ppapi/thunk/enter.h" | 44 #include "ppapi/thunk/enter.h" |
42 #include "ppapi/thunk/ppb_compositor_api.h" | 45 #include "ppapi/thunk/ppb_compositor_api.h" |
43 #include "ppapi/thunk/ppb_graphics_2d_api.h" | 46 #include "ppapi/thunk/ppb_graphics_2d_api.h" |
44 #include "ppapi/thunk/ppb_graphics_3d_api.h" | 47 #include "ppapi/thunk/ppb_graphics_3d_api.h" |
45 #include "ppapi/thunk/thunk.h" | 48 #include "ppapi/thunk/thunk.h" |
46 | 49 |
47 // Windows headers interfere with this file. | 50 // Windows headers interfere with this file. |
48 #ifdef PostMessage | 51 #ifdef PostMessage |
49 #undef PostMessage | 52 #undef PostMessage |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument, | 175 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument, |
173 OnHostMsgDocumentCanAccessDocument) | 176 OnHostMsgDocumentCanAccessDocument) |
174 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginInstanceURL, | 177 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginInstanceURL, |
175 OnHostMsgGetPluginInstanceURL) | 178 OnHostMsgGetPluginInstanceURL) |
176 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginReferrerURL, | 179 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginReferrerURL, |
177 OnHostMsgGetPluginReferrerURL) | 180 OnHostMsgGetPluginReferrerURL) |
178 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolved, | 181 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolved, |
179 OnHostMsgPromiseResolved) | 182 OnHostMsgPromiseResolved) |
180 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolvedWithSession, | 183 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolvedWithSession, |
181 OnHostMsgPromiseResolvedWithSession) | 184 OnHostMsgPromiseResolvedWithSession) |
| 185 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolvedWithKeyIds, |
| 186 OnHostMsgPromiseResolvedWithKeyIds) |
182 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseRejected, | 187 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseRejected, |
183 OnHostMsgPromiseRejected) | 188 OnHostMsgPromiseRejected) |
184 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionMessage, | 189 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionMessage, |
185 OnHostMsgSessionMessage) | 190 OnHostMsgSessionMessage) |
| 191 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionKeysChange, |
| 192 OnHostMsgSessionKeysChange) |
| 193 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionExpirationChange, |
| 194 OnHostMsgSessionExpirationChange) |
186 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionReady, | 195 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionReady, |
187 OnHostMsgSessionReady) | 196 OnHostMsgSessionReady) |
188 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionClosed, | 197 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionClosed, |
189 OnHostMsgSessionClosed) | 198 OnHostMsgSessionClosed) |
190 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionError, | 199 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionError, |
191 OnHostMsgSessionError) | 200 OnHostMsgSessionError) |
192 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DeliverBlock, | 201 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DeliverBlock, |
193 OnHostMsgDeliverBlock) | 202 OnHostMsgDeliverBlock) |
194 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DecoderInitializeDone, | 203 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DecoderInitializeDone, |
195 OnHostMsgDecoderInitializeDone) | 204 OnHostMsgDecoderInitializeDone) |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 void PPB_Instance_Proxy::PromiseResolvedWithSession(PP_Instance instance, | 579 void PPB_Instance_Proxy::PromiseResolvedWithSession(PP_Instance instance, |
571 uint32 promise_id, | 580 uint32 promise_id, |
572 PP_Var web_session_id_var) { | 581 PP_Var web_session_id_var) { |
573 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseResolvedWithSession( | 582 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseResolvedWithSession( |
574 API_ID_PPB_INSTANCE, | 583 API_ID_PPB_INSTANCE, |
575 instance, | 584 instance, |
576 promise_id, | 585 promise_id, |
577 SerializedVarSendInput(dispatcher(), web_session_id_var))); | 586 SerializedVarSendInput(dispatcher(), web_session_id_var))); |
578 } | 587 } |
579 | 588 |
| 589 void PPB_Instance_Proxy::PromiseResolvedWithKeyIds(PP_Instance instance, |
| 590 uint32 promise_id, |
| 591 PP_Var key_ids_var) { |
| 592 ArrayVar* key_ids_array = ArrayVar::FromPPVar(key_ids_var); |
| 593 if (!key_ids_array || |
| 594 key_ids_array->GetLength() > media::limits::kMaxKeyIds) { |
| 595 NOTREACHED(); |
| 596 return; |
| 597 } |
| 598 |
| 599 std::vector<std::vector<uint8_t> > key_ids; |
| 600 for (size_t i = 0; i < key_ids_array->GetLength(); ++i) { |
| 601 ArrayBufferVar* key_id = ArrayBufferVar::FromPPVar(key_ids_array->Get(i)); |
| 602 if (!key_id || key_id->ByteLength() < media::limits::kMinKeyIdLength || |
| 603 key_id->ByteLength() > media::limits::kMaxKeyIdLength) { |
| 604 NOTREACHED(); |
| 605 continue; |
| 606 } |
| 607 |
| 608 const uint8_t* key_id_ptr = static_cast<const uint8_t*>(key_id->Map()); |
| 609 const uint32_t key_id_size = key_id->ByteLength(); |
| 610 std::vector<uint8_t> key_id_vector(key_id_ptr, key_id_ptr + key_id_size); |
| 611 key_ids.push_back(key_id_vector); |
| 612 } |
| 613 |
| 614 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseResolvedWithKeyIds( |
| 615 API_ID_PPB_INSTANCE, instance, promise_id, key_ids)); |
| 616 } |
| 617 |
580 void PPB_Instance_Proxy::PromiseRejected(PP_Instance instance, | 618 void PPB_Instance_Proxy::PromiseRejected(PP_Instance instance, |
581 uint32 promise_id, | 619 uint32 promise_id, |
582 PP_CdmExceptionCode exception_code, | 620 PP_CdmExceptionCode exception_code, |
583 uint32 system_code, | 621 uint32 system_code, |
584 PP_Var error_description_var) { | 622 PP_Var error_description_var) { |
585 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseRejected( | 623 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseRejected( |
586 API_ID_PPB_INSTANCE, | 624 API_ID_PPB_INSTANCE, |
587 instance, | 625 instance, |
588 promise_id, | 626 promise_id, |
589 exception_code, | 627 exception_code, |
590 system_code, | 628 system_code, |
591 SerializedVarSendInput(dispatcher(), error_description_var))); | 629 SerializedVarSendInput(dispatcher(), error_description_var))); |
592 } | 630 } |
593 | 631 |
594 void PPB_Instance_Proxy::SessionMessage(PP_Instance instance, | 632 void PPB_Instance_Proxy::SessionMessage(PP_Instance instance, |
595 PP_Var web_session_id_var, | 633 PP_Var web_session_id_var, |
596 PP_Var message_var, | 634 PP_Var message_var, |
597 PP_Var destination_url_var) { | 635 PP_Var destination_url_var) { |
598 dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionMessage( | 636 dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionMessage( |
599 API_ID_PPB_INSTANCE, | 637 API_ID_PPB_INSTANCE, |
600 instance, | 638 instance, |
601 SerializedVarSendInput(dispatcher(), web_session_id_var), | 639 SerializedVarSendInput(dispatcher(), web_session_id_var), |
602 SerializedVarSendInput(dispatcher(), message_var), | 640 SerializedVarSendInput(dispatcher(), message_var), |
603 SerializedVarSendInput(dispatcher(), destination_url_var))); | 641 SerializedVarSendInput(dispatcher(), destination_url_var))); |
604 } | 642 } |
605 | 643 |
| 644 void PPB_Instance_Proxy::SessionKeysChange(PP_Instance instance, |
| 645 PP_Var web_session_id_var, |
| 646 PP_Bool has_additional_usable_key) { |
| 647 StringVar* session_id = StringVar::FromPPVar(web_session_id_var); |
| 648 if (!session_id || |
| 649 session_id->value().length() > media::limits::kMaxWebSessionIdLength) { |
| 650 NOTREACHED(); |
| 651 return; |
| 652 } |
| 653 |
| 654 dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionKeysChange( |
| 655 API_ID_PPB_INSTANCE, |
| 656 instance, |
| 657 session_id->value(), |
| 658 has_additional_usable_key)); |
| 659 } |
| 660 |
| 661 void PPB_Instance_Proxy::SessionExpirationChange(PP_Instance instance, |
| 662 PP_Var web_session_id_var, |
| 663 PP_Time new_expiry_time) { |
| 664 StringVar* session_id = StringVar::FromPPVar(web_session_id_var); |
| 665 if (!session_id || |
| 666 session_id->value().length() > media::limits::kMaxWebSessionIdLength) { |
| 667 NOTREACHED(); |
| 668 return; |
| 669 } |
| 670 |
| 671 dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionExpirationChange( |
| 672 API_ID_PPB_INSTANCE, instance, session_id->value(), new_expiry_time)); |
| 673 } |
| 674 |
606 void PPB_Instance_Proxy::SessionReady(PP_Instance instance, | 675 void PPB_Instance_Proxy::SessionReady(PP_Instance instance, |
607 PP_Var web_session_id_var) { | 676 PP_Var web_session_id_var) { |
608 dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionReady( | 677 dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionReady( |
609 API_ID_PPB_INSTANCE, | 678 API_ID_PPB_INSTANCE, |
610 instance, | 679 instance, |
611 SerializedVarSendInput(dispatcher(), web_session_id_var))); | 680 SerializedVarSendInput(dispatcher(), web_session_id_var))); |
612 } | 681 } |
613 | 682 |
614 void PPB_Instance_Proxy::SessionClosed(PP_Instance instance, | 683 void PPB_Instance_Proxy::SessionClosed(PP_Instance instance, |
615 PP_Var web_session_id_var) { | 684 PP_Var web_session_id_var) { |
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1191 SerializedVarReceiveInput web_session_id) { | 1260 SerializedVarReceiveInput web_session_id) { |
1192 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) | 1261 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) |
1193 return; | 1262 return; |
1194 EnterInstanceNoLock enter(instance); | 1263 EnterInstanceNoLock enter(instance); |
1195 if (enter.succeeded()) { | 1264 if (enter.succeeded()) { |
1196 enter.functions()->PromiseResolvedWithSession( | 1265 enter.functions()->PromiseResolvedWithSession( |
1197 instance, promise_id, web_session_id.Get(dispatcher())); | 1266 instance, promise_id, web_session_id.Get(dispatcher())); |
1198 } | 1267 } |
1199 } | 1268 } |
1200 | 1269 |
| 1270 void PPB_Instance_Proxy::OnHostMsgPromiseResolvedWithKeyIds( |
| 1271 PP_Instance instance, |
| 1272 uint32_t promise_id, |
| 1273 const std::vector<std::vector<uint8_t> >& key_ids) { |
| 1274 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) |
| 1275 return; |
| 1276 if (key_ids.size() > media::limits::kMaxKeyIds) { |
| 1277 NOTREACHED(); |
| 1278 return; |
| 1279 } |
| 1280 |
| 1281 scoped_refptr<ArrayVar> key_ids_array = new ArrayVar(); |
| 1282 key_ids_array->SetLength(key_ids.size()); |
| 1283 for (size_t i = 0; i < key_ids.size(); ++i) { |
| 1284 const std::vector<uint8_t>& entry = key_ids[i]; |
| 1285 if (entry.size() < media::limits::kMinKeyIdLength || |
| 1286 entry.size() > media::limits::kMaxKeyIdLength) { |
| 1287 NOTREACHED(); |
| 1288 continue; |
| 1289 } |
| 1290 key_ids_array->Set( |
| 1291 i, |
| 1292 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(entry.size(), |
| 1293 &entry[0])); |
| 1294 } |
| 1295 |
| 1296 EnterInstanceNoLock enter(instance); |
| 1297 if (enter.succeeded()) { |
| 1298 ScopedPPVar key_ids_var(ScopedPPVar::PassRef(), key_ids_array->GetPPVar()); |
| 1299 enter.functions()->PromiseResolvedWithKeyIds( |
| 1300 instance, promise_id, key_ids_var.get()); |
| 1301 } |
| 1302 } |
| 1303 |
1201 void PPB_Instance_Proxy::OnHostMsgPromiseRejected( | 1304 void PPB_Instance_Proxy::OnHostMsgPromiseRejected( |
1202 PP_Instance instance, | 1305 PP_Instance instance, |
1203 uint32_t promise_id, | 1306 uint32_t promise_id, |
1204 PP_CdmExceptionCode exception_code, | 1307 PP_CdmExceptionCode exception_code, |
1205 uint32_t system_code, | 1308 uint32_t system_code, |
1206 SerializedVarReceiveInput error_description) { | 1309 SerializedVarReceiveInput error_description) { |
1207 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) | 1310 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) |
1208 return; | 1311 return; |
1209 EnterInstanceNoLock enter(instance); | 1312 EnterInstanceNoLock enter(instance); |
1210 if (enter.succeeded()) { | 1313 if (enter.succeeded()) { |
(...skipping 14 matching lines...) Expand all Loading... |
1225 return; | 1328 return; |
1226 EnterInstanceNoLock enter(instance); | 1329 EnterInstanceNoLock enter(instance); |
1227 if (enter.succeeded()) { | 1330 if (enter.succeeded()) { |
1228 enter.functions()->SessionMessage(instance, | 1331 enter.functions()->SessionMessage(instance, |
1229 web_session_id.Get(dispatcher()), | 1332 web_session_id.Get(dispatcher()), |
1230 message.Get(dispatcher()), | 1333 message.Get(dispatcher()), |
1231 destination_url.Get(dispatcher())); | 1334 destination_url.Get(dispatcher())); |
1232 } | 1335 } |
1233 } | 1336 } |
1234 | 1337 |
| 1338 void PPB_Instance_Proxy::OnHostMsgSessionKeysChange( |
| 1339 PP_Instance instance, |
| 1340 const std::string& web_session_id, |
| 1341 PP_Bool has_additional_usable_key) { |
| 1342 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) |
| 1343 return; |
| 1344 EnterInstanceNoLock enter(instance); |
| 1345 if (enter.succeeded()) { |
| 1346 ScopedPPVar web_session_id_var(ScopedPPVar::PassRef(), |
| 1347 StringVar::StringToPPVar(web_session_id)); |
| 1348 enter.functions()->SessionKeysChange( |
| 1349 instance, web_session_id_var.get(), has_additional_usable_key); |
| 1350 } |
| 1351 } |
| 1352 |
| 1353 void PPB_Instance_Proxy::OnHostMsgSessionExpirationChange( |
| 1354 PP_Instance instance, |
| 1355 const std::string& web_session_id, |
| 1356 PP_Time new_expiry_time) { |
| 1357 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) |
| 1358 return; |
| 1359 EnterInstanceNoLock enter(instance); |
| 1360 if (enter.succeeded()) { |
| 1361 ScopedPPVar web_session_id_var(ScopedPPVar::PassRef(), |
| 1362 StringVar::StringToPPVar(web_session_id)); |
| 1363 enter.functions()->SessionExpirationChange( |
| 1364 instance, web_session_id_var.get(), new_expiry_time); |
| 1365 } |
| 1366 } |
| 1367 |
1235 void PPB_Instance_Proxy::OnHostMsgSessionReady( | 1368 void PPB_Instance_Proxy::OnHostMsgSessionReady( |
1236 PP_Instance instance, | 1369 PP_Instance instance, |
1237 SerializedVarReceiveInput web_session_id) { | 1370 SerializedVarReceiveInput web_session_id) { |
1238 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) | 1371 if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE)) |
1239 return; | 1372 return; |
1240 EnterInstanceNoLock enter(instance); | 1373 EnterInstanceNoLock enter(instance); |
1241 if (enter.succeeded()) { | 1374 if (enter.succeeded()) { |
1242 enter.functions()->SessionReady(instance, web_session_id.Get(dispatcher())); | 1375 enter.functions()->SessionReady(instance, web_session_id.Get(dispatcher())); |
1243 } | 1376 } |
1244 } | 1377 } |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1436 PP_Instance instance) { | 1569 PP_Instance instance) { |
1437 InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())-> | 1570 InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())-> |
1438 GetInstanceData(instance); | 1571 GetInstanceData(instance); |
1439 if (!data) | 1572 if (!data) |
1440 return; // Instance was probably deleted. | 1573 return; // Instance was probably deleted. |
1441 data->should_do_request_surrounding_text = false; | 1574 data->should_do_request_surrounding_text = false; |
1442 } | 1575 } |
1443 | 1576 |
1444 } // namespace proxy | 1577 } // namespace proxy |
1445 } // namespace ppapi | 1578 } // namespace ppapi |
OLD | NEW |