[WRTjs][VD] Make optional value for multitasking support 20/306020/5
authorDongHyun Song <dh81.song@samsung.com>
Mon, 19 Feb 2024 01:58:01 +0000 (10:58 +0900)
committerBot Blink <blinkbot@samsung.com>
Mon, 19 Feb 2024 02:44:06 +0000 (02:44 +0000)
Make optional value for multitasking support

Change-Id: Ia19a272c898213f1e70d1ec61369464c4fc4ced3
Signed-off-by: DongHyun Song <dh81.song@samsung.com>
wrt/src/browser/tv/native_web_runtime_delegate_tv.cc

index 285fc36..d425909 100644 (file)
@@ -709,26 +709,30 @@ void NativeWebRuntimeDelegateTV::PreloadPlatformConfig() {
 }
 
 bool NativeWebRuntimeDelegateTV::IsMultitaskingSupport() {
-  auto& app_data = ApplicationData::GetInstance();
+  static absl::optional<bool> is_multitasking_support;
+  if (is_multitasking_support.has_value())
+    return is_multitasking_support.value();
 
-  bool multitasking_support = true;
-  bool systemSupport = HasSystemMultitaskingSupport();
-  LOG(INFO) << "system multitasking support = " << systemSupport;
-  auto multitasking_value = app_data.GetMetadata(kMultitaskingSupport);
+  bool decided_multitasking = true;
+  bool system_multitasking = HasSystemMultitaskingSupport();
+  LOG(INFO) << "system multitasking support = " << system_multitasking;
+  auto& app_data = ApplicationData::GetInstance();
+  auto app_multitasking = app_data.GetMetadata(kMultitaskingSupport);
 
-  if (systemSupport) {
-    if (multitasking_value == "false") {
-      multitasking_support = false;
+  if (system_multitasking) {
+    if (app_multitasking == "false") {
+      decided_multitasking = false;
       LOG(INFO) << "multitasking.support : false";
     }
   } else {
-    if (multitasking_value == "force") {
+    if (app_multitasking == "force") {
       LOG(INFO) << "multitasking.support : force";
     } else {
       LOG(ERROR) << "this system doesn't support multitasking mode";
-      multitasking_support = false;
+      decided_multitasking = false;
     }
   }
-  return multitasking_support;
+  is_multitasking_support = decided_multitasking;
+  return is_multitasking_support.value();
 }
 }  // namespace wrt