#include "common/file_utils.h"
#include "common/logger.h"
#include "common/profiler.h"
+#include "common/platform_info.h"
namespace common {
const char* kConfigXml = "config.xml";
const char* kWgtPath = "wgt";
-#ifdef IME_FEATURE_SUPPORT
const char* kImeCategory = "http://tizen.org/category/ime";
-#endif // IME_FEATURE_SUPPORT
-#ifdef WATCH_FACE_FEATURE_SUPPORT
const char* kIdleClockCategory = "com.samsung.wmanager.WATCH_CLOCK";
const char* kWearableClockCategory = "http://tizen.org/category/wearable_clock";
-#endif // WATCH_FACE_FEATURE_SUPPORT
} // namespace
auto it = category_list.begin();
auto end = category_list.end();
for (; it != end; ++it) {
-#ifdef IME_FEATURE_SUPPORT
- if (*it == kImeCategory) {
+ if (TIZEN_FEATURE_web_ime_support && *it == kImeCategory) {
return IME;
}
-#endif // IME_FEATURE_SUPPORT
-#ifdef WATCH_FACE_FEATURE_SUPPORT
- if (*it == kIdleClockCategory || *it == kWearableClockCategory) {
+ if (TIZEN_FEATURE_watch_face_support &&
+ (*it == kIdleClockCategory || *it == kWearableClockCategory)) {
return WATCH;
}
-#endif // WATCH_FACE_FEATURE_SUPPORT
}
}
return UI;
public:
enum AppType {
UI = 0
-#ifdef IME_FEATURE_SUPPORT
,IME
-#endif // IME_FEATURE_SUPPORT
-#ifdef WATCH_FACE_FEATURE_SUPPORT
,WATCH
-#endif // WATCH_FACE_FEATURE_SUPPORT
};
explicit ApplicationData(const std::string& appid);
'locale_manager.cc',
'resource_manager.h',
'resource_manager.cc',
+ 'platform_info.h',
+ 'platform_info.cc',
],
'cflags': [
'-fvisibility=default',
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cstdlib>
+#include <system_info.h>
+#include "common/platform_info.h"
+
+namespace common {
+
+enum _profile getProfile(void) {
+ static enum _profile profile = kPROFILE_UNKNOWN;
+
+ // This is false only for the first execution. Let's optimize it.
+ if (__builtin_expect(profile != kPROFILE_UNKNOWN, 1))
+ return profile;
+
+ char *profileName;
+ system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
+ switch (*profileName) {
+ case 'm':
+ case 'M':
+ profile = kPROFILE_MOBILE;
+ break;
+ case 'w':
+ case 'W':
+ profile = kPROFILE_WEARABLE;
+ break;
+ case 't':
+ case 'T':
+ profile = kPROFILE_TV;
+ break;
+ case 'i':
+ case 'I':
+ profile = kPROFILE_IVI;
+ break;
+ default: // common or unknown ==> ALL ARE COMMON.
+ profile = kPROFILE_COMMON;
+ }
+ free(profileName);
+
+ return profile;
+}
+
+} // namespace common
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XWALK_COMMON_PLATFORM_INFO_H_
+#define XWALK_COMMON_PLATFORM_INFO_H_
+
+namespace common {
+
+enum _profile {
+ kPROFILE_UNKNOWN = 0,
+ kPROFILE_MOBILE = 0x1,
+ kPROFILE_WEARABLE = 0x2,
+ kPROFILE_TV = 0x4,
+ kPROFILE_IVI = 0x8,
+ kPROFILE_COMMON = 0x10,
+};
+
+// To optimize for GBMs, you may define the following values based on profile (e.g., #define TIZEN_FEATURE_blahblah (1))
+
+#define TIZEN_FEATURE_web_ime_support \
+ (common::getProfile() & ((common::kPROFILE_WEARABLE) | (common::kPROFILE_TV)))
+#define TIZEN_FEATURE_manual_rotate_support \
+ (common::getProfile() & ((common::kPROFILE_MOBILE)))
+#define TIZEN_FEATURE_watch_face_support \
+ (common::getProfile() & ((common::kPROFILE_WEARABLE)))
+#define TIZEN_FEATURE_rotary_event_support \
+ (common::getProfile() & ((common::kPROFILE_WEARABLE)))
+
+extern enum _profile getProfile(void);
+
+} // namespace common
+#endif // XWALK_COMMON_PLATFORM_INFO_H_
BuildRequires: pkgconfig(capi-appfw-app-manager)
BuildRequires: pkgconfig(capi-appfw-package-manager)
BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(capi-ui-efl-util)
BuildRequires: pkgconfig(chromium-efl)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(ttrace)
BuildRequires: pkgconfig(jsoncpp)
+%define chromium_efl_workaround_ewk_settings 0
+
%if "%{?profile}" == "mobile"
%define tizen_feature_rotary_event_support 0
%define tizen_feature_web_ime_support 0
%define tizen_feature_watch_face_support 0
-%define tizen_feature_manual_rotate_support 1
%endif
%if "%{?profile}" == "wearable"
%define tizen_feature_rotary_event_support 1
%define tizen_feature_web_ime_support 1
%define tizen_feature_watch_face_support 1
-%define tizen_feature_manual_rotate_support 0
+%define chromium_efl_workaround_ewk_settings 1
%endif
%if "%{?profile}" == "tv"
%define tizen_feature_rotary_event_support 0
%define tizen_feature_web_ime_support 1
%define tizen_feature_watch_face_support 0
-%define tizen_feature_manual_rotate_support 0
%endif
+# If it is unified environment.
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%define tizen_feature_rotary_event_support 1
+%define tizen_feature_web_ime_support 1
+%define tizen_feature_watch_face_support 1
+%endif
+
+# In "unified" build environment, where "profile" is none of mobile/wearable/tv/common/ivi, but a new value or undefined,
+# all the "feature"s are to be supported and be activated selectively at runtime/inittime.
+# (the profile is probed at runtime)
+
+# tizen_feature_rotary..._support (==> platform_info / wearable)
+# tizen_feature_web_ime_support (==> platform_info / wearable || TV)
+# tizen_feature_watch_face_support (==> platform_info / wearable)
+# tizen_feature_manual_rotate_support (==> platform_info / mobile)
+
%if 0%{?tizen_feature_web_ime_support}
BuildRequires: pkgconfig(capi-ui-inputmethod)
%endif
%build
export GYP_GENERATORS='ninja'
-GYP_OPTIONS="--depth=.
--Dprofile=%{profile}"
+GYP_OPTIONS="--depth=."
+# Not required anymore
+#-Dprofile=%{profile}"
# BuildType: Debug / Release
%if 0%{?tizen_build_devel_mode}
%endif
# Feature flags
+# TODO: in unified environment, the following feature flags are useless (always on)
GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_rotary_event_support=%{?tizen_feature_rotary_event_support}"
GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_ime_support=%{?tizen_feature_web_ime_support}"
GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_watch_face_support=%{?tizen_feature_watch_face_support}"
-GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_manual_rotate_support=%{?tizen_feature_manual_rotate_support}"
+# Not required anymore
+#GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_manual_rotate_support=%{?tizen_feature_manual_rotate_support}"
+
+# TODO: do not use model_build_feature.
GYP_OPTIONS="$GYP_OPTIONS -Dtizen_model_formfactor=%{?model_build_feature_formfactor}"
# Extension Path
# Injected bundle
GYP_OPTIONS="$GYP_OPTIONS -Dinjected_bundle_path=%{injected_bundle_path}"
+# Chromium-EFL generated CAPI header files differently per profile.
+# Until they are unified a function "ewk_settings_form_candidate_data_enabled_set()" cannot be used for wearable.
+# Therefore, until chromium-efl gets refactored to emit devel packages equally for every profile, let's keep this.
+GYP_OPTIONS="$GYP_OPTIONS -Dchromium_efl_workaround_ewk_settings=%{chromium_efl_workaround_ewk_settings}"
+
# Tizen product tv
GYP_OPTIONS="$GYP_OPTIONS -Dtizen_product_tv=%{!?TIZEN_PRODUCT_TV:0}"
(enable || currentViewModeFullScreen_) ? ELM_WIN_INDICATOR_TRANSPARENT : ELM_WIN_INDICATOR_OPAQUE);
}
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
void NativeWindow::EnableManualRotation(bool enable) {
LOGGER(DEBUG) << "set manual rotation : " << (enable ? "enabled" : "disabled");
elm_win_wm_rotation_manual_rotation_done_set(window_, enable ? EINA_TRUE : EINA_FALSE);
elm_win_wm_rotation_manual_rotation_done(window_);
}
}
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
} // namespace runtime
void FullScreen(bool enable);
ScreenOrientation natural_orientation() const { return natural_orientation_;}
Type type() const { return window_type_;}
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
void EnableManualRotation(bool enable);
void ManualRotationDone();
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
protected:
virtual Evas_Object* CreateWindowInternal() = 0;
#include "common/application_data.h"
#include "common/command_line.h"
#include "common/logger.h"
+#include "common/platform_info.h"
#include "runtime/common/constants.h"
#include "runtime/browser/runtime.h"
#include "runtime/browser/ui_runtime.h"
return std::unique_ptr<Runtime>(new UiRuntime(app_data));
}
#ifdef IME_FEATURE_SUPPORT
- else if (app_data->app_type() == common::ApplicationData::IME) {
+ else if (TIZEN_FEATURE_web_ime_support &&
+ app_data->app_type() == common::ApplicationData::IME) {
return std::unique_ptr<Runtime>(new ImeRuntime(app_data));
}
#endif // IME_FEATURE_SUPPORT
#ifdef WATCH_FACE_FEATURE_SUPPORT
- else if (app_data->app_type() == common::ApplicationData::WATCH) {
+ else if (TIZEN_FEATURE_watch_face_support &&
+ app_data->app_type() == common::ApplicationData::WATCH) {
return std::unique_ptr<Runtime>(new WatchRuntime(app_data));
}
#endif // WATCH_FACE_FEATURE_SUPPORT
#include <Elementary.h>
-#ifdef WATCH_FACE_FEATURE_SUPPORT
#include <bundle_internal.h>
#include <Ecore_Wayland.h>
-#endif // WATCH_FACE_FEATURE_SUPPORT
#include "common/application_data.h"
#include "common/command_line.h"
#include "common/logger.h"
#include "common/profiler.h"
+#include "common/platform_info.h"
#include "extensions/renderer/xwalk_extension_renderer_controller.h"
#include "runtime/browser/runtime.h"
#include "runtime/common/constants.h"
#include "runtime/browser/prelauncher.h"
#include "runtime/browser/preload_manager.h"
+#include "runtime/browser/web_view_impl.h"
#include "runtime/browser/ui_runtime.h"
using namespace extensions;
bool g_prelaunch = false;
-#ifdef WATCH_FACE_FEATURE_SUPPORT
static int setWatchEnv(int argc, char **argv) {
bundle *kb = NULL;
char *wayland_display = NULL;
}
return 0;
}
-#endif // WATCH_FACE_FEATURE_SUPPORT
int real_main(int argc, char* argv[]) {
STEP_PROFILE_START("Start -> Launch Completed");
return false;
}
-#ifdef WATCH_FACE_FEATURE_SUPPORT
- if (appdata->app_type() == common::ApplicationData::WATCH) {
+ if (TIZEN_FEATURE_watch_face_support &&
+ appdata->app_type() == common::ApplicationData::WATCH) {
setWatchEnv(argc, argv);
}
-#endif // WATCH_FACE_FEATURE_SUPPORT
// Default behavior, run as runtime.
LOGGER(INFO) << "Runtime process has been created.";
const int chromium_arg_cnt =
sizeof(chromium_arg_options) / sizeof(chromium_arg_options[0]);
ewk_set_arguments(chromium_arg_cnt, chromium_arg_options);
-#ifdef WATCH_FACE_FEATURE_SUPPORT
} else {
- if (appdata->app_type() == common::ApplicationData::WATCH) {
+ if (TIZEN_FEATURE_watch_face_support &&
+ appdata->app_type() == common::ApplicationData::WATCH) {
// Below code will be enabled after testing
//ecore_wl_shutdown();
//ecore_wl_init(NULL);
}
-#endif // WATCH_FACE_FEATURE_SUPPORT
}
// Runtime's destructor should be called before ewk_shutdown()
#include "common/resource_manager.h"
#include "common/string_utils.h"
#include "extensions/renderer/xwalk_extension_renderer_controller.h"
+#include "common/platform_info.h"
#include "runtime/browser/native_window.h"
#include "runtime/browser/notification_manager.h"
#include "runtime/browser/popup.h"
security_model_version_ = 1;
}
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
// Set manual rotation
- window_->EnableManualRotation(true);
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
+ if (TIZEN_FEATURE_manual_rotate_support)
+ window_->EnableManualRotation(true);
return true;
}
window_->SetContent(view->evas_object());
-#ifdef PROFILE_MOBILE
// rotate and resize window forcibily for landscape mode.
// window rotate event is generated after window show. so
// when app get width and height from viewport, wrong value can be returned.
- if (app_data_->setting_info()->screen_orientation() ==
+ if (common::getProfile() == common::kPROFILE_MOBILE &&
+ app_data_->setting_info()->screen_orientation() ==
wgt::parse::SettingInfo::ScreenOrientation::LANDSCAPE) {
LOGGER(DEBUG) << "rotate and resize window for landscape mode";
elm_win_rotation_with_resize_set(window_->evas_object(), 270);
evas_norender(evas_object_evas_get(window_->evas_object()));
}
-#endif // PROFILE_MOBILE
view->LoadUrl(res->uri(), res->mime());
view_stack_.push_front(view);
-#ifdef PROFILE_WEARABLE
// ewk_view_bg_color_set is not working at webview initialization.
- if (app_data_->app_type() == common::ApplicationData::WATCH) {
+ if (common::getProfile() == common::kPROFILE_WEARABLE &&
+ app_data_->app_type() == common::ApplicationData::WATCH) {
view->SetBGColor(0, 0, 0, 255);
}
-#endif // PROFILE_WEARABLE
if (appcontrol->data(AUL_K_DEBUG) == "1") {
debug_mode_ = true;
launched_ = true;
-#ifdef PROFILE_MOBILE
- if (!common::utils::StartsWith(view->GetUrl(), kFileScheme)) {
+ if (common::getProfile() == common::kPROFILE_MOBILE &&
+ !common::utils::StartsWith(view->GetUrl(), kFileScheme)) {
LOGGER(DEBUG) << "Show window after launch for remote URL";
window_->Show();
window_->Active();
}
-#endif // PROFILE_MOBILE
}
void WebApplication::AppControl(
LOGGER(ERROR) << "app_ui_exit";
ui_app_exit();
break;
-#ifdef WATCH_FACE_FEATURE_SUPPORT
case common::ApplicationData::AppType::WATCH:
- LOGGER(ERROR) << "watch_ui_exit";
- watch_app_exit();
- break;
-#endif
+ if (TIZEN_FEATURE_watch_face_support) {
+ LOGGER(ERROR) << "watch_ui_exit";
+ watch_app_exit();
+ break;
+ } else {
+ goto __default;
+ }
default:
+__default:
LOGGER(ERROR) << "default terminator";
elm_exit();
}
view_stack_.front()->EvalJavascript(kSoftKeyboardScript.c_str());
}
-#ifdef ROTARY_EVENT_FEATURE_SUPPORT
void WebApplication::OnRotaryEvent(WebView* /*view*/,
RotaryEventType type) {
LOGGER(DEBUG) << "OnRotaryEvent";
if (view_stack_.size() > 0 && view_stack_.front() != NULL)
view_stack_.front()->EvalJavascript(kRotaryEventScript.c_str());
}
-#endif // ROTARY_EVENT_FEATURE_SUPPORT
void WebApplication::OnTimeTick(long time) {
#if 0
// Do not show(), active() for language change
if(lang_changed_mode_ == false){
// Show window after frame rendered.
-#ifdef PROFILE_MOBILE
- if (common::utils::StartsWith(view->GetUrl(), kFileScheme)) {
+ if (common::getProfile() == common::kPROFILE_MOBILE) {
+ if (common::utils::StartsWith(view->GetUrl(), kFileScheme)) {
+ window_->Show();
+ window_->Active();
+ }
+ } else {
window_->Show();
window_->Active();
}
-#else // PROFILE_MOBILE
- window_->Show();
- window_->Active();
-#endif
}
else{
lang_changed_mode_ = false;
}
}
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
void WebApplication::OnRotatePrepared(WebView* /*view*/) {
window_->ManualRotationDone();
}
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
void WebApplication::LaunchInspector(common::AppControl* appcontrol) {
unsigned int port = ewk_context_inspector_server_start(ewk_context_, 0);
std::function<void(bool)> result_handler);
virtual void OnSoftKeyboardChangeEvent(
WebView* view, SoftKeyboardChangeEventValue softkeyboard_value);
-#ifdef ROTARY_EVENT_FEATURE_SUPPORT
virtual void OnRotaryEvent(
WebView* view, RotaryEventType type);
-#endif // ROTARY_EVENT_FEATURE_SUPPORT
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
virtual void OnRotatePrepared(WebView* view);
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
static Eina_Bool CheckPluginSession(void* user_data);
static Eina_Bool ClosePageInExtendedMainLoop(void* user_data);
struct Timer
impl_->SetLongPolling(longpolling);
}
-#ifdef PROFILE_WEARABLE
void WebView::SetBGColor(int r, int g, int b, int a) {
impl_->SetBGColor(r, g, b, a);
}
-#endif // PROFILE_WEARABLE
} // namespace runtime
virtual void OnSoftKeyboardChangeEvent(
WebView* /*view*/,
SoftKeyboardChangeEventValue /*softkeyboard_value*/) {}
-#ifdef ROTARY_EVENT_FEATURE_SUPPORT
virtual void OnRotaryEvent(
WebView* /*view*/,
RotaryEventType /*type*/) {}
-#endif // ROTARY_EVENT_FEATURE_SUPPORT
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
virtual void OnRotatePrepared(WebView* /*view*/) {}
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
};
WebView(NativeWindow* window, Ewk_Context* context);
void SetCSPRule(const std::string& rule, bool report_only);
void SetDefaultEncoding(const std::string& encoding);
void SetLongPolling(unsigned long longpolling);
-#ifdef PROFILE_WEARABLE
void SetBGColor(int r, int g, int b, int a);
-#endif
void SetEventListener(EventListener* listener);
Evas_Object* evas_object() const;
#include "common/file_utils.h"
#include "common/logger.h"
#include "common/profiler.h"
+#include "common/platform_info.h"
#include "runtime/browser/native_window.h"
namespace runtime {
InitUsermediaCallback();
InitEditorClientImeCallback();
#ifdef ROTARY_EVENT_FEATURE_SUPPORT
- InitRotaryEventCallback();
+ if (TIZEN_FEATURE_rotary_event_support)
+ InitRotaryEventCallback();
#endif // ROTARY_EVENT_FEATURE_SUPPORT
Ewk_Settings* settings = ewk_view_settings_get(ewk_view_);
ewk_settings_scripts_can_open_windows_set(settings, EINA_TRUE);
-#ifndef PROFILE_WEARABLE
- ewk_settings_form_candidate_data_enabled_set(settings, EINA_TRUE);
+// From chromium-efl's ewk_settings.h
+// TODO: After chromium-efl is refactored to supply the same header for tizen internal package building, this condition should be removed.
+// This is because chromium-efl does not declare ewk_settings_form_candidate_data_enabled_set() if it's wearable.
+// Chromium-efl should declare all function for Tizen packages while unsupported functions return errorcode or 0 without doing anything.
+#ifndef CHROMIUM_EFL_WORKAROUND_EWK_SETTINGS
+ if (common::getProfile() != common::kPROFILE_WEARABLE)
+ ewk_settings_form_candidate_data_enabled_set(settings, EINA_TRUE);
#endif
ewk_settings_default_text_encoding_name_set(settings, kDefaultEncoding);
smart_callbacks_["load,progress"] = loadprogress_callback;
smart_callbacks_["frame,rendered"] = rendered_callback;
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
// rotate prepared callback
- auto rotateprepared_callback = [](void* user_data,
- Evas_Object*,
- void*) {
- WebViewImpl* self = static_cast<WebViewImpl*>(user_data);
- if (self->listener_)
- self->listener_->OnRotatePrepared(self->view_);
- };
- evas_object_smart_callback_add(ewk_view_,
- "rotate,prepared",
- rotateprepared_callback,
- this);
- smart_callbacks_["rotate,prepared"] = rotateprepared_callback;
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
+ if (TIZEN_FEATURE_manual_rotate_support) {
+ auto rotateprepared_callback = [](void* user_data,
+ Evas_Object*,
+ void*) {
+ WebViewImpl* self = static_cast<WebViewImpl*>(user_data);
+ if (self->listener_)
+ self->listener_->OnRotatePrepared(self->view_);
+ };
+ evas_object_smart_callback_add(ewk_view_,
+ "rotate,prepared",
+ rotateprepared_callback,
+ this);
+ smart_callbacks_["rotate,prepared"] = rotateprepared_callback;
+ }
}
void WebViewImpl::InitPolicyDecideCallback() {
[](void* user_data, Evas_Object* /*obj*/, void*) {
WebViewImpl* self = static_cast<WebViewImpl*>(user_data);
self->internal_popup_opened_ = true;
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
- self->window_->EnableManualRotation(false);
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
+ if (TIZEN_FEATURE_manual_rotate_support)
+ self->window_->EnableManualRotation(false);
}, this);
evas_object_smart_callback_add(ewk_view_,
"popup,reply,wait,finish",
[](void* user_data, Evas_Object* /*obj*/, void*) {
WebViewImpl* self = static_cast<WebViewImpl*>(user_data);
self->internal_popup_opened_ = false;
-#ifdef MANUAL_ROTATE_FEATURE_SUPPORT
- self->window_->EnableManualRotation(true);
-#endif // MANUAL_ROTATE_FEATURE_SUPPORT
+ if (TIZEN_FEATURE_manual_rotate_support)
+ self->window_->EnableManualRotation(true);
}, this);
}
ewk_view_session_timeout_set(ewk_view_, longpolling);
}
-#ifdef PROFILE_WEARABLE
void WebViewImpl::SetBGColor(int r, int g, int b, int a) {
ewk_view_bg_color_set(ewk_view_, r, g, b, a);
}
-#endif
} // namespace runtime
void SetCSPRule(const std::string& rule, bool report_only);
void SetDefaultEncoding(const std::string& encoding);
void SetLongPolling(unsigned long longpolling);
-#ifdef PROFILE_WEARABLE
void SetBGColor(int r, int g, int b, int a);
-#endif
void SetEventListener(WebView::EventListener* listener);
Evas_Object* evas_object() const;
void InitPopupWaitCallback();
void InitUsermediaCallback();
void InitEditorClientImeCallback();
-#ifdef ROTARY_EVENT_FEATURE_SUPPORT
void InitRotaryEventCallback();
-#endif // ROTARY_EVENT_FEATURE_SUPPORT
std::function<bool (const char*, const char*, char**, void*)> mime_set_cb_;
bool internal_popup_opened_;
size_t ime_width_;
size_t ime_height_;
+
};
} // namespace runtime
'packages': [
'capi-appfw-application',
'capi-ui-efl-util',
+ 'capi-system-info',
'chromium-efl',
'ecore',
'ecore-wayland',
],
},
'conditions': [
- ['profile == "mobile"', {
- 'defines': ['PROFILE_MOBILE'],
- }],
- ['profile == "wearable"', {
- 'defines': ['PROFILE_WEARABLE'],
- }],
- ['profile == "tv"', {
- 'defines': ['PROFILE_TV'],
- }],
['tizen_product_tv == "1"', {
'defines': ['TIZEN_PRODUCT_TV'],
}],
],
},
}],
- ['tizen_feature_manual_rotate_support == 1', {
- 'defines': ['MANUAL_ROTATE_FEATURE_SUPPORT'],
+ ['chromium_efl_workaround_ewk_settings == 1', {
+ 'defines': ['CHROMIUM_EFL_WORKAROUND_EWK_SETTINGS'],
}],
],
}, # end of target 'xwalk_runtime'