// Copyright (c) 2015 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. #include "cefclient/browser_window.h" #include "include/base/cef_bind.h" #include "cefclient/main_message_loop.h" namespace client { BrowserWindow::BrowserWindow(Delegate* delegate) : delegate_(delegate), is_closing_(false) { DCHECK(delegate_); } CefRefPtr BrowserWindow::GetBrowser() const { REQUIRE_MAIN_THREAD(); return browser_; } bool BrowserWindow::IsClosing() const { REQUIRE_MAIN_THREAD(); return is_closing_; } void BrowserWindow::OnBrowserCreated(CefRefPtr browser) { REQUIRE_MAIN_THREAD(); DCHECK(!browser_); browser_ = browser; delegate_->OnBrowserCreated(browser); } void BrowserWindow::OnBrowserClosing(CefRefPtr browser) { REQUIRE_MAIN_THREAD(); DCHECK_EQ(browser->GetIdentifier(), browser_->GetIdentifier()); is_closing_ = true; } void BrowserWindow::OnBrowserClosed(CefRefPtr browser) { REQUIRE_MAIN_THREAD(); DCHECK_EQ(browser->GetIdentifier(), browser_->GetIdentifier()); browser_ = NULL; client_handler_->DetachDelegate(); client_handler_ = NULL; // |this| may be deleted. delegate_->OnBrowserWindowDestroyed(); } void BrowserWindow::OnSetAddress(const std::string& url) { REQUIRE_MAIN_THREAD(); delegate_->OnSetAddress(url); } void BrowserWindow::OnSetTitle(const std::string& title) { REQUIRE_MAIN_THREAD(); delegate_->OnSetTitle(title); } void BrowserWindow::OnSetLoadingState(bool isLoading, bool canGoBack, bool canGoForward) { REQUIRE_MAIN_THREAD(); delegate_->OnSetLoadingState(isLoading, canGoBack, canGoForward); } } // namespace client