Commit bf8f4bb1 authored by Ella Ge's avatar Ella Ge Committed by Commit Bot

Convert Run(AsyncRequest)OnUIThreadBlocking to BindOnce

Bug: 1007635
Change-Id: Ie0446525178ec1e6e97fd0ec0f3550ea53eb5942
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2275747Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#784519}
parent 33fc206c
......@@ -25,15 +25,15 @@ class BlockingUIThreadAsyncRequest {
// Make sure that the response is also delivered to the UI thread.
// The request argument can be defined using base::Bind.
template <typename Signature>
void RunAsyncRequestOnUIThreadBlocking(base::Callback<Signature> request) {
void RunAsyncRequestOnUIThreadBlocking(
base::OnceCallback<Signature> request) {
DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
// Make the request in the UI thread.
request_completed_.Reset();
RunOnUIThreadBlocking::Run(
base::Bind(
&BlockingUIThreadAsyncRequest::RunRequestOnUIThread<Signature>,
request));
RunOnUIThreadBlocking::Run(base::BindOnce(
&BlockingUIThreadAsyncRequest::RunRequestOnUIThread<Signature>,
std::move(request)));
// Wait until the request callback invokes Finished.
request_completed_.Wait();
......@@ -44,8 +44,8 @@ class BlockingUIThreadAsyncRequest {
private:
template <typename Signature>
static void RunRequestOnUIThread(base::Callback<Signature> request) {
request.Run();
static void RunRequestOnUIThread(base::OnceCallback<Signature> request) {
std::move(request).Run();
}
base::WaitableEvent request_completed_;
......
......@@ -162,9 +162,9 @@ class AddBookmarkTask : public BookmarkModelTask {
const bool is_folder,
const int64_t parent_id) {
int64_t result = kInvalidBookmarkId;
RunOnUIThreadBlocking::Run(
base::Bind(&AddBookmarkTask::RunOnUIThread,
model(), title, url, is_folder, parent_id, &result));
RunOnUIThreadBlocking::Run(base::BindOnce(&AddBookmarkTask::RunOnUIThread,
model(), title, url, is_folder,
parent_id, &result));
return result;
}
......@@ -212,8 +212,8 @@ class RemoveBookmarkTask : public BookmarkModelTask {
int Run(const int64_t id) {
bool did_delete = false;
RunOnUIThreadBlocking::Run(base::Bind(&RemoveBookmarkTask::RunOnUIThread,
model(), id, &did_delete));
RunOnUIThreadBlocking::Run(base::BindOnce(
&RemoveBookmarkTask::RunOnUIThread, model(), id, &did_delete));
return did_delete ? 1 : 0;
}
......@@ -248,9 +248,9 @@ class UpdateBookmarkTask : public BookmarkModelTask {
const base::string16& url,
const int64_t parent_id) {
bool did_update = false;
RunOnUIThreadBlocking::Run(base::Bind(&UpdateBookmarkTask::RunOnUIThread,
model(), id, title, url, parent_id,
&did_update));
RunOnUIThreadBlocking::Run(
base::BindOnce(&UpdateBookmarkTask::RunOnUIThread, model(), id, title,
url, parent_id, &did_update));
return did_update ? 1 : 0;
}
......@@ -307,9 +307,8 @@ class IsInMobileBookmarksBranchTask : public BookmarkModelTask {
bool Run(const int64_t id) {
bool result = false;
RunOnUIThreadBlocking::Run(
base::Bind(&IsInMobileBookmarksBranchTask::RunOnUIThread,
model(), id, &result));
RunOnUIThreadBlocking::Run(base::BindOnce(
&IsInMobileBookmarksBranchTask::RunOnUIThread, model(), id, &result));
return result;
}
......@@ -383,12 +382,11 @@ class AddBookmarkFromAPITask : public HistoryProviderTask {
history::URLID Run(const history::HistoryAndBookmarkRow& row) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::InsertHistoryAndBookmark,
base::Unretained(service()),
row,
base::Bind(&AddBookmarkFromAPITask::OnBookmarkInserted,
base::Unretained(this)),
cancelable_tracker()));
base::BindOnce(&AndroidHistoryProviderService::InsertHistoryAndBookmark,
base::Unretained(service()), row,
base::Bind(&AddBookmarkFromAPITask::OnBookmarkInserted,
base::Unretained(this)),
cancelable_tracker()));
return result_;
}
......@@ -417,16 +415,13 @@ class QueryBookmarksFromAPITask : public HistoryProviderTask {
const std::string& selection,
const std::vector<base::string16>& selection_args,
const std::string& sort_order) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::QueryHistoryAndBookmarks,
base::Unretained(service()),
projections,
selection,
selection_args,
sort_order,
base::Bind(&QueryBookmarksFromAPITask::OnBookmarksQueried,
base::Unretained(this)),
cancelable_tracker()));
RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::QueryHistoryAndBookmarks,
base::Unretained(service()), projections, selection, selection_args,
sort_order,
base::Bind(&QueryBookmarksFromAPITask::OnBookmarksQueried,
base::Unretained(this)),
cancelable_tracker()));
return result_;
}
......@@ -451,15 +446,12 @@ class UpdateBookmarksFromAPITask : public HistoryProviderTask {
int Run(const history::HistoryAndBookmarkRow& row,
const std::string& selection,
const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::UpdateHistoryAndBookmarks,
base::Unretained(service()),
row,
selection,
selection_args,
base::Bind(&UpdateBookmarksFromAPITask::OnBookmarksUpdated,
base::Unretained(this)),
cancelable_tracker()));
RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::UpdateHistoryAndBookmarks,
base::Unretained(service()), row, selection, selection_args,
base::Bind(&UpdateBookmarksFromAPITask::OnBookmarksUpdated,
base::Unretained(this)),
cancelable_tracker()));
return result_;
}
......@@ -483,14 +475,12 @@ class RemoveBookmarksFromAPITask : public HistoryProviderTask {
int Run(const std::string& selection,
const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::DeleteHistoryAndBookmarks,
base::Unretained(service()),
selection,
selection_args,
base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved,
base::Unretained(this)),
cancelable_tracker()));
RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::DeleteHistoryAndBookmarks,
base::Unretained(service()), selection, selection_args,
base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved,
base::Unretained(this)),
cancelable_tracker()));
return result_;
}
......@@ -515,13 +505,11 @@ class RemoveHistoryFromAPITask : public HistoryProviderTask {
int Run(const std::string& selection,
const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::DeleteHistory,
base::Unretained(service()),
selection,
selection_args,
base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved,
base::Unretained(this)),
cancelable_tracker()));
base::BindOnce(&AndroidHistoryProviderService::DeleteHistory,
base::Unretained(service()), selection, selection_args,
base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved,
base::Unretained(this)),
cancelable_tracker()));
return result_;
}
......@@ -584,8 +572,8 @@ class AddSearchTermFromAPITask : public SearchTermTask {
history::URLID Run(const history::SearchRow& row) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AddSearchTermFromAPITask::MakeRequestOnUIThread,
base::Unretained(this), row));
base::BindOnce(&AddSearchTermFromAPITask::MakeRequestOnUIThread,
base::Unretained(this), row));
return result_;
}
......@@ -626,12 +614,9 @@ class QuerySearchTermsFromAPITask : public SearchTermTask {
const std::string& selection,
const std::vector<base::string16>& selection_args,
const std::string& sort_order) {
RunAsyncRequestOnUIThreadBlocking(base::Bind(
RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::QuerySearchTerms,
base::Unretained(service()),
projections,
selection,
selection_args,
base::Unretained(service()), projections, selection, selection_args,
sort_order,
base::Bind(&QuerySearchTermsFromAPITask::OnSearchTermsQueried,
base::Unretained(this)),
......@@ -663,8 +648,8 @@ class UpdateSearchTermsFromAPITask : public SearchTermTask {
const std::string& selection,
const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking(
base::Bind(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread,
base::Unretained(this), row, selection, selection_args));
base::BindOnce(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread,
base::Unretained(this), row, selection, selection_args));
return result_;
}
......@@ -705,11 +690,9 @@ class RemoveSearchTermsFromAPITask : public SearchTermTask {
int Run(const std::string& selection,
const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking(base::Bind(
RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::DeleteSearchTerms,
base::Unretained(service()),
selection,
selection_args,
base::Unretained(service()), selection, selection_args,
base::Bind(&RemoveSearchTermsFromAPITask::OnSearchTermsDeleted,
base::Unretained(this)),
cancelable_tracker()));
......
......@@ -18,7 +18,7 @@ class RunOnUIThreadBlocking {
// Runs the provided runnable in the UI thread synchronously.
// The runnable argument can be defined using base::Bind.
template <typename Signature>
static void Run(base::Callback<Signature> runnable) {
static void Run(base::OnceCallback<Signature> runnable) {
DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
base::WaitableEvent finished(
base::WaitableEvent::ResetPolicy::AUTOMATIC,
......@@ -26,16 +26,16 @@ class RunOnUIThreadBlocking {
content::GetUIThreadTaskRunner({})->PostTask(
FROM_HERE,
base::BindOnce(&RunOnUIThreadBlocking::RunOnUIThread<Signature>,
runnable, &finished));
std::move(runnable), &finished));
finished.Wait();
}
private:
template <typename Signature>
static void RunOnUIThread(base::Callback<Signature> runnable,
static void RunOnUIThread(base::OnceCallback<Signature> runnable,
base::WaitableEvent* finished) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
runnable.Run();
std::move(runnable).Run();
finished->Signal();
}
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment