| 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..958f57864b5b739dc4ec0d260606a28911a5986a 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,34 @@ 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);
|
| +}
|
| +
|
| +bool PpapiGlobals::IsHostGlobals() const {
|
| + return false;
|
| +}
|
| +
|
| +bool PpapiGlobals::IsPluginGlobals() const {
|
| + return false;
|
| +}
|
| +
|
| +// static
|
| +PpapiGlobals* PpapiGlobals::GetThreadLocalPointer() {
|
| + return tls_ppapi_globals_for_test.Get();
|
| +}
|
| +
|
| } // namespace ppapi
|
|
|