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 { ...@@ -25,15 +25,15 @@ class BlockingUIThreadAsyncRequest {
// Make sure that the response is also delivered to the UI thread. // Make sure that the response is also delivered to the UI thread.
// The request argument can be defined using base::Bind. // The request argument can be defined using base::Bind.
template <typename Signature> template <typename Signature>
void RunAsyncRequestOnUIThreadBlocking(base::Callback<Signature> request) { void RunAsyncRequestOnUIThreadBlocking(
base::OnceCallback<Signature> request) {
DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
// Make the request in the UI thread. // Make the request in the UI thread.
request_completed_.Reset(); request_completed_.Reset();
RunOnUIThreadBlocking::Run( RunOnUIThreadBlocking::Run(base::BindOnce(
base::Bind( &BlockingUIThreadAsyncRequest::RunRequestOnUIThread<Signature>,
&BlockingUIThreadAsyncRequest::RunRequestOnUIThread<Signature>, std::move(request)));
request));
// Wait until the request callback invokes Finished. // Wait until the request callback invokes Finished.
request_completed_.Wait(); request_completed_.Wait();
...@@ -44,8 +44,8 @@ class BlockingUIThreadAsyncRequest { ...@@ -44,8 +44,8 @@ class BlockingUIThreadAsyncRequest {
private: private:
template <typename Signature> template <typename Signature>
static void RunRequestOnUIThread(base::Callback<Signature> request) { static void RunRequestOnUIThread(base::OnceCallback<Signature> request) {
request.Run(); std::move(request).Run();
} }
base::WaitableEvent request_completed_; base::WaitableEvent request_completed_;
......
...@@ -162,9 +162,9 @@ class AddBookmarkTask : public BookmarkModelTask { ...@@ -162,9 +162,9 @@ class AddBookmarkTask : public BookmarkModelTask {
const bool is_folder, const bool is_folder,
const int64_t parent_id) { const int64_t parent_id) {
int64_t result = kInvalidBookmarkId; int64_t result = kInvalidBookmarkId;
RunOnUIThreadBlocking::Run( RunOnUIThreadBlocking::Run(base::BindOnce(&AddBookmarkTask::RunOnUIThread,
base::Bind(&AddBookmarkTask::RunOnUIThread, model(), title, url, is_folder,
model(), title, url, is_folder, parent_id, &result)); parent_id, &result));
return result; return result;
} }
...@@ -212,8 +212,8 @@ class RemoveBookmarkTask : public BookmarkModelTask { ...@@ -212,8 +212,8 @@ class RemoveBookmarkTask : public BookmarkModelTask {
int Run(const int64_t id) { int Run(const int64_t id) {
bool did_delete = false; bool did_delete = false;
RunOnUIThreadBlocking::Run(base::Bind(&RemoveBookmarkTask::RunOnUIThread, RunOnUIThreadBlocking::Run(base::BindOnce(
model(), id, &did_delete)); &RemoveBookmarkTask::RunOnUIThread, model(), id, &did_delete));
return did_delete ? 1 : 0; return did_delete ? 1 : 0;
} }
...@@ -248,9 +248,9 @@ class UpdateBookmarkTask : public BookmarkModelTask { ...@@ -248,9 +248,9 @@ class UpdateBookmarkTask : public BookmarkModelTask {
const base::string16& url, const base::string16& url,
const int64_t parent_id) { const int64_t parent_id) {
bool did_update = false; bool did_update = false;
RunOnUIThreadBlocking::Run(base::Bind(&UpdateBookmarkTask::RunOnUIThread, RunOnUIThreadBlocking::Run(
model(), id, title, url, parent_id, base::BindOnce(&UpdateBookmarkTask::RunOnUIThread, model(), id, title,
&did_update)); url, parent_id, &did_update));
return did_update ? 1 : 0; return did_update ? 1 : 0;
} }
...@@ -307,9 +307,8 @@ class IsInMobileBookmarksBranchTask : public BookmarkModelTask { ...@@ -307,9 +307,8 @@ class IsInMobileBookmarksBranchTask : public BookmarkModelTask {
bool Run(const int64_t id) { bool Run(const int64_t id) {
bool result = false; bool result = false;
RunOnUIThreadBlocking::Run( RunOnUIThreadBlocking::Run(base::BindOnce(
base::Bind(&IsInMobileBookmarksBranchTask::RunOnUIThread, &IsInMobileBookmarksBranchTask::RunOnUIThread, model(), id, &result));
model(), id, &result));
return result; return result;
} }
...@@ -383,12 +382,11 @@ class AddBookmarkFromAPITask : public HistoryProviderTask { ...@@ -383,12 +382,11 @@ class AddBookmarkFromAPITask : public HistoryProviderTask {
history::URLID Run(const history::HistoryAndBookmarkRow& row) { history::URLID Run(const history::HistoryAndBookmarkRow& row) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::InsertHistoryAndBookmark, base::BindOnce(&AndroidHistoryProviderService::InsertHistoryAndBookmark,
base::Unretained(service()), base::Unretained(service()), row,
row, base::Bind(&AddBookmarkFromAPITask::OnBookmarkInserted,
base::Bind(&AddBookmarkFromAPITask::OnBookmarkInserted, base::Unretained(this)),
base::Unretained(this)), cancelable_tracker()));
cancelable_tracker()));
return result_; return result_;
} }
...@@ -417,16 +415,13 @@ class QueryBookmarksFromAPITask : public HistoryProviderTask { ...@@ -417,16 +415,13 @@ class QueryBookmarksFromAPITask : public HistoryProviderTask {
const std::string& selection, const std::string& selection,
const std::vector<base::string16>& selection_args, const std::vector<base::string16>& selection_args,
const std::string& sort_order) { const std::string& sort_order) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
base::Bind(&AndroidHistoryProviderService::QueryHistoryAndBookmarks, &AndroidHistoryProviderService::QueryHistoryAndBookmarks,
base::Unretained(service()), base::Unretained(service()), projections, selection, selection_args,
projections, sort_order,
selection, base::Bind(&QueryBookmarksFromAPITask::OnBookmarksQueried,
selection_args, base::Unretained(this)),
sort_order, cancelable_tracker()));
base::Bind(&QueryBookmarksFromAPITask::OnBookmarksQueried,
base::Unretained(this)),
cancelable_tracker()));
return result_; return result_;
} }
...@@ -451,15 +446,12 @@ class UpdateBookmarksFromAPITask : public HistoryProviderTask { ...@@ -451,15 +446,12 @@ class UpdateBookmarksFromAPITask : public HistoryProviderTask {
int Run(const history::HistoryAndBookmarkRow& row, int Run(const history::HistoryAndBookmarkRow& row,
const std::string& selection, const std::string& selection,
const std::vector<base::string16>& selection_args) { const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
base::Bind(&AndroidHistoryProviderService::UpdateHistoryAndBookmarks, &AndroidHistoryProviderService::UpdateHistoryAndBookmarks,
base::Unretained(service()), base::Unretained(service()), row, selection, selection_args,
row, base::Bind(&UpdateBookmarksFromAPITask::OnBookmarksUpdated,
selection, base::Unretained(this)),
selection_args, cancelable_tracker()));
base::Bind(&UpdateBookmarksFromAPITask::OnBookmarksUpdated,
base::Unretained(this)),
cancelable_tracker()));
return result_; return result_;
} }
...@@ -483,14 +475,12 @@ class RemoveBookmarksFromAPITask : public HistoryProviderTask { ...@@ -483,14 +475,12 @@ class RemoveBookmarksFromAPITask : public HistoryProviderTask {
int Run(const std::string& selection, int Run(const std::string& selection,
const std::vector<base::string16>& selection_args) { const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
base::Bind(&AndroidHistoryProviderService::DeleteHistoryAndBookmarks, &AndroidHistoryProviderService::DeleteHistoryAndBookmarks,
base::Unretained(service()), base::Unretained(service()), selection, selection_args,
selection, base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved,
selection_args, base::Unretained(this)),
base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved, cancelable_tracker()));
base::Unretained(this)),
cancelable_tracker()));
return result_; return result_;
} }
...@@ -515,13 +505,11 @@ class RemoveHistoryFromAPITask : public HistoryProviderTask { ...@@ -515,13 +505,11 @@ class RemoveHistoryFromAPITask : public HistoryProviderTask {
int Run(const std::string& selection, int Run(const std::string& selection,
const std::vector<base::string16>& selection_args) { const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AndroidHistoryProviderService::DeleteHistory, base::BindOnce(&AndroidHistoryProviderService::DeleteHistory,
base::Unretained(service()), base::Unretained(service()), selection, selection_args,
selection, base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved,
selection_args, base::Unretained(this)),
base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved, cancelable_tracker()));
base::Unretained(this)),
cancelable_tracker()));
return result_; return result_;
} }
...@@ -584,8 +572,8 @@ class AddSearchTermFromAPITask : public SearchTermTask { ...@@ -584,8 +572,8 @@ class AddSearchTermFromAPITask : public SearchTermTask {
history::URLID Run(const history::SearchRow& row) { history::URLID Run(const history::SearchRow& row) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(
base::Bind(&AddSearchTermFromAPITask::MakeRequestOnUIThread, base::BindOnce(&AddSearchTermFromAPITask::MakeRequestOnUIThread,
base::Unretained(this), row)); base::Unretained(this), row));
return result_; return result_;
} }
...@@ -626,12 +614,9 @@ class QuerySearchTermsFromAPITask : public SearchTermTask { ...@@ -626,12 +614,9 @@ class QuerySearchTermsFromAPITask : public SearchTermTask {
const std::string& selection, const std::string& selection,
const std::vector<base::string16>& selection_args, const std::vector<base::string16>& selection_args,
const std::string& sort_order) { const std::string& sort_order) {
RunAsyncRequestOnUIThreadBlocking(base::Bind( RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::QuerySearchTerms, &AndroidHistoryProviderService::QuerySearchTerms,
base::Unretained(service()), base::Unretained(service()), projections, selection, selection_args,
projections,
selection,
selection_args,
sort_order, sort_order,
base::Bind(&QuerySearchTermsFromAPITask::OnSearchTermsQueried, base::Bind(&QuerySearchTermsFromAPITask::OnSearchTermsQueried,
base::Unretained(this)), base::Unretained(this)),
...@@ -663,8 +648,8 @@ class UpdateSearchTermsFromAPITask : public SearchTermTask { ...@@ -663,8 +648,8 @@ class UpdateSearchTermsFromAPITask : public SearchTermTask {
const std::string& selection, const std::string& selection,
const std::vector<base::string16>& selection_args) { const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking( RunAsyncRequestOnUIThreadBlocking(
base::Bind(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread, base::BindOnce(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread,
base::Unretained(this), row, selection, selection_args)); base::Unretained(this), row, selection, selection_args));
return result_; return result_;
} }
...@@ -705,11 +690,9 @@ class RemoveSearchTermsFromAPITask : public SearchTermTask { ...@@ -705,11 +690,9 @@ class RemoveSearchTermsFromAPITask : public SearchTermTask {
int Run(const std::string& selection, int Run(const std::string& selection,
const std::vector<base::string16>& selection_args) { const std::vector<base::string16>& selection_args) {
RunAsyncRequestOnUIThreadBlocking(base::Bind( RunAsyncRequestOnUIThreadBlocking(base::BindOnce(
&AndroidHistoryProviderService::DeleteSearchTerms, &AndroidHistoryProviderService::DeleteSearchTerms,
base::Unretained(service()), base::Unretained(service()), selection, selection_args,
selection,
selection_args,
base::Bind(&RemoveSearchTermsFromAPITask::OnSearchTermsDeleted, base::Bind(&RemoveSearchTermsFromAPITask::OnSearchTermsDeleted,
base::Unretained(this)), base::Unretained(this)),
cancelable_tracker())); cancelable_tracker()));
......
...@@ -18,7 +18,7 @@ class RunOnUIThreadBlocking { ...@@ -18,7 +18,7 @@ class RunOnUIThreadBlocking {
// Runs the provided runnable in the UI thread synchronously. // Runs the provided runnable in the UI thread synchronously.
// The runnable argument can be defined using base::Bind. // The runnable argument can be defined using base::Bind.
template <typename Signature> template <typename Signature>
static void Run(base::Callback<Signature> runnable) { static void Run(base::OnceCallback<Signature> runnable) {
DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
base::WaitableEvent finished( base::WaitableEvent finished(
base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::ResetPolicy::AUTOMATIC,
...@@ -26,16 +26,16 @@ class RunOnUIThreadBlocking { ...@@ -26,16 +26,16 @@ class RunOnUIThreadBlocking {
content::GetUIThreadTaskRunner({})->PostTask( content::GetUIThreadTaskRunner({})->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&RunOnUIThreadBlocking::RunOnUIThread<Signature>, base::BindOnce(&RunOnUIThreadBlocking::RunOnUIThread<Signature>,
runnable, &finished)); std::move(runnable), &finished));
finished.Wait(); finished.Wait();
} }
private: private:
template <typename Signature> template <typename Signature>
static void RunOnUIThread(base::Callback<Signature> runnable, static void RunOnUIThread(base::OnceCallback<Signature> runnable,
base::WaitableEvent* finished) { base::WaitableEvent* finished) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
runnable.Run(); std::move(runnable).Run();
finished->Signal(); 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