forked from electron/electron
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplatform_util.cc
More file actions
45 lines (37 loc) · 1.42 KB
/
platform_util.cc
File metadata and controls
45 lines (37 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright (c) 2020 Slack Technologies, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#include "shell/common/platform_util.h"
#include <utility>
#include "base/functional/bind.h"
#include "base/task/thread_pool.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "shell/common/platform_util_internal.h"
namespace platform_util {
struct TrashItemResult {
bool success;
std::string error;
};
TrashItemResult TrashItemOnBlockingThread(const base::FilePath& full_path) {
std::string error;
bool success = internal::PlatformTrashItem(full_path, &error);
return {success, error};
}
void TrashItem(const base::FilePath& full_path,
base::OnceCallback<void(bool, const std::string&)> callback) {
// XXX: is continue_on_shutdown right?
base::ThreadPool::PostTaskAndReplyWithResult(
FROM_HERE,
{base::MayBlock(), base::WithBaseSyncPrimitives(),
base::TaskPriority::USER_BLOCKING,
base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
base::BindOnce(&TrashItemOnBlockingThread, full_path),
base::BindOnce(
[](base::OnceCallback<void(bool, const std::string&)> callback,
TrashItemResult result) {
std::move(callback).Run(result.success, result.error);
},
std::move(callback)));
}
} // namespace platform_util