summaryrefslogtreecommitdiff
path: root/chromium/components/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/pdf')
-rw-r--r--chromium/components/pdf/browser/BUILD.gn1
-rw-r--r--chromium/components/pdf/browser/mock_url_loader_client.h3
-rw-r--r--chromium/components/pdf/browser/pdf_web_contents_helper.cc51
-rw-r--r--chromium/components/pdf/browser/pdf_web_contents_helper.h42
-rw-r--r--chromium/components/pdf/browser/pdf_web_contents_helper_browsertest.cc44
-rw-r--r--chromium/components/pdf/browser/pdf_web_contents_helper_client.h6
-rw-r--r--chromium/components/pdf/browser/plugin_response_writer.cc10
-rw-r--r--chromium/components/pdf/browser/plugin_response_writer_unittest.cc3
-rw-r--r--chromium/components/pdf/renderer/BUILD.gn4
-rw-r--r--chromium/components/pdf/renderer/internal_plugin_renderer_helpers.cc11
-rw-r--r--chromium/components/pdf/renderer/internal_plugin_renderer_helpers.h3
-rw-r--r--chromium/components/pdf/renderer/pdf_accessibility_tree.cc8
-rw-r--r--chromium/components/pdf/renderer/pdf_accessibility_tree.h2
-rw-r--r--chromium/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc2
-rw-r--r--chromium/components/pdf/renderer/pdf_find_in_page.cc106
-rw-r--r--chromium/components/pdf/renderer/pdf_find_in_page.h58
16 files changed, 136 insertions, 218 deletions
diff --git a/chromium/components/pdf/browser/BUILD.gn b/chromium/components/pdf/browser/BUILD.gn
index 5a9998a5fd7..efb41083a23 100644
--- a/chromium/components/pdf/browser/BUILD.gn
+++ b/chromium/components/pdf/browser/BUILD.gn
@@ -17,7 +17,6 @@ static_library("browser") {
deps = [
"//base",
"//content/public/browser",
- "//pdf:features",
"//ui/base",
"//ui/touch_selection",
]
diff --git a/chromium/components/pdf/browser/mock_url_loader_client.h b/chromium/components/pdf/browser/mock_url_loader_client.h
index 554b1b4817e..6d2f8ad17de 100644
--- a/chromium/components/pdf/browser/mock_url_loader_client.h
+++ b/chromium/components/pdf/browser/mock_url_loader_client.h
@@ -25,7 +25,8 @@ class MockURLLoaderClient : public network::mojom::URLLoaderClient {
(override));
MOCK_METHOD(void,
OnReceiveResponse,
- (network::mojom::URLResponseHeadPtr head),
+ (network::mojom::URLResponseHeadPtr head,
+ mojo::ScopedDataPipeConsumerHandle body),
(override));
MOCK_METHOD(void,
OnReceiveRedirect,
diff --git a/chromium/components/pdf/browser/pdf_web_contents_helper.cc b/chromium/components/pdf/browser/pdf_web_contents_helper.cc
index 4c21f244032..26a4f75cb3d 100644
--- a/chromium/components/pdf/browser/pdf_web_contents_helper.cc
+++ b/chromium/components/pdf/browser/pdf_web_contents_helper.cc
@@ -6,15 +6,12 @@
#include <utility>
-#include "base/feature_list.h"
#include "base/memory/ptr_util.h"
#include "base/notreached.h"
#include "components/pdf/browser/pdf_web_contents_helper_client.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/common/referrer_type_converters.h"
-#include "pdf/pdf_features.h"
-#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "ui/base/pointer/touch_editing_controller.h"
#include "ui/base/ui_base_types.h"
#include "ui/gfx/geometry/point_conversions.h"
@@ -54,6 +51,9 @@ PDFWebContentsHelper::PDFWebContentsHelper(
client_(std::move(client)) {}
PDFWebContentsHelper::~PDFWebContentsHelper() {
+ if (pdf_rwh_)
+ pdf_rwh_->RemoveObserver(this);
+
if (!touch_selection_controller_client_manager_)
return;
@@ -73,19 +73,27 @@ void PDFWebContentsHelper::SetListener(
mojo::PendingRemote<mojom::PdfListener> listener) {
remote_pdf_client_.reset();
remote_pdf_client_.Bind(std::move(listener));
+
+ if (pdf_rwh_)
+ pdf_rwh_->RemoveObserver(this);
+ pdf_rwh_ = client_->FindPdfFrame(&GetWebContents())->GetRenderWidgetHost();
+ pdf_rwh_->AddObserver(this);
}
gfx::PointF PDFWebContentsHelper::ConvertHelper(const gfx::PointF& point_f,
float scale) {
- gfx::PointF origin_f;
- content::RenderWidgetHostView* view =
- GetWebContents().GetRenderWidgetHostView();
- if (view) {
- origin_f = view->TransformPointToRootCoordSpaceF(gfx::PointF());
- origin_f.Scale(scale);
- }
+ if (!pdf_rwh_)
+ return point_f;
+
+ content::RenderWidgetHostView* view = pdf_rwh_->GetView();
+ if (!view)
+ return point_f;
+
+ gfx::Vector2dF offset =
+ view->TransformPointToRootCoordSpaceF(gfx::PointF()).OffsetFromOrigin();
+ offset.Scale(scale);
- return gfx::PointF(point_f.x() + origin_f.x(), point_f.y() + origin_f.y());
+ return point_f + offset;
}
gfx::PointF PDFWebContentsHelper::ConvertFromRoot(const gfx::PointF& point_f) {
@@ -112,21 +120,6 @@ void PDFWebContentsHelper::SetPluginCanSave(bool can_save) {
client_->SetPluginCanSave(&GetWebContents(), can_save);
}
-void PDFWebContentsHelper::GetPdfFindInPage(GetPdfFindInPageCallback callback) {
- if (!base::FeatureList::IsEnabled(chrome_pdf::features::kPdfUnseasoned)) {
- NOTREACHED();
- return;
- }
-
- if (!find_factory_remote_) {
- GetWebContents()
- .GetMainFrame()
- ->GetRemoteAssociatedInterfaces()
- ->GetInterface(&find_factory_remote_);
- }
- find_factory_remote_->GetPdfFindInPage(std::move(callback));
-}
-
void PDFWebContentsHelper::DidScroll() {
if (!touch_selection_controller_client_manager_)
InitTouchSelectionClientManager();
@@ -163,6 +156,12 @@ void PDFWebContentsHelper::DidScroll() {
}
}
+void PDFWebContentsHelper::RenderWidgetHostDestroyed(
+ content::RenderWidgetHost* widget_host) {
+ if (pdf_rwh_ == widget_host)
+ pdf_rwh_ = nullptr;
+}
+
bool PDFWebContentsHelper::SupportsAnimation() const {
return false;
}
diff --git a/chromium/components/pdf/browser/pdf_web_contents_helper.h b/chromium/components/pdf/browser/pdf_web_contents_helper.h
index 73e1c8e29fe..a799667a1ae 100644
--- a/chromium/components/pdf/browser/pdf_web_contents_helper.h
+++ b/chromium/components/pdf/browser/pdf_web_contents_helper.h
@@ -9,9 +9,9 @@
#include "base/memory/raw_ptr.h"
#include "content/public/browser/render_frame_host_receiver_set.h"
+#include "content/public/browser/render_widget_host_observer.h"
#include "content/public/browser/touch_selection_controller_client_manager.h"
#include "content/public/browser/web_contents_user_data.h"
-#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "pdf/mojom/pdf.mojom.h"
@@ -20,6 +20,7 @@
#include "ui/touch_selection/touch_selection_menu_runner.h"
namespace content {
+class RenderWidgetHost;
class WebContents;
}
@@ -31,6 +32,7 @@ class PDFWebContentsHelperTest;
// Per-WebContents class to handle PDF messages.
class PDFWebContentsHelper
: public content::WebContentsUserData<PDFWebContentsHelper>,
+ public content::RenderWidgetHostObserver,
public mojom::PdfService,
public ui::TouchSelectionControllerClient,
public ui::TouchSelectionMenuClient,
@@ -48,7 +50,11 @@ class PDFWebContentsHelper
mojo::PendingAssociatedReceiver<mojom::PdfService> pdf_service,
content::RenderFrameHost* rfh);
- // ui::TouchSelectionControllerClient :
+ // content::RenderWidgetHostObserver:
+ void RenderWidgetHostDestroyed(
+ content::RenderWidgetHost* widget_host) override;
+
+ // ui::TouchSelectionControllerClient:
bool SupportsAnimation() const override;
void SetNeedsAnimate() override {}
void MoveCaret(const gfx::PointF& position) override;
@@ -72,6 +78,18 @@ class PDFWebContentsHelper
void OnManagerWillDestroy(
content::TouchSelectionControllerClientManager* manager) override;
+ // pdf::mojom::PdfService:
+ void SetListener(mojo::PendingRemote<mojom::PdfListener> listener) override;
+ void HasUnsupportedFeature() override;
+ void SaveUrlAs(const GURL& url,
+ network::mojom::ReferrerPolicy policy) override;
+ void UpdateContentRestrictions(int32_t content_restrictions) override;
+ void SelectionChanged(const gfx::PointF& left,
+ int32_t left_height,
+ const gfx::PointF& right,
+ int32_t right_height) override;
+ void SetPluginCanSave(bool can_save) override;
+
private:
friend class content::WebContentsUserData<PDFWebContentsHelper>;
friend class PDFWebContentsHelperTest;
@@ -84,24 +102,16 @@ class PDFWebContentsHelper
gfx::PointF ConvertToRoot(const gfx::PointF& point_f);
gfx::PointF ConvertHelper(const gfx::PointF& point_f, float scale);
- // mojom::PdfService:
- void SetListener(mojo::PendingRemote<mojom::PdfListener> listener) override;
- void HasUnsupportedFeature() override;
- void SaveUrlAs(const GURL& url,
- network::mojom::ReferrerPolicy policy) override;
- void UpdateContentRestrictions(int32_t content_restrictions) override;
- void SelectionChanged(const gfx::PointF& left,
- int32_t left_height,
- const gfx::PointF& right,
- int32_t right_height) override;
- void SetPluginCanSave(bool can_save) override;
- void GetPdfFindInPage(GetPdfFindInPageCallback callback) override;
-
content::RenderFrameHostReceiverSet<mojom::PdfService> pdf_service_receivers_;
std::unique_ptr<PDFWebContentsHelperClient> const client_;
raw_ptr<content::TouchSelectionControllerClientManager>
touch_selection_controller_client_manager_ = nullptr;
+ // The `RenderWidgetHost` associated to the frame containing the PDF plugin.
+ // This should be null until the plugin is known to have been created; the
+ // signal comes from `SetListener()`.
+ raw_ptr<content::RenderWidgetHost> pdf_rwh_ = nullptr;
+
// Latest selection bounds received from PDFium.
gfx::PointF selection_left_;
int32_t selection_left_height_ = 0;
@@ -111,8 +121,6 @@ class PDFWebContentsHelper
mojo::Remote<mojom::PdfListener> remote_pdf_client_;
- mojo::AssociatedRemote<mojom::PdfFindInPageFactory> find_factory_remote_;
-
WEB_CONTENTS_USER_DATA_KEY_DECL();
};
diff --git a/chromium/components/pdf/browser/pdf_web_contents_helper_browsertest.cc b/chromium/components/pdf/browser/pdf_web_contents_helper_browsertest.cc
index ecb8fc5f222..02f603b6bfa 100644
--- a/chromium/components/pdf/browser/pdf_web_contents_helper_browsertest.cc
+++ b/chromium/components/pdf/browser/pdf_web_contents_helper_browsertest.cc
@@ -10,10 +10,35 @@
#include "content/public/test/browser_test.h"
#include "content/public/test/content_browser_test.h"
#include "content/shell/browser/shell.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+#include "pdf/mojom/pdf.mojom.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/selection_bound.h"
namespace pdf {
+namespace {
+
+using ::testing::NiceMock;
+
+class FakePdfListener : public pdf::mojom::PdfListener {
+ public:
+ FakePdfListener() = default;
+ FakePdfListener(const FakePdfListener&) = delete;
+ FakePdfListener& operator=(const FakePdfListener&) = delete;
+ ~FakePdfListener() override = default;
+
+ MOCK_METHOD(void, SetCaretPosition, (const gfx::PointF&), (override));
+ MOCK_METHOD(void, MoveRangeSelectionExtent, (const gfx::PointF&), (override));
+ MOCK_METHOD(void,
+ SetSelectionBounds,
+ (const gfx::PointF&, const gfx::PointF&),
+ (override));
+};
+
+} // namespace
+
// A mock PDFWebContentsHelperClient.
class TestPDFWebContentsHelperClient : public PDFWebContentsHelperClient {
public:
@@ -26,6 +51,11 @@ class TestPDFWebContentsHelperClient : public PDFWebContentsHelperClient {
private:
// PDFWebContentsHelperClient:
+ content::RenderFrameHost* FindPdfFrame(
+ content::WebContents* contents) override {
+ return contents->GetMainFrame();
+ }
+
void UpdateContentRestrictions(content::WebContents* contents,
int content_restrictions) override {}
void OnPDFHasUnsupportedFeature(content::WebContents* contents) override {}
@@ -122,6 +152,20 @@ class PDFWebContentsHelperTest : public content::ContentBrowserTest {
touch_selection_controller_client_manager_;
};
+IN_PROC_BROWSER_TEST_F(PDFWebContentsHelperTest, SetListenerTwice) {
+ NiceMock<FakePdfListener> listener;
+
+ {
+ mojo::Receiver<pdf::mojom::PdfListener> receiver(&listener);
+ pdf_web_contents_helper()->SetListener(receiver.BindNewPipeAndPassRemote());
+ }
+
+ {
+ mojo::Receiver<pdf::mojom::PdfListener> receiver(&listener);
+ pdf_web_contents_helper()->SetListener(receiver.BindNewPipeAndPassRemote());
+ }
+}
+
// Tests that select-changed on a pdf text brings up selection handles and the
// quick menu in the reasonable position.
IN_PROC_BROWSER_TEST_F(PDFWebContentsHelperTest, SelectionChanged) {
diff --git a/chromium/components/pdf/browser/pdf_web_contents_helper_client.h b/chromium/components/pdf/browser/pdf_web_contents_helper_client.h
index fcf515e3c44..2af85f9ed40 100644
--- a/chromium/components/pdf/browser/pdf_web_contents_helper_client.h
+++ b/chromium/components/pdf/browser/pdf_web_contents_helper_client.h
@@ -6,6 +6,7 @@
#define COMPONENTS_PDF_BROWSER_PDF_WEB_CONTENTS_HELPER_CLIENT_H_
namespace content {
+class RenderFrameHost;
class WebContents;
}
@@ -13,7 +14,10 @@ namespace pdf {
class PDFWebContentsHelperClient {
public:
- virtual ~PDFWebContentsHelperClient() {}
+ virtual ~PDFWebContentsHelperClient() = default;
+
+ virtual content::RenderFrameHost* FindPdfFrame(
+ content::WebContents* contents) = 0;
virtual void UpdateContentRestrictions(content::WebContents* contents,
int content_restrictions) = 0;
diff --git a/chromium/components/pdf/browser/plugin_response_writer.cc b/chromium/components/pdf/browser/plugin_response_writer.cc
index 9ca8573fdd3..44ea938ad64 100644
--- a/chromium/components/pdf/browser/plugin_response_writer.cc
+++ b/chromium/components/pdf/browser/plugin_response_writer.cc
@@ -57,6 +57,11 @@ embed {
position: fixed;
top: 0;
}
+
+/* Hide scrollbars when in Presentation mode. */
+.fullscreen {
+ overflow: hidden;
+}
</style>
<div id="sizer"></div>
<embed type="application/x-google-chrome-pdf" src="$1" original-url="$2"
@@ -69,7 +74,7 @@ $3
// TODO(crbug.com/1252096): We should load the injected scripts as network
// resources instead. Until then, feel free to raise this limit as necessary.
if (stream_info.injected_script)
- DCHECK_LE(stream_info.injected_script->size(), 8'192u);
+ DCHECK_LE(stream_info.injected_script->size(), 16'384u);
return base::ReplaceStringPlaceholders(
kResponseTemplate,
@@ -95,7 +100,8 @@ void PluginResponseWriter::Start(base::OnceClosure done_callback) {
response->headers =
base::MakeRefCounted<net::HttpResponseHeaders>("HTTP/1.1 200 OK");
response->mime_type = "text/html";
- client_->OnReceiveResponse(std::move(response));
+ client_->OnReceiveResponse(std::move(response),
+ mojo::ScopedDataPipeConsumerHandle());
mojo::ScopedDataPipeProducerHandle producer;
mojo::ScopedDataPipeConsumerHandle consumer;
diff --git a/chromium/components/pdf/browser/plugin_response_writer_unittest.cc b/chromium/components/pdf/browser/plugin_response_writer_unittest.cc
index de2ad3c1594..19f59446d2b 100644
--- a/chromium/components/pdf/browser/plugin_response_writer_unittest.cc
+++ b/chromium/components/pdf/browser/plugin_response_writer_unittest.cc
@@ -139,7 +139,8 @@ TEST_F(PluginResponseWriterTest, Start) {
testing::InSequence in_sequence;
EXPECT_CALL(mock_client_, OnReceiveResponse)
- .WillOnce([](network::mojom::URLResponseHeadPtr head) {
+ .WillOnce([](network::mojom::URLResponseHeadPtr head,
+ mojo::ScopedDataPipeConsumerHandle body) {
EXPECT_EQ(200, head->headers->response_code());
EXPECT_EQ("text/html", head->mime_type);
});
diff --git a/chromium/components/pdf/renderer/BUILD.gn b/chromium/components/pdf/renderer/BUILD.gn
index b43840e4029..d61e395a8a9 100644
--- a/chromium/components/pdf/renderer/BUILD.gn
+++ b/chromium/components/pdf/renderer/BUILD.gn
@@ -14,7 +14,6 @@ static_library("renderer") {
"internal_plugin_renderer_helpers.h",
"pdf_accessibility_tree.h",
"pdf_ax_action_target.h",
- "pdf_find_in_page.h",
"pdf_internal_plugin_delegate.h",
"pepper_pdf_host.h",
]
@@ -23,7 +22,6 @@ static_library("renderer") {
"internal_plugin_renderer_helpers.cc",
"pdf_accessibility_tree.cc",
"pdf_ax_action_target.cc",
- "pdf_find_in_page.cc",
"pdf_internal_plugin_delegate.cc",
"pdf_view_web_plugin_client.cc",
"pdf_view_web_plugin_client.h",
@@ -48,7 +46,7 @@ static_library("renderer") {
"//ppapi/shared_impl",
"//printing/buildflags",
"//third_party/blink/public:blink",
- "//third_party/blink/public/strings:strings_grit",
+ "//third_party/blink/public/strings:accessibility_strings",
"//third_party/icu",
"//url",
"//v8",
diff --git a/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.cc b/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.cc
index 5ceed0ce692..3334ea4598c 100644
--- a/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.cc
+++ b/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.cc
@@ -8,9 +8,11 @@
#include <utility>
#include "base/check.h"
+#include "base/command_line.h"
#include "base/feature_list.h"
#include "components/pdf/renderer/pdf_internal_plugin_delegate.h"
#include "components/pdf/renderer/pdf_view_web_plugin_client.h"
+#include "content/public/common/content_switches.h"
#include "content/public/renderer/render_frame.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "pdf/mojom/pdf.mojom.h"
@@ -27,6 +29,12 @@
namespace pdf {
+bool IsPdfRenderer() {
+ static const bool has_switch =
+ base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kPdfRenderer);
+ return has_switch;
+}
+
blink::WebPlugin* CreateInternalPlugin(
const content::WebPluginInfo& info,
blink::WebPluginParams params,
@@ -56,6 +64,9 @@ blink::WebPlugin* CreateInternalPlugin(
return nullptr;
}
+ // Only create the in-process plugin within a PDF renderer.
+ CHECK(IsPdfRenderer());
+
// Origins allowed to embed the internal plugin are trusted (the PDF viewer
// and Print Preview), and should never directly create the in-process plugin.
// Likewise, they should not share a process with this frame.
diff --git a/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.h b/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.h
index 4ee7df5fb0b..64a48acb15f 100644
--- a/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.h
+++ b/chromium/components/pdf/renderer/internal_plugin_renderer_helpers.h
@@ -21,6 +21,9 @@ namespace pdf {
class PdfInternalPluginDelegate;
+// Returns `true` if the current process is a PDF renderer.
+bool IsPdfRenderer();
+
// Tries to create an instance of the internal PDF plugin, returning `nullptr`
// if the plugin cannot be created. This function handles both the Pepper and
// Pepper-free implementations, delegating to `content::RenderFrame` when
diff --git a/chromium/components/pdf/renderer/pdf_accessibility_tree.cc b/chromium/components/pdf/renderer/pdf_accessibility_tree.cc
index d23fcd2c16e..da26cbc0350 100644
--- a/chromium/components/pdf/renderer/pdf_accessibility_tree.cc
+++ b/chromium/components/pdf/renderer/pdf_accessibility_tree.cc
@@ -9,6 +9,7 @@
#include "base/i18n/break_iterator.h"
#include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_functions.h"
#include "base/notreached.h"
#include "base/strings/utf_string_conversion_utils.h"
#include "components/pdf/renderer/pdf_ax_action_target.h"
@@ -20,7 +21,7 @@
#include "pdf/accessibility_structs.h"
#include "pdf/pdf_accessibility_action_handler.h"
#include "pdf/pdf_features.h"
-#include "third_party/blink/public/strings/grit/blink_strings.h"
+#include "third_party/blink/public/strings/grit/blink_accessibility_strings.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/accessibility/null_ax_action_target.h"
#include "ui/base/l10n/l10n_util.h"
@@ -1384,6 +1385,8 @@ void PdfAccessibilityTree::SetAccessibilityPageInfo(
AddPageContent(page_node, page_bounds, page_index, text_runs, chars,
page_objects);
+ did_get_a_text_run_ |= !text_runs.empty();
+
if (page_index == page_count_ - 1)
Finish();
}
@@ -1423,6 +1426,9 @@ void PdfAccessibilityTree::Finish() {
GetRenderAccessibilityIfEnabled();
if (render_accessibility)
render_accessibility->SetPluginTreeSource(this);
+
+ base::UmaHistogramBoolean("Accessibility.PDF.HasAccessibleText",
+ did_get_a_text_run_);
}
void PdfAccessibilityTree::UpdateAXTreeDataFromSelection() {
diff --git a/chromium/components/pdf/renderer/pdf_accessibility_tree.h b/chromium/components/pdf/renderer/pdf_accessibility_tree.h
index 2747de14f12..18a5e81578a 100644
--- a/chromium/components/pdf/renderer/pdf_accessibility_tree.h
+++ b/chromium/components/pdf/renderer/pdf_accessibility_tree.h
@@ -198,6 +198,8 @@ class PdfAccessibilityTree : public content::PluginAXTreeSource,
// outdated calls of SetAccessibilityPageInfo().
uint32_t next_page_index_ = 0;
+ bool did_get_a_text_run_ = false;
+
base::WeakPtrFactory<PdfAccessibilityTree> weak_ptr_factory_{this};
};
diff --git a/chromium/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc b/chromium/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc
index 9f54431a682..51d8a99c142 100644
--- a/chromium/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc
+++ b/chromium/components/pdf/renderer/pdf_accessibility_tree_browsertest.cc
@@ -15,7 +15,7 @@
#include "pdf/accessibility_structs.h"
#include "pdf/pdf_accessibility_action_handler.h"
#include "pdf/pdf_features.h"
-#include "third_party/blink/public/strings/grit/blink_strings.h"
+#include "third_party/blink/public/strings/grit/blink_accessibility_strings.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_settings.h"
#include "third_party/blink/public/web/web_view.h"
diff --git a/chromium/components/pdf/renderer/pdf_find_in_page.cc b/chromium/components/pdf/renderer/pdf_find_in_page.cc
deleted file mode 100644
index 174e75cad36..00000000000
--- a/chromium/components/pdf/renderer/pdf_find_in_page.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/pdf/renderer/pdf_find_in_page.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/check.h"
-#include "base/feature_list.h"
-#include "content/public/renderer/render_frame.h"
-#include "content/public/renderer/render_frame_observer.h"
-#include "mojo/public/cpp/bindings/pending_receiver.h"
-#include "mojo/public/cpp/bindings/receiver.h"
-#include "pdf/pdf_features.h"
-#include "third_party/blink/public/platform/web_vector.h"
-#include "third_party/blink/public/web/web_document.h"
-#include "third_party/blink/public/web/web_element.h"
-#include "third_party/blink/public/web/web_local_frame.h"
-#include "third_party/blink/public/web/web_node.h"
-
-namespace {
-
-blink::WebElement FindPdfViewerScroller(const blink::WebLocalFrame* frame) {
- blink::WebElement viewer = frame->GetDocument().GetElementById("viewer");
- if (viewer.IsNull())
- return blink::WebElement();
-
- blink::WebNode shadow_root = viewer.ShadowRoot();
- if (shadow_root.IsNull())
- return blink::WebElement();
-
- blink::WebElement plugin = shadow_root.QuerySelector("#plugin");
- if (plugin.IsNull() || !plugin.HasAttribute("pdf-viewer-update-enabled"))
- return blink::WebElement();
-
- return shadow_root.QuerySelector("#scroller");
-}
-
-} // namespace
-
-namespace pdf {
-
-// static
-void PdfFindInPageFactory::BindReceiver(
- int32_t routing_id,
- mojo::PendingAssociatedReceiver<pdf::mojom::PdfFindInPageFactory>
- receiver) {
- DCHECK(base::FeatureList::IsEnabled(chrome_pdf::features::kPdfUnseasoned));
-
- auto* render_frame = content::RenderFrame::FromRoutingID(routing_id);
- if (!render_frame)
- return;
-
- // PdfFindInPageFactory is self deleting.
- new PdfFindInPageFactory(render_frame, std::move(receiver));
-}
-
-void PdfFindInPageFactory::OnDestruct() {
- delete this;
-}
-
-void PdfFindInPageFactory::GetPdfFindInPage(GetPdfFindInPageCallback callback) {
- mojo::PendingReceiver<pdf::mojom::PdfFindInPage> pending_receiver;
- auto pending_remote = pending_receiver.InitWithNewPipeAndPassRemote();
- find_in_page_ = std::make_unique<FindInPageImpl>(render_frame(),
- std::move(pending_receiver));
- std::move(callback).Run(std::move(pending_remote));
-}
-
-PdfFindInPageFactory::PdfFindInPageFactory(
- content::RenderFrame* render_frame,
- mojo::PendingAssociatedReceiver<pdf::mojom::PdfFindInPageFactory> receiver)
- : content::RenderFrameObserver(render_frame),
- receiver_(this, std::move(receiver)) {}
-
-PdfFindInPageFactory::~PdfFindInPageFactory() = default;
-
-class PdfFindInPageFactory::FindInPageImpl : public pdf::mojom::PdfFindInPage {
- public:
- FindInPageImpl(
- content::RenderFrame* render_frame,
- mojo::PendingReceiver<pdf::mojom::PdfFindInPage> pending_receiver)
- : render_frame_(render_frame),
- receiver_(this, std::move(pending_receiver)) {}
-
- FindInPageImpl(const FindInPageImpl&) = delete;
- FindInPageImpl& operator=(const FindInPageImpl&) = delete;
-
- ~FindInPageImpl() override = default;
-
- // pdf::mojom::PdfFindInPage:
- void SetTickmarks(const std::vector<gfx::Rect>& tickmarks) override {
- blink::WebVector<gfx::Rect> tickmarks_converted(tickmarks);
- blink::WebLocalFrame* frame = render_frame_->GetWebFrame();
- blink::WebElement target = FindPdfViewerScroller(frame);
- frame->SetTickmarks(target, tickmarks_converted);
- }
-
- private:
- content::RenderFrame* const render_frame_;
- mojo::Receiver<pdf::mojom::PdfFindInPage> receiver_;
-};
-
-} // namespace pdf
diff --git a/chromium/components/pdf/renderer/pdf_find_in_page.h b/chromium/components/pdf/renderer/pdf_find_in_page.h
deleted file mode 100644
index 12fb253dbe9..00000000000
--- a/chromium/components/pdf/renderer/pdf_find_in_page.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_PDF_RENDERER_PDF_FIND_IN_PAGE_H_
-#define COMPONENTS_PDF_RENDERER_PDF_FIND_IN_PAGE_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "content/public/renderer/render_frame_observer.h"
-#include "mojo/public/cpp/bindings/associated_receiver.h"
-#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
-#include "pdf/mojom/pdf.mojom.h"
-
-namespace content {
-class RenderFrame;
-}
-
-namespace pdf {
-
-// Facilitates find-in-page IPCs from PDF renderer to PDF extension.
-// Has the same lifetime as the RenderFrame it is associated with.
-class PdfFindInPageFactory : public content::RenderFrameObserver,
- public pdf::mojom::PdfFindInPageFactory {
- public:
- static void BindReceiver(
- int32_t routing_id,
- mojo::PendingAssociatedReceiver<pdf::mojom::PdfFindInPageFactory>
- receiver);
-
- PdfFindInPageFactory(const PdfFindInPageFactory&) = delete;
- PdfFindInPageFactory& operator=(const PdfFindInPageFactory&) = delete;
-
- // content::RenderFrameObserver:
- void OnDestruct() override;
-
- // pdf::mojom::PdfFindInPageFactory:
- void GetPdfFindInPage(GetPdfFindInPageCallback callback) override;
-
- private:
- class FindInPageImpl;
-
- // Self deleting.
- PdfFindInPageFactory(
- content::RenderFrame* render_frame,
- mojo::PendingAssociatedReceiver<pdf::mojom::PdfFindInPageFactory>
- receiver);
- ~PdfFindInPageFactory() override;
-
- std::unique_ptr<FindInPageImpl> find_in_page_;
- mojo::AssociatedReceiver<pdf::mojom::PdfFindInPageFactory> receiver_;
-};
-
-} // namespace pdf
-
-#endif // COMPONENTS_PDF_RENDERER_PDF_FIND_IN_PAGE_H_