std::string app_id = ApplicationData::GetInstance().app_id();
LOG(ERROR) << app_id << " is hidden from the screen";
+ SuspendMedia(true);
DisableVisibilitySetting();
if (visibility_state_.empty() && !VideoSplashScreen::IsVSSPlaying())
WidgetStateProvider::OnStatusChanged("behind");
std::string app_id = ApplicationData::GetInstance().app_id();
LOG(ERROR) << app_id << " has shown on the screen";
+ SuspendMedia(false);
CreateMouseCursor(top_window_);
EnableVisibilitySetting();
SetScheduledTasks(false);
}
+void WRTNativeWindowTV::SuspendMedia(bool suspend) {
+ auto* wrt_web_contents = WRTWebContents::FromNativeWindow(this);
+ if (!wrt_web_contents) {
+ LOG(ERROR) << "WebContents is not created";
+ return;
+ }
+ auto* render_interface = wrt_web_contents->GetRendererInterface();
+ if (!render_interface) {
+ LOG(ERROR) << "Frame is not created";
+ return;
+ }
+
+ render_interface->SuspendMediaTasks(suspend);
+}
+
bool WRTNativeWindowTV::IsJavaScriptDialogShowing() {
auto dialog_manager = GetJavaScriptDialogManager();
return dialog_manager && dialog_manager->IsShowing();
void SetWindowOpaque();
void SetZoomLevel(double level);
void Suspend();
+ void SuspendMedia(bool suspend);
bool UnRegisterRotateSensorListener();
void VisibilityChangedAsBackground();
void VisibilityChangedAsForeground();
RequestSelectCollectionInformation()
=> (int32 form_element_count, int32 current_node_index);
HandleChromeExtensionAction(array<ChromeExtensionAction> actions);
+ SuspendMediaTasks(bool suspend);
};
interface WRTServiceMessageListener {
#endif
}
+void WRTRenderFrameObserver::SuspendMediaTasks(bool suspend) {
+#if BUILDFLAG(IS_TIZEN_TV) && !defined(WRT_JS_BRINGUP)
+ blink::WebView* view = render_frame()->GetWebView();
+ if (view) {
+ LOG(INFO) << "Suspend media tasks, suspend:" << suspend;
+ view->WRTMediaSuspend(suspend);
+ }
+#endif
+}
+
} // namespace wrt
RequestSelectCollectionInformationCallback callback) override;
void HandleChromeExtensionAction(
std::vector<mojom::ChromeExtensionActionPtr> actions) override;
+ void SuspendMediaTasks(bool suspend) override;
mojo::AssociatedReceiver<mojom::WRTRenderer> receiver_{this};
mojo::AssociatedRemote<mojom::WRTBrowser> browser_interface_;