Home | History | Annotate | Download | only in browser
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "build/build_config.h"
      6 #include "chrome/browser/browser_process_sub_thread.h"
      7 #include "content/common/notification_service.h"
      8 
      9 #if defined(OS_WIN)
     10 #include <Objbase.h>
     11 #endif
     12 
     13 BrowserProcessSubThread::BrowserProcessSubThread(BrowserThread::ID identifier)
     14       : BrowserThread(identifier) {}
     15 
     16 BrowserProcessSubThread::~BrowserProcessSubThread() {
     17   // We cannot rely on our base class to stop the thread since we want our
     18   // CleanUp function to run.
     19   Stop();
     20 }
     21 
     22 void BrowserProcessSubThread::Init() {
     23 #if defined(OS_WIN)
     24   // Initializes the COM library on the current thread.
     25   CoInitialize(NULL);
     26 #endif
     27 
     28   notification_service_ = new NotificationService;
     29 }
     30 
     31 void BrowserProcessSubThread::CleanUp() {
     32   delete notification_service_;
     33   notification_service_ = NULL;
     34 
     35 #if defined(OS_WIN)
     36   // Closes the COM library on the current thread. CoInitialize must
     37   // be balanced by a corresponding call to CoUninitialize.
     38   CoUninitialize();
     39 #endif
     40 }
     41