[M85 Migration] Support ServiceWorker Background Sync 79/247879/1
authorInsoon Kim <is46.kim@samsung.com>
Wed, 8 Apr 2020 12:56:38 +0000 (18:26 +0530)
committerGajendra N <gajendra.n@samsung.com>
Wed, 18 Nov 2020 03:57:32 +0000 (09:27 +0530)
This patch treats a permission for background sync as
notification permission.

Reference:
https://review.tizen.org/gerrit/230275

Change-Id: I72930b95fce8ba0f2d5a06ea455456c3b43bd027
Signed-off-by: Gajendra N <gajendra.n@samsung.com>
tizen_src/ewk/efl_integration/BUILD.gn
tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.cc [new file with mode: 0644]
tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.h [new file with mode: 0644]
tizen_src/ewk/efl_integration/browser_context_efl.cc
tizen_src/ewk/efl_integration/browser_context_efl.h
tizen_src/ewk/efl_integration/permission_controller_delegate_efl.cc

index c048742..68cfc7f 100644 (file)
@@ -179,6 +179,8 @@ shared_library("chromium-ewk") {
   sources += [
     "autofill_popup_view_efl.cc",
     "autofill_popup_view_efl.h",
+    "browser/background_sync_controller_efl.cc",
+    "browser/background_sync_controller_efl.h",
     "browser/browsing_data_remover_efl.cc",
     "browser/browsing_data_remover_efl.h",
     "browser/download_manager_delegate_efl.cc",
diff --git a/tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.cc b/tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.cc
new file mode 100644 (file)
index 0000000..d4b57cc
--- /dev/null
@@ -0,0 +1,19 @@
+// Copyright 2020 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.
+
+#include "background_sync_controller_efl.h"
+
+base::TimeDelta BackgroundSyncControllerEfl::GetNextEventDelay(
+    const content::BackgroundSyncRegistration& registration,
+    content::BackgroundSyncParameters* parameters,
+    base::TimeDelta time_till_soonest_scheduled_event_for_origin) {
+  NOTIMPLEMENTED();
+  return base::TimeDelta::Max();
+}
+
+std::unique_ptr<content::BackgroundSyncController::BackgroundSyncEventKeepAlive>
+BackgroundSyncControllerEfl::CreateBackgroundSyncEventKeepAlive() {
+  NOTIMPLEMENTED();
+  return nullptr;
+}
diff --git a/tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.h b/tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.h
new file mode 100644 (file)
index 0000000..18c7618
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright 2020 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.
+
+#ifndef BACKGROUND_SYNC_CONTROLLER_EFL_H_
+#define BACKGROUND_SYNC_CONTROLLER_EFL_H_
+
+#include "content/public/browser/background_sync_controller.h"
+
+class BackgroundSyncControllerEfl : public content::BackgroundSyncController {
+ public:
+  BackgroundSyncControllerEfl() = default;
+  ~BackgroundSyncControllerEfl() override = default;
+
+ private:
+  // content::BackgroundSyncController overrides.
+  base::TimeDelta GetNextEventDelay(
+      const content::BackgroundSyncRegistration& registration,
+      content::BackgroundSyncParameters* parameters,
+      base::TimeDelta time_till_soonest_scheduled_event_for_origin) override;
+  std::unique_ptr<BackgroundSyncController::BackgroundSyncEventKeepAlive>
+  CreateBackgroundSyncEventKeepAlive() override;
+  void NoteSuspendedPeriodicSyncOrigins(
+      std::set<url::Origin> suspended_origins) override {}
+  void NoteRegisteredPeriodicSyncOrigins(
+      std::set<url::Origin> registered_origins) override {}
+  void AddToTrackedOrigins(const url::Origin& origin) override {}
+  void RemoveFromTrackedOrigins(const url::Origin& origin) override {}
+};
+
+#endif  // BACKGROUND_SYNC_CONTROLLER_EFL_H_
index 6389bc1..eeb7144 100644 (file)
@@ -9,6 +9,7 @@
 #include "base/path_service.h"
 #include "base/synchronization/waitable_event.h"
 #include "browser/autofill/personal_data_manager_factory.h"
+#include "browser/background_sync_controller_efl.h"
 #include "browser/geolocation/geolocation_permission_context_efl.h"
 #include "browser/webdata/web_data_service_factory.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
@@ -198,7 +199,9 @@ base::FilePath BrowserContextEfl::GetCachePath() const {
 }
 
 BackgroundSyncController* BrowserContextEfl::GetBackgroundSyncController() {
-  return nullptr;
+  if (!background_sync_controller_)
+    background_sync_controller_.reset(new BackgroundSyncControllerEfl());
+  return background_sync_controller_.get();
 }
 
 void BrowserContextEfl::CreateNetworkDelegate() {
index b5b9405..080c692 100644 (file)
@@ -142,6 +142,7 @@ class BrowserContextEfl : public BrowserContext,
   const bool incognito_;
   std::unique_ptr<net::NetworkDelegate> network_delegate_for_getter_;
   std::unique_ptr<SSLHostStateDelegateEfl> ssl_host_state_delegate_;
+  std::unique_ptr<BackgroundSyncController> background_sync_controller_;
   std::unique_ptr<PermissionControllerDelegate> permission_controller_delegate_;
 
   DISALLOW_COPY_AND_ASSIGN(BrowserContextEfl);
index ddafca7..1fbf85c 100644 (file)
@@ -189,6 +189,7 @@ PermissionStatus PermissionControllerDelegateEfl::GetPermissionStatus(
                                                  const GURL& requesting_origin,
                                                  const GURL& embedding_origin) {
   switch (permission) {
+    case PermissionType::BACKGROUND_SYNC:
 #if defined(ENABLE_NOTIFICATIONS)
     case PermissionType::NOTIFICATIONS: {
       // requesting_origin should be the same as embedding_origin