| 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..859b034be8cf2e8434de4ea464433ac6a09e56af 100644
|
| --- a/ppapi/shared_impl/ppapi_globals.cc
|
| +++ b/ppapi/shared_impl/ppapi_globals.cc
|
| @@ -8,6 +8,12 @@
|
|
|
| namespace ppapi {
|
|
|
| +namespace {
|
| +
|
| +base::ThreadLocalPointer<PpapiGlobals> tls_ppapi_globals_for_test;
|
| +
|
| +} // namespace
|
| +
|
| PpapiGlobals* PpapiGlobals::ppapi_globals_ = NULL;
|
|
|
| PpapiGlobals::PpapiGlobals() {
|
| @@ -15,9 +21,26 @@ PpapiGlobals::PpapiGlobals() {
|
| 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_);
|
| + tls_ppapi_globals_for_test.Set(ptr);
|
| +}
|
| +
|
| +// static
|
| +PpapiGlobals* PpapiGlobals::GetThreadLocalPointer() {
|
| + return tls_ppapi_globals_for_test.Get();
|
| +}
|
| +
|
| } // namespace ppapi
|
|
|