blob: fe40965991af1dff25b61ec8e25d99d08b23d064 [file] [log] [blame]
// Copyright 2017 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.
#ifndef CHROME_BROWSER_SAFE_BROWSING_CHROME_CLEANER_SRT_CHROME_PROMPT_IMPL_WIN_H_
#define CHROME_BROWSER_SAFE_BROWSING_CHROME_CLEANER_SRT_CHROME_PROMPT_IMPL_WIN_H_
#include <memory>
#include <set>
#include <vector>
#include "base/callback.h"
#include "base/files/file_path.h"
#include "base/macros.h"
#include "base/optional.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_scanner_results_win.h"
#include "components/chrome_cleaner/public/interfaces/chrome_prompt.mojom.h"
#include "mojo/public/cpp/bindings/binding.h"
namespace safe_browsing {
// Implementation of the ChromePrompt Mojo interface. Must be constructed and
// destructed on the IO thread.
class ChromePromptImpl : public chrome_cleaner::mojom::ChromePrompt {
public:
using OnPromptUser = base::OnceCallback<void(
ChromeCleanerScannerResults&&,
chrome_cleaner::mojom::ChromePrompt::PromptUserCallback)>;
ChromePromptImpl(extensions::ExtensionService* extension_service,
chrome_cleaner::mojom::ChromePromptRequest request,
base::OnceClosure on_connection_closed,
OnPromptUser on_prompt_user);
~ChromePromptImpl() override;
void PromptUser(
const std::vector<base::FilePath>& files_to_delete,
const base::Optional<std::vector<base::string16>>& registry_keys,
const base::Optional<std::vector<base::string16>>& extension_ids,
chrome_cleaner::mojom::ChromePrompt::PromptUserCallback callback)
override;
void DisableExtensions(
const std::vector<base::string16>& extension_ids,
chrome_cleaner::mojom::ChromePrompt::DisableExtensionsCallback callback)
override;
private:
mojo::Binding<chrome_cleaner::mojom::ChromePrompt> binding_;
extensions::ExtensionService* extension_service_;
OnPromptUser on_prompt_user_;
std::vector<base::string16> extension_ids_;
DISALLOW_COPY_AND_ASSIGN(ChromePromptImpl);
};
} // namespace safe_browsing
#endif // CHROME_BROWSER_SAFE_BROWSING_CHROME_CLEANER_SRT_CHROME_PROMPT_IMPL_WIN_H_