Commit 1f9dbee1 authored by Wez's avatar Wez Committed by Commit Bot

Exit HeadlessBrowserImpl main message loop by QuitClosure.

Replace use of QuitCurrent*Deprecated() with use of the QuitClosure of
the //content default main message loop's RunLoop.

Bug: 844016
Change-Id: I14eb18304de9c9ddaabc2860998d12733572e7f7
Reviewed-on: https://chromium-review.googlesource.com/1103787
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568103}
parent cdf20cb9
......@@ -115,8 +115,7 @@ void HeadlessBrowserImpl::Shutdown() {
browser_contexts_.clear();
}
BrowserMainThread()->PostTask(
FROM_HERE, base::RunLoop::QuitCurrentWhenIdleClosureDeprecated());
browser_main_parts_->QuitMainMessageLoop();
}
std::vector<HeadlessBrowserContext*>
......
......@@ -12,8 +12,7 @@
namespace headless {
HeadlessBrowserMainParts::HeadlessBrowserMainParts(HeadlessBrowserImpl* browser)
: browser_(browser)
, devtools_http_handler_started_(false) {}
: browser_(browser) {}
HeadlessBrowserMainParts::~HeadlessBrowserMainParts() = default;
......@@ -27,6 +26,11 @@ void HeadlessBrowserMainParts::PreMainMessageLoopRun() {
browser_->PlatformInitialize();
}
void HeadlessBrowserMainParts::PreDefaultMainMessageLoopRun(
base::OnceClosure quit_closure) {
quit_main_message_loop_ = std::move(quit_closure);
}
void HeadlessBrowserMainParts::PostMainMessageLoopRun() {
if (devtools_http_handler_started_) {
StopLocalDevToolsHttpHandler();
......@@ -34,4 +38,9 @@ void HeadlessBrowserMainParts::PostMainMessageLoopRun() {
}
}
void HeadlessBrowserMainParts::QuitMainMessageLoop() {
if (quit_main_message_loop_)
std::move(quit_main_message_loop_).Run();
}
} // namespace headless
......@@ -22,15 +22,19 @@ class HeadlessBrowserMainParts : public content::BrowserMainParts {
// content::BrowserMainParts implementation:
void PreMainMessageLoopRun() override;
void PreDefaultMainMessageLoopRun(base::OnceClosure quit_closure) override;
void PostMainMessageLoopRun() override;
#if defined(OS_MACOSX)
void PreMainMessageLoopStart() override;
#endif
void QuitMainMessageLoop();
private:
HeadlessBrowserImpl* browser_; // Not owned.
bool devtools_http_handler_started_;
bool devtools_http_handler_started_ = false;
base::OnceClosure quit_main_message_loop_;
DISALLOW_COPY_AND_ASSIGN(HeadlessBrowserMainParts);
};
......
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