| Index: ppapi/shared_impl/ppapi_globals.cc
|
| diff --git a/ppapi/shared_impl/ppapi_globals.cc b/ppapi/shared_impl/ppapi_globals.cc
|
| index 9b5e9a82cb3fede21d10ab13b46f095acb127d8f..3e71bb388b5a79f6bd3d992989638658b2389e77 100644
|
| --- a/ppapi/shared_impl/ppapi_globals.cc
|
| +++ b/ppapi/shared_impl/ppapi_globals.cc
|
| @@ -9,15 +9,28 @@
|
| namespace ppapi {
|
|
|
| PpapiGlobals* PpapiGlobals::ppapi_globals_ = NULL;
|
| +base::ThreadLocalPointer<PpapiGlobals> PpapiGlobals::ppapi_globals_for_test_;
|
|
|
| PpapiGlobals::PpapiGlobals() {
|
| DCHECK(!ppapi_globals_);
|
| ppapi_globals_ = this;
|
| }
|
|
|
| +PpapiGlobals::PpapiGlobals(ForTest) {
|
| + DCHECK(!ppapi_globals_);
|
| +}
|
| +
|
| PpapiGlobals::~PpapiGlobals() {
|
| - DCHECK(ppapi_globals_ == this);
|
| + DCHECK(ppapi_globals_ == this || !ppapi_globals_);
|
| ppapi_globals_ = NULL;
|
| }
|
|
|
| +// static
|
| +void PpapiGlobals::SetPpapiGlobalsOnThreadForTest(PpapiGlobals* ptr) {
|
| + // If we're using a per-thread PpapiGlobals, we should not have a global one.
|
| + // If we allowed it, it would always over-ride the "test" versions.
|
| + DCHECK(!ppapi_globals_);
|
| + ppapi_globals_for_test_.Set(ptr);
|
| +}
|
| +
|
| } // namespace ppapi
|
|
|