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 +