mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
cefclient: Add RootWindowManager tracking of other browsers (see #3790)
The message loop should not quit until all browsers have closed, including browsers that are not directly associated with a RootWindow.
This commit is contained in:
@@ -4,6 +4,9 @@
|
||||
|
||||
#include "tests/cefclient/browser/base_client_handler.h"
|
||||
|
||||
#include "tests/cefclient/browser/main_context.h"
|
||||
#include "tests/cefclient/browser/root_window_manager.h"
|
||||
|
||||
namespace client {
|
||||
|
||||
BaseClientHandler::BaseClientHandler() {
|
||||
@@ -49,6 +52,10 @@ void BaseClientHandler::OnAfterCreated(CefRefPtr<CefBrowser> browser) {
|
||||
message_router_->AddHandler(message_handler, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (track_as_other_browser_) {
|
||||
MainContext::Get()->GetRootWindowManager()->OtherBrowserCreated();
|
||||
}
|
||||
}
|
||||
|
||||
void BaseClientHandler::OnBeforeClose(CefRefPtr<CefBrowser> browser) {
|
||||
@@ -63,6 +70,10 @@ void BaseClientHandler::OnBeforeClose(CefRefPtr<CefBrowser> browser) {
|
||||
message_handler_set_.clear();
|
||||
message_router_ = nullptr;
|
||||
}
|
||||
|
||||
if (track_as_other_browser_) {
|
||||
MainContext::Get()->GetRootWindowManager()->OtherBrowserClosed();
|
||||
}
|
||||
}
|
||||
|
||||
bool BaseClientHandler::OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
|
||||
|
Reference in New Issue
Block a user