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