| // Copyright (c) 2013 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. |
| |
| #ifndef CEF_TESTS_CEFSIMPLE_SIMPLE_HANDLER_H_ |
| #define CEF_TESTS_CEFSIMPLE_SIMPLE_HANDLER_H_ |
| |
| #include "include/cef_client.h" |
| |
| #include <list> |
| |
| class SimpleHandler : public CefClient, |
| public CefDisplayHandler, |
| public CefLifeSpanHandler, |
| public CefLoadHandler { |
| public: |
| explicit SimpleHandler(bool use_views); |
| ~SimpleHandler(); |
| |
| // Provide access to the single global instance of this object. |
| static SimpleHandler* GetInstance(); |
| |
| // CefClient methods: |
| virtual CefRefPtr<CefDisplayHandler> GetDisplayHandler() OVERRIDE { |
| return this; |
| } |
| virtual CefRefPtr<CefLifeSpanHandler> GetLifeSpanHandler() OVERRIDE { |
| return this; |
| } |
| virtual CefRefPtr<CefLoadHandler> GetLoadHandler() OVERRIDE { return this; } |
| |
| // CefDisplayHandler methods: |
| virtual void OnTitleChange(CefRefPtr<CefBrowser> browser, |
| const CefString& title) OVERRIDE; |
| |
| // CefLifeSpanHandler methods: |
| virtual void OnAfterCreated(CefRefPtr<CefBrowser> browser) OVERRIDE; |
| virtual bool DoClose(CefRefPtr<CefBrowser> browser) OVERRIDE; |
| virtual void OnBeforeClose(CefRefPtr<CefBrowser> browser) OVERRIDE; |
| |
| // CefLoadHandler methods: |
| virtual void OnLoadError(CefRefPtr<CefBrowser> browser, |
| CefRefPtr<CefFrame> frame, |
| ErrorCode errorCode, |
| const CefString& errorText, |
| const CefString& failedUrl) OVERRIDE; |
| |
| // Request that all existing browser windows close. |
| void CloseAllBrowsers(bool force_close); |
| |
| bool IsClosing() const { return is_closing_; } |
| |
| private: |
| // Platform-specific implementation. |
| void PlatformTitleChange(CefRefPtr<CefBrowser> browser, |
| const CefString& title); |
| |
| // True if the application is using the Views framework. |
| const bool use_views_; |
| |
| // List of existing browser windows. Only accessed on the CEF UI thread. |
| typedef std::list<CefRefPtr<CefBrowser>> BrowserList; |
| BrowserList browser_list_; |
| |
| bool is_closing_; |
| |
| // Include the default reference counting implementation. |
| IMPLEMENT_REFCOUNTING(SimpleHandler); |
| }; |
| |
| #endif // CEF_TESTS_CEFSIMPLE_SIMPLE_HANDLER_H_ |