blob: 5dc43ea0e07e0e4c32bb90cd1b630b10e5af8885 [file] [log] [blame]
// 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);
}