diff options
Diffstat (limited to 'tests/cefclient/browser/browser_window.cc')
-rw-r--r-- | tests/cefclient/browser/browser_window.cc | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/cefclient/browser/browser_window.cc b/tests/cefclient/browser/browser_window.cc new file mode 100644 index 00000000..355620c3 --- /dev/null +++ b/tests/cefclient/browser/browser_window.cc @@ -0,0 +1,96 @@ +// 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 "tests/cefclient/browser/browser_window.h" + +#include "include/base/cef_callback.h" +#include "tests/shared/browser/main_message_loop.h" + +namespace client { + +BrowserWindow::BrowserWindow(Delegate* delegate) + : delegate_(delegate), is_closing_(false) { + DCHECK(delegate_); +} + +void BrowserWindow::SetDeviceScaleFactor(float device_scale_factor) {} + +float BrowserWindow::GetDeviceScaleFactor() const { + return 1.0f; +} + +CefRefPtr<CefBrowser> BrowserWindow::GetBrowser() const { + REQUIRE_MAIN_THREAD(); + return browser_; +} + +bool BrowserWindow::IsClosing() const { + REQUIRE_MAIN_THREAD(); + return is_closing_; +} + +void BrowserWindow::OnBrowserCreated(CefRefPtr<CefBrowser> browser) { + REQUIRE_MAIN_THREAD(); + DCHECK(!browser_); + browser_ = browser; + + delegate_->OnBrowserCreated(browser); +} + +void BrowserWindow::OnBrowserClosing(CefRefPtr<CefBrowser> browser) { + REQUIRE_MAIN_THREAD(); + DCHECK_EQ(browser->GetIdentifier(), browser_->GetIdentifier()); + is_closing_ = true; + + delegate_->OnBrowserWindowClosing(); +} + +void BrowserWindow::OnBrowserClosed(CefRefPtr<CefBrowser> browser) { + REQUIRE_MAIN_THREAD(); + if (browser_.get()) { + DCHECK_EQ(browser->GetIdentifier(), browser_->GetIdentifier()); + browser_ = nullptr; + } + + client_handler_->DetachDelegate(); + client_handler_ = nullptr; + + // |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::OnSetFullscreen(bool fullscreen) { + REQUIRE_MAIN_THREAD(); + delegate_->OnSetFullscreen(fullscreen); +} + +void BrowserWindow::OnAutoResize(const CefSize& new_size) { + REQUIRE_MAIN_THREAD(); + delegate_->OnAutoResize(new_size); +} + +void BrowserWindow::OnSetLoadingState(bool isLoading, + bool canGoBack, + bool canGoForward) { + REQUIRE_MAIN_THREAD(); + delegate_->OnSetLoadingState(isLoading, canGoBack, canGoForward); +} + +void BrowserWindow::OnSetDraggableRegions( + const std::vector<CefDraggableRegion>& regions) { + REQUIRE_MAIN_THREAD(); + delegate_->OnSetDraggableRegions(regions); +} + +} // namespace client |