| // 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/process_singleton_modal_dialog_lock.h" |
| |
| #include <utility> |
| |
| #include "base/bind.h" |
| |
| ProcessSingletonModalDialogLock::ProcessSingletonModalDialogLock( |
| const ProcessSingleton::NotificationCallback& original_callback) |
| : original_callback_(original_callback) {} |
| |
| ProcessSingletonModalDialogLock::~ProcessSingletonModalDialogLock() {} |
| |
| void ProcessSingletonModalDialogLock::SetModalDialogNotificationHandler( |
| base::RepeatingClosure notification_handler) { |
| notification_handler_ = std::move(notification_handler); |
| } |
| |
| ProcessSingleton::NotificationCallback |
| ProcessSingletonModalDialogLock::AsNotificationCallback() { |
| return base::BindRepeating( |
| &ProcessSingletonModalDialogLock::NotificationCallbackImpl, |
| base::Unretained(this)); |
| } |
| |
| bool ProcessSingletonModalDialogLock::NotificationCallbackImpl( |
| const base::CommandLine& command_line, |
| const base::FilePath& current_directory) { |
| if (notification_handler_) |
| notification_handler_.Run(); |
| |
| return original_callback_.Run(command_line, current_directory); |
| } |