PPAPI: Remove threading options; it's always on

This also re-enables thread checking for the host side resource and var trackers. Before, checking was disabled everywhere.

BUG=159240,92909


Committed: r186925
Reverted: r186939 due to build errors

Committed: r187340

Committed: r187427
Reverted: r187668 due to a failing check in Canary, which was fixed here: r187681

Committed: r189518
Reverted: r189682, due to regression in Kraken (see crbug.com/222741)

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=191420
Reverted: r191441, due to new failing PDFResource unit test.

Review URL: https://chromiumcodereview.appspot.com/12378050

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191510 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ppapi/shared_impl/var_tracker.cc b/ppapi/shared_impl/var_tracker.cc
index 434121e..951577c 100644
--- a/ppapi/shared_impl/var_tracker.cc
+++ b/ppapi/shared_impl/var_tracker.cc
@@ -29,22 +29,29 @@
       track_with_no_reference_count(0) {
 }
 
-VarTracker::VarTracker() : last_var_id_(0) {
+VarTracker::VarTracker(ThreadMode thread_mode) : last_var_id_(0) {
+  if (thread_mode == SINGLE_THREADED)
+    thread_checker_.reset(new base::ThreadChecker);
 }
 
 VarTracker::~VarTracker() {
 }
 
-int32 VarTracker::AddVar(Var* var) {
-  DCHECK(CalledOnValidThread());
+void VarTracker::CheckThreadingPreconditions() const {
+  DCHECK(!thread_checker_ || thread_checker_->CalledOnValidThread());
+#ifndef NDEBUG
   ProxyLock::AssertAcquired();
+#endif
+}
+
+int32 VarTracker::AddVar(Var* var) {
+  CheckThreadingPreconditions();
 
   return AddVarInternal(var, ADD_VAR_TAKE_ONE_REFERENCE);
 }
 
 Var* VarTracker::GetVar(int32 var_id) const {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   VarMap::const_iterator result = live_vars_.find(var_id);
   if (result == live_vars_.end())
@@ -53,8 +60,7 @@
 }
 
 Var* VarTracker::GetVar(const PP_Var& var) const {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   if (!IsVarTypeRefcounted(var.type))
     return NULL;
@@ -62,8 +68,7 @@
 }
 
 bool VarTracker::AddRefVar(int32 var_id) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   DLOG_IF(ERROR, !CheckIdType(var_id, PP_ID_TYPE_VAR))
       << var_id << " is not a PP_Var ID.";
@@ -88,8 +93,7 @@
 }
 
 bool VarTracker::AddRefVar(const PP_Var& var) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   if (!IsVarTypeRefcounted(var.type))
     return true;
@@ -97,8 +101,7 @@
 }
 
 bool VarTracker::ReleaseVar(int32 var_id) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   DLOG_IF(ERROR, !CheckIdType(var_id, PP_ID_TYPE_VAR))
       << var_id << " is not a PP_Var ID.";
@@ -129,8 +132,7 @@
 }
 
 bool VarTracker::ReleaseVar(const PP_Var& var) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   if (!IsVarTypeRefcounted(var.type))
     return false;
@@ -154,8 +156,7 @@
 }
 
 int VarTracker::GetRefCountForObject(const PP_Var& plugin_object) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   VarMap::iterator found = GetLiveVar(plugin_object);
   if (found == live_vars_.end())
@@ -165,8 +166,7 @@
 
 int VarTracker::GetTrackedWithNoReferenceCountForObject(
     const PP_Var& plugin_object) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   VarMap::iterator found = GetLiveVar(plugin_object);
   if (found == live_vars_.end())
@@ -188,8 +188,7 @@
 }
 
 PP_Var VarTracker::MakeArrayBufferPPVar(uint32 size_in_bytes) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   scoped_refptr<ArrayBufferVar> array_buffer(CreateArrayBuffer(size_in_bytes));
   if (!array_buffer)
@@ -199,8 +198,7 @@
 
 PP_Var VarTracker::MakeArrayBufferPPVar(uint32 size_in_bytes,
                                         const void* data) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   ArrayBufferVar* array_buffer = MakeArrayBufferVar(size_in_bytes, data);
   return array_buffer ? array_buffer->GetPPVar() : PP_MakeNull();
@@ -208,8 +206,7 @@
 
 ArrayBufferVar* VarTracker::MakeArrayBufferVar(uint32 size_in_bytes,
                                                const void* data) {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   ArrayBufferVar* array_buffer(CreateArrayBuffer(size_in_bytes));
   if (!array_buffer)
@@ -220,7 +217,7 @@
 
 PP_Var VarTracker::MakeArrayBufferPPVar(uint32 size_in_bytes,
                                         base::SharedMemoryHandle handle) {
-  DCHECK(CalledOnValidThread());
+  CheckThreadingPreconditions();
 
   scoped_refptr<ArrayBufferVar> array_buffer(
       CreateShmArrayBuffer(size_in_bytes, handle));
@@ -230,8 +227,7 @@
 }
 
 std::vector<PP_Var> VarTracker::GetLiveVars() {
-  DCHECK(CalledOnValidThread());
-  ProxyLock::AssertAcquired();
+  CheckThreadingPreconditions();
 
   std::vector<PP_Var> var_vector;
   var_vector.reserve(live_vars_.size());