From dfd518c67cbc84ef8d2abe261e6dd6761f83cba8 Mon Sep 17 00:00:00 2001
From: Pavel Beloborodov <73575789+boocmp@users.noreply.github.com>
Date: Fri, 23 Feb 2024 01:48:49 +0700
Subject: [PATCH] tags fixed. (#22249)
---
browser/speedreader/speedreader_browsertest.cc | 5 +++--
.../speedreader/rust/lib/src/readability/src/extractor.rs | 8 +++++---
test/data/speedreader/article/csp_html.html | 2 +-
test/data/speedreader/article/csp_http.html | 1 +
4 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/browser/speedreader/speedreader_browsertest.cc b/browser/speedreader/speedreader_browsertest.cc
index a06df7735d2..7901718765a 100644
--- a/browser/speedreader/speedreader_browsertest.cc
+++ b/browser/speedreader/speedreader_browsertest.cc
@@ -891,9 +891,10 @@ IN_PROC_BROWSER_TEST_F(SpeedReaderBrowserTest, Csp) {
NavigateToPageSynchronously(page, WindowOpenDisposition::CURRENT_TAB);
constexpr const char kCheckBaseTag[] = R"js(
- document.head.getElementsByTagName('base')[0].outerHTML
+ document.head.getElementsByTagName('base')[0].outerHTML +
+ document.head.getElementsByTagName('base')[1].outerHTML
)js";
- EXPECT_EQ(R"()",
+ EXPECT_EQ(R"()",
content::EvalJs(ActiveWebContents(), kCheckBaseTag,
content::EXECUTE_SCRIPT_DEFAULT_OPTIONS,
ISOLATED_WORLD_ID_BRAVE_INTERNAL));
diff --git a/components/speedreader/rust/lib/src/readability/src/extractor.rs b/components/speedreader/rust/lib/src/readability/src/extractor.rs
index fa9bca891a9..a281e606e09 100644
--- a/components/speedreader/rust/lib/src/readability/src/extractor.rs
+++ b/components/speedreader/rust/lib/src/readability/src/extractor.rs
@@ -306,11 +306,13 @@ pub fn extract_dom(
}
if let Some(head) = dom::document_head(&dom) {
+ let mut base_content = String::default();
+
let base_nodes = dom::find_nodes_with_tag(&head, &["base"]);
- if let Some(base) = base_nodes.get(0) {
- // We take the first one, because it is the only one that is effective.
- content = base.to_string() + &content;
+ for base in base_nodes {
+ base_content += &base.to_string();
}
+ content = base_content + &content;
}
if let Some(ref charset) = meta.charset {
diff --git a/test/data/speedreader/article/csp_html.html b/test/data/speedreader/article/csp_html.html
index c30fdf64c8e..98d6cf72f7a 100644
--- a/test/data/speedreader/article/csp_html.html
+++ b/test/data/speedreader/article/csp_html.html
@@ -7,7 +7,7 @@
Encrypt the Web with the HTTPS Everywhere Firefox Extension | Electronic Frontier Foundation
-
+
diff --git a/test/data/speedreader/article/csp_http.html b/test/data/speedreader/article/csp_http.html
index ccb076812db..81c3bb1eda0 100644
--- a/test/data/speedreader/article/csp_http.html
+++ b/test/data/speedreader/article/csp_http.html
@@ -5,6 +5,7 @@
Encrypt the Web with the HTTPS Everywhere Firefox Extension | Electronic Frontier Foundation
+