diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-23 14:27:42 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-23 14:27:42 +0000 |
commit | aed965375dec978e7feb8722b1b94250a2a6e039 (patch) | |
tree | 9f8ccdf7a3902fa1db54e0c036f7cb9ca96775fb /ppapi/proxy/ppb_audio_proxy.cc | |
parent | 94bd0a2e94c1f07ccc0236a95e57a2e16b94038a (diff) | |
download | chromium_src-aed965375dec978e7feb8722b1b94250a2a6e039.zip chromium_src-aed965375dec978e7feb8722b1b94250a2a6e039.tar.gz chromium_src-aed965375dec978e7feb8722b1b94250a2a6e039.tar.bz2 |
PPAPI: Make blocking completion callbacks work.
This also makes scoped_refptr<TrackedCallback> the "new" way to pass completion callbacks in an API. This allows the Enter object to handle checking for blocking callbacks on the main thread to report error, and blocking if on the background thread. This way, interfaces don't have to write any special cases for blocking callbacks.
When built with enable_pepper_threading=1 locally, URLLoader tests all pass for blocking completion callbacks. I haven't updated all tests yet.
BUG=92909
TEST=
Review URL: https://chromiumcodereview.appspot.com/10081020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143806 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_audio_proxy.cc')
-rw-r--r-- | ppapi/proxy/ppb_audio_proxy.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ppapi/proxy/ppb_audio_proxy.cc b/ppapi/proxy/ppb_audio_proxy.cc index 380bc39..7b2c015 100644 --- a/ppapi/proxy/ppb_audio_proxy.cc +++ b/ppapi/proxy/ppb_audio_proxy.cc @@ -47,8 +47,9 @@ class Audio : public Resource, public PPB_Audio_Shared { virtual PP_Resource GetCurrentConfig() OVERRIDE; virtual PP_Bool StartPlayback() OVERRIDE; virtual PP_Bool StopPlayback() OVERRIDE; - virtual int32_t OpenTrusted(PP_Resource config_id, - PP_CompletionCallback create_callback) OVERRIDE; + virtual int32_t OpenTrusted( + PP_Resource config_id, + scoped_refptr<TrackedCallback> create_callback) OVERRIDE; virtual int32_t GetSyncSocket(int* sync_socket) OVERRIDE; virtual int32_t GetSharedMemory(int* shm_handle, uint32_t* shm_size) OVERRIDE; @@ -105,7 +106,7 @@ PP_Bool Audio::StopPlayback() { } int32_t Audio::OpenTrusted(PP_Resource config_id, - PP_CompletionCallback create_callback) { + scoped_refptr<TrackedCallback> create_callback) { return PP_ERROR_NOTSUPPORTED; // Don't proxy the trusted interface. } |