• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "ohos_nweb/bridge/ark_web_cookie_manager_impl.h"
17 
18 #include "ohos_nweb/bridge/ark_web_bool_value_callback_wrapper.h"
19 #include "ohos_nweb/bridge/ark_web_long_value_callback_wrapper.h"
20 #include "ohos_nweb/bridge/ark_web_string_value_callback_wrapper.h"
21 
22 #include "base/bridge/ark_web_bridge_macros.h"
23 
24 namespace OHOS::ArkWeb {
25 
ArkWebCookieManagerImpl(std::shared_ptr<OHOS::NWeb::NWebCookieManager> nweb_cookie_manager)26 ArkWebCookieManagerImpl::ArkWebCookieManagerImpl(std::shared_ptr<OHOS::NWeb::NWebCookieManager> nweb_cookie_manager)
27     : nweb_cookie_manager_(nweb_cookie_manager)
28 {}
29 
Store()30 bool ArkWebCookieManagerImpl::Store()
31 {
32     return nweb_cookie_manager_->Store();
33 }
34 
Store(ArkWebRefPtr<ArkWebBoolValueCallback> callback)35 void ArkWebCookieManagerImpl::Store(ArkWebRefPtr<ArkWebBoolValueCallback> callback)
36 {
37     if (CHECK_REF_PTR_IS_NULL(callback)) {
38         nweb_cookie_manager_->Store(nullptr);
39         return;
40     }
41 
42     nweb_cookie_manager_->Store(std::make_shared<ArkWebBoolValueCallbackWrapper>(callback));
43 }
44 
SetCookie(const ArkWebString & url,const ArkWebString & value,bool incognito_mode)45 int ArkWebCookieManagerImpl::SetCookie(const ArkWebString& url, const ArkWebString& value, bool incognito_mode)
46 {
47     return nweb_cookie_manager_->SetCookie(
48         ArkWebStringStructToClass(url), ArkWebStringStructToClass(value), incognito_mode);
49 }
50 
SetCookie(const ArkWebString & url,const ArkWebString & value,ArkWebRefPtr<ArkWebBoolValueCallback> callback)51 void ArkWebCookieManagerImpl::SetCookie(
52     const ArkWebString& url, const ArkWebString& value, ArkWebRefPtr<ArkWebBoolValueCallback> callback)
53 {
54     if (CHECK_REF_PTR_IS_NULL(callback)) {
55         nweb_cookie_manager_->SetCookie(ArkWebStringStructToClass(url), ArkWebStringStructToClass(value), nullptr);
56         return;
57     }
58 
59     nweb_cookie_manager_->SetCookie(ArkWebStringStructToClass(url), ArkWebStringStructToClass(value),
60         std::make_shared<ArkWebBoolValueCallbackWrapper>(callback));
61 }
62 
ExistCookies(bool incognito_mode)63 bool ArkWebCookieManagerImpl::ExistCookies(bool incognito_mode)
64 {
65     return nweb_cookie_manager_->ExistCookies(incognito_mode);
66 }
67 
ExistCookies(ArkWebRefPtr<ArkWebBoolValueCallback> callback)68 void ArkWebCookieManagerImpl::ExistCookies(ArkWebRefPtr<ArkWebBoolValueCallback> callback)
69 {
70     if (CHECK_REF_PTR_IS_NULL(callback)) {
71         nweb_cookie_manager_->ExistCookies(nullptr);
72         return;
73     }
74 
75     nweb_cookie_manager_->ExistCookies(std::make_shared<ArkWebBoolValueCallbackWrapper>(callback));
76 }
77 
ReturnCookie(const ArkWebString & url,bool & is_valid,bool incognito_mode)78 ArkWebString ArkWebCookieManagerImpl::ReturnCookie(const ArkWebString& url, bool& is_valid, bool incognito_mode)
79 {
80     return ArkWebStringClassToStruct(
81         nweb_cookie_manager_->ReturnCookie(ArkWebStringStructToClass(url), is_valid, incognito_mode));
82 }
83 
ReturnCookie(const ArkWebString & url,ArkWebRefPtr<ArkWebStringValueCallback> callback)84 void ArkWebCookieManagerImpl::ReturnCookie(const ArkWebString& url, ArkWebRefPtr<ArkWebStringValueCallback> callback)
85 {
86     if (CHECK_REF_PTR_IS_NULL(callback)) {
87         nweb_cookie_manager_->ReturnCookie(ArkWebStringStructToClass(url), nullptr);
88         return;
89     }
90 
91     nweb_cookie_manager_->ReturnCookie(
92         ArkWebStringStructToClass(url), std::make_shared<ArkWebStringValueCallbackWrapper>(callback));
93 }
94 
ConfigCookie(const ArkWebString & url,const ArkWebString & value,ArkWebRefPtr<ArkWebLongValueCallback> callback)95 void ArkWebCookieManagerImpl::ConfigCookie(
96     const ArkWebString& url, const ArkWebString& value, ArkWebRefPtr<ArkWebLongValueCallback> callback)
97 {
98     if (CHECK_REF_PTR_IS_NULL(callback)) {
99         nweb_cookie_manager_->ConfigCookie(ArkWebStringStructToClass(url), ArkWebStringStructToClass(value), nullptr);
100         return;
101     }
102 
103     nweb_cookie_manager_->ConfigCookie(ArkWebStringStructToClass(url), ArkWebStringStructToClass(value),
104         std::make_shared<ArkWebLongValueCallbackWrapper>(callback));
105 }
106 
DeleteSessionCookies(ArkWebRefPtr<ArkWebBoolValueCallback> callback)107 void ArkWebCookieManagerImpl::DeleteSessionCookies(ArkWebRefPtr<ArkWebBoolValueCallback> callback)
108 {
109     if (CHECK_REF_PTR_IS_NULL(callback)) {
110         nweb_cookie_manager_->DeleteSessionCookies(nullptr);
111         return;
112     }
113 
114     nweb_cookie_manager_->DeleteSessionCookies(std::make_shared<ArkWebBoolValueCallbackWrapper>(callback));
115 }
116 
DeleteCookieEntirely(ArkWebRefPtr<ArkWebBoolValueCallback> callback,bool incognito_mode)117 void ArkWebCookieManagerImpl::DeleteCookieEntirely(ArkWebRefPtr<ArkWebBoolValueCallback> callback, bool incognito_mode)
118 {
119     if (CHECK_REF_PTR_IS_NULL(callback)) {
120         nweb_cookie_manager_->DeleteCookieEntirely(nullptr, incognito_mode);
121         return;
122     }
123 
124     nweb_cookie_manager_->DeleteCookieEntirely(
125         std::make_shared<ArkWebBoolValueCallbackWrapper>(callback), incognito_mode);
126 }
127 
IsAcceptCookieAllowed()128 bool ArkWebCookieManagerImpl::IsAcceptCookieAllowed()
129 {
130     return nweb_cookie_manager_->IsAcceptCookieAllowed();
131 }
132 
PutAcceptCookieEnabled(bool accept)133 void ArkWebCookieManagerImpl::PutAcceptCookieEnabled(bool accept)
134 {
135     nweb_cookie_manager_->PutAcceptCookieEnabled(accept);
136 }
137 
IsThirdPartyCookieAllowed()138 bool ArkWebCookieManagerImpl::IsThirdPartyCookieAllowed()
139 {
140     return nweb_cookie_manager_->IsThirdPartyCookieAllowed();
141 }
142 
IsFileURLSchemeCookiesAllowed()143 bool ArkWebCookieManagerImpl::IsFileURLSchemeCookiesAllowed()
144 {
145     return nweb_cookie_manager_->IsFileURLSchemeCookiesAllowed();
146 }
147 
PutAcceptThirdPartyCookieEnabled(bool accept)148 void ArkWebCookieManagerImpl::PutAcceptThirdPartyCookieEnabled(bool accept)
149 {
150     nweb_cookie_manager_->PutAcceptThirdPartyCookieEnabled(accept);
151 }
152 
PutAcceptFileURLSchemeCookiesEnabled(bool allow)153 void ArkWebCookieManagerImpl::PutAcceptFileURLSchemeCookiesEnabled(bool allow)
154 {
155     nweb_cookie_manager_->PutAcceptFileURLSchemeCookiesEnabled(allow);
156 }
157 
GetCookieAsync(const ArkWebString & url,bool incognitoMode,ArkWebRefPtr<ArkWebStringValueCallback> callback)158 void ArkWebCookieManagerImpl::GetCookieAsync(
159     const ArkWebString& url, bool incognitoMode, ArkWebRefPtr<ArkWebStringValueCallback> callback)
160 {
161     if (CHECK_REF_PTR_IS_NULL(callback)) {
162         nweb_cookie_manager_->GetCookieAsync(ArkWebStringStructToClass(url), incognitoMode, nullptr);
163         return;
164     }
165 
166     nweb_cookie_manager_->GetCookieAsync(
167         ArkWebStringStructToClass(url), incognitoMode, std::make_shared<ArkWebStringValueCallbackWrapper>(callback));
168 }
169 
SetCookieSync(const ArkWebString & url,const ArkWebString & value,bool incognitoMode,bool includeHttpOnly)170 int ArkWebCookieManagerImpl::SetCookieSync(
171     const ArkWebString& url, const ArkWebString& value, bool incognitoMode, bool includeHttpOnly)
172 {
173     return nweb_cookie_manager_->SetCookieSync(
174         ArkWebStringStructToClass(url), ArkWebStringStructToClass(value), incognitoMode, includeHttpOnly);
175 }
176 
SetCookieAsync(const ArkWebString & url,const ArkWebString & value,bool incognitoMode,bool includeHttpOnly,ArkWebRefPtr<ArkWebLongValueCallback> callback)177 void ArkWebCookieManagerImpl::SetCookieAsync(const ArkWebString& url, const ArkWebString& value, bool incognitoMode,
178     bool includeHttpOnly, ArkWebRefPtr<ArkWebLongValueCallback> callback)
179 {
180     if (CHECK_REF_PTR_IS_NULL(callback)) {
181         nweb_cookie_manager_->SetCookieAsync(
182             ArkWebStringStructToClass(url), ArkWebStringStructToClass(value), incognitoMode, includeHttpOnly, nullptr);
183         return;
184     }
185 
186     nweb_cookie_manager_->SetCookieAsync(ArkWebStringStructToClass(url), ArkWebStringStructToClass(value),
187         incognitoMode, includeHttpOnly, std::make_shared<ArkWebLongValueCallbackWrapper>(callback));
188 }
189 
190 } // namespace OHOS::ArkWeb
191