Add content navigator specific flags and ewk apis.
- build flag - TIZEN_CONTENT_NAVIGATOR
: Enabled in a TV platform.
- runtime flag : IsContentNavigator
: Enabled by command line switch - "--enable-content-navigator"
- ewk apis for enabling in a web browser.
void ewk_view_content_navigator_enabled_set(Evas_Object* ewk_view, Eina_Bool enabled)
Eina_Bool ewk_view_content_navigator_enabled_get(const Evas_Object* ewk_view)
Change-Id: Ib7ee8309c2a7d19d6b1c35a69b4991cfb74149a6
Signed-off-by: Sun-woo Nam <sunny.nam@samsung.com>
void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang) override {}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void NotifyHWBack() override {}
void MediaSettingClicked() override {}
#endif
view_->NotifyTrackInfoToBrowser(active_track_id, url, lang);
}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void RenderWidgetHostImpl::NotifyHWBack() {
if (!GetView())
return;
void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang) override;
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void NotifyHWBack() override;
void MediaSettingClicked() override;
#endif
}
aura_efl_helper()->NotifyTrackInfoToBrowser(active_track_id, url, lang);
}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void RenderWidgetHostViewAura::NotifyHWBack() {
if (aura_efl_helper())
aura_efl_helper()->NotifyHWBack();
void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang) override;
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void NotifyHWBack() override;
void MediaSettingClicked() override;
#endif
virtual void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang) {}
-
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
virtual void NotifyHWBack() {}
virtual void MediaSettingClicked() {}
#include "third_party/blink/public/mojom/navigation/navigation_params.mojom-shared.h"
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "tizen_src/ewk/efl_integration/common/application_type.h"
#endif
}
static bool IsSameDocument(blink::mojom::NavigationType value) {
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
// FIXME: This is temporary code to back to the same document page.
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser())
+ if (IsContentNavigator())
return false;
else
#endif
#include "content/public/browser/tts_environment_android.h"
#endif
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "tizen_src/ewk/efl_integration/common/application_type.h"
#endif
}
bool ContentBrowserClient::CanEnterFullscreenWithoutUserActivation() {
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser())
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator())
return true;
else
#endif
#endif
virtual void NotifyMediaDeviceConnectionChanged(int device_type) {}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
virtual void NotifyHWBack() {}
virtual void MediaSettingClicked() {}
#endif
if (tizen_vd_native_scrollbars) {
enabled_features += [ "tizen_vd_native_scrollbars" ]
}
+ if (tizen_content_navigator) {
+ enabled_features += [ "tizen_content_navigator" ]
+ }
shared_cpp_typemaps = [
{
[EnableIf=is_tizen_tv]
NotifyTrackInfoToBrowser(int32 active_track_id, string url, string lang);
- [EnableIf=is_tizen_tv]
+ [EnableIf=tizen_content_navigator]
NotifyHWBack();
- [EnableIf=is_tizen_tv]
+ [EnableIf=tizen_content_navigator]
MediaSettingClicked();
// Sent by a widget to the browser to set the tooltip text and trigger a
bool IsTIZENWRT();
bool IsTVPlus();
bool IsKnoxBrowser();
+bool IsContentNavigator();
} // namespace blink
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/wtf/leak_annotations.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "third_party/blink/public/platform/web_application_type.h"
#include "third_party/blink/renderer/core/fullscreen/fullscreen.h"
#endif
svg_style_sheet_.Clear();
mathml_style_sheet_.Clear();
media_controls_style_sheet_.Clear();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
media_controls_fullscreen_style_sheet_.Clear();
#endif
text_track_style_sheet_.Clear();
void CSSDefaultStyleSheets::VerifyUniversalRuleCount() {
// FIXME: Add runtime flags for content navigator.
-#if 0 // EXPENSIVE_DCHECKS_ARE_ON()
+#if !defined(TIZEN_CONTENT_NAVIGATOR)
// Universal bucket rules need to be checked against every single element,
// thus we want avoid them in UA stylesheets.
default_html_style_->CompactRulesIfNeeded();
VerifyUniversalRuleCount();
}
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void CSSDefaultStyleSheets::ClearMediaControlsStyle() {
default_media_controls_style_ = MakeGarbageCollected<RuleSet>();
}
changed_default_style = true;
}
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser() && HasMediaControlsStyleSheetLoader() && IsA<HTMLVideoElement>(element) ||
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator() && HasMediaControlsStyleSheetLoader() && IsA<HTMLVideoElement>(element) ||
IsA<HTMLAudioElement>(element)) {
if (Fullscreen::IsFullscreenElement(element)) {
if (!media_controls_fullscreen_style_sheet_) {
visitor->Trace(svg_style_sheet_);
visitor->Trace(mathml_style_sheet_);
visitor->Trace(media_controls_style_sheet_);
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
visitor->Trace(media_controls_fullscreen_style_sheet_);
#endif
visitor->Trace(permission_element_style_sheet_);
UAStyleSheetLoader& operator=(const UAStyleSheetLoader&) = delete;
virtual ~UAStyleSheetLoader() = default;
virtual String GetUAStyleSheet() = 0;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
virtual String GetFullscreenUAStyleSheet() = 0;
#endif
};
void InitializeDefaultStyles();
void VerifyUniversalRuleCount();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void ClearMediaControlsStyle();
#endif
Member<StyleSheetContents> svg_style_sheet_;
Member<StyleSheetContents> mathml_style_sheet_;
Member<StyleSheetContents> media_controls_style_sheet_;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
Member<StyleSheetContents> media_controls_fullscreen_style_sheet_;
#endif
Member<StyleSheetContents> permission_element_style_sheet_;
#include "ui/accessibility/ax_mode.h"
#include "ui/gfx/geometry/rect_conversions.h"
-#if BUILDFLAG(IS_TIZEN_TV)
-#include "third_party/blink/public/platform/web_application_type.h"
-#endif
-
namespace blink {
enum class ClassStringContent { kEmpty, kWhiteSpaceOnly, kHasClasses };
void WebFrameWidgetImpl::MoveFocusToBrowser(int direction) {
widget_base_->MoveFocusToBrowser(direction);
}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void WebFrameWidgetImpl::NotifyHWBack() {
LOG(INFO) << __func__;
widget_base_->NotifyHWBack();
void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang);
+ void MoveFocusToBrowser(int direction);
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void NotifyHWBack();
void MediaSettingClicked();
- void MoveFocusToBrowser(int direction);
#endif
protected:
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "third_party/blink/public/platform/web_application_type.h"
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#endif
// true:
// The algorithm is triggered by a user activation.
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser() || LocalFrame::HasTransientUserActivation(document.GetFrame()))
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator() || LocalFrame::HasTransientUserActivation(document.GetFrame()))
#else
if (LocalFrame::HasTransientUserActivation(document.GetFrame()))
#endif
// https://crbug.com/644695
// 13.4. Fullscreen |element| within |doc|.
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser() && element->tagName() != "VIDEO" && element->tagName() != "IFRAME") {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator() && element->tagName() != "VIDEO" && element->tagName() != "IFRAME") {
StaticElementList* video_elements =
element->QuerySelectorAll(AtomicString("video"));
Element* video_element;
}
}
-void HTMLMediaElement::NotifyHWBack() {
- LOG(INFO) << __func__;
-
- LocalFrame* frame = GetDocument().GetFrame();
- if (!frame) {
- LOG(ERROR) << "frame is null";
- return;
- }
-
- WebFrameWidgetImpl* wfwgt =
- static_cast<WebFrameWidgetImpl*>(frame->GetWidgetForLocalRoot());
- wfwgt->NotifyHWBack();
-}
-
-void HTMLMediaElement::MediaSettingClicked() {
- LOG(INFO) << __func__;
-
- LocalFrame* frame = GetDocument().GetFrame();
- if (!frame) {
- LOG(ERROR) << "frame is null";
- return;
- }
-
- WebFrameWidgetImpl* wfwgt =
- static_cast<WebFrameWidgetImpl*>(frame->GetWidgetForLocalRoot());
- wfwgt->MediaSettingClicked();
-}
-
void HTMLMediaElement::RequestReload(const KURL& new_url) {
DCHECK(GetWebMediaPlayer());
DCHECK(new_url.IsValid());
bool HTMLMediaElement::HasEncryptedListener() const {
return HasEventListeners(event_type_names::kEncrypted);
}
-#endif
+#endif // IS_TIZEN_TV
+
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+void HTMLMediaElement::NotifyHWBack() {
+ LOG(INFO) << __func__;
+
+ LocalFrame* frame = GetDocument().GetFrame();
+ if (!frame) {
+ LOG(ERROR) << "frame is null";
+ return;
+ }
+
+ WebFrameWidgetImpl* wfwgt =
+ static_cast<WebFrameWidgetImpl*>(frame->GetWidgetForLocalRoot());
+ wfwgt->NotifyHWBack();
+}
+
+void HTMLMediaElement::MediaSettingClicked() {
+ LOG(INFO) << __func__;
+
+ LocalFrame* frame = GetDocument().GetFrame();
+ if (!frame) {
+ LOG(ERROR) << "frame is null";
+ return;
+ }
+
+ WebFrameWidgetImpl* wfwgt =
+ static_cast<WebFrameWidgetImpl*>(frame->GetWidgetForLocalRoot());
+ wfwgt->MediaSettingClicked();
+}
+
+std::vector<std::string> ignore_class_list{
+ "-ad-", /* youtube ad */
+ "tiktok-web-player", /* tiktok player */
+ "movieSlider" /* namava trailer */
+};
+
+void HTMLMediaElement::EnterFullscreen() {
+ if (AllowAutoFullscreen())
+ webkitEnterFullscreen();
+}
+
+bool HTMLMediaElement::AllowAutoFullscreen() {
+ if (!IsContentNavigator())
+ return false;
+
+ if (!IsHTMLVideoElement())
+ return false;
+
+ // Check NetworkState
+ if (network_state_ == 0)
+ return false;
+
+ // Check ReadyState
+ if (ready_state_ == 0)
+ return false;
+
+ // Ignore videos including some class attributes.
+ Element* element = this;
+ while (element != nullptr) {
+ for (auto& class_list : ignore_class_list) {
+ if (element->classList().value().Contains(
+ AtomicString(class_list.c_str()))) {
+ LOG(INFO) << __func__ << " Ignore fullscreen mode. (maybe ad)";
+ return false;
+ }
+ }
+ element = element->parentElement();
+ }
+
+ // Check the video size
+ LocalDOMWindow* window =
+ GetDocument() != nullptr ? GetDocument().domWindow() : nullptr;
+ if (!window)
+ return false;
+
+ LOG(INFO) << __func__ << " Offset Size: " << OffsetWidth() << " x "
+ << OffsetHeight();
+ if (OffsetWidth() > OffsetHeight()) {
+ if (OffsetWidth() < window->innerWidth() / 3 ||
+ OffsetHeight() < window->innerHeight() / 2) {
+ return false;
+ }
+ } else {
+ if (OffsetHeight() < window->innerHeight() / 2) {
+ return false;
+ }
+ }
+
+ return true;
+}
+#endif // defined(TIZEN_CONTENT_NAVIGATOR)
+
double HTMLMediaElement::getStartDate() const {
#if BUILDFLAG(IS_TIZEN_TV)
if (!IsHbbTV() || !GetWebMediaPlayer()) {
}
}
-#if BUILDFLAG(IS_TIZEN_TV)
-std::vector<std::string> ignore_class_list{
- "-ad-", /* youtube ad */
- "tiktok-web-player", /* tiktok player */
- "movieSlider" /* namava trailer */
-};
-
-void HTMLMediaElement::EnterFullscreen() {
- if (AllowAutoFullscreen())
- webkitEnterFullscreen();
-}
-
-bool HTMLMediaElement::AllowAutoFullscreen() {
- // TODO: Should be changed to IsContentNavigator()
- if (IsWebBrowser())
- return false;
-
- if (!IsHTMLVideoElement())
- return false;
-
- // Check NetworkState
- if (network_state_ == 0)
- return false;
-
- // Check ReadyState
- if (ready_state_ == 0)
- return false;
-
- // Ignore videos including some class attributes.
- Element* element = this;
- while (element != nullptr) {
- for (auto& class_list : ignore_class_list) {
- if (element->classList().value().Contains(
- AtomicString(class_list.c_str()))) {
- LOG(INFO) << __func__ << " Ignore fullscreen mode. (maybe ad)";
- return false;
- }
- }
- element = element->parentElement();
- }
-
- // Check the video size
- LocalDOMWindow* window =
- GetDocument() != nullptr ? GetDocument().domWindow() : nullptr;
- if (!window)
- return false;
-
- LOG(INFO) << __func__ << " Offset Size: " << OffsetWidth() << " x "
- << OffsetHeight();
- if (OffsetWidth() > OffsetHeight()) {
- if (OffsetWidth() < window->innerWidth() / 3 ||
- OffsetHeight() < window->innerHeight() / 2) {
- return false;
- }
- } else {
- if (OffsetHeight() < window->innerHeight() / 2) {
- return false;
- }
- }
-
- return true;
-}
-#endif
-
void HTMLMediaElement::SetNetworkState(NetworkState state,
bool update_media_controls) {
if (network_state_ == state)
#if BUILDFLAG(IS_TIZEN_TV)
WebString GetContentMIMEType() override;
void NotifyTrackInfoToBrowser(int active_track_id) override;
- void NotifyHWBack();
- void MediaSettingClicked();
void RequestReload(const KURL& new_url);
void SetTranslatedURL(const String&) override;
bool IsHTMLMediaElement() const override { return true; }
void OnContentIdChange(const std::string& id) override;
void WRTMediaSuspend(bool suspend) override;
bool HasEncryptedListener() const override;
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ void NotifyHWBack();
+ void MediaSettingClicked();
void EnterFullscreen();
#endif
void DisableOtherAudioTracks(AudioTrack*);
int FindMatchTrack(const String& lang);
bool IsTs();
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
virtual void webkitEnterFullscreen() {}
bool AllowAutoFullscreen();
#endif
void HTMLVideoElement::webkitEnterFullscreen() {
if (!IsFullscreen()) {
- VLOG(0) << __func__;
FullscreenOptions* options = FullscreenOptions::Create();
options->setNavigationUI("hide");
Fullscreen::RequestFullscreen(*this, options,
}
// Fullscreen
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void webkitEnterFullscreen() final;
#else
void webkitEnterFullscreen();
import("//build/config/android/rules.gni")
}
-if (tizen_product_tv) {
+if (tizen_content_navigator) {
import(
"//tizen_src/chromium_impl/third_party/blink/renderer/modules/media_controls/elements/elements.gni")
}
"//third_party/blink/renderer/modules/screen_orientation",
]
- if (tizen_product_tv) {
+ if (tizen_content_navigator) {
sources += external_media_controls_elements_sources
}
}
void MediaControlFullscreenButtonElement::DefaultEventHandler(Event& event) {
if (!IsDisabled() && (event.type() == event_type_names::kClick ||
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
event.type() == event_type_names::kKeydown ||
#endif
event.type() == event_type_names::kGesturetap)) {
void MediaControlPlayButtonElement::DefaultEventHandler(Event& event) {
if (!IsDisabled() && (event.type() == event_type_names::kClick ||
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
event.type() == event_type_names::kKeydown ||
#endif
event.type() == event_type_names::kGesturetap)) {
void MediaControlPlaybackSpeedButtonElement::DefaultEventHandler(Event& event) {
if (event.type() == event_type_names::kClick ||
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
event.type() == event_type_names::kKeydown ||
#endif
event.type() == event_type_names::kGesturetap) {
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_playback_speed_button_element.h"
#endif
MediaControlPopupMenuElement::SetIsWanted(wanted);
}
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
Element* MediaControlPlaybackSpeedListElement::PopupAnchor() const {
return &GetMediaControls().PlaybackSpeedButton();
}
void MediaControlPlaybackSpeedListElement::DefaultEventHandler(Event& event) {
if (event.type() == event_type_names::kClick
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
|| event.type() == event_type_names::kKeydown
#endif
) {
// This handles the back button click. Clicking on a menu item triggers the
// change event instead.
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
SetIsWanted(false);
if (!MediaElement().IsFullscreen())
#endif
EventDispatchForbiddenScope::AllowUserAgentEvents allow_events;
RemoveChildren(kOmitSubtreeModifiedEvent);
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (!MediaElement().IsFullscreen())
#endif
ParserAppendChild(CreatePlaybackSpeedHeaderItem());
void SetIsWanted(bool) final;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
Element* PopupAnchor() const override;
#endif
case VKEY_RETURN:
case VKEY_SPACE:
To<Element>(event->target()->ToNode())->DispatchSimulatedClick(event);
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (!popup_menu_->MediaElement().IsFullscreen())
#endif
popup_menu_->FocusPopupAnchorIfOverflowClosed();
} else if (event->type() == event_type_names::kResize ||
event->type() == event_type_names::kScroll ||
event->type() == event_type_names::kBeforetoggle) {
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (!popup_menu_->MediaElement().IsFullscreen())
#endif
popup_menu_->SetIsWanted(false);
HidePopoverTransitionBehavior::kNoEventsNoWaiting,
nullptr);
}
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (MediaElement().IsFullscreen())
#endif
MediaElement().Focus();
void SetPosition();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
virtual Element* PopupAnchor() const;
#endif
private:
class EventListener;
-#if !BUILDFLAG(IS_TIZEN_TV)
+#if !defined(TIZEN_CONTENT_NAVIGATOR)
Element* PopupAnchor() const;
#endif
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#endif
}
String MediaControlRemainingTimeDisplayElement::FormatTime() const {
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (MediaElement().IsFullscreen()) {
return MediaControlTimeDisplayElement::FormatTime();
} else
#include "third_party/blink/renderer/platform/web_test_support.h"
#include "ui/gfx/geometry/size.h"
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
#include "third_party/blink/public/platform/web_application_type.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/html/html_collection.h"
"state-scrubbing", // kScrubbing
};
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
enum class FullscreenElement {
kBack,
kRestart,
}
bool ShouldShowPlaybackSpeedButton(HTMLMediaElement& media_element) {
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser() && media_element.IsFullscreen())
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator() && media_element.IsFullscreen())
return true;
#endif
// The page disabled the button via the controlsList attribute.
// If you change this value, then also update the corresponding value in
// web_tests/media/media-controls.js.
constexpr base::TimeDelta kTimeWithoutMouseMovementBeforeHidingMediaControls =
+// TODO: Need to add a runtime flag.
+#if defined(TIZEN_CONTENT_NAVIGATOR)
base::Seconds(3.0);
+#else
+ base::Seconds(2.5);
+#endif
base::TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() {
return kTimeWithoutMouseMovementBeforeHidingMediaControls;
fullscreen_button_(nullptr),
display_cutout_fullscreen_button_(nullptr),
download_button_(nullptr),
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
back_button_(nullptr),
backward_button_(nullptr),
extra_videos_panel_(nullptr),
panel_ = MakeGarbageCollected<MediaControlPanelElement>(*this);
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser()) {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator()) {
time_panel_ = MakeGarbageCollected<MediaControlTimePanelElement>(*this);
title_display_ = MakeGarbageCollected<MediaControlTitleDisplayElement>(*this);
AttachHoverBackground(overflow_menu_);
}
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void MediaControlsImpl::PopulateFullscreenPanel() {
LOG(INFO) << __func__;
navigation_map_.clear();
UpdateSizingCSSClass();
OnControlsListUpdated();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
LOG(INFO) << __func__;
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser())
+ if (IsContentNavigator())
InitializeFocus();
#endif
}
if (overlay_play_button_ && !is_paused_for_scrubbing_)
overlay_play_button_->UpdateDisplayType();
-
// Only make the controls visible if they won't get hidden by OnTimeUpdate.
- if (MediaElement().paused() || !ShouldHideMediaControls()) {
+ if (MediaElement().paused() || !ShouldHideMediaControls())
MakeOpaque();
- }
if (loading_panel_)
loading_panel_->OnControlsShown();
}
void MediaControlsImpl::MakeOpaque() {
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser() && MediaElement().IsFullscreen() && vertical_hover_position_ == 0)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator() && MediaElement().IsFullscreen() && vertical_hover_position_ == 0)
InitializeFocus();
#endif
ShowCursor();
panel_->MakeOpaque();
MaybeShowOverlayPlayButton();
+#if defined(TIZEN_CONTENT_NAVIGATOR)
MediaElement().Focus();
+#endif
}
void MediaControlsImpl::MakeOpaqueFromPointerEvent() {
if (MediaElement().ShouldShowControls())
HideCursor();
panel_->MakeTransparent();
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser()) {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator()) {
vertical_hover_position_ = 0;
if (extra_videos_panel_)
extra_videos_panel_->Hide();
}
void MediaControlsImpl::EnterFullscreen() {
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
LOG(INFO) << __func__;
is_fullscreen_ = true;
#endif
}
void MediaControlsImpl::ExitFullscreen() {
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
is_fullscreen_ = false;
#endif
Fullscreen::ExitFullscreen(GetDocument());
std::make_pair(cast_button_.Get(), false),
std::make_pair(download_button_.Get(), false),
std::make_pair(toggle_closed_captions_button_.Get(), false),
-#if !BUILDFLAG(IS_TIZEN_TV)
+#if !defined(TIZEN_CONTENT_NAVIGATOR)
std::make_pair(playback_speed_button_.Get(), false),
#endif
};
!IsSpatialNavigationEnabled(GetDocument().GetFrame())) {
const String& key = keyboard_event->key();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (IsMediaFullscreenMode()) {
FullscreenFocusMove(event);
event.stopImmediatePropagation();
// This will fix the issue that when mouse out event happen while video is
// focused, control never hides.
if (!MediaElement().paused() && ShouldHideMediaControls(kIgnoreFocus))
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser())
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator())
StartHideMediaControlsTimer();
else
#endif
MakeOpaque();
return;
}
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
// Don't make transparent in content navigator.
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser() && is_fullscreen_)
+ if (IsContentNavigator() && is_fullscreen_)
return;
#endif
const double duration = MediaElement().duration();
bool was_finite_duration = std::isfinite(duration_display_->CurrentValue());
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
if (std::isinf(duration))
is_live_ = true;
else
Reset();
UpdateCSSClassFromState();
UpdateActingAsAudioControls();
+#if defined(TIZEN_CONTENT_NAVIGATOR)
MediaElement().Focus();
+#endif
}
void MediaControlsImpl::OnEnteredFullscreen() {
if (display_cutout_fullscreen_button_)
display_cutout_fullscreen_button_->SetIsWanted(true);
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser()) {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator()) {
LOG(INFO) << __func__;
is_fullscreen_ = true;
if (display_cutout_fullscreen_button_)
display_cutout_fullscreen_button_->SetIsWanted(false);
-#if BUILDFLAG(IS_TIZEN_TV)
- // TODO: Should be changed to IsContentNavigator()
- if (!IsWebBrowser()) {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ if (IsContentNavigator()) {
LOG(INFO) << __func__;
is_fullscreen_ = false;
download_button_->ShouldDisplayDownloadButton());
UpdateCSSClassFromState();
+#if defined(TIZEN_CONTENT_NAVIGATOR)
MediaElement().Focus();
+#endif
}
void MediaControlsImpl::OpenOverflowMenu() {
return *overflow_menu_;
}
+void MediaControlsImpl::OnWaiting() {
+ timeline_->OnMediaStoppedPlaying();
+ UpdateCSSClassFromState();
+}
+
+void MediaControlsImpl::OnLoadedData() {
+ UpdateCSSClassFromState();
+}
+
+#if defined(TIZEN_CONTENT_NAVIGATOR)
const MediaControlPlaybackSpeedButtonElement&
MediaControlsImpl::PlaybackSpeedButton() const {
return *playback_speed_button_;
return *playback_speed_button_;
}
-void MediaControlsImpl::OnWaiting() {
- timeline_->OnMediaStoppedPlaying();
- UpdateCSSClassFromState();
-}
-
-void MediaControlsImpl::OnLoadedData() {
- UpdateCSSClassFromState();
-}
-
-#if BUILDFLAG(IS_TIZEN_TV)
bool MediaControlsImpl::IsMediaFullscreenMode() {
- // TODO: Should be changed to IsContentNavigator()
- if (IsWebBrowser()) {
+ if (!IsContentNavigator()) {
return false;
}
visitor->Trace(display_cutout_fullscreen_button_);
visitor->Trace(volume_control_container_);
visitor->Trace(text_track_manager_);
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
visitor->Trace(back_button_);
visitor->Trace(backward_button_);
visitor->Trace(extra_container_list_);
class MediaControlVolumeSliderElement;
class ShadowRoot;
class TextTrack;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
class MediaControlBackButtonElement;
class MediaControlBackwardButtonElement;
class MediaControlExternalCaptionDisplayElement;
// Methods used for Download In-product help.
const MediaControlOverflowMenuButtonElement& OverflowButton() const;
MediaControlOverflowMenuButtonElement& OverflowButton();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
const MediaControlPlaybackSpeedButtonElement& PlaybackSpeedButton() const;
MediaControlPlaybackSpeedButtonElement& PlaybackSpeedButton();
#endif
void InitializeControls();
void PopulatePanel();
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void PopulateFullscreenPanel();
void PopulateExtraVideos();
rotate_to_fullscreen_delegate_;
Member<MediaControlsDisplayCutoutDelegate> display_cutout_delegate_;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
Member<MediaControlBackButtonElement> back_button_;
Member<MediaControlBackwardButtonElement> backward_button_;
Member<MediaControlExtraVideosPanelElement> extra_videos_panel_;
#include "third_party/blink/renderer/modules/remoteplayback/remote_playback.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
-#if BUILDFLAG(IS_TIZEN_TV)
-#include "third_party/blink/public/platform/web_application_type.h"
-#endif
-
namespace blink {
MediaControlsMediaEventListener::MediaControlsMediaEventListener(
return GetMediaControlsCSS() + GetMediaInterstitialsStyleSheet();
}
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
// static
String MediaControlsResourceLoader::GetMediaControlsFullscreenCSS() {
return UncompressResourceAsString(IDR_UASTYLE_MEDIA_CONTROLS_FULLSCREEN_CSS);
static String GetMediaInterstitialsStyleSheet();
String GetUAStyleSheet() override;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
String GetFullscreenUAStyleSheet() override;
static String GetFullscreenSheet();
#endif
private:
String GetMediaControlsCSS() const;
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
static String GetMediaControlsFullscreenCSS();
#endif
widget_host_->NotifyTrackInfoToBrowser(
active_track_id, WTF::String::FromUTF8(url), WTF::String::FromUTF8(lang));
}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void WidgetBase::NotifyHWBack() {
if (widget_host_)
widget_host_->NotifyHWBack();
void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang);
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void NotifyHWBack();
void MediaSettingClicked();
#endif
defines += [
"OS_TIZEN_TV_PRODUCT",
"TIZEN_MULTIMEDIA_WEBM_SUPPORT",
+ "TIZEN_CONTENT_NAVIGATOR",
]
if (tizen_version >= 60) {
defines += [
tizen_license_tv = false
tizen_ai = false
+
+ tizen_content_navigator = false
}
if (use_efl && !build_chrome) {
fi
+ if [ "$tizen_product_tv" == "true" ]; then
+ ADDITIONAL_GN_PARAMETERS+="tizen_content_navigator=true
+ "
+ fi
+
# TODO: generate config for RISCV64 with H264 and HEVC support
if [ "$tizen_product_tv" == "true" -a "$host_arch" != "riscv64" ]; then
ADDITIONAL_GN_PARAMETERS+="ffmpeg_branding=\"TizenTV\"
web_contents_->GetDelegate()->NotifySubtitlePlay(active_track_id, url, lang);
}
-void RWHVAuraCommonHelperEfl::NotifyHWBack() {
- LOG(INFO) << __func__;
- if (web_contents_)
- web_contents_->GetDelegate()->NotifyHWBack();
-}
-
-void RWHVAuraCommonHelperEfl::MediaSettingClicked() {
- LOG(INFO) << __func__;
- if (web_contents_)
- web_contents_->GetDelegate()->MediaSettingClicked();
-}
-
void RWHVAuraCommonHelperEfl::SetTranslatedURL(const std::string& url) {
if (rwhv_aura_)
rwhv_aura_->host()->SetTranslatedURL(url);
}
#endif // IS_TIZEN_TV
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+void RWHVAuraCommonHelperEfl::NotifyHWBack() {
+ LOG(INFO) << __func__;
+ if (web_contents_)
+ web_contents_->GetDelegate()->NotifyHWBack();
+}
+
+void RWHVAuraCommonHelperEfl::MediaSettingClicked() {
+ LOG(INFO) << __func__;
+ if (web_contents_)
+ web_contents_->GetDelegate()->MediaSettingClicked();
+}
+#endif
+
void RWHVAuraCommonHelperEfl::OnGetMainFrameScrollbarVisible(
int callback_id, bool visible) {
web_contents_->GetDelegate()->OnGetMainFrameScrollbarVisible(callback_id,
void NotifyTrackInfoToBrowser(int active_track_id,
const std::string& url,
const std::string& lang);
- void NotifyHWBack();
- void MediaSettingClicked();
void SetPreferSubtitleLang(std::string lang_list);
void SetIMERecommendedWords(const std::string& recommended_words);
void SetIMERecommendedWordsType(bool should_enable);
void UpdateCustomCursor(const ui::Cursor& cursor);
void UpdateCursorName(const WebCursor& cursor);
ui::ImeStyle GetImeStyle();
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ void NotifyHWBack();
+ void MediaSettingClicked();
#endif
void SetCursor(const WebCursor& cursor);
void UpdateCursor(const WebCursor&);
return tizen_app_id == knox_browser_app_id;
}
+bool IsContentNavigator() {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ return base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableContentNavigator);
+#else
+ return false;
+#endif
+}
+
} // namespace blink
p_command_line->AppendSwitch(switches::kEnableOffscreenRendering);
p_command_line->AppendSwitch(switches::kNoUnsandboxedZygote);
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
p_command_line->AppendSwitch(switches::kEnableMediaPlaybackNotification);
#endif
return false;
#endif
}
+
+bool IsContentNavigator() {
+ return blink::IsContentNavigator();
+}
} // namespace content
bool IsHbbTV();
bool IsTIZENWRT();
bool IsTVPlus();
+bool IsContentNavigator();
} // namespace content
#endif // APPLICATION_TYPE_H_
const char kTrustedPepperPluginsSearchPaths[] =
"trusted-pepper-plugins-search-paths";
#endif
+
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+const char kEnableContentNavigator[] = "enable-content-navigator";
+#endif
// Don't dump stuff here, follow the same order as the header.
} // namespace switches
// them with a semicolon (;).
CONTENT_EXPORT extern const char kTrustedPepperPluginsSearchPaths[];
#endif
+
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+CONTENT_EXPORT extern const char kEnableContentNavigator[];
+#endif
+
// DON'T ADD RANDOM STUFF HERE. Put it in the main section above in
// alphabetical order, or in one of the ifdefs (also in order in each section).
#include "third_party/blink/public/platform/web_media_player.h"
#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+#include "tizen_src/ewk/efl_integration/common/content_switches_efl.h"
+#endif
+
#if defined(TIZEN_PEPPER_EXTENSIONS)
#include "efl/window_factory.h"
#include "ewk/efl_integration/ewk_privilege_checker.h"
SmartCallback<EWebViewCallbacks::DeviceConnectionChanged>().call(
&device_type);
}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void EWebView::NotifyHWBack() {
LOG(INFO) << __func__;
SmartCallback<EWebViewCallbacks::HWBackUnhandled>().call();
}
rwhva()->offscreen_helper()->SetIMERecommendedWords(auto_word);
}
+
+void EWebView::SetContentNavigatorEnabled(bool enabled) {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (enabled)
+ command_line->AppendSwitch(switches::kEnableContentNavigator);
+ else
+ command_line->RemoveSwitch(switches::kEnableContentNavigator);
+}
+
+bool EWebView::GetContentNavigatorEnabled() {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ return command_line->HasSwitch(switches::kEnableContentNavigator);
+}
#endif
void EWebView::SetIMEWindow(void* window) {
std::array<blink::WebMediaDeviceInfoArray, NUM_MEDIA_DEVICE_TYPES>;
void OnDeviceListed(const MediaDeviceEnumeration& devices);
void NotifyMediaDeviceConnectionChanged(int device_type);
- void NotifyHWBack();
- void MediaSettingClicked();
- void SetIMERecommendedWords(const char* words);
void SetTranslatedURL(const char* url);
void NotifyParentalRatingInfo(const char* info, const char* url);
Ewk_Hardware_Decoders GetBroadcastDecoder() const;
#endif // IS_TIZEN_TV
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ void NotifyHWBack();
+ void MediaSettingClicked();
+ void SetIMERecommendedWords(const char* words);
+ void SetContentNavigatorEnabled(bool enabled);
+ bool GetContentNavigatorEnabled();
+#endif
+
#if defined(TIZEN_PASSKEY_SUPPORT)
void CancelAuthentication();
#endif
FirstTimestamp,
PESData,
EVENTData,
- MediaSettingClicked,
#if defined(TIZEN_MULTIMEDIA_DRMMANAGER_SUPPORT)
DRMInitData,
DRMInitComplete,
DRMError,
#endif
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ MediaSettingClicked,
#endif
OverscrolledLeft,
OverscrolledRight,
DECLARE_EWK_VIEW_CALLBACK(FirstTimestamp, "on,dvb,subtitle,timestamp", void*);
DECLARE_EWK_VIEW_CALLBACK(PESData, "on,dvb,subtitle,data", void*);
DECLARE_EWK_VIEW_CALLBACK(EVENTData, "update,event,data", void*);
-DECLARE_EWK_VIEW_CALLBACK(MediaSettingClicked, "media,setting,clicked", void);
#if defined(TIZEN_MULTIMEDIA_DRMMANAGER_SUPPORT)
DECLARE_EWK_VIEW_CALLBACK(DRMInitData, "drm,init,data", void*);
DECLARE_EWK_VIEW_CALLBACK(DRMInitComplete, "drm,init,complete", void*);
DECLARE_EWK_VIEW_CALLBACK(DRMError, "drm,error", void*);
#endif
#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+DECLARE_EWK_VIEW_CALLBACK(MediaSettingClicked, "media,setting,clicked", void);
+#endif
DECLARE_EWK_VIEW_CALLBACK(OverscrolledLeft, "overscrolled,left", void);
DECLARE_EWK_VIEW_CALLBACK(OverscrolledRight, "overscrolled,right", void);
DECLARE_EWK_VIEW_CALLBACK(OverscrolledTop, "overscrolled,top", void);
/* LCOV_EXCL_START */
void ewk_view_focused_input_element_value_set(Evas_Object* ewkView, const char* value)
{
-#if BUILDFLAG(IS_TIZEN_TV)
+#if defined(TIZEN_CONTENT_NAVIGATOR)
// FIXME: Due to the restriction on the use of 5.0 rootstraps, it is implemented
// using ewk_view_focused_input_element_value_set instead.
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
LOG_EWK_API_MOCKUP("Only for Tizen");
#endif
}
+
+void ewk_view_content_navigator_enabled_set(Evas_Object* ewk_view, Eina_Bool enabled) {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
+ impl->SetContentNavigatorEnabled(enabled);
+#else
+ LOG_EWK_API_MOCKUP();
+#endif
+}
+
+Eina_Bool ewk_view_content_navigator_enabled_get(const Evas_Object* ewk_view) {
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl, EINA_FALSE);
+ return impl->GetContentNavigatorEnabled();
+#else
+ LOG_EWK_API_MOCKUP();
+ return false;
+#endif
+}
*/
EXPORT_API void ewk_view_error_page_load_callback_set(Evas_Object* ewk_view, Ewk_View_Error_Page_Load_Callback callback, void* user_data);
+/**
+ * @brief Set a state of content navigator mode
+ *
+ * @since_tizen 9.0
+ *
+ * @param[in] o the view object.
+ * @param[in] enabled a state to set
+ */
+EXPORT_API void ewk_view_content_navigator_enabled_set(const Evas_Object* ewk_view, Eina_Bool enabled);
+
+/**
+ * @brief Get a state of content navigator mode
+ *
+ * @since_tizen 9.0
+ *
+ * @param[in] o the view object.
+ * @return @c EINA_TRUE if the mode is enabled or @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_view_content_navigator_enabled_get(const Evas_Object* ewk_view);
+
/**
* @}
*/
return std::string();
}
}
+#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
void WebContentsDelegateEfl::NotifyHWBack() {
web_view_->NotifyHWBack();
}
int GetBroadcastDecoder() override;
void NotifyMediaDeviceConnectionChanged(int device_type) override;
- void NotifyHWBack() override;
- void MediaSettingClicked() override;
const std::string& GetActiveDRM() override;
#if defined(TIZEN_MULTIMEDIA_DRMMANAGER_SUPPORT)
void NotifyDRMInitData(int init_type,
void NotifyDRMError(int error_code, const std::string& error_string) override;
#endif
#endif
+#if defined(TIZEN_CONTENT_NAVIGATOR)
+ void NotifyHWBack() override;
+ void MediaSettingClicked() override;
+#endif
#if defined(TIZEN_AUTOFILL)
void UpdateAutofillIfRequired();