diff --git a/frameworks/bridge/declarative_frontend/jsview/js_web.cpp b/frameworks/bridge/declarative_frontend/jsview/js_web.cpp index 5874501f845b767caa185bc405764572368988fb..c6b2c21f9263f32eac04d432b9867f6a731de76a 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_web.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_web.cpp @@ -1642,7 +1642,6 @@ void JSWeb::JSBind(BindingTarget globalObj) JSClass::StaticMethod("onScreenCaptureRequest", &JSWeb::OnScreenCaptureRequest); JSClass::StaticMethod("layoutMode", &JSWeb::SetLayoutMode); JSClass::StaticMethod("nestedScroll", &JSWeb::SetNestedScroll); - JSClass::StaticMethod("javaScriptOnDocumentStart", &JSWeb::JavaScriptOnDocumentStart); JSClass::InheritAndBind(globalObj); JSWebDialog::JSBind(globalObj); JSWebGeolocation::JSBind(globalObj); @@ -3640,42 +3639,4 @@ void JSWeb::SetNestedScroll(const JSCallbackInfo& args) WebModel::GetInstance()->SetNestedScroll(nestedOpt); args.ReturnSelf(); } - -void JSWeb::JavaScriptOnDocumentStart(const JSCallbackInfo& args) -{ - if (args.Length() != 1 || args[0]->IsUndefined() || args[0]->IsNull() || !args[0]->IsArray()) { - return; - } - auto paramArray = JSRef::Cast(args[0]); - size_t length = paramArray->Length(); - if (length == 0) { - return; - } - std::string script; - ScriptItems scriptItems; - std::vector scriptRules; - for (size_t i = 0; i < length; i++) { - auto item = paramArray->GetValueAt(i); - if (!item->IsObject()) { - return; - } - auto itemObject = JSRef::Cast(item); - JSRef jsScript = itemObject->GetProperty("script"); - JSRef jsScriptRules = itemObject->GetProperty("scriptRules"); - if (!jsScriptRules->IsArray() || JSRef::Cast(jsScriptRules)->Length() == 0) { - return; - } - if (!JSViewAbstract::ParseJsString(jsScript, script)) { - return; - } - scriptRules.clear(); - if (!JSViewAbstract::ParseJsStrArray(jsScriptRules, scriptRules)) { - return; - } - if (scriptItems.find(script) == scriptItems.end()) { - scriptItems.insert(std::make_pair(script, scriptRules)); - } - } - WebModel::GetInstance()->JavaScriptOnDocumentStart(scriptItems); -} } // namespace OHOS::Ace::Framework diff --git a/frameworks/bridge/declarative_frontend/jsview/js_web.h b/frameworks/bridge/declarative_frontend/jsview/js_web.h index b446384801b99ff99a5c83ef643ddc2ab4f5d993..1f2420a673e61edd5d62d700614a76ba52ed9c25 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_web.h +++ b/frameworks/bridge/declarative_frontend/jsview/js_web.h @@ -131,7 +131,6 @@ public: static void SetLayoutMode(int32_t layoutMode); static void SetNestedScroll(const JSCallbackInfo& info); static void OverScrollMode(int overScrollMode); - static void JavaScriptOnDocumentStart(const JSCallbackInfo& args); // Enable or disable debugging of web content static bool webDebuggingAccess_; static JSwebEventCallback OnControllerAttachedCallback_; diff --git a/frameworks/core/components/web/resource/web_delegate.cpp b/frameworks/core/components/web/resource/web_delegate.cpp index 7cbaf14885c98355c375be2b639eb4ef4b82790a..07b54e254d99a4fcc9792adfbd1e6105af4fb39d 100644 --- a/frameworks/core/components/web/resource/web_delegate.cpp +++ b/frameworks/core/components/web/resource/web_delegate.cpp @@ -2338,7 +2338,6 @@ void WebDelegate::InitWebViewWithWindow() delegate->window_ = nullptr; return; } - delegate->JavaScriptOnDocumentStart(); delegate->cookieManager_ = OHOS::NWeb::NWebHelper::Instance().GetCookieManager(); if (delegate->cookieManager_ == nullptr) { return; @@ -2626,7 +2625,6 @@ void WebDelegate::InitWebViewWithSurface() (void *)(&delegate->surfaceInfo_), initArgs, delegate->drawSize_.Width(), delegate->drawSize_.Height()); - delegate->JavaScriptOnDocumentStart(); } else { #ifdef ENABLE_ROSEN_BACKEND TAG_LOGD(AceLogTag::ACE_WEB, "Create webview with surface in"); @@ -2637,7 +2635,6 @@ void WebDelegate::InitWebViewWithSurface() surface, initArgs, delegate->drawSize_.Width(), delegate->drawSize_.Height()); - delegate->JavaScriptOnDocumentStart(); #endif } CHECK_NULL_VOID(delegate->nweb_); @@ -5534,18 +5531,4 @@ void WebDelegate::ScrollBy(float deltaX, float deltaY) CHECK_NULL_VOID(nweb_); nweb_->ScrollBy(deltaX, deltaY); } - -void WebDelegate::SetJavaScriptItems(const ScriptItems& scriptItems) -{ - scriptItems_ = std::make_optional(scriptItems); -} - -void WebDelegate::JavaScriptOnDocumentStart() -{ - CHECK_NULL_VOID(nweb_); - if (scriptItems_.has_value()) { - nweb_->JavaScriptOnDocumentStart(scriptItems_.value()); - scriptItems_ = std::nullopt; - } -} } // namespace OHOS::Ace diff --git a/frameworks/core/components/web/resource/web_delegate.h b/frameworks/core/components/web/resource/web_delegate.h index 29aa3143215522e538de21a025e9793adee122ef..05faaca66f54802a8cfc2f0d5e79690fe16b4bf1 100644 --- a/frameworks/core/components/web/resource/web_delegate.h +++ b/frameworks/core/components/web/resource/web_delegate.h @@ -613,8 +613,6 @@ public: Offset GetWebRenderGlobalPos(); bool InitWebSurfaceDelegate(const WeakPtr& context); int GetWebId(); - void JavaScriptOnDocumentStart(); - void SetJavaScriptItems(const ScriptItems& scriptItems); #if defined(ENABLE_ROSEN_BACKEND) void SetSurface(const sptr& surface); sptr surface_ = nullptr; @@ -802,7 +800,6 @@ private: float visibleRatio_ = 1.0; uint32_t delayTime_ = 500; float lowerFrameRateVisibleRatio_ = 0.1; - std::optional scriptItems_; #endif }; diff --git a/frameworks/core/components/web/web_property.h b/frameworks/core/components/web/web_property.h index c98150a2b3e3d285a97ffcbc8c50257ffff36b26..8d708117d0e1a0884cd18f19560dd4549d65719b 100644 --- a/frameworks/core/components/web/web_property.h +++ b/frameworks/core/components/web/web_property.h @@ -31,7 +31,6 @@ namespace OHOS::Ace { class WebDelegate; -using ScriptItems = std::map>; using OnMouseCallback = std::function; using OnKeyEventCallback = std::function; diff --git a/frameworks/core/components_ng/pattern/web/web_model.h b/frameworks/core/components_ng/pattern/web/web_model.h index c0f0387744d6d6598c47dacf0dcda1645df594e8..9f6f86940d65c9f24f49374955c96597dee0493a 100644 --- a/frameworks/core/components_ng/pattern/web/web_model.h +++ b/frameworks/core/components_ng/pattern/web/web_model.h @@ -22,7 +22,6 @@ #include "core/components/web/web_property.h" namespace OHOS::Ace { -using ScriptItems = std::map>; class WebModel { public: static WebModel* GetInstance(); @@ -146,7 +145,6 @@ public: virtual void SetNestedScroll(const NestedScrollOptions& nestedOpt) {} virtual void SetLayoutMode(WebLayoutMode mode) {} virtual void SetOverScrollMode(OverScrollMode mode) {} - virtual void JavaScriptOnDocumentStart(const ScriptItems& scriptItems) {}; private: static std::unique_ptr instance_; diff --git a/frameworks/core/components_ng/pattern/web/web_model_ng.cpp b/frameworks/core/components_ng/pattern/web/web_model_ng.cpp index 1b6d9fa9c73185b54d0e4811ba6cf65eebaa4f1c..b7812cc7e1f5f70f1c6e03d30adf25c019ab6794 100644 --- a/frameworks/core/components_ng/pattern/web/web_model_ng.cpp +++ b/frameworks/core/components_ng/pattern/web/web_model_ng.cpp @@ -866,11 +866,4 @@ void WebModelNG::SetNestedScroll(const NestedScrollOptions& nestedOpt) CHECK_NULL_VOID(webPattern); webPattern->SetNestedScroll(nestedOpt); } - -void WebModelNG::JavaScriptOnDocumentStart(const ScriptItems& scriptItems) -{ - auto webPattern = ViewStackProcessor::GetInstance()->GetMainFrameNodePattern(); - CHECK_NULL_VOID(webPattern); - webPattern->JavaScriptOnDocumentStart(scriptItems); -} } // namespace OHOS::Ace::NG diff --git a/frameworks/core/components_ng/pattern/web/web_model_ng.h b/frameworks/core/components_ng/pattern/web/web_model_ng.h index f5f33f2d89e488c63f7eef5bd0df7d9a11ab8e4a..c24acb0524904d7a373733ae123eae748a6339f0 100644 --- a/frameworks/core/components_ng/pattern/web/web_model_ng.h +++ b/frameworks/core/components_ng/pattern/web/web_model_ng.h @@ -147,7 +147,6 @@ public: void SetOverScrollId(std::function&& jsCallback) override; void SetLayoutMode(WebLayoutMode mode) override; void SetNestedScroll(const NestedScrollOptions& nestedOpt) override; - void JavaScriptOnDocumentStart(const ScriptItems& scriptItems) override; }; } // namespace OHOS::Ace::NG #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_WEB_WEB_MODEL_NG_H diff --git a/frameworks/core/components_ng/pattern/web/web_pattern.cpp b/frameworks/core/components_ng/pattern/web/web_pattern.cpp index 99f1bde07869303b8eab442d2f6ec7bbfcca1b88..d576a865f9f1d90b365197b638b05e2f6e410439 100644 --- a/frameworks/core/components_ng/pattern/web/web_pattern.cpp +++ b/frameworks/core/components_ng/pattern/web/web_pattern.cpp @@ -1508,7 +1508,6 @@ void WebPattern::OnModifyDone() renderSurface_->UpdateXComponentConfig(); delegate_->InitOHOSWeb(PipelineContext::GetCurrentContext(), renderSurface_); } - UpdateJavaScriptOnDocumentStart(); delegate_->UpdateBackgroundColor(GetBackgroundColorValue( static_cast(renderContext->GetBackgroundColor().value_or(Color::WHITE).GetValue()))); delegate_->UpdateJavaScriptEnabled(GetJsEnabledValue(true)); @@ -2773,21 +2772,4 @@ RefPtr WebPattern::CreateNodePaintMethod() auto paint = MakeRefPtr(renderSurface_); return paint; } - -void WebPattern::JavaScriptOnDocumentStart(const ScriptItems& scriptItems) -{ - scriptItems_ = std::make_optional(scriptItems); - if (delegate_) { - UpdateJavaScriptOnDocumentStart(); - delegate_->JavaScriptOnDocumentStart(); - } -} - -void WebPattern::UpdateJavaScriptOnDocumentStart() -{ - if (delegate_ && scriptItems_.has_value()) { - delegate_->SetJavaScriptItems(scriptItems_.value()); - scriptItems_ = std::nullopt; - } -} } // namespace OHOS::Ace::NG diff --git a/frameworks/core/components_ng/pattern/web/web_pattern.h b/frameworks/core/components_ng/pattern/web/web_pattern.h index 07e4e509cc2e8717e80a23d7f7ab49445f7c2956..f0fd8c10fdbb4c77d8b49983f8824293e447b1e4 100644 --- a/frameworks/core/components_ng/pattern/web/web_pattern.h +++ b/frameworks/core/components_ng/pattern/web/web_pattern.h @@ -385,8 +385,6 @@ public: void SetFullScreenExitHandler(const std::shared_ptr& fullScreenExitHandler); bool NotifyStartDragTask(); bool IsImageDrag(); - void UpdateJavaScriptOnDocumentStart(); - void JavaScriptOnDocumentStart(const ScriptItems& scriptItems); #ifdef ENABLE_DRAG_FRAMEWORK DragRet GetDragAcceptableStatus(); #endif @@ -638,7 +636,6 @@ private: RefPtr delegate_; RefPtr observer_; std::set KeyCodeSet_; - std::optional scriptItems_; ACE_DISALLOW_COPY_AND_MOVE(WebPattern); }; } // namespace OHOS::Ace::NG diff --git a/frameworks/core/components_ng/test/pattern/web/web_pattern_test_ng.cpp b/frameworks/core/components_ng/test/pattern/web/web_pattern_test_ng.cpp index 6a35d015bd669cb923374b8b3b88aa52be59f571..98d64feadaab0413972392e53938f146ed531be2 100755 --- a/frameworks/core/components_ng/test/pattern/web/web_pattern_test_ng.cpp +++ b/frameworks/core/components_ng/test/pattern/web/web_pattern_test_ng.cpp @@ -417,61 +417,4 @@ HWTEST_F(WebPatternTestNg, WebPatternTestNg_004, TestSize.Level1) EXPECT_FALSE(rerult); #endif } - -/** - * @tc.name: JavaScriptOnDocumentStart009 - * @tc.desc: JavaScriptOnDocumentStart. - * @tc.type: FUNC - */ -HWTEST_F(WebPatternTestNg, JavaScriptOnDocumentStart009, TestSize.Level1) -{ -#ifdef OHOS_STANDARD_SYSTEM - auto* stack = ViewStackProcessor::GetInstance(); - EXPECT_NE(stack, nullptr); - auto nodeId = stack->ClaimNodeId(); - auto frameNode = - FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr(); }); - EXPECT_NE(frameNode, nullptr); - stack->Push(frameNode); - auto webPattern = frameNode->GetPattern(); - webPattern->OnModifyDone(); - EXPECT_NE(webPattern, nullptr); - std::map> scriptItems; - std::string group = "groupp"; - std::vector vec; - vec.push_back("main"); - scriptItems.insert(std::make_pair(group, vec)); - webPattern->JavaScriptOnDocumentStart(scriptItems); - EXPECT_NE(webPattern->delegate_, nullptr); -#endif -} - -/** - * @tc.name: UpdateJavaScriptOnDocumentStart010 - * @tc.desc: UpdateJavaScriptOnDocumentStart. - * @tc.type: FUNC - */ -HWTEST_F(WebPatternTestNg, UpdateJavaScriptOnDocumentStart010, TestSize.Level1) -{ -#ifdef OHOS_STANDARD_SYSTEM - auto* stack = ViewStackProcessor::GetInstance(); - EXPECT_NE(stack, nullptr); - auto nodeId = stack->ClaimNodeId(); - auto frameNode = - FrameNode::GetOrCreateFrameNode(V2::WEB_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr(); }); - EXPECT_NE(frameNode, nullptr); - stack->Push(frameNode); - auto webPattern = frameNode->GetPattern(); - webPattern->OnModifyDone(); - EXPECT_NE(webPattern, nullptr); - std::map> scriptItems; - std::string group = "groupp"; - std::vector vec; - vec.push_back("main"); - scriptItems.insert(std::make_pair(group, vec)); - webPattern->JavaScriptOnDocumentStart(scriptItems); - webPattern->UpdateJavaScriptOnDocumentStart(); - EXPECT_FALSE(webPattern->scriptItems_); -#endif -} } // namespace OHOS::Ace::NG \ No newline at end of file