10826e83eSopenharmony_ci/* 20826e83eSopenharmony_ci * Copyright (c) 2022 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 160826e83eSopenharmony_ci#ifndef NWEB_CREAT_WINDOW_H 170826e83eSopenharmony_ci#define NWEB_CREAT_WINDOW_H 180826e83eSopenharmony_ci 190826e83eSopenharmony_ci#include "nweb.h" 200826e83eSopenharmony_ci#include "nweb_init_params.h" 210826e83eSopenharmony_ci 220826e83eSopenharmony_ci#define private public 230826e83eSopenharmony_ci#include "ui/rs_surface_node.h" 240826e83eSopenharmony_ci#undef private 250826e83eSopenharmony_ci 260826e83eSopenharmony_cinamespace OHOS::NWeb { 270826e83eSopenharmony_cistd::shared_ptr<NWebEngineInitArgsImpl> GetInitArgs(void); 280826e83eSopenharmony_cistd::shared_ptr<NWeb> GetNwebForTest(); 290826e83eSopenharmony_ci 300826e83eSopenharmony_ciclass NWebMock : public NWeb { 310826e83eSopenharmony_cipublic: 320826e83eSopenharmony_ci void Resize(uint32_t width, uint32_t height, bool isKeyboard = false) override 330826e83eSopenharmony_ci {} 340826e83eSopenharmony_ci void OnPause() override 350826e83eSopenharmony_ci {} 360826e83eSopenharmony_ci void OnContinue() override 370826e83eSopenharmony_ci {} 380826e83eSopenharmony_ci void OnDestroy() override 390826e83eSopenharmony_ci {} 400826e83eSopenharmony_ci void OnFocus(const FocusReason& focusReason = FocusReason::FOCUS_DEFAULT) override 410826e83eSopenharmony_ci {} 420826e83eSopenharmony_ci void OnBlur(const BlurReason& blurReason) override 430826e83eSopenharmony_ci {} 440826e83eSopenharmony_ci void OnTouchPress(int32_t id, double x, double y, bool fromOverlay = false) override 450826e83eSopenharmony_ci {} 460826e83eSopenharmony_ci void OnTouchRelease(int32_t id, double x = 0, double y = 0, bool fromOverlay = false) override 470826e83eSopenharmony_ci {} 480826e83eSopenharmony_ci void OnTouchMove(int32_t id, double x, double y, bool fromOverlay = false) override 490826e83eSopenharmony_ci {} 500826e83eSopenharmony_ci void OnTouchMove(const std::vector<std::shared_ptr<NWebTouchPointInfo>> &touch_point_infos, 510826e83eSopenharmony_ci bool fromOverlay = false) override 520826e83eSopenharmony_ci {} 530826e83eSopenharmony_ci void OnTouchCancel() override 540826e83eSopenharmony_ci {} 550826e83eSopenharmony_ci void OnNavigateBack() override 560826e83eSopenharmony_ci {} 570826e83eSopenharmony_ci bool SendKeyEvent(int32_t keyCode, int32_t keyAction) override 580826e83eSopenharmony_ci { 590826e83eSopenharmony_ci return true; 600826e83eSopenharmony_ci } 610826e83eSopenharmony_ci void SendMouseWheelEvent(double x, double y, double deltaX, double deltaY) override 620826e83eSopenharmony_ci {} 630826e83eSopenharmony_ci void SendMouseEvent(int x, int y, int button, int action, int count) override 640826e83eSopenharmony_ci {} 650826e83eSopenharmony_ci int Load(const std::string& url) override 660826e83eSopenharmony_ci { 670826e83eSopenharmony_ci return 0; 680826e83eSopenharmony_ci } 690826e83eSopenharmony_ci bool IsNavigatebackwardAllowed() override 700826e83eSopenharmony_ci { 710826e83eSopenharmony_ci return true; 720826e83eSopenharmony_ci } 730826e83eSopenharmony_ci bool IsNavigateForwardAllowed() override 740826e83eSopenharmony_ci { 750826e83eSopenharmony_ci return true; 760826e83eSopenharmony_ci } 770826e83eSopenharmony_ci bool CanNavigateBackOrForward(int numSteps) override 780826e83eSopenharmony_ci { 790826e83eSopenharmony_ci return true; 800826e83eSopenharmony_ci } 810826e83eSopenharmony_ci void NavigateBack() override 820826e83eSopenharmony_ci {} 830826e83eSopenharmony_ci void NavigateForward() override 840826e83eSopenharmony_ci {} 850826e83eSopenharmony_ci void NavigateBackOrForward(int step) override 860826e83eSopenharmony_ci {} 870826e83eSopenharmony_ci void DeleteNavigateHistory() override 880826e83eSopenharmony_ci {} 890826e83eSopenharmony_ci void Reload() override 900826e83eSopenharmony_ci {} 910826e83eSopenharmony_ci int Zoom(float zoomFactor) override 920826e83eSopenharmony_ci { 930826e83eSopenharmony_ci return 0; 940826e83eSopenharmony_ci } 950826e83eSopenharmony_ci int ZoomIn() override 960826e83eSopenharmony_ci { 970826e83eSopenharmony_ci return 0; 980826e83eSopenharmony_ci } 990826e83eSopenharmony_ci int ZoomOut() override 1000826e83eSopenharmony_ci { 1010826e83eSopenharmony_ci return 0; 1020826e83eSopenharmony_ci } 1030826e83eSopenharmony_ci void Stop() override 1040826e83eSopenharmony_ci {} 1050826e83eSopenharmony_ci void ExecuteJavaScript(const std::string& code) override 1060826e83eSopenharmony_ci {} 1070826e83eSopenharmony_ci void ExecuteJavaScript( 1080826e83eSopenharmony_ci const std::string& code, 1090826e83eSopenharmony_ci std::shared_ptr<NWebMessageValueCallback> callback, 1100826e83eSopenharmony_ci bool extention) override 1110826e83eSopenharmony_ci {} 1120826e83eSopenharmony_ci std::shared_ptr<NWebPreference> GetPreference() override 1130826e83eSopenharmony_ci { 1140826e83eSopenharmony_ci return nullptr; 1150826e83eSopenharmony_ci } 1160826e83eSopenharmony_ci unsigned int GetWebId() override 1170826e83eSopenharmony_ci { 1180826e83eSopenharmony_ci return 0; 1190826e83eSopenharmony_ci } 1200826e83eSopenharmony_ci std::shared_ptr<HitTestResult> GetHitTestResult() override 1210826e83eSopenharmony_ci { 1220826e83eSopenharmony_ci std::shared_ptr<HitTestResult> test; 1230826e83eSopenharmony_ci return test; 1240826e83eSopenharmony_ci } 1250826e83eSopenharmony_ci void PutBackgroundColor(int color) override 1260826e83eSopenharmony_ci {} 1270826e83eSopenharmony_ci void InitialScale(float scale) override 1280826e83eSopenharmony_ci {} 1290826e83eSopenharmony_ci void PutDownloadCallback( 1300826e83eSopenharmony_ci std::shared_ptr<NWebDownloadCallback> downloadListener) override 1310826e83eSopenharmony_ci {} 1320826e83eSopenharmony_ci void PutReleaseSurfaceCallback( 1330826e83eSopenharmony_ci std::shared_ptr<NWebReleaseSurfaceCallback> releaseSurfaceListener) override 1340826e83eSopenharmony_ci {} 1350826e83eSopenharmony_ci void SetNWebHandler(std::shared_ptr<NWebHandler> handler) override 1360826e83eSopenharmony_ci {} 1370826e83eSopenharmony_ci std::string Title() override 1380826e83eSopenharmony_ci { 1390826e83eSopenharmony_ci return nullptr; 1400826e83eSopenharmony_ci } 1410826e83eSopenharmony_ci int PageLoadProgress() override 1420826e83eSopenharmony_ci { 1430826e83eSopenharmony_ci return 0; 1440826e83eSopenharmony_ci } 1450826e83eSopenharmony_ci int ContentHeight() override 1460826e83eSopenharmony_ci { 1470826e83eSopenharmony_ci return 0; 1480826e83eSopenharmony_ci } 1490826e83eSopenharmony_ci float Scale() override 1500826e83eSopenharmony_ci { 1510826e83eSopenharmony_ci return 0; 1520826e83eSopenharmony_ci } 1530826e83eSopenharmony_ci int Load( 1540826e83eSopenharmony_ci const std::string& url, 1550826e83eSopenharmony_ci const std::map<std::string, std::string> &additionalHttpHeaders) override 1560826e83eSopenharmony_ci { 1570826e83eSopenharmony_ci return 0; 1580826e83eSopenharmony_ci } 1590826e83eSopenharmony_ci int LoadWithDataAndBaseUrl(const std::string& baseUrl, 1600826e83eSopenharmony_ci const std::string& data, 1610826e83eSopenharmony_ci const std::string& mimeType, 1620826e83eSopenharmony_ci const std::string& encoding, 1630826e83eSopenharmony_ci const std::string& historyUrl) override 1640826e83eSopenharmony_ci { 1650826e83eSopenharmony_ci return 0; 1660826e83eSopenharmony_ci } 1670826e83eSopenharmony_ci int LoadWithData(const std::string& data, 1680826e83eSopenharmony_ci const std::string& mimeType, 1690826e83eSopenharmony_ci const std::string& encoding) override 1700826e83eSopenharmony_ci { 1710826e83eSopenharmony_ci return 0; 1720826e83eSopenharmony_ci } 1730826e83eSopenharmony_ci void RegisterArkJSfunction( 1740826e83eSopenharmony_ci const std::string& object_name, const std::vector<std::string>& method_list, const int32_t object_id) override 1750826e83eSopenharmony_ci {} 1760826e83eSopenharmony_ci void UnregisterArkJSfunction( 1770826e83eSopenharmony_ci const std::string& object_name, 1780826e83eSopenharmony_ci const std::vector<std::string>& method_list) override 1790826e83eSopenharmony_ci {} 1800826e83eSopenharmony_ci void SetNWebJavaScriptResultCallBack( 1810826e83eSopenharmony_ci std::shared_ptr<NWebJavaScriptResultCallBack> callback) override 1820826e83eSopenharmony_ci {} 1830826e83eSopenharmony_ci void PutFindCallback( 1840826e83eSopenharmony_ci std::shared_ptr<NWebFindCallback> findListener) override 1850826e83eSopenharmony_ci {} 1860826e83eSopenharmony_ci void FindAllAsync(const std::string &searchStr) override 1870826e83eSopenharmony_ci {} 1880826e83eSopenharmony_ci void ClearMatches() override 1890826e83eSopenharmony_ci {} 1900826e83eSopenharmony_ci void FindNext(const bool forward) override 1910826e83eSopenharmony_ci {} 1920826e83eSopenharmony_ci void StoreWebArchive(const std::string &baseName, bool autoName, 1930826e83eSopenharmony_ci std::shared_ptr<NWebStringValueCallback> callback) override 1940826e83eSopenharmony_ci {} 1950826e83eSopenharmony_ci std::vector<std::string> CreateWebMessagePorts() override 1960826e83eSopenharmony_ci { 1970826e83eSopenharmony_ci std::vector<std::string> empty; 1980826e83eSopenharmony_ci return empty; 1990826e83eSopenharmony_ci } 2000826e83eSopenharmony_ci void PostWebMessage(const std::string& message, const std::vector<std::string>& ports, const std::string& targetUri) 2010826e83eSopenharmony_ci override 2020826e83eSopenharmony_ci {} 2030826e83eSopenharmony_ci void ClosePort(const std::string& handle) override 2040826e83eSopenharmony_ci {} 2050826e83eSopenharmony_ci void PostPortMessage(const std::string& handle, std::shared_ptr<NWebMessage> data) override 2060826e83eSopenharmony_ci {} 2070826e83eSopenharmony_ci void SetPortMessageCallback(const std::string& handle, 2080826e83eSopenharmony_ci std::shared_ptr<NWebMessageValueCallback> callback) override 2090826e83eSopenharmony_ci {} 2100826e83eSopenharmony_ci void SendDragEvent(std::shared_ptr<NWebDragEvent> dragEvent) override 2110826e83eSopenharmony_ci {} 2120826e83eSopenharmony_ci void ClearSslCache() override 2130826e83eSopenharmony_ci {} 2140826e83eSopenharmony_ci std::string GetUrl() override 2150826e83eSopenharmony_ci { 2160826e83eSopenharmony_ci return "/data"; 2170826e83eSopenharmony_ci } 2180826e83eSopenharmony_ci void ClearClientAuthenticationCache() override 2190826e83eSopenharmony_ci {} 2200826e83eSopenharmony_ci void UpdateLocale(const std::string& language, const std::string& region) override 2210826e83eSopenharmony_ci {} 2220826e83eSopenharmony_ci 2230826e83eSopenharmony_ci const std::string GetOriginalUrl() override 2240826e83eSopenharmony_ci { 2250826e83eSopenharmony_ci return ""; 2260826e83eSopenharmony_ci } 2270826e83eSopenharmony_ci bool GetFavicon(const void** data, size_t& width, size_t& height, 2280826e83eSopenharmony_ci ImageColorType& colorType, ImageAlphaType& alphaType) override 2290826e83eSopenharmony_ci { 2300826e83eSopenharmony_ci return false; 2310826e83eSopenharmony_ci } 2320826e83eSopenharmony_ci void PutNetworkAvailable(bool available) override 2330826e83eSopenharmony_ci {} 2340826e83eSopenharmony_ci 2350826e83eSopenharmony_ci void HasImages(std::shared_ptr<NWebBoolValueCallback> callback) override 2360826e83eSopenharmony_ci {} 2370826e83eSopenharmony_ci 2380826e83eSopenharmony_ci void RemoveCache(bool include_disk_files) override 2390826e83eSopenharmony_ci {} 2400826e83eSopenharmony_ci std::shared_ptr<NWebHistoryList> GetHistoryList() override 2410826e83eSopenharmony_ci { 2420826e83eSopenharmony_ci return nullptr; 2430826e83eSopenharmony_ci } 2440826e83eSopenharmony_ci std::vector<uint8_t> SerializeWebState() override 2450826e83eSopenharmony_ci { 2460826e83eSopenharmony_ci std::vector<uint8_t> empty; 2470826e83eSopenharmony_ci return empty; 2480826e83eSopenharmony_ci } 2490826e83eSopenharmony_ci bool RestoreWebState(const std::vector<uint8_t> &state) override 2500826e83eSopenharmony_ci { 2510826e83eSopenharmony_ci return false; 2520826e83eSopenharmony_ci } 2530826e83eSopenharmony_ci void PageUp(bool top) override 2540826e83eSopenharmony_ci {} 2550826e83eSopenharmony_ci void PageDown(bool bottom) override 2560826e83eSopenharmony_ci {} 2570826e83eSopenharmony_ci void ScrollTo(float x, float y) override 2580826e83eSopenharmony_ci {} 2590826e83eSopenharmony_ci void ScrollBy(float deltaX, float deltaY) override 2600826e83eSopenharmony_ci {} 2610826e83eSopenharmony_ci void SlideScroll(float vx, float vy) override 2620826e83eSopenharmony_ci {} 2630826e83eSopenharmony_ci bool GetCertChainDerData(std::vector<std::string>& certChainData, bool isSingleCert) override 2640826e83eSopenharmony_ci { 2650826e83eSopenharmony_ci return false; 2660826e83eSopenharmony_ci } 2670826e83eSopenharmony_ci void SetScreenOffSet(double x, double y) override 2680826e83eSopenharmony_ci {} 2690826e83eSopenharmony_ci void SetAudioMuted(bool muted) override 2700826e83eSopenharmony_ci {} 2710826e83eSopenharmony_ci void SetShouldFrameSubmissionBeforeDraw(bool should) override 2720826e83eSopenharmony_ci {} 2730826e83eSopenharmony_ci void NotifyPopupWindowResult(bool result) override 2740826e83eSopenharmony_ci {} 2750826e83eSopenharmony_ci void SetAudioResumeInterval(int32_t resumeInterval) override 2760826e83eSopenharmony_ci {} 2770826e83eSopenharmony_ci void SetAudioExclusive(bool audioExclusive) override 2780826e83eSopenharmony_ci {} 2790826e83eSopenharmony_ci void RegisterScreenLockFunction(int32_t windowId, std::shared_ptr<NWebScreenLockCallback> callback) override 2800826e83eSopenharmony_ci {} 2810826e83eSopenharmony_ci void UnRegisterScreenLockFunction(int32_t windowId) override 2820826e83eSopenharmony_ci {} 2830826e83eSopenharmony_ci std::shared_ptr<NWebDragData> GetOrCreateDragData() override 2840826e83eSopenharmony_ci { 2850826e83eSopenharmony_ci return nullptr; 2860826e83eSopenharmony_ci } 2870826e83eSopenharmony_ci void SendTouchpadFlingEvent(double x, double y, double vx, double vy) override 2880826e83eSopenharmony_ci {} 2890826e83eSopenharmony_ci int SetUrlTrustList(const std::string& urlTrustList) override 2900826e83eSopenharmony_ci { 2910826e83eSopenharmony_ci return 0; 2920826e83eSopenharmony_ci } 2930826e83eSopenharmony_ci int SetUrlTrustListWithErrMsg(const std::string& urlTrustList, std::string& detailErrMsg) override 2940826e83eSopenharmony_ci { 2950826e83eSopenharmony_ci return 0; 2960826e83eSopenharmony_ci } 2970826e83eSopenharmony_ci}; 2980826e83eSopenharmony_ci} 2990826e83eSopenharmony_ci#endif 300