// Copyright (c) 2016 CEF Python, see the Authors file. // All rights reserved. Licensed under BSD 3-clause license. // Project website: https://github.com/cztomczak/cefpython #include "js_dialog_handler.h" JSDialogHandler::JSDialogHandler() { #if defined(OS_LINUX) // Provide the GTK-based default dialog implementation on Linux. dialog_handler_ = new ClientDialogHandlerGtk(); #endif } bool JSDialogHandler::OnJSDialog(CefRefPtr browser, const CefString& origin_url, JSDialogType dialog_type, const CefString& message_text, const CefString& default_prompt_text, CefRefPtr callback, bool& suppress_message) { REQUIRE_UI_THREAD(); bool ret = JavascriptDialogHandler_OnJavascriptDialog( browser, origin_url, dialog_type, message_text, default_prompt_text, callback, suppress_message); #if defined(OS_LINUX) if (!ret) { // Default implementation return dialog_handler_->OnJSDialog(browser, origin_url, dialog_type, message_text, default_prompt_text, callback, suppress_message); } #endif return ret; } bool JSDialogHandler::OnBeforeUnloadDialog( CefRefPtr browser, const CefString& message_text, bool is_reload, CefRefPtr callback) { REQUIRE_UI_THREAD(); bool ret = JavascriptDialogHandler_OnBeforeUnloadJavascriptDialog( browser, message_text, is_reload, callback); #if defined(OS_LINUX) if (!ret) { // Default implementation return dialog_handler_->OnBeforeUnloadDialog(browser, message_text, is_reload, callback); } #endif return ret; } void JSDialogHandler::OnResetDialogState(CefRefPtr browser) { REQUIRE_UI_THREAD(); #if defined(OS_LINUX) // Default implementation dialog_handler_->OnResetDialogState(browser); #endif // User implementation JavascriptDialogHandler_OnResetJavascriptDialogState(browser); } void JSDialogHandler::OnDialogClosed(CefRefPtr browser) { REQUIRE_UI_THREAD(); JavascriptDialogHandler_OnJavascriptDialogClosed(browser); }