Commit 28edfd23 authored by Istiaque Ahmed's avatar Istiaque Ahmed Committed by Commit Bot

[Extensions] Cleanup: Use OnceCallback in WakeEventPage function.

Bug: None
Test: None, internal only cleanup.
Change-Id: I5e29e662450c6b7a5ee14d332caa1d76ea14b7b1
Reviewed-on: https://chromium-review.googlesource.com/1144538Reviewed-by: default avatarmark a. foltz <mfoltz@chromium.org>
Commit-Queue: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587847}
parent 81765dd4
...@@ -134,8 +134,8 @@ void EventPageRequestManager::AttemptWakeEventPage() { ...@@ -134,8 +134,8 @@ void EventPageRequestManager::AttemptWakeEventPage() {
// |this|. // |this|.
if (!event_page_tracker_->WakeEventPage( if (!event_page_tracker_->WakeEventPage(
media_route_provider_extension_id_, media_route_provider_extension_id_,
base::Bind(&EventPageRequestManager::OnWakeComplete, base::BindOnce(&EventPageRequestManager::OnWakeComplete,
weak_factory_.GetWeakPtr()))) { weak_factory_.GetWeakPtr()))) {
DLOG(ERROR) << "Failed to schedule a wakeup for event page."; DLOG(ERROR) << "Failed to schedule a wakeup for event page.";
} }
} }
......
...@@ -52,7 +52,7 @@ class TestProcessManager : public extensions::ProcessManager { ...@@ -52,7 +52,7 @@ class TestProcessManager : public extensions::ProcessManager {
MOCK_METHOD1(IsEventPageSuspended, bool(const std::string& ext_id)); MOCK_METHOD1(IsEventPageSuspended, bool(const std::string& ext_id));
MOCK_METHOD2(WakeEventPage, MOCK_METHOD2(WakeEventPage,
bool(const std::string& extension_id, bool(const std::string& extension_id,
const base::Callback<void(bool)>& callback)); base::OnceCallback<void(bool)> callback));
private: private:
DISALLOW_COPY_AND_ASSIGN(TestProcessManager); DISALLOW_COPY_AND_ASSIGN(TestProcessManager);
...@@ -141,11 +141,11 @@ TEST_F(EventPageRequestManagerTest, RunRequestsOnConnectionsReady) { ...@@ -141,11 +141,11 @@ TEST_F(EventPageRequestManagerTest, RunRequestsOnConnectionsReady) {
ON_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) ON_CALL(*process_manager_, IsEventPageSuspended(kExtensionId))
.WillByDefault(Return(true)); .WillByDefault(Return(true));
EXPECT_CALL(*process_manager_, WakeEventPage(kExtensionId, _)) EXPECT_CALL(*process_manager_, WakeEventPage(kExtensionId, _))
.WillOnce(Invoke([](const std::string& extension_id, .WillOnce([](const std::string& extension_id,
const base::Callback<void(bool)>& callback) { base::OnceCallback<void(bool)> callback) {
callback.Run(true); std::move(callback).Run(true);
return true; return true;
})); });
request_manager_->RunOrDefer( request_manager_->RunOrDefer(
base::BindOnce(&MockRequest::Run, base::Unretained(&request1)), base::BindOnce(&MockRequest::Run, base::Unretained(&request1)),
MediaRouteProviderWakeReason::DETACH_ROUTE); MediaRouteProviderWakeReason::DETACH_ROUTE);
...@@ -185,18 +185,20 @@ TEST_F(EventPageRequestManagerTest, FailedWakeupDrainsQueue) { ...@@ -185,18 +185,20 @@ TEST_F(EventPageRequestManagerTest, FailedWakeupDrainsQueue) {
StrictMock<MockRequest> request1; StrictMock<MockRequest> request1;
StrictMock<MockRequest> request2; StrictMock<MockRequest> request2;
base::Callback<void(bool)> extension_wakeup_callback;
EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId))
.WillOnce(Return(true)); .WillOnce(Return(true));
EXPECT_CALL(*process_manager_, WakeEventPage(kExtensionId, _)) EXPECT_CALL(*process_manager_, WakeEventPage(kExtensionId, _))
.WillOnce( .WillOnce([](const std::string& extension_id,
testing::DoAll(SaveArg<1>(&extension_wakeup_callback), Return(true))); base::OnceCallback<void(bool)> callback) {
// Run the callback with false to indicate that the wakeup failed.
// This call drains the request queue, so |request1| won't be
// called.
std::move(callback).Run(false);
return true;
});
request_manager_->RunOrDefer( request_manager_->RunOrDefer(
base::BindOnce(&MockRequest::Run, base::Unretained(&request1)), base::BindOnce(&MockRequest::Run, base::Unretained(&request1)),
MediaRouteProviderWakeReason::CREATE_ROUTE); MediaRouteProviderWakeReason::CREATE_ROUTE);
// Run the callback with false to indicate that the wakeup failed. This call
// drains the request queue, so |request1| won't be called.
extension_wakeup_callback.Run(false);
EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId)) EXPECT_CALL(*process_manager_, IsEventPageSuspended(kExtensionId))
.WillRepeatedly(Return(false)); .WillRepeatedly(Return(false));
......
...@@ -194,7 +194,7 @@ class MockEventPageTracker : public extensions::EventPageTracker { ...@@ -194,7 +194,7 @@ class MockEventPageTracker : public extensions::EventPageTracker {
MOCK_METHOD1(IsEventPageSuspended, bool(const std::string& extension_id)); MOCK_METHOD1(IsEventPageSuspended, bool(const std::string& extension_id));
MOCK_METHOD2(WakeEventPage, MOCK_METHOD2(WakeEventPage,
bool(const std::string& extension_id, bool(const std::string& extension_id,
const base::Callback<void(bool)>& callback)); base::OnceCallback<void(bool)> callback));
}; };
class MockEventPageRequestManager : public EventPageRequestManager { class MockEventPageRequestManager : public EventPageRequestManager {
......
...@@ -7,15 +7,15 @@ ...@@ -7,15 +7,15 @@
#include <string> #include <string>
#include "base/callback.h" #include "base/callback_forward.h"
namespace extensions { namespace extensions {
// Tracks an extension's event page suspend state. // Tracks an extension's event page suspend state.
class EventPageTracker { class EventPageTracker {
public: public:
// Returns true if an extension's event page is active, // Returns true if an extension's event page is suspended,
// or false if it is suspended. // or false if it is active.
virtual bool IsEventPageSuspended(const std::string& extension_id) = 0; virtual bool IsEventPageSuspended(const std::string& extension_id) = 0;
// Wakes an extension's event page from a suspended state and calls // Wakes an extension's event page from a suspended state and calls
...@@ -28,7 +28,7 @@ class EventPageTracker { ...@@ -28,7 +28,7 @@ class EventPageTracker {
// or false if the event page was already awake. // or false if the event page was already awake.
// Callback will be run asynchronously if true, and never run if false. // Callback will be run asynchronously if true, and never run if false.
virtual bool WakeEventPage(const std::string& extension_id, virtual bool WakeEventPage(const std::string& extension_id,
const base::Callback<void(bool)>& callback) = 0; base::OnceCallback<void(bool)> callback) = 0;
}; };
} // namespace extensions } // namespace extensions
......
...@@ -359,8 +359,8 @@ void ExtensionMessageFilter::OnExtensionWakeEventPage( ...@@ -359,8 +359,8 @@ void ExtensionMessageFilter::OnExtensionWakeEventPage(
if (process_manager->IsEventPageSuspended(extension_id)) { if (process_manager->IsEventPageSuspended(extension_id)) {
process_manager->WakeEventPage( process_manager->WakeEventPage(
extension_id, extension_id,
base::Bind(&ExtensionMessageFilter::SendWakeEventPageResponse, this, base::BindOnce(&ExtensionMessageFilter::SendWakeEventPageResponse,
request_id)); this, request_id));
} else { } else {
SendWakeEventPageResponse(request_id, true); SendWakeEventPageResponse(request_id, true);
} }
......
...@@ -114,9 +114,9 @@ static void CreateBackgroundHostForExtensionLoad( ...@@ -114,9 +114,9 @@ static void CreateBackgroundHostForExtensionLoad(
BackgroundInfo::GetBackgroundURL(extension)); BackgroundInfo::GetBackgroundURL(extension));
} }
void PropagateExtensionWakeResult(const base::Callback<void(bool)>& callback, void PropagateExtensionWakeResult(base::OnceCallback<void(bool)> callback,
extensions::ExtensionHost* host) { extensions::ExtensionHost* host) {
callback.Run(host != nullptr); std::move(callback).Run(host != nullptr);
} }
} // namespace } // namespace
...@@ -426,16 +426,16 @@ bool ProcessManager::IsEventPageSuspended(const std::string& extension_id) { ...@@ -426,16 +426,16 @@ bool ProcessManager::IsEventPageSuspended(const std::string& extension_id) {
} }
bool ProcessManager::WakeEventPage(const std::string& extension_id, bool ProcessManager::WakeEventPage(const std::string& extension_id,
const base::Callback<void(bool)>& callback) { base::OnceCallback<void(bool)> callback) {
if (GetBackgroundHostForExtension(extension_id)) { if (GetBackgroundHostForExtension(extension_id)) {
// Run the callback immediately if the extension is already awake. // The extension is already awake.
return false; return false;
} }
LazyBackgroundTaskQueue* queue = LazyBackgroundTaskQueue* queue =
LazyBackgroundTaskQueue::Get(browser_context_); LazyBackgroundTaskQueue::Get(browser_context_);
queue->AddPendingTask( queue->AddPendingTask(
browser_context_, extension_id, browser_context_, extension_id,
base::BindOnce(&PropagateExtensionWakeResult, callback)); base::BindOnce(&PropagateExtensionWakeResult, std::move(callback)));
return true; return true;
} }
......
...@@ -168,7 +168,7 @@ class ProcessManager : public KeyedService, ...@@ -168,7 +168,7 @@ class ProcessManager : public KeyedService,
// EventPageTracker implementation. // EventPageTracker implementation.
bool IsEventPageSuspended(const std::string& extension_id) override; bool IsEventPageSuspended(const std::string& extension_id) override;
bool WakeEventPage(const std::string& extension_id, bool WakeEventPage(const std::string& extension_id,
const base::Callback<void(bool)>& callback) override; base::OnceCallback<void(bool)> callback) override;
// Sets the time in milliseconds that an extension event page can // Sets the time in milliseconds that an extension event page can
// be idle before it is shut down; must be > 0. // be idle before it is shut down; must be > 0.
......
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