| Index: ppapi/proxy/ppb_testing_proxy.cc
|
| diff --git a/ppapi/proxy/ppb_testing_proxy.cc b/ppapi/proxy/ppb_testing_proxy.cc
|
| index 32d521543a15db0573592ff8998dbd91e7f4a519..734cf57eb85b0246742644e0743ac81a906c6729 100644
|
| --- a/ppapi/proxy/ppb_testing_proxy.cc
|
| +++ b/ppapi/proxy/ppb_testing_proxy.cc
|
| @@ -10,13 +10,14 @@
|
| #include "ppapi/proxy/plugin_dispatcher.h"
|
| #include "ppapi/proxy/ppapi_messages.h"
|
| #include "ppapi/shared_impl/ppapi_globals.h"
|
| +#include "ppapi/shared_impl/proxy_lock.h"
|
| #include "ppapi/shared_impl/resource.h"
|
| #include "ppapi/shared_impl/resource_tracker.h"
|
| #include "ppapi/thunk/enter.h"
|
| #include "ppapi/thunk/ppb_input_event_api.h"
|
|
|
| using ppapi::thunk::EnterInstance;
|
| -using ppapi::thunk::EnterResource;
|
| +using ppapi::thunk::EnterResourceNoLock;
|
| using ppapi::thunk::PPB_InputEvent_API;
|
|
|
| namespace ppapi {
|
| @@ -27,6 +28,7 @@ namespace {
|
| PP_Bool ReadImageData(PP_Resource graphics_2d,
|
| PP_Resource image,
|
| const PP_Point* top_left) {
|
| + ProxyAutoLock lock;
|
| Resource* image_object =
|
| PpapiGlobals::Get()->GetResourceTracker()->GetResource(image);
|
| if (!image_object)
|
| @@ -50,6 +52,7 @@ PP_Bool ReadImageData(PP_Resource graphics_2d,
|
| }
|
|
|
| void RunMessageLoop(PP_Instance instance) {
|
| + // TODO(dmichael): We should probably assert that this is the main thread.
|
| bool old_state = MessageLoop::current()->NestableTasksAllowed();
|
| MessageLoop::current()->SetNestableTasksAllowed(true);
|
| MessageLoop::current()->Run();
|
| @@ -57,10 +60,12 @@ void RunMessageLoop(PP_Instance instance) {
|
| }
|
|
|
| void QuitMessageLoop(PP_Instance instance) {
|
| + // TODO(dmichael): We should probably assert that this is the main thread.
|
| MessageLoop::current()->QuitNow();
|
| }
|
|
|
| uint32_t GetLiveObjectsForInstance(PP_Instance instance_id) {
|
| + ProxyAutoLock lock;
|
| PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
|
| if (!dispatcher)
|
| return static_cast<uint32_t>(-1);
|
| @@ -76,10 +81,11 @@ PP_Bool IsOutOfProcess() {
|
| }
|
|
|
| void SimulateInputEvent(PP_Instance instance_id, PP_Resource input_event) {
|
| + ProxyAutoLock lock;
|
| PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
|
| if (!dispatcher)
|
| return;
|
| - EnterResource<PPB_InputEvent_API> enter(input_event, false);
|
| + EnterResourceNoLock<PPB_InputEvent_API> enter(input_event, false);
|
| if (enter.failed())
|
| return;
|
|
|
| @@ -99,6 +105,7 @@ PP_Var GetDocumentURL(PP_Instance instance, PP_URLComponents_Dev* components) {
|
| // host-side tracker when running out-of-process, to make sure the proxy does
|
| // not leak host-side vars.
|
| uint32_t GetLiveVars(PP_Var live_vars[], uint32_t array_size) {
|
| + ProxyAutoLock lock;
|
| std::vector<PP_Var> vars =
|
| PpapiGlobals::Get()->GetVarTracker()->GetLiveVars();
|
| for (size_t i = 0u;
|
|
|