10826e83eSopenharmony_ci/* 20826e83eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 30826e83eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 40826e83eSopenharmony_ci * you may not use this file except in compliance with the License. 50826e83eSopenharmony_ci * You may obtain a copy of the License at 60826e83eSopenharmony_ci * 70826e83eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 80826e83eSopenharmony_ci * 90826e83eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 100826e83eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 110826e83eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 120826e83eSopenharmony_ci * See the License for the specific language governing permissions and 130826e83eSopenharmony_ci * limitations under the License. 140826e83eSopenharmony_ci */ 150826e83eSopenharmony_ci#ifndef NWEB_INIT_PARAMS_H 160826e83eSopenharmony_ci#define NWEB_INIT_PARAMS_H 170826e83eSopenharmony_ci 180826e83eSopenharmony_ci#include "nweb.h" 190826e83eSopenharmony_ci#include "nweb_download_manager.h" 200826e83eSopenharmony_ci 210826e83eSopenharmony_cinamespace OHOS::NWeb { 220826e83eSopenharmony_ci 230826e83eSopenharmony_ciclass NWebDOHConfigImpl : public NWebDOHConfig { 240826e83eSopenharmony_cipublic: 250826e83eSopenharmony_ci NWebDOHConfigImpl() = default; 260826e83eSopenharmony_ci ~NWebDOHConfigImpl() = default; 270826e83eSopenharmony_ci 280826e83eSopenharmony_ci void SetMode(int mode) 290826e83eSopenharmony_ci { 300826e83eSopenharmony_ci mode_ = mode; 310826e83eSopenharmony_ci } 320826e83eSopenharmony_ci 330826e83eSopenharmony_ci int GetMode() override 340826e83eSopenharmony_ci { 350826e83eSopenharmony_ci return mode_; 360826e83eSopenharmony_ci } 370826e83eSopenharmony_ci 380826e83eSopenharmony_ci void SetConfig(const std::string& config) 390826e83eSopenharmony_ci { 400826e83eSopenharmony_ci config_ = config; 410826e83eSopenharmony_ci } 420826e83eSopenharmony_ci 430826e83eSopenharmony_ci std::string GetConfig() override 440826e83eSopenharmony_ci { 450826e83eSopenharmony_ci return config_; 460826e83eSopenharmony_ci } 470826e83eSopenharmony_ci 480826e83eSopenharmony_ciprivate: 490826e83eSopenharmony_ci int mode_ = -1; 500826e83eSopenharmony_ci std::string config_; 510826e83eSopenharmony_ci}; 520826e83eSopenharmony_ci 530826e83eSopenharmony_ciclass NWebCreateInfoImpl : public NWebCreateInfo { 540826e83eSopenharmony_cipublic: 550826e83eSopenharmony_ci NWebCreateInfoImpl() = default; 560826e83eSopenharmony_ci ~NWebCreateInfoImpl() = default; 570826e83eSopenharmony_ci 580826e83eSopenharmony_ci void SetWidth(uint32_t width) 590826e83eSopenharmony_ci { 600826e83eSopenharmony_ci width_ = width; 610826e83eSopenharmony_ci } 620826e83eSopenharmony_ci 630826e83eSopenharmony_ci uint32_t GetWidth() override 640826e83eSopenharmony_ci { 650826e83eSopenharmony_ci return width_; 660826e83eSopenharmony_ci } 670826e83eSopenharmony_ci 680826e83eSopenharmony_ci void SetHeight(uint32_t height) 690826e83eSopenharmony_ci { 700826e83eSopenharmony_ci height_ = height; 710826e83eSopenharmony_ci } 720826e83eSopenharmony_ci 730826e83eSopenharmony_ci uint32_t GetHeight() override 740826e83eSopenharmony_ci { 750826e83eSopenharmony_ci return height_; 760826e83eSopenharmony_ci } 770826e83eSopenharmony_ci 780826e83eSopenharmony_ci void SetIsIncognitoMode(bool isIncognitoMode) 790826e83eSopenharmony_ci { 800826e83eSopenharmony_ci isIncognitoMode_ = isIncognitoMode; 810826e83eSopenharmony_ci } 820826e83eSopenharmony_ci 830826e83eSopenharmony_ci bool GetIsIncognitoMode() override 840826e83eSopenharmony_ci { 850826e83eSopenharmony_ci return isIncognitoMode_; 860826e83eSopenharmony_ci } 870826e83eSopenharmony_ci 880826e83eSopenharmony_ci void SetProducerSurface(void* producerSurface) 890826e83eSopenharmony_ci { 900826e83eSopenharmony_ci producerSurface_ = producerSurface; 910826e83eSopenharmony_ci } 920826e83eSopenharmony_ci 930826e83eSopenharmony_ci void* GetProducerSurface() override 940826e83eSopenharmony_ci { 950826e83eSopenharmony_ci return producerSurface_; 960826e83eSopenharmony_ci } 970826e83eSopenharmony_ci 980826e83eSopenharmony_ci void SetEnhanceSurfaceInfo(void* enhanceSurfaceInfo) 990826e83eSopenharmony_ci { 1000826e83eSopenharmony_ci enhanceSurfaceInfo_ = enhanceSurfaceInfo; 1010826e83eSopenharmony_ci } 1020826e83eSopenharmony_ci 1030826e83eSopenharmony_ci void* GetEnhanceSurfaceInfo() override 1040826e83eSopenharmony_ci { 1050826e83eSopenharmony_ci return enhanceSurfaceInfo_; 1060826e83eSopenharmony_ci } 1070826e83eSopenharmony_ci 1080826e83eSopenharmony_ci void SetEngineInitArgs(std::shared_ptr<NWebEngineInitArgs> initArgs) 1090826e83eSopenharmony_ci { 1100826e83eSopenharmony_ci initArgs_ = initArgs; 1110826e83eSopenharmony_ci } 1120826e83eSopenharmony_ci 1130826e83eSopenharmony_ci std::shared_ptr<NWebEngineInitArgs> GetEngineInitArgs() override 1140826e83eSopenharmony_ci { 1150826e83eSopenharmony_ci return initArgs_; 1160826e83eSopenharmony_ci } 1170826e83eSopenharmony_ci 1180826e83eSopenharmony_ci void SetOutputFrameCallback(std::shared_ptr<NWebOutputFrameCallback> outputFrameCallback) 1190826e83eSopenharmony_ci { 1200826e83eSopenharmony_ci outputFrameCallback_ = outputFrameCallback; 1210826e83eSopenharmony_ci } 1220826e83eSopenharmony_ci 1230826e83eSopenharmony_ci std::shared_ptr<NWebOutputFrameCallback> GetOutputFrameCallback() override 1240826e83eSopenharmony_ci { 1250826e83eSopenharmony_ci return outputFrameCallback_; 1260826e83eSopenharmony_ci } 1270826e83eSopenharmony_ci 1280826e83eSopenharmony_ciprivate: 1290826e83eSopenharmony_ci uint32_t width_ = 0; 1300826e83eSopenharmony_ci uint32_t height_ = 0; 1310826e83eSopenharmony_ci 1320826e83eSopenharmony_ci bool isIncognitoMode_ = false; 1330826e83eSopenharmony_ci 1340826e83eSopenharmony_ci void* producerSurface_ = nullptr; 1350826e83eSopenharmony_ci void* enhanceSurfaceInfo_ = nullptr; 1360826e83eSopenharmony_ci 1370826e83eSopenharmony_ci std::shared_ptr<NWebEngineInitArgs> initArgs_ = nullptr; 1380826e83eSopenharmony_ci std::shared_ptr<NWebOutputFrameCallback> outputFrameCallback_ = nullptr; 1390826e83eSopenharmony_ci}; 1400826e83eSopenharmony_ci 1410826e83eSopenharmony_ciclass NWebEngineInitArgsImpl : public NWebEngineInitArgs { 1420826e83eSopenharmony_cipublic: 1430826e83eSopenharmony_ci NWebEngineInitArgsImpl() = default; 1440826e83eSopenharmony_ci ~NWebEngineInitArgsImpl() = default; 1450826e83eSopenharmony_ci 1460826e83eSopenharmony_ci void AddArg(const std::string& arg) 1470826e83eSopenharmony_ci { 1480826e83eSopenharmony_ci argsToAdd_.emplace_back(arg); 1490826e83eSopenharmony_ci } 1500826e83eSopenharmony_ci 1510826e83eSopenharmony_ci void AddDeleteArg(const std::string& arg) 1520826e83eSopenharmony_ci { 1530826e83eSopenharmony_ci argsToDelete_.emplace_back(arg); 1540826e83eSopenharmony_ci } 1550826e83eSopenharmony_ci 1560826e83eSopenharmony_ci void SetDumpPath(const std::string& dumpPath) 1570826e83eSopenharmony_ci { 1580826e83eSopenharmony_ci dumpPath_ = dumpPath; 1590826e83eSopenharmony_ci } 1600826e83eSopenharmony_ci 1610826e83eSopenharmony_ci std::string GetDumpPath() override 1620826e83eSopenharmony_ci { 1630826e83eSopenharmony_ci return dumpPath_; 1640826e83eSopenharmony_ci } 1650826e83eSopenharmony_ci 1660826e83eSopenharmony_ci void SetIsPopup(bool isPopup) 1670826e83eSopenharmony_ci { 1680826e83eSopenharmony_ci isPopup_ = isPopup; 1690826e83eSopenharmony_ci } 1700826e83eSopenharmony_ci 1710826e83eSopenharmony_ci bool GetIsPopup() override 1720826e83eSopenharmony_ci { 1730826e83eSopenharmony_ci return isPopup_; 1740826e83eSopenharmony_ci } 1750826e83eSopenharmony_ci 1760826e83eSopenharmony_ci void SetIsFrameInfoDump(bool isFrameInfoDump) 1770826e83eSopenharmony_ci { 1780826e83eSopenharmony_ci isFrameInfoDump_ = isFrameInfoDump; 1790826e83eSopenharmony_ci } 1800826e83eSopenharmony_ci 1810826e83eSopenharmony_ci bool GetIsFrameInfoDump() override 1820826e83eSopenharmony_ci { 1830826e83eSopenharmony_ci return isFrameInfoDump_; 1840826e83eSopenharmony_ci } 1850826e83eSopenharmony_ci 1860826e83eSopenharmony_ci void SetIsEnhanceSurface(bool isEnhanceSurface) 1870826e83eSopenharmony_ci { 1880826e83eSopenharmony_ci isEnhanceSurface_ = isEnhanceSurface; 1890826e83eSopenharmony_ci } 1900826e83eSopenharmony_ci 1910826e83eSopenharmony_ci bool GetIsEnhanceSurface() override 1920826e83eSopenharmony_ci { 1930826e83eSopenharmony_ci return isEnhanceSurface_; 1940826e83eSopenharmony_ci } 1950826e83eSopenharmony_ci 1960826e83eSopenharmony_ci void SetIsMultiRendererProcess(bool isMultiRendererProcess) 1970826e83eSopenharmony_ci { 1980826e83eSopenharmony_ci isMultiRendererProcess_ = isMultiRendererProcess; 1990826e83eSopenharmony_ci } 2000826e83eSopenharmony_ci 2010826e83eSopenharmony_ci bool GetIsMultiRendererProcess() override 2020826e83eSopenharmony_ci { 2030826e83eSopenharmony_ci return isMultiRendererProcess_; 2040826e83eSopenharmony_ci } 2050826e83eSopenharmony_ci 2060826e83eSopenharmony_ci void SetArgsToAdd(const std::list<std::string>& argsToAdd) 2070826e83eSopenharmony_ci { 2080826e83eSopenharmony_ci argsToAdd_ = argsToAdd; 2090826e83eSopenharmony_ci } 2100826e83eSopenharmony_ci 2110826e83eSopenharmony_ci std::list<std::string> GetArgsToAdd() override 2120826e83eSopenharmony_ci { 2130826e83eSopenharmony_ci return argsToAdd_; 2140826e83eSopenharmony_ci } 2150826e83eSopenharmony_ci 2160826e83eSopenharmony_ci void SetArgsToDelete(const std::list<std::string>& argsToDelete) 2170826e83eSopenharmony_ci { 2180826e83eSopenharmony_ci argsToDelete_ = argsToDelete; 2190826e83eSopenharmony_ci } 2200826e83eSopenharmony_ci 2210826e83eSopenharmony_ci std::list<std::string> GetArgsToDelete() override 2220826e83eSopenharmony_ci { 2230826e83eSopenharmony_ci return argsToDelete_; 2240826e83eSopenharmony_ci } 2250826e83eSopenharmony_ci 2260826e83eSopenharmony_ci void SetSharedRenderProcessToken(const std::string& sharedRenderProcessToken) 2270826e83eSopenharmony_ci { 2280826e83eSopenharmony_ci sharedRenderProcessToken_ = sharedRenderProcessToken; 2290826e83eSopenharmony_ci } 2300826e83eSopenharmony_ci 2310826e83eSopenharmony_ci std::string GetSharedRenderProcessToken() override 2320826e83eSopenharmony_ci { 2330826e83eSopenharmony_ci return sharedRenderProcessToken_; 2340826e83eSopenharmony_ci } 2350826e83eSopenharmony_ci 2360826e83eSopenharmony_ciprivate: 2370826e83eSopenharmony_ci std::string dumpPath_; 2380826e83eSopenharmony_ci 2390826e83eSopenharmony_ci bool isPopup_ = false; 2400826e83eSopenharmony_ci bool isFrameInfoDump_ = false; 2410826e83eSopenharmony_ci bool isEnhanceSurface_ = false; 2420826e83eSopenharmony_ci bool isMultiRendererProcess_ = false; 2430826e83eSopenharmony_ci 2440826e83eSopenharmony_ci std::list<std::string> argsToAdd_; 2450826e83eSopenharmony_ci std::list<std::string> argsToDelete_; 2460826e83eSopenharmony_ci std::string sharedRenderProcessToken_; 2470826e83eSopenharmony_ci}; 2480826e83eSopenharmony_ci 2490826e83eSopenharmony_ciclass NWebEnginePrefetchArgsImpl : public NWebEnginePrefetchArgs { 2500826e83eSopenharmony_cipublic: 2510826e83eSopenharmony_ci NWebEnginePrefetchArgsImpl(const std::string& url, const std::string& method, const std::string& formData) 2520826e83eSopenharmony_ci : url_(url), method_(method), form_data_(formData) 2530826e83eSopenharmony_ci {} 2540826e83eSopenharmony_ci 2550826e83eSopenharmony_ci ~NWebEnginePrefetchArgsImpl() = default; 2560826e83eSopenharmony_ci 2570826e83eSopenharmony_ci std::string GetUrl() override 2580826e83eSopenharmony_ci { 2590826e83eSopenharmony_ci return url_; 2600826e83eSopenharmony_ci } 2610826e83eSopenharmony_ci 2620826e83eSopenharmony_ci std::string GetMethod() override 2630826e83eSopenharmony_ci { 2640826e83eSopenharmony_ci return method_; 2650826e83eSopenharmony_ci } 2660826e83eSopenharmony_ci 2670826e83eSopenharmony_ci std::string GetFormData() override 2680826e83eSopenharmony_ci { 2690826e83eSopenharmony_ci return form_data_; 2700826e83eSopenharmony_ci } 2710826e83eSopenharmony_ci 2720826e83eSopenharmony_ciprivate: 2730826e83eSopenharmony_ci std::string url_; 2740826e83eSopenharmony_ci std::string method_; 2750826e83eSopenharmony_ci std::string form_data_; 2760826e83eSopenharmony_ci}; 2770826e83eSopenharmony_ci 2780826e83eSopenharmony_ciclass NWebPDFConfigArgsImpl : public NWebPDFConfigArgs { 2790826e83eSopenharmony_cipublic: 2800826e83eSopenharmony_ci NWebPDFConfigArgsImpl(const double width, const double height, const double scale, const double marginTop, 2810826e83eSopenharmony_ci const double marginBottom, const double marginRight, const double marginLeft, const bool shouldPrintBackground) 2820826e83eSopenharmony_ci : width_(width), height_(height), scale_(scale), marginTop_(marginTop), marginBottom_(marginBottom), 2830826e83eSopenharmony_ci marginRight_(marginRight), marginLeft_(marginLeft), shouldPrintBackground_(shouldPrintBackground) 2840826e83eSopenharmony_ci {} 2850826e83eSopenharmony_ci 2860826e83eSopenharmony_ci ~NWebPDFConfigArgsImpl() = default; 2870826e83eSopenharmony_ci 2880826e83eSopenharmony_ci double GetWidth() override 2890826e83eSopenharmony_ci { 2900826e83eSopenharmony_ci return width_; 2910826e83eSopenharmony_ci } 2920826e83eSopenharmony_ci double GetHeight() override 2930826e83eSopenharmony_ci { 2940826e83eSopenharmony_ci return height_; 2950826e83eSopenharmony_ci } 2960826e83eSopenharmony_ci double GetScale() override 2970826e83eSopenharmony_ci { 2980826e83eSopenharmony_ci return scale_; 2990826e83eSopenharmony_ci } 3000826e83eSopenharmony_ci double GetMarginTop() override 3010826e83eSopenharmony_ci { 3020826e83eSopenharmony_ci return marginTop_; 3030826e83eSopenharmony_ci } 3040826e83eSopenharmony_ci double GetMarginBottom() override 3050826e83eSopenharmony_ci { 3060826e83eSopenharmony_ci return marginBottom_; 3070826e83eSopenharmony_ci } 3080826e83eSopenharmony_ci double GetMarginRight() override 3090826e83eSopenharmony_ci { 3100826e83eSopenharmony_ci return marginRight_; 3110826e83eSopenharmony_ci } 3120826e83eSopenharmony_ci double GetMarginLeft() override 3130826e83eSopenharmony_ci { 3140826e83eSopenharmony_ci return marginLeft_; 3150826e83eSopenharmony_ci } 3160826e83eSopenharmony_ci bool GetShouldPrintBackground() override 3170826e83eSopenharmony_ci { 3180826e83eSopenharmony_ci return shouldPrintBackground_; 3190826e83eSopenharmony_ci } 3200826e83eSopenharmony_ci 3210826e83eSopenharmony_ciprivate: 3220826e83eSopenharmony_ci double width_; 3230826e83eSopenharmony_ci double height_; 3240826e83eSopenharmony_ci double scale_; 3250826e83eSopenharmony_ci double marginTop_; 3260826e83eSopenharmony_ci double marginBottom_; 3270826e83eSopenharmony_ci double marginRight_; 3280826e83eSopenharmony_ci double marginLeft_; 3290826e83eSopenharmony_ci bool shouldPrintBackground_; 3300826e83eSopenharmony_ci}; 3310826e83eSopenharmony_ci} // namespace OHOS::NWeb 3320826e83eSopenharmony_ci 3330826e83eSopenharmony_ci#endif // NWEB_INIT_PARAMS_H 334