• 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_WRAPPER_H_
17 #define ARK_WEB_ENGINE_WRAPPER_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 using ArkWebRenderProcessMode = OHOS::NWeb::RenderProcessMode;
26 
27 class ArkWebEngineWrapper : public OHOS::NWeb::NWebEngine {
28 public:
29     ArkWebEngineWrapper(ArkWebRefPtr<ArkWebEngine> ark_web_engine);
30     ~ArkWebEngineWrapper() = default;
31 
32     std::shared_ptr<OHOS::NWeb::NWeb> CreateNWeb(std::shared_ptr<OHOS::NWeb::NWebCreateInfo> create_info) override;
33 
34     std::shared_ptr<OHOS::NWeb::NWeb> GetNWeb(int32_t nweb_id) override;
35 
36     std::shared_ptr<OHOS::NWeb::NWebDataBase> GetDataBase() override;
37 
38     std::shared_ptr<OHOS::NWeb::NWebWebStorage> GetWebStorage() override;
39 
40     std::shared_ptr<OHOS::NWeb::NWebCookieManager> GetCookieManager() override;
41 
42     std::shared_ptr<OHOS::NWeb::NWebDownloadManager> GetDownloadManager() override;
43 
44     void SetWebTag(int32_t nweb_id, const char* web_tag) override;
45 
46     void InitializeWebEngine(std::shared_ptr<OHOS::NWeb::NWebEngineInitArgs> init_args) override;
47 
48     void PrepareForPageLoad(const std::string& url, bool preconnectable, int32_t num_sockets) override;
49 
50     void SetWebDebuggingAccess(bool isEnableDebug) override;
51 
52     void AddIntelligentTrackingPreventionBypassingList(const std::vector<std::string>& hosts) override;
53 
54     void RemoveIntelligentTrackingPreventionBypassingList(const std::vector<std::string>& hosts) override;
55 
56     void ClearIntelligentTrackingPreventionBypassingList() override;
57 
58     std::string GetDefaultUserAgent() override;
59 
60     void PauseAllTimers() override;
61 
62     void ResumeAllTimers() override;
63 
64     void PrefetchResource(const std::shared_ptr<OHOS::NWeb::NWebEnginePrefetchArgs>& pre_args,
65         const std::map<std::string, std::string>& additional_http_headers, const std::string& cache_key,
66         const uint32_t& cache_valid_time) override;
67 
68     void SetRenderProcessMode(ArkWebRenderProcessMode mode) override;
69 
70     ArkWebRenderProcessMode GetRenderProcessMode() override;
71 
72     void ClearPrefetchedResource(const std::vector<std::string>& cache_key_list) override;
73 
74     void WarmupServiceWorker(const std::string& url) override;
75 
76     void SetHostIP(const std::string& hostName, const std::string& address, int32_t aliveTime) override;
77 
78     void ClearHostIP(const std::string& hostName) override;
79 
80     void SetAppCustomUserAgent(const std::string& userAgent) override;
81 
82     void SetUserAgentForHosts(const std::string& userAgent, const std::vector<std::string>& hosts) override;
83 
84     void EnableWholeWebPageDrawing() override;
85 
86     std::shared_ptr<OHOS::NWeb::NWebAdsBlockManager> GetAdsBlockManager() override;
87 
88     void TrimMemoryByPressureLevel(int32_t memoryLevel) override;
89 
90     void SetArkWebRomApiLevel(int apiLevel) override;
91 
92     int GetArkWebCoreApiLevel() override;
93 
94     void RemoveAllCache(bool include_disk_files) override;
95 
96     void SetProxyOverride(const std::vector<std::string>& proxyUrls,
97                           const std::vector<std::string>& proxySchemeFilters,
98                           const std::vector<std::string>& bypassRules,
99                           const bool& reverseBypass,
100                           std::shared_ptr<OHOS::NWeb::NWebProxyChangedCallback> callback) override;
101 
102     void RemoveProxyOverride(std::shared_ptr<OHOS::NWeb::NWebProxyChangedCallback> callback) override;
103 
104     void SetWebDebuggingAccessAndPort(bool isEnableDebug, int32_t port) override;
105 
106     uint32_t AddBlanklessLoadingUrls(const std::vector<std::string>& urls) override;
107 
108     void RemoveBlanklessLoadingUrls(const std::vector<std::string>& urls) override;
109 
110     void ClearBlanklessLoadingCache(const std::vector<std::string>& urls) override;
111 
112     std::string CheckBlankOptEnable(const std::string& url, int32_t nweb_id) override;
113 
114     void SetBlanklessLoadingCacheCapacity(int32_t capacity) override;
115 
116     void EnablePrivateNetworkAccess(bool enable) override;
117 
118     bool IsPrivateNetworkAccessEnabled() override;
119 
120     void SetWebDestroyMode(OHOS::NWeb::WebDestroyMode mode) override;
121 
122 private:
123     ArkWebRefPtr<ArkWebEngine> ark_web_engine_;
124 };
125 
126 } // namespace OHOS::ArkWeb
127 
128 #endif // ARK_WEB_ENGINE_WRAPPER_H_
129