From cf134701eef8826f68740e25d6e4225c657612ea Mon Sep 17 00:00:00 2001 From: Gene Payne Date: Thu, 14 Apr 2022 13:41:22 -0600 Subject: [PATCH] Created cef processhelper file specific to linux --- modules/webbrowser/CMakeLists.txt | 3 +- modules/webbrowser/src/processhelperlinux.cpp | 67 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 modules/webbrowser/src/processhelperlinux.cpp diff --git a/modules/webbrowser/CMakeLists.txt b/modules/webbrowser/CMakeLists.txt index 2d0a209108..3dfdbbc12c 100644 --- a/modules/webbrowser/CMakeLists.txt +++ b/modules/webbrowser/CMakeLists.txt @@ -138,7 +138,8 @@ if (OS_MACOSX) endif() set(WEBBROWSER_HELPER_SOURCES_WINDOWS src/processhelperwindows.cpp) if (OS_LINUX) - list(APPEND WEBBROWSER_HELPER_SOURCES src/processhelperwindows.cpp) + list(APPEND WEBBROWSER_HELPER_SOURCES src/processhelperlinux.cpp) + set(WEBBROWSER_HELPER_SOURCES_LINUX src/processhelperwindows.cpp) endif() APPEND_PLATFORM_SOURCES(WEBBROWSER_HELPER_SOURCES) diff --git a/modules/webbrowser/src/processhelperlinux.cpp b/modules/webbrowser/src/processhelperlinux.cpp new file mode 100644 index 0000000000..997887a622 --- /dev/null +++ b/modules/webbrowser/src/processhelperlinux.cpp @@ -0,0 +1,67 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2022 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +// 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. + +#include "include/cef_app.h" +#include "include/webbrowserapp.h" +#if defined(CEF_X11) +#include +#endif + +#if defined(CEF_X11) +namespace { + +int XErrorHandlerImpl(Display* display, XErrorEvent* event) { + LOG(WARNING) << "X error received: " + << "type " << event->type << ", " + << "serial " << event->serial << ", " + << "error_code " << static_cast(event->error_code) << ", " + << "request_code " << static_cast(event->request_code) + << ", " + << "minor_code " << static_cast(event->minor_code); + return 0; +} + +int XIOErrorHandlerImpl(Display* display) { + return 0; +} + +} // namespace +#endif // defined(CEF_X11) + +// Entry point function for all processes. +int main(int argc, char* argv[]) { + // Provide CEF with command-line arguments. + CefMainArgs main_args(argc, argv); + + CefRefPtr app(new openspace::WebBrowserApp); + + // CEF applications have multiple sub-processes (render, GPU, etc) that share + // the same executable. This function checks the command-line and, if this is + // a sub-process, executes the appropriate logic. + return CefExecuteProcess(main_args, app.get(), nullptr); +}