• 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 #ifndef ARK_WEB_ENGINE_IMPL_H_
17 #define ARK_WEB_ENGINE_IMPL_H_
18 #pragma once
19 
20 #include "include/nweb_engine.h"
21 #include "ohos_nweb/include/ark_web_engine.h"
22 #include "ohos_nweb/include/ark_web_proxy_changed_callback.h"
23 
24 namespace OHOS::ArkWeb {
25 
26 class ArkWebEngineImpl : public ArkWebEngine {
27     IMPLEMENT_REFCOUNTING(ArkWebEngineImpl);
28 
29 public:
30     ArkWebEngineImpl(std::shared_ptr<OHOS::NWeb::NWebEngine> nweb_engine);
31     ~ArkWebEngineImpl() = default;
32 
33     ArkWebRefPtr<ArkWebNWeb> CreateNWeb(ArkWebRefPtr<ArkWebNWebCreateInfo> create_info) override;
34 
35     ArkWebRefPtr<ArkWebNWeb> GetNWeb(int32_t nweb_id) override;
36 
37     ArkWebRefPtr<ArkWebDataBase> GetDataBase() override;
38 
39     ArkWebRefPtr<ArkWebWebStorage> GetWebStorage() override;
40 
41     ArkWebRefPtr<ArkWebCookieManager> GetCookieManager() override;
42 
43     ArkWebRefPtr<ArkWebDownloadManager> GetDownloadManager() override;
44 
45     void SetWebTag(int32_t nweb_id, const char* web_tag) override;
46 
47     void InitializeWebEngine(ArkWebRefPtr<ArkWebEngineInitArgs> init_args) override;
48 
49     void PrepareForPageLoad(const ArkWebString& url, bool preconnectable, int32_t num_sockets) override;
50 
51     void SetWebDebuggingAccess(bool isEnableDebug) override;
52 
53     void AddIntelligentTrackingPreventionBypassingList(const ArkWebStringVector& hosts) override;
54 
55     void RemoveIntelligentTrackingPreventionBypassingList(const ArkWebStringVector& hosts) override;
56 
57     void ClearIntelligentTrackingPreventionBypassingList() override;
58 
59     ArkWebString GetDefaultUserAgent() override;
60 
61     void PauseAllTimers() override;
62 
63     void ResumeAllTimers() override;
64 
65     void PrefetchResource(ArkWebRefPtr<ArkWebEnginePrefetchArgs>& pre_args,
66         const ArkWebStringMap& additional_http_headers, const ArkWebString& cache_key,
67         const uint32_t& cache_valid_time) override;
68 
69     void SetRenderProcessMode(int32_t mode) override;
70 
71     int32_t GetRenderProcessMode() override;
72 
73     void ClearPrefetchedResource(const ArkWebStringVector& cache_key_list) override;
74 
75     void WarmupServiceWorker(const ArkWebString& url) override;
76 
77     void SetHostIP(const ArkWebString& hostName, const ArkWebString& address, int32_t aliveTime) override;
78 
79     void ClearHostIP(const ArkWebString& hostName) override;
80 
81     void SetAppCustomUserAgent(const ArkWebString& userAgent) override;
82 
83     void SetUserAgentForHosts(const ArkWebString& userAgent, const ArkWebStringVector& hosts) override;
84 
85     void EnableWholeWebPageDrawing() override;
86 
87     ArkWebRefPtr<ArkWebAdsBlockManager> GetAdsBlockManager() override;
88 
89     void TrimMemoryByPressureLevel(int32_t memoryLevel) override;
90 
91     void SetArkWebRomApiLevel(int apiLevel) override;
92 
93     int GetArkWebCoreApiLevel() override;
94 
95     void RemoveAllCache(bool include_disk_files) override;
96 
97     void SetProxyOverride(const ArkWebStringVector& proxyUrls,
98                           const ArkWebStringVector& proxySchemeFilters,
99                           const ArkWebStringVector& bypassRules,
100                           const bool& reverseBypass,
101                           ArkWebRefPtr<ArkWebProxyChangedCallback> callback) override;
102 
103     void RemoveProxyOverride(ArkWebRefPtr<ArkWebProxyChangedCallback> callback) override;
104 
105     void SetWebDebuggingAccessAndPort(bool isEnableDebug, int32_t port) override;
106 
107     uint32_t AddBlanklessLoadingUrls(const ArkWebStringVector& urls) override;
108 
109     void RemoveBlanklessLoadingUrls(const ArkWebStringVector& urls) override;
110 
111     void ClearBlanklessLoadingCache(const ArkWebStringVector& urls) override;
112 
113     ArkWebString CheckBlankOptEnable(const ArkWebString& url, int32_t nweb_id) override;
114 
115     void SetBlanklessLoadingCacheCapacity(int32_t capacity) override;
116 
117     void EnablePrivateNetworkAccess(bool enable) override;
118 
119     bool IsPrivateNetworkAccessEnabled() override;
120 
121     void SetWebDestroyMode(int32_t mode) override;
122 
123 private:
124     std::shared_ptr<OHOS::NWeb::NWebEngine> nweb_engine_;
125 };
126 
127 } // namespace OHOS::ArkWeb
128 
129 #endif // ARK_WEB_ENGINE_IMPL_H_
130