#include "base/path_service.h"
#include "build/build_config.h"
+#if defined(BUILD_CHROME)
+#include <appfw/app_common.h>
+#include "base/memory/free_deleter.h"
+#endif
+
namespace base {
bool PathProvider(int key, FilePath* result) {
*result = home_dir;
#else
*result = GetHomeDir();
+#if defined(BUILD_CHROME)
+ char* app_id = NULL;
+ if (APP_ERROR_NONE == app_get_id(&app_id)) {
+ std::unique_ptr<char, FreeDeleter> data_path(app_get_data_path());
+ *result = base::FilePath(data_path.get());
+ free(app_id);
+ }
+#endif
#endif
return true;
}
#include <stdlib.h>
#endif
+#if defined(BUILD_CHROME)
+#include <appfw/app_common.h>
+#include "base/command_line.h"
+#include "base/memory/free_deleter.h"
+#endif
+
namespace base {
bool PathProviderPosix(int key, FilePath* result) {
case FILE_MODULE: { // TODO(evanm): is this correct?
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
FilePath bin_dir;
+#if defined(SAMSUNG_NEXT_BROWSER) || defined(BUILD_CHROME)
#if defined(SAMSUNG_NEXT_BROWSER)
base::FilePath::CharType binfilePath[] = FILE_PATH_LITERAL(
"/opt/usr/apps/org.tizen.next-browser/bin/next_browser");
bin_dir = base::FilePath(binfilePath);
+#else
+ bin_dir = base::CommandLine::ForCurrentProcess()->GetProgram();
+#endif
LOG(INFO) << bin_dir.value();
#else
if (!ReadSymbolicLink(FilePath(kProcSelfExe), &bin_dir)) {
std::unique_ptr<Environment> env(Environment::Create());
FilePath cache_dir(
nix::GetXDGDirectory(env.get(), "XDG_CACHE_HOME", ".cache"));
+#if defined(BUILD_CHROME)
+ char* app_id = NULL;
+ if (APP_ERROR_NONE == app_get_id(&app_id)) {
+ std::unique_ptr<char, FreeDeleter> cache_path(app_get_cache_path());
+ cache_dir = base::FilePath(cache_path.get());
+ free(app_id);
+ }
+#endif
#endif
*result = cache_dir;
return true;
import("//third_party/icu/config.gni")
}
+if (use_efl) {
+ import("//tizen_src/chromium_impl/chrome/chrome_efl.gni")
+}
+
declare_args() {
# Indicates whether keystone registration framework should be enabled (see
# action("keystone_registration_framework") below). There are some tests
}
}
} else if (use_efl) {
- browser_binary_name = "chrome_tizen"
- if (is_samsung_next_browser) {
- browser_binary_name = "next_browser"
- }
- executable(browser_binary_name) {
- testonly = true
- deps = [ "//tizen_src/ewk/efl_integration:libchromium-ewk" ]
- sources = [
- "app/chrome_exe_main_aura.cc",
- "app/chrome_exe_resource.h",
- ]
- ldflags = [
- "-pie",
- "-Wl,--export-dynamic",
- ]
- if (is_samsung_next_browser) {
- ldflags += [ "-Wl,-rpath=\$ORIGIN/../lib" ]
- defines = [ "SAMSUNG_NEXT_BROWSER" ]
- }
- cflags = [ "-fPIC" ]
- if (is_tizen) {
- configs += [ "//tizen_src/build/config/tizen:executable_config" ]
- }
- }
-
static_library("chrome_lib") {
sources = [ "app/chrome_exe_resource.h" ]
defines = []
"app/chrome_main_linux.cc",
"app/chrome_main_linux.h",
]
+ sources += external_chrome_app_efl_sources
deps += [
# On Linux, link the dependencies (libraries) that make up actual
--- /dev/null
+%package browser
+Summary: Tizen Chromium Browser Application
+Requires: %{name} = %{version}-%{release}
+%description browser
+Tizen Chromium Browser Application on Chromium EFL
+# org.tizen.chromium-efl-browser
+
+%define _browser_pkgid %{_pkgid}-browser
+%define _browser_rootdir %{TZ_SYS_RO_APP}/%{_browser_pkgid}
+%define _browser_buildpath "%{buildroot}"%{_browser_rootdir}
+
+# This variable is being accessed in the parent spec file, so we define it globally here.
+%global __browser_install_spec \
+ install -m 0644 "%{OUTPUT_FOLDER}"/tizen-manifest-browser.xml "%{buildroot}"%{_xmldir}/%{_browser_pkgid}.xml \
+ install -d "%{_browser_buildpath}" \
+ install -d "%{_browser_buildpath}"/bin \
+ install -d "%{_browser_buildpath}"/bin/locales \
+ install -m 0644 "%{OUTPUT_FOLDER}"/product_logo_48.png "%{_browser_buildpath}"/%{_browser_pkgid}.png \
+ install -m 0755 "%{OUTPUT_FOLDER}"/chrome_tizen "%{_browser_buildpath}"/bin \
+ install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{_browser_buildpath}"/bin \
+ install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{_browser_buildpath}"/bin \
+ install -m 0644 "%{OUTPUT_FOLDER}"/locales/en-US.pak "%{_browser_buildpath}"/bin/locales \
+ install -m 0644 "%{OUTPUT_FOLDER}"/snapshot_blob.bin "%{_browser_buildpath}"/bin \
+ %{nil}
+
+%files browser
+%manifest packaging/chromium-efl.manifest
+%{_xmldir}/%{_browser_pkgid}.xml
+%{_browser_rootdir}/%{_browser_pkgid}.png
+%{_browser_rootdir}/bin/chrome_tizen
+%{_browser_rootdir}/bin/chrome_100_percent.pak
+%{_browser_rootdir}/bin/resources.pak
+%{_browser_rootdir}/bin/locales/en-US.pak
+%{_browser_rootdir}/bin/snapshot_blob.bin
+
+%preun browser
+%pre browser
+
+%post browser
+echo Installation:
+echo tpk-backend -y %{_browser_pkgid} --preload
Source0: %{name}-%{version}.tar.gz
Source1: content_shell.in
+Source2: chromium-efl-browser.spec.in
%ifarch aarch64
%define _nodebug 1
%define __browser_tpk_id org.tizen.next-browser
%endif
+%if 0%{?__build_chrome} && %{__create_next_browser_tpk} == 0
+%define include_sub_spec() %{expand:%(cat '%{1}')}
+%{include_sub_spec %{SOURCE2}}
+%endif
+
%prep
%setup -q
%build
+# The "_repository" flag was changed to "_vd_cfg_target_repository" in tizen 4.0 product tv.
+%if "%{?tizen_profile_name}" == "tv"
+#TO DO, onemain branch haven't defined _vd_cfg_target_repository, so add this hijack code
+# to set repo_name to "MuseM" if not define _vd_cfg_target_repository, need to delete this
+# code when defined _vd_cfg_target_repository in onemain.
+%if "%{?_vd_cfg_target_repository}"
+%define repo_name %{_vd_cfg_target_repository}
+%else
+%define repo_name MuseM
+%endif
+%else
+%define repo_name %{_repository}
+%endif
+
+%if %{__build_chrome} == 1
+%define OUTPUT_BASE_FOLDER out.chrome.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
+%else
+%if %{__is_tizen_x} == 1
+%define OUTPUT_BASE_FOLDER out.tz_X.%{repo_name}.%{ARCHITECTURE}
+%else
+%define OUTPUT_BASE_FOLDER out.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
+%endif
+%endif
+
+export GN_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
+
+export BUILD_ARCH=%{ARCHITECTURE}
+
+#set build mode
+%global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}
+
# architecture related configuration + neon temporary workaround
%if %{?_skip_ninja:0}%{!?_skip_ninja:1}
export PYTHONIOENCODING=utf-8
%endif
-# The "_repository" flag was changed to "_vd_cfg_target_repository" in tizen 4.0 product tv.
-%if "%{?tizen_profile_name}" == "tv"
-#TO DO, onemain branch haven't defined _vd_cfg_target_repository, so add this hijack code
-# to set repo_name to "MuseM" if not define _vd_cfg_target_repository, need to delete this
-# code when defined _vd_cfg_target_repository in onemain.
-%if "%{?_vd_cfg_target_repository}"
-%define repo_name %{_vd_cfg_target_repository}
-%else
-%define repo_name MuseM
-%endif
-%else
-%define repo_name %{_repository}
-%endif
-
-%if %{__build_chrome} == 1
-%define OUTPUT_BASE_FOLDER out.chrome.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
-%else
-%if %{__is_tizen_x} == 1
-%define OUTPUT_BASE_FOLDER out.tz_X.%{repo_name}.%{ARCHITECTURE}
-%else
-%define OUTPUT_BASE_FOLDER out.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
-%endif
-%endif
-
-export GN_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
-
-export BUILD_ARCH=%{ARCHITECTURE}
-
-#set build mode
-%global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}
-
if type ccache &> /dev/null; then
source tizen_src/build/ccache_env.sh tizen
fi
v8_tests \
%endif
%if 0%{?__build_chrome}
- %{__browser_binary_name} \
+ chrome_exe_tizen \
%endif
%if 0%{?build_rtc_unittests}
webrtc_test_component \
packaging/%{_manifestname}.xml.in \
> "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml
%endif
-%if 0%{?__create_next_browser_tpk}
+%if 0%{?__build_chrome}
+%if 0%{?__create_next_browser_tpk}
sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
-e 's#@CHROMIUM_VERSION@#%{__next_browser_version}#g' \
-e 's#@PACKAGE_ID@#%{__browser_tpk_id}#g' \
packaging/%{_next_browser_manifestname}.xml.in \
> "%{OUTPUT_FOLDER}"/tizen-manifest-next-browser-tpk.xml
+%else
+sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
+ -e 's#@CHROMIUM_VERSION@#%{version}#g' \
+ packaging/%{_pkgid}-browser.xml.in \
+ > "%{OUTPUT_FOLDER}"/tizen-manifest-browser.xml
+%endif
%endif
%if 0%{?__generate_tpk} && "%{?profile}" == "tv"
install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
%endif
-%if %{__build_chrome} == 1 && "%{__generate_tpk}" == "0"
- install -m 0755 "%{OUTPUT_FOLDER}"/%{__browser_binary_name} "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/%{__browser_binary_name}
- sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/%{__browser_binary_name}#' %{SOURCE1} > "%{buildroot}"%{_bindir}/%{__browser_binary_name}
- install -m 0644 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales
- install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
- install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
-%else
install -m 0644 "%{OUTPUT_FOLDER}"/locales/efl/*.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales/
-%endif
install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}"%{_bindir}/
%if "%{?profile}" == "tv"
install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes/
-%if %{__build_chrome} != 1
cp -r "%{OUTPUT_FOLDER}"/locale/* "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale/
chmod -R a=r,u+w,a+X "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale/*
-%endif
%if "%{?__use_system_icu}" != "1"
install -m 0644 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
find %{buildroot} -type f -name *.so | xargs strip --strip-all
%endif
+%if 0%{?__build_chrome} && %{__create_next_browser_tpk} == 0
+ %{__browser_install_spec}
+ # tizen_src/build/build_chromium_browser_tpk.sh %{_buildroot_next_browser} %{OUTPUT_FOLDER} %{_browser_tpk_file_name} %{__browser_tpk_id} %{?profile}
+%endif
+
%pre
if (( $(rpm -qa | grep 'wrtjs-[[:digit:]]' | wc -l) > 1 )); then
echo -e "\033[31m*****************************************************"
%{CHROMIUM_LIB_DIR}/res/locale/*
%{CHROMIUM_LIB_DIR}/res/images/*.png
-%if %{__build_chrome} == 1 && "%{__generate_tpk}" == "0"
- %{CHROMIUM_LIB_DIR}/bin/chrome_100_percent.pak
- %{CHROMIUM_LIB_DIR}/bin/resources.pak
- %{CHROMIUM_LIB_DIR}/bin/%{__browser_binary_name}
- %{_bindir}/%{__browser_binary_name}
-%endif
%{_libdir}/libchromium-ewk.so
%{_libdir}/libewebkit2.so*
%if 0%{?__enable_squashfs_image}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="@TIZEN_VERSION@" package="org.tizen.chromium-efl-browser" version="@CHROMIUM_VERSION@">
+ <ui-application appid="org.tizen.chromium-efl-browser" exec="chrome_tizen" nodisplay="false" multiple="false" type="capp" taskmanage="true">
+ <label>Chromium</label>
+ <icon>org.tizen.chromium-efl-browser.png</icon>
+ <description>Chromium Browser for Tizen</description>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/alarm.get</privilege>
+ <privilege>http://tizen.org/privilege/alarm.set</privilege>
+ <privilege>http://tizen.org/privilege/apphistory.read</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.kill.bgapp</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/content.read</privilege>
+ <privilege>http://tizen.org/privilege/datacontrol.consumer</privilege>
+ <privilege>http://tizen.org/privilege/datasharing</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/notification</privilege>
+ <privilege>http://tizen.org/privilege/package.info</privilege>
+ <privilege>http://tizen.org/privilege/packagemanager.admin</privilege>
+ <privilege>http://tizen.org/privilege/packagemanager.clearcache</privilege>
+ <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
+ <privilege>http://tizen.org/privilege/telephony.admin</privilege>
+ </privileges>
+ <feature name="http://tizen.org/feature/screen.size.normal.1080.1920">true</feature>
+</manifest>
--- /dev/null
+# Copyright (c) 2024 samsung electronics. all rights reserved.
+# use of this source code is governed by a bsd-style license that can be
+# found in the license file.
+import("//tizen_src/build/config/tizen_features.gni")
+executable("chrome_exe_tizen") {
+ # TODO: testonly should be defined only for testing.
+ testonly = true
+ output_name = "chrome_tizen"
+ if (is_samsung_next_browser) {
+ output_name = "next_browser"
+ }
+ deps = [ "//tizen_src/ewk/efl_integration:libchromium-ewk" ]
+ sources = [ "app/chrome_exe_main_tizen.cc" ]
+ ldflags = [
+ "-pie",
+ "-Wl,--export-dynamic",
+ ]
+ if (is_samsung_next_browser) {
+ ldflags += [ "-Wl,-rpath=\$ORIGIN/../lib" ]
+ defines = [ "SAMSUNG_NEXT_BROWSER" ]
+ }
+ cflags = [ "-fPIC" ]
+ if (is_tizen) {
+ configs += [ "//tizen_src/build/config/tizen:executable_config" ]
+ }
+}
--- /dev/null
+// Copyright 2011 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "build/build_config.h"
+
+// The entry point for all invocations of Chromium, browser and renderer. On
+// windows, this does nothing but load chrome.dll and invoke its entry point in
+// order to make it easy to update the app from GoogleUpdate. We don't need
+// that extra layer with on linux.
+extern "C" {
+int ChromeMain(int argc, const char** argv);
+int ChromeMainTizen(int argc, const char** argv);
+}
+
+#if defined(SAMSUNG_NEXT_BROWSER) || defined(BUILD_CHROME)
+__attribute__((visibility("default"))) int main(int argc, const char** argv) {
+#else
+int main(int argc, const char** argv) {
+#endif
+#if defined(SAMSUNG_NEXT_BROWSER)
+ return ChromeMain(argc, argv);
+#else
+ return ChromeMainTizen(argc, argv);
+#endif
+}
--- /dev/null
+// Copyright 2024 The Chromium 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 <appfw/app.h>
+#include <string>
+#include <vector>
+
+#include "base/logging.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "content/browser/renderer_host/render_view_host_impl.h"
+#include "content/browser/renderer_host/render_widget_host_view_aura.h"
+
+extern "C" {
+int ChromeMain(int argc, const char** argv);
+
+__attribute__((visibility("default"))) int NO_STACK_PROTECTOR
+ChromeMainTizen(int argc, const char** argv);
+}
+
+namespace {
+
+content::WebContents* GetBrowserWebContent() {
+ Browser* browser = BrowserList::GetInstance()->GetLastActive();
+ if (browser == nullptr) {
+ LOG(INFO) << "Browser is null";
+ return nullptr;
+ }
+ TabStripModel* tab_strip_model = browser->tab_strip_model();
+ if (!tab_strip_model) {
+ LOG(INFO) << " Tab strip model is null";
+ return nullptr;
+ }
+ return tab_strip_model->GetActiveWebContents();
+}
+
+bool BrowserCreate(void* user_data) {
+ LOG(INFO) << "BrowserCreate";
+ const char** argv = static_cast<const char**>(user_data);
+ const char* chrome_arguments[] = {
+ argv[0],
+ "--no-sandbox",
+ "--ignore-gpu-blocklist",
+ "--ozone-platform=efl",
+ "--in-process-gpu",
+ "--window-size=1920,1080",
+ "--window-position=0,0",
+ "--enable-logging=stderr",
+ };
+ const int chromium_argc = sizeof(chrome_arguments) / sizeof(const char*);
+ return ChromeMain(chromium_argc, chrome_arguments);
+}
+
+void BrowserPause(void* user_data) {
+ LOG(INFO) << "BrowserPause call";
+ content::WebContents* web_contents = GetBrowserWebContent();
+ if (!web_contents) {
+ LOG(INFO) << " Active Web contents is null";
+ return;
+ }
+ content::RenderViewHost* rvh = web_contents->GetRenderViewHost();
+ content::RenderFrameHost* rfh = web_contents->GetPrimaryMainFrame();
+ if (!rvh) {
+ LOG(INFO) << " Render view host is null";
+ return;
+ }
+ if (!rfh) {
+ LOG(INFO) << " Render frame host is null";
+ return;
+ }
+ if (rvh->IsRenderViewLive()) {
+ LOG(INFO) << " pause webview";
+ content::RenderWidgetHostImpl* rwhi =
+ static_cast<content::RenderWidgetHostImpl*>(rvh->GetWidget());
+ rwhi->PauseScheduledTasks();
+ }
+ LOG(INFO) << " hide webview";
+ web_contents->WasHidden();
+}
+
+void BrowserResume(void* user_data) {
+ LOG(INFO) << "BrowserResume call";
+ content::WebContents* web_contents = GetBrowserWebContent();
+ if (!web_contents) {
+ LOG(INFO) << " Active Web contents is null";
+ return;
+ }
+ content::RenderViewHost* rvh = web_contents->GetRenderViewHost();
+ content::RenderFrameHost* rfh = web_contents->GetPrimaryMainFrame();
+ if (!rvh) {
+ LOG(INFO) << " Render view host is null";
+ return;
+ }
+ if (!rfh) {
+ LOG(INFO) << " Render frame host is null";
+ return;
+ }
+ content::RenderWidgetHostViewAura* rwhva =
+ static_cast<content::RenderWidgetHostViewAura*>(
+ web_contents->GetRenderWidgetHostView());
+
+ if (rvh->IsRenderViewLive() && rwhva) {
+ LOG(INFO) << " resume webview";
+ rwhva->host()->UnPauseScheduledTasks();
+ }
+ LOG(INFO) << " show webview";
+ web_contents->WasShown();
+}
+
+void BrowserTerminate(void* user_data) {
+ LOG(INFO) << "BrowserTerminate call";
+}
+
+void BrowserControl(app_control_h app_control, void* user_data) {
+ LOG(INFO) << "BrowserControl call";
+}
+
+bool IsSubprocess(const int argc, const char** argv) {
+ bool is_subprocess = false;
+ for (int i = 0; i < argc; i++) {
+ std::string arg(argv[i]);
+ is_subprocess = arg.find("--type") != std::string::npos;
+ if (is_subprocess) {
+ return is_subprocess;
+ }
+ }
+ return is_subprocess;
+}
+
+int ChromeBrowserMainTizen(const int argc, const char** argv) {
+ ui_app_lifecycle_callback_s event_callback;
+ memset(&event_callback, 0x00, sizeof(ui_app_lifecycle_callback_s));
+ event_callback.create = BrowserCreate;
+ event_callback.terminate = BrowserTerminate;
+ event_callback.pause = BrowserPause;
+ event_callback.resume = BrowserResume;
+ event_callback.app_control = BrowserControl;
+ return ui_app_main(argc, (char**)argv, &event_callback, argv);
+}
+} // namespace
+
+int ChromeMainTizen(int argc, const char** argv) {
+ LOG(INFO) << "InitChromeTizenApp";
+ if (IsSubprocess(argc, argv)) {
+ return ChromeMain(argc, argv);
+ }
+ return ChromeBrowserMainTizen(argc, argv);
+}
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_chrome_app_efl_sources = []
+
+if (is_tizen) {
+ external_chrome_app_efl_sources +=
+ [ "//tizen_src/chromium_impl/chrome/app/chrome_main_tizen.cc" ]
+}
+
chrome_browser_net_efl_sources = [
"//tizen_src/chromium_impl/chrome/browser/net/proxy_config_monitor.cc",
"//tizen_src/chromium_impl/chrome/browser/net/proxy_config_monitor.h",
return fp(argc, argv);
return 0;
}
+__attribute__((visibility("default"))) int ChromeMainTizen(int argc,
+ const char** argv) {
+ LOG(INFO) << "EWK-INTERFACE : ChromeMainTizen called..";
+ typedef int (*func_ptr_t)(int argc, const char** argv);
+ func_ptr_t fp = reinterpret_cast<func_ptr_t>(ewk_dlsym("ChromeMainTizen"));
+ if (fp) {
+ return fp(argc, argv);
+ }
+ return 0;
+}
#endif
#endif // defined(BUILD_CHROME)
if (is_tizen) {
deps += [ "//tizen_src/downloadable:chromium-efl-install" ]
}
+ if (build_chrome) {
+ deps += [ "//tizen_src/chromium_impl/chrome:chrome_exe_tizen" ]
+ }
}
node_module_register;
# CHROMIUM BROWSER
ChromeMain;
+ ChromeMainTizen;
ChromeAppCreate;
ChromeAppControl;
ChromeAppResume;
"trim string",
[])
defines = [ "CHROMIUM_VERSION=\"" + chrome_version + "\"" ]
+ version_script = "//tizen_src/ewk/chromium-ewk.filter"
+ inputs = [ version_script ]
ldflags = [
"-Wl,--as-needed",
"-Wl,--no-undefined",
- "-Wl,--version-script=" +
- rebase_path("//tizen_src/ewk/chromium-ewk.filter"),
+ "-Wl,--version-script=" + rebase_path(version_script),
]
cflags = [
# Symbol visibility controled by chromium-ewk.filter