Split BrowserThread into public API and private implementation, step 1.

Only content/ now has the ability to create BrowserThread objects,
with the exception that tests can create the
content::TestBrowserThread subclass, and (temporarily) code in chrome/
can create the DeprecatedBrowserThread subclass.

A follow-up change will make content/ take care of its own thread
creation, remove DeprecatedBrowserThread, and move all state and
non-trivial constructors from BrowserThread down to BrowserThreadImpl.

Also moved BrowserProcessSubThread into content/ namespace.  As part
of follow-up cleanup, chrome/ will stop using this class.

BUG=98716
TEST=existing

Review URL: http://codereview.chromium.org/8392042

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107718 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/browser_process_sub_thread.h b/content/browser/browser_process_sub_thread.h
index adbda97..ac3f8560 100644
--- a/content/browser/browser_process_sub_thread.h
+++ b/content/browser/browser_process_sub_thread.h
@@ -7,13 +7,15 @@
 #pragma once
 
 #include "base/basictypes.h"
-#include "content/browser/browser_thread.h"
+#include "content/browser/browser_thread_impl.h"
 #include "content/common/content_export.h"
 
 namespace content {
 class NotificationService;
 }
 
+namespace content {
+
 // ----------------------------------------------------------------------------
 // BrowserProcessSubThread
 //
@@ -23,7 +25,7 @@
 // Applications must initialize the COM library before they can call
 // COM library functions other than CoGetMalloc and memory allocation
 // functions, so this class initializes COM for those users.
-class CONTENT_EXPORT BrowserProcessSubThread : public BrowserThread {
+class CONTENT_EXPORT BrowserProcessSubThread : public BrowserThreadImpl {
  public:
   explicit BrowserProcessSubThread(BrowserThread::ID identifier);
   virtual ~BrowserProcessSubThread();
@@ -36,9 +38,11 @@
   // Each specialized thread has its own notification service.
   // Note: We don't use scoped_ptr because the destructor runs on the wrong
   // thread.
-  content::NotificationService* notification_service_;
+  NotificationService* notification_service_;
 
   DISALLOW_COPY_AND_ASSIGN(BrowserProcessSubThread);
 };
 
+}  // namespace content
+
 #endif  // CONTENT_BROWSER_BROWSER_PROCESS_SUB_THREAD_H_