1 #ifndef DALI_WEB_ENGINE_COOKIE_MANAGER_H
2 #define DALI_WEB_ENGINE_COOKIE_MANAGER_H
5 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
28 * @brief A class WebEngineCookieManager for cookie manager of web engine.
30 class WebEngineCookieManager
34 * @brief Enumeration for the cookies accept policies.
36 enum class CookieAcceptPolicy
38 ALWAYS, ///< Accepts every cookie sent from any page.
39 NEVER, ///< Rejects all the cookies.
40 NO_THIRD_PARTY, ///< Accepts only cookies set by the main document that is loaded.
44 * @brief Enumeration for the cookie persistent storage type.
46 enum class CookiePersistentStorage
48 TEXT, ///< Cookies are stored in a text file in the Mozilla "cookies.txt" format.
49 SQLITE, ///< Cookies are stored in a SQLite file in the current Mozilla format.
53 * @brief Callback for changing watch.
55 using WebEngineCookieManagerChangesWatchCallback = std::function<void()>;
60 WebEngineCookieManager() = default;
65 virtual ~WebEngineCookieManager() = default;
68 * @brief Sets @a policy as the cookie acceptance policy for @a manager.
69 * @details By default, only cookies set by the main document loaded are
72 * @param[in] policy A #Dali::WebEngineCookieManager::CookieAcceptPolicy
74 virtual void SetCookieAcceptPolicy(CookieAcceptPolicy policy) = 0;
77 * @brief Gets the cookie acceptance policy.
78 * The default is Toolkit::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY.
79 * @see Toolkit::WebEngineCookieManager::CookieAcceptPolicy::Type
81 virtual CookieAcceptPolicy GetCookieAcceptPolicy() const = 0;
84 * @brief Deletes all the cookies of @a manager.
86 virtual void ClearCookies() = 0;
89 * @brief Sets the @a path where non-session cookies are stored persistently using
90 * @a storage as the format to read/write the cookies.
91 * @details Cookies are initially read from @a path/Cookies to create an initial
92 * set of cookies. Then, non-session cookies will be written to @a path/Cookies.
93 * By default, @a manager doesn't store the cookies persistently, so you need to
94 * call this method to keep cookies saved across sessions.
95 * If @a path does not exist it will be created.
96 * @param[in] path The path where to read/write Cookies
97 * @param[in] storage The type of storage
99 virtual void SetPersistentStorage(const std::string& path, CookiePersistentStorage storage) = 0;
102 * @brief Watch for cookies' changes in @a manager.
104 * @param[in] callback function that will be called every time cookies are added, removed or modified.
106 virtual void ChangesWatch(WebEngineCookieManagerChangesWatchCallback callback) = 0;
111 #endif // DALI_WEB_ENGINE_COOKIE_MANAGER_H