1 /* 2 * Copyright (c) 2023 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 FOUNDATION_ACE_FRAMEWORKS_WEB_DELEGATE_INTERFACE_H 17 #define FOUNDATION_ACE_FRAMEWORKS_WEB_DELEGATE_INTERFACE_H 18 19 #include "base/geometry/size.h" 20 #include "base/geometry/offset.h" 21 #include "core/pipeline_ng/pipeline_context.h" 22 #include "core/event/ace_events.h" 23 #include "core/components/web/web_property.h" 24 25 namespace OHOS::Ace { 26 namespace NG { 27 class WebPattern; 28 }; // namespace NG 29 class WebDelegateInterface : public virtual AceType { 30 DECLARE_ACE_TYPE(WebDelegateInterface, AceType); 31 public: 32 using CreatedCallback = std::function<void()>; 33 using ReleasedCallback = std::function<void(bool)>; 34 using EventCallback = std::function<void(const std::string&)>; 35 using EventCallbackV2 = std::function<void(const std::shared_ptr<BaseEventInfo>&)>; 36 enum class State : char { 37 WAITINGFORSIZE, 38 CREATING, 39 CREATED, 40 CREATEFAILED, 41 RELEASED, 42 }; 43 44 WebDelegateInterface() = default; 45 virtual ~WebDelegateInterface() = default; 46 47 virtual void CreatePlatformResource(const Size& size, 48 const Offset& position, const WeakPtr<NG::PipelineContext>& context) = 0; 49 virtual void ShowWebView() = 0; 50 virtual void HideWebView() = 0; 51 virtual void UpdateUserAgent(const std::string& userAgent) = 0; 52 virtual void UpdateBackgroundColor(const int backgroundColor) = 0; 53 virtual void UpdateInitialScale(float scale) = 0; 54 virtual void UpdateJavaScriptEnabled(const bool& isJsEnabled) = 0; 55 virtual void UpdateAllowFileAccess(const bool& isFileAccessEnabled) = 0; 56 virtual void UpdateBlockNetworkImage(const bool& onLineImageAccessEnabled) = 0; 57 virtual void UpdateLoadsImagesAutomatically(const bool& isImageAccessEnabled) = 0; 58 virtual void UpdateMixedContentMode(const MixedModeContent& mixedMode) = 0; 59 virtual void UpdateSupportZoom(const bool& isZoomAccessEnabled) = 0; 60 virtual void UpdateDomStorageEnabled(const bool& isDomStorageAccessEnabled) = 0; 61 virtual void UpdateGeolocationEnabled(const bool& isGeolocationAccessEnabled) = 0; 62 virtual void UpdateCacheMode(const WebCacheMode& mode) = 0; 63 virtual void UpdateDarkMode(const WebDarkMode& mode) = 0; 64 virtual void UpdateForceDarkAccess(const bool& access) = 0; 65 virtual void UpdateAudioResumeInterval(const int32_t& resumeInterval) = 0; 66 virtual void UpdateAudioExclusive(const bool& audioExclusive) = 0; 67 virtual void UpdateOverviewModeEnabled(const bool& isOverviewModeAccessEnabled) = 0; 68 virtual void UpdateFileFromUrlEnabled(const bool& isFileFromUrlAccessEnabled) = 0; 69 virtual void UpdateDatabaseEnabled(const bool& isDatabaseAccessEnabled) = 0; 70 virtual void UpdateTextZoomRatio(const int32_t& textZoomRatioNum) = 0; 71 virtual void UpdateWebDebuggingAccess(bool isWebDebuggingAccessEnabled) = 0; 72 virtual void UpdatePinchSmoothModeEnabled(bool isPinchSmoothModeEnabled) = 0; 73 virtual void UpdateMediaPlayGestureAccess(bool isNeedGestureAccess) = 0; 74 virtual void UpdateMultiWindowAccess(bool isMultiWindowAccessEnabled) = 0; 75 virtual void UpdateAllowWindowOpenMethod(bool isAllowWindowOpenMethod) = 0; 76 virtual void UpdateWebCursiveFont(const std::string& cursiveFontFamily) = 0; 77 virtual void UpdateWebFantasyFont(const std::string& fantasyFontFamily) = 0; 78 virtual void UpdateWebFixedFont(const std::string& fixedFontFamily) = 0; 79 virtual void UpdateWebSansSerifFont(const std::string& sansSerifFontFamily) = 0; 80 virtual void UpdateWebSerifFont(const std::string& serifFontFamily) = 0; 81 virtual void UpdateWebStandardFont(const std::string& standardFontFamily) = 0; 82 virtual void UpdateDefaultFixedFontSize(int32_t size) = 0; 83 virtual void UpdateDefaultFontSize(int32_t defaultFontSize) = 0; 84 virtual void UpdateMinFontSize(int32_t minFontSize) = 0; 85 virtual void UpdateMinLogicalFontSize(int32_t minLogicalFontSize) = 0; 86 virtual void UpdateBlockNetwork(bool isNetworkBlocked) = 0; 87 virtual void UpdateHorizontalScrollBarAccess(bool isHorizontalScrollBarAccessEnabled) = 0; 88 virtual void UpdateVerticalScrollBarAccess(bool isVerticalScrollBarAccessEnabled) = 0; 89 virtual void UpdateScrollBarColor(const std::string& colorValue) = 0; 90 virtual void LoadUrl() = 0; 91 virtual void HandleTouchDown(const int32_t& id, const double& x, const double& y, bool from_overlay = false) = 0; 92 virtual void HandleTouchUp(const int32_t& id, const double& x, const double& y, bool from_overlay = false) = 0; 93 virtual void HandleTouchMove(const int32_t& id, const double& x, const double& y, bool from_overlay = false) = 0; 94 virtual void HandleTouchCancel() = 0; 95 virtual bool OnKeyEvent(int32_t keyCode, int32_t keyAction) = 0; 96 virtual void OnMouseEvent(int32_t x, int32_t y, const MouseButton button, const MouseAction action, int count) = 0; 97 virtual void OnFocus() = 0; 98 virtual void OnBlur() = 0; 99 virtual void UpdateLocale() = 0; 100 virtual void SetDrawRect(int32_t x, int32_t y, int32_t width, int32_t height) = 0; 101 virtual void OnInactive() = 0; 102 virtual void OnActive() = 0; 103 virtual void SetBackgroundColor(int32_t backgroundColor) = 0; 104 virtual void OnPageStarted(const std::string& param) = 0; 105 virtual void OnPageFinished(const std::string& param) = 0; 106 virtual void OnPageError(const std::string& param) = 0; 107 virtual void OnProgressChanged(const std::string& param) = 0; 108 virtual void OnReceivedTitle(const std::string& param) = 0; 109 virtual void OnPageVisible(const std::string& param) = 0; 110 virtual void OnGeolocationPermissionsHidePrompt() = 0; 111 virtual bool LoadDataWithRichText() = 0; 112 virtual void SetNGWebPattern(const RefPtr<NG::WebPattern>& webPattern) = 0; 113 virtual void SetBoundsOrResize(const Size& drawSize, const Offset& offset) = 0; 114 virtual int GetWebId() = 0; 115 }; 116 } 117 #endif