| // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/chrome_process_singleton.h" |
| |
| ChromeProcessSingleton::ChromeProcessSingleton( |
| const base::FilePath& user_data_dir, |
| const ProcessSingleton::NotificationCallback& notification_callback) |
| : startup_lock_(notification_callback), |
| modal_dialog_lock_(startup_lock_.AsNotificationCallback()), |
| process_singleton_(user_data_dir, |
| modal_dialog_lock_.AsNotificationCallback()) { |
| } |
| |
| |
| ChromeProcessSingleton::ChromeProcessSingleton( |
| const base::FilePath& user_data_dir, |
| const ProcessSingleton::NotificationCallback& notification_callback, |
| const ProcessSingletonModalDialogLock::SetForegroundWindowHandler& |
| set_foreground_window_handler) |
| : startup_lock_(notification_callback), |
| modal_dialog_lock_(startup_lock_.AsNotificationCallback(), |
| set_foreground_window_handler), |
| process_singleton_(user_data_dir, |
| modal_dialog_lock_.AsNotificationCallback()) { |
| } |
| |
| ChromeProcessSingleton::~ChromeProcessSingleton() { |
| } |
| |
| ProcessSingleton::NotifyResult |
| ChromeProcessSingleton::NotifyOtherProcessOrCreate() { |
| return process_singleton_.NotifyOtherProcessOrCreate(); |
| } |
| |
| void ChromeProcessSingleton::Cleanup() { |
| process_singleton_.Cleanup(); |
| } |
| |
| void ChromeProcessSingleton::SetActiveModalDialog( |
| gfx::NativeWindow active_dialog) { |
| modal_dialog_lock_.SetActiveModalDialog(active_dialog); |
| } |
| |
| void ChromeProcessSingleton::Unlock() { |
| startup_lock_.Unlock(); |
| } |