]> git.sesse.net Git - nageru/commitdiff
Do not wait for OnBrowserDestroyed.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 13 Mar 2018 17:36:10 +0000 (18:36 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 13 Mar 2018 17:36:10 +0000 (18:36 +0100)
Evidently, there's no guarantee that this will ever come; see

  http://magpcss.org/ceforum/viewtopic.php?f=6&t=14687

We were seemingly saved by our own inverted logic here earlier.

nageru_cef_app.cpp
nageru_cef_app.h

index bd8b9d6dd49d4a8b434730a6a86b230995df1a56..2ddd81659aaf0a7af0e992d7ce06ac59faf4e4d8 100644 (file)
@@ -18,13 +18,6 @@ void NageruCefApp::OnBeforeCommandLineProcessing(
        command_line->AppendSwitch("enable-begin-frame-scheduling");
 }
 
-void NageruCefApp::OnBrowserDestroyed(CefRefPtr<CefBrowser> browser)
-{
-       lock_guard<mutex> lock(cef_mutex);
-       pending_browsers.erase(browser.get());
-       browser_closed_cond.notify_all();
-}
-
 void NageruCefApp::initialize_cef()
 {
        unique_lock<mutex> lock(cef_mutex);
@@ -37,11 +30,7 @@ void NageruCefApp::initialize_cef()
 void NageruCefApp::close_browser(CefRefPtr<CefBrowser> browser)
 {
        unique_lock<mutex> lock(cef_mutex);
-       CefBrowser *raw_ptr = browser.get();
-       pending_browsers.insert(raw_ptr);
        browser->GetHost()->CloseBrowser(/*force_close=*/true);
-       browser = nullptr;
-       browser_closed_cond.wait(lock, [this, raw_ptr]{ return pending_browsers.count(raw_ptr) != 0; });
 }
 
 void NageruCefApp::unref_cef()
index a120d5a72e74be25fa12978fe1f57b38d04612bb..1a7ca1afeb6b9c015fa6b40a5b692b8af02b3424 100644 (file)
@@ -78,8 +78,6 @@ public:
 
        void OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line);
 
-       void OnBrowserDestroyed(CefRefPtr<CefBrowser> browser) override;
-
 private:
        void cef_thread_func();
 
@@ -88,8 +86,6 @@ private:
        int cef_thread_refcount = 0;  // Under <cef_mutex>.
        bool cef_initialized = false;  // Under <cef_mutex>.
        std::condition_variable cef_initialized_cond;
-       std::unordered_set<CefBrowser *> pending_browsers;  // Under <cef_mutex>.
-       std::condition_variable browser_closed_cond;
 
        IMPLEMENT_REFCOUNTING(NageruCefApp);
 };