Chromium Code Reviews| Index: chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc |
| diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc |
| index c5853e0cf13715721676ac88a2e0ffecde19add0..19bdcb646569a6ee077d4372ae60dd037cdbd5c2 100644 |
| --- a/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc |
| +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc |
| @@ -103,6 +103,12 @@ class NetInternalsTest::MessageHandler : public content::WebUIMessageHandler { |
| private: |
| void RegisterMessages() override; |
| + void RegisterMessage(const std::string& message, |
| + const content::WebUI::MessageCallback& handler); |
| + |
| + void HandleMessage(const content::WebUI::MessageCallback& handler, |
| + const base::ListValue* data); |
| + |
| // Runs NetInternalsTest.callback with the given value. |
| void RunJavascriptCallback(base::Value* value); |
| @@ -158,35 +164,56 @@ NetInternalsTest::MessageHandler::MessageHandler( |
| } |
| void NetInternalsTest::MessageHandler::RegisterMessages() { |
| - web_ui()->RegisterMessageCallback("getTestServerURL", |
| + RegisterMessage( |
| + "getTestServerURL", |
| base::Bind(&NetInternalsTest::MessageHandler::GetTestServerURL, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("addCacheEntry", |
| - base::Bind(&NetInternalsTest::MessageHandler::AddCacheEntry, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("loadPage", |
| - base::Bind(&NetInternalsTest::MessageHandler::LoadPage, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("prerenderPage", |
| - base::Bind(&NetInternalsTest::MessageHandler::PrerenderPage, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("navigateToPrerender", |
| + RegisterMessage("addCacheEntry", |
| + base::Bind(&NetInternalsTest::MessageHandler::AddCacheEntry, |
| + base::Unretained(this))); |
| + RegisterMessage("loadPage", |
| + base::Bind(&NetInternalsTest::MessageHandler::LoadPage, |
| + base::Unretained(this))); |
| + RegisterMessage("prerenderPage", |
| + base::Bind(&NetInternalsTest::MessageHandler::PrerenderPage, |
| + base::Unretained(this))); |
| + RegisterMessage( |
| + "navigateToPrerender", |
| base::Bind(&NetInternalsTest::MessageHandler::NavigateToPrerender, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("createIncognitoBrowser", |
| + RegisterMessage( |
| + "createIncognitoBrowser", |
| base::Bind(&NetInternalsTest::MessageHandler::CreateIncognitoBrowser, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("closeIncognitoBrowser", |
| + RegisterMessage( |
| + "closeIncognitoBrowser", |
| base::Bind(&NetInternalsTest::MessageHandler::CloseIncognitoBrowser, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("getNetLogFileContents", |
| - base::Bind( |
| - &NetInternalsTest::MessageHandler::GetNetLogFileContents, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback("enableDataReductionProxy", |
| - base::Bind( |
| - &NetInternalsTest::MessageHandler::EnableDataReductionProxy, |
| - base::Unretained(this))); |
| + RegisterMessage( |
| + "getNetLogFileContents", |
| + base::Bind(&NetInternalsTest::MessageHandler::GetNetLogFileContents, |
| + base::Unretained(this))); |
| + RegisterMessage( |
| + "enableDataReductionProxy", |
| + base::Bind(&NetInternalsTest::MessageHandler::EnableDataReductionProxy, |
| + base::Unretained(this))); |
| +} |
| + |
| +void NetInternalsTest::MessageHandler::RegisterMessage( |
| + const std::string& message, |
| + const content::WebUI::MessageCallback& handler) { |
| + web_ui()->RegisterMessageCallback( |
| + message, base::Bind(&NetInternalsTest::MessageHandler::HandleMessage, |
| + base::Unretained(this), handler)); |
| +} |
| + |
| +void NetInternalsTest::MessageHandler::HandleMessage( |
| + const content::WebUI::MessageCallback& handler, |
| + const base::ListValue* data) { |
| + // The handler might run a nested loop to wait for something. |
| + base::MessageLoop::ScopedNestableTaskAllower nestable_task_allower( |
|
Alexander Semashko
2017/02/21 21:33:47
Some of these tests relied on the presence of Scop
|
| + base::MessageLoop::current()); |
| + handler.Run(data); |
| } |
| void NetInternalsTest::MessageHandler::RunJavascriptCallback( |