From bca564c7a3799bb2ba277ff8a9e7ac1ba2dc204d Mon Sep 17 00:00:00 2001 From: Insoon Kim Date: Wed, 8 Apr 2020 18:26:38 +0530 Subject: [PATCH] [M85 Migration] Support ServiceWorker Background Sync 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 --- tizen_src/ewk/efl_integration/BUILD.gn | 2 ++ .../browser/background_sync_controller_efl.cc | 19 +++++++++++++ .../browser/background_sync_controller_efl.h | 31 ++++++++++++++++++++++ .../ewk/efl_integration/browser_context_efl.cc | 5 +++- .../ewk/efl_integration/browser_context_efl.h | 1 + .../permission_controller_delegate_efl.cc | 1 + 6 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.cc create mode 100644 tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.h diff --git a/tizen_src/ewk/efl_integration/BUILD.gn b/tizen_src/ewk/efl_integration/BUILD.gn index c048742..68cfc7f 100644 --- a/tizen_src/ewk/efl_integration/BUILD.gn +++ b/tizen_src/ewk/efl_integration/BUILD.gn @@ -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 index 0000000..d4b57cc --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.cc @@ -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 +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 index 0000000..18c7618 --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/background_sync_controller_efl.h @@ -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 + CreateBackgroundSyncEventKeepAlive() override; + void NoteSuspendedPeriodicSyncOrigins( + std::set suspended_origins) override {} + void NoteRegisteredPeriodicSyncOrigins( + std::set registered_origins) override {} + void AddToTrackedOrigins(const url::Origin& origin) override {} + void RemoveFromTrackedOrigins(const url::Origin& origin) override {} +}; + +#endif // BACKGROUND_SYNC_CONTROLLER_EFL_H_ diff --git a/tizen_src/ewk/efl_integration/browser_context_efl.cc b/tizen_src/ewk/efl_integration/browser_context_efl.cc index 6389bc1..eeb7144 100644 --- a/tizen_src/ewk/efl_integration/browser_context_efl.cc +++ b/tizen_src/ewk/efl_integration/browser_context_efl.cc @@ -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() { diff --git a/tizen_src/ewk/efl_integration/browser_context_efl.h b/tizen_src/ewk/efl_integration/browser_context_efl.h index b5b9405..080c692 100644 --- a/tizen_src/ewk/efl_integration/browser_context_efl.h +++ b/tizen_src/ewk/efl_integration/browser_context_efl.h @@ -142,6 +142,7 @@ class BrowserContextEfl : public BrowserContext, const bool incognito_; std::unique_ptr network_delegate_for_getter_; std::unique_ptr ssl_host_state_delegate_; + std::unique_ptr background_sync_controller_; std::unique_ptr permission_controller_delegate_; DISALLOW_COPY_AND_ASSIGN(BrowserContextEfl); diff --git a/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.cc b/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.cc index ddafca7..1fbf85c 100644 --- a/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.cc +++ b/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.cc @@ -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 -- 2.7.4