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