Migrate PdfViewPluginBase::LoadUrl()
Migrates LoadUrl() from PdfViewPluginBase to PdfViewWebPlugin, removing the last references to UrlLoader from PdfViewPluginBase. Bug: 1322928 Change-Id: I501b6fb5abec2702607cd51fed5144e1ec1ee5be Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3709988 Auto-Submit: K. Moon <kmoon@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#1014983}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
71f1e69a0c
commit
4d6513f719
@@ -42,8 +42,6 @@
|
|||||||
#include "pdf/pdf_features.h"
|
#include "pdf/pdf_features.h"
|
||||||
#include "pdf/pdfium/pdfium_engine.h"
|
#include "pdf/pdfium/pdfium_engine.h"
|
||||||
#include "pdf/pdfium/pdfium_form_filler.h"
|
#include "pdf/pdfium/pdfium_form_filler.h"
|
||||||
#include "pdf/ppapi_migration/result_codes.h"
|
|
||||||
#include "pdf/ppapi_migration/url_loader.h"
|
|
||||||
#include "pdf/ui/file_name.h"
|
#include "pdf/ui/file_name.h"
|
||||||
#include "pdf/ui/thumbnail.h"
|
#include "pdf/ui/thumbnail.h"
|
||||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||||
@@ -850,18 +848,6 @@ void PdfViewPluginBase::LoadAccessibility() {
|
|||||||
kAccessibilityPageDelay);
|
kAccessibilityPageDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PdfViewPluginBase::DidOpen(std::unique_ptr<UrlLoader> loader,
|
|
||||||
int32_t result) {
|
|
||||||
if (result == kSuccess) {
|
|
||||||
if (!engine()->HandleDocumentLoad(std::move(loader), GetURL())) {
|
|
||||||
document_load_state_ = DocumentLoadState::kLoading;
|
|
||||||
DocumentLoadFailed();
|
|
||||||
}
|
|
||||||
} else if (result != kErrorAborted) {
|
|
||||||
DocumentLoadFailed();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gfx::Point PdfViewPluginBase::FrameToPdfCoordinates(
|
gfx::Point PdfViewPluginBase::FrameToPdfCoordinates(
|
||||||
const gfx::PointF& frame_coordinates) const {
|
const gfx::PointF& frame_coordinates) const {
|
||||||
// TODO(crbug.com/1288847): Use methods on `blink::WebPluginContainer`.
|
// TODO(crbug.com/1288847): Use methods on `blink::WebPluginContainer`.
|
||||||
|
@@ -42,7 +42,6 @@ namespace chrome_pdf {
|
|||||||
class PDFiumEngine;
|
class PDFiumEngine;
|
||||||
class PaintReadyRect;
|
class PaintReadyRect;
|
||||||
class Thumbnail;
|
class Thumbnail;
|
||||||
class UrlLoader;
|
|
||||||
struct AccessibilityActionData;
|
struct AccessibilityActionData;
|
||||||
struct AccessibilityCharInfo;
|
struct AccessibilityCharInfo;
|
||||||
struct AccessibilityDocInfo;
|
struct AccessibilityDocInfo;
|
||||||
@@ -128,12 +127,6 @@ class PdfViewPluginBase : public PDFEngine::Client,
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Callback that runs after `LoadUrl()`. The `loader` is the loader used to
|
|
||||||
// load the URL, and `result` is the result code for the load.
|
|
||||||
using LoadUrlCallback =
|
|
||||||
base::OnceCallback<void(std::unique_ptr<UrlLoader> loader,
|
|
||||||
int32_t result)>;
|
|
||||||
|
|
||||||
struct BackgroundPart {
|
struct BackgroundPart {
|
||||||
gfx::Rect location;
|
gfx::Rect location;
|
||||||
uint32_t color;
|
uint32_t color;
|
||||||
@@ -150,9 +143,6 @@ class PdfViewPluginBase : public PDFEngine::Client,
|
|||||||
virtual const PDFiumEngine* engine() const = 0;
|
virtual const PDFiumEngine* engine() const = 0;
|
||||||
virtual PDFiumEngine* engine() = 0;
|
virtual PDFiumEngine* engine() = 0;
|
||||||
|
|
||||||
// Loads `url`, invoking `callback` on receiving the initial response.
|
|
||||||
virtual void LoadUrl(base::StringPiece url, LoadUrlCallback callback) = 0;
|
|
||||||
|
|
||||||
// Gets a weak pointer with a lifetime matching the derived class.
|
// Gets a weak pointer with a lifetime matching the derived class.
|
||||||
virtual base::WeakPtr<PdfViewPluginBase> GetWeakPtr() = 0;
|
virtual base::WeakPtr<PdfViewPluginBase> GetWeakPtr() = 0;
|
||||||
|
|
||||||
@@ -320,9 +310,6 @@ class PdfViewPluginBase : public PDFEngine::Client,
|
|||||||
return size > 0 && size <= kMaximumSavedFileSize;
|
return size > 0 && size <= kMaximumSavedFileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handles `LoadUrl()` result.
|
|
||||||
void DidOpen(std::unique_ptr<UrlLoader> loader, int32_t result);
|
|
||||||
|
|
||||||
// Converts a scroll offset (which is relative to a UI direction-dependent
|
// Converts a scroll offset (which is relative to a UI direction-dependent
|
||||||
// scroll origin) to a scroll position (which is always relative to the
|
// scroll origin) to a scroll position (which is always relative to the
|
||||||
// top-left corner).
|
// top-left corner).
|
||||||
|
@@ -14,6 +14,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "base/bind.h"
|
#include "base/bind.h"
|
||||||
|
#include "base/callback.h"
|
||||||
#include "base/check_op.h"
|
#include "base/check_op.h"
|
||||||
#include "base/containers/fixed_flat_map.h"
|
#include "base/containers/fixed_flat_map.h"
|
||||||
#include "base/containers/queue.h"
|
#include "base/containers/queue.h"
|
||||||
@@ -336,8 +337,8 @@ bool PdfViewWebPlugin::InitializeCommon() {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
set_last_progress_sent(0);
|
set_last_progress_sent(0);
|
||||||
LoadUrl(params->src_url,
|
LoadUrl(params->src_url, base::BindOnce(&PdfViewWebPlugin::DidOpen,
|
||||||
base::BindOnce(&PdfViewWebPlugin::DidOpen, GetWeakPtr()));
|
weak_factory_.GetWeakPtr()));
|
||||||
url_ = params->original_url;
|
url_ = params->original_url;
|
||||||
|
|
||||||
// Not all edits go through the PDF plugin's form filler. The plugin instance
|
// Not all edits go through the PDF plugin's form filler. The plugin instance
|
||||||
@@ -360,6 +361,18 @@ void PdfViewWebPlugin::SendSetSmoothScrolling() {
|
|||||||
SendMessage(std::move(message));
|
SendMessage(std::move(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PdfViewWebPlugin::DidOpen(std::unique_ptr<UrlLoader> loader,
|
||||||
|
int32_t result) {
|
||||||
|
if (result == kSuccess) {
|
||||||
|
if (!engine_->HandleDocumentLoad(std::move(loader), url_)) {
|
||||||
|
set_document_load_state(DocumentLoadState::kLoading);
|
||||||
|
DocumentLoadFailed();
|
||||||
|
}
|
||||||
|
} else if (result != kErrorAborted) {
|
||||||
|
DocumentLoadFailed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PdfViewWebPlugin::Destroy() {
|
void PdfViewWebPlugin::Destroy() {
|
||||||
if (client_->PluginContainer()) {
|
if (client_->PluginContainer()) {
|
||||||
// Explicitly destroy the PDFEngine during destruction as it may call back
|
// Explicitly destroy the PDFEngine during destruction as it may call back
|
||||||
@@ -1632,7 +1645,8 @@ void PdfViewWebPlugin::HandleResetPrintPreviewModeMessage(
|
|||||||
preview_document_load_state_ = DocumentLoadState::kComplete;
|
preview_document_load_state_ = DocumentLoadState::kComplete;
|
||||||
set_document_load_state(DocumentLoadState::kLoading);
|
set_document_load_state(DocumentLoadState::kLoading);
|
||||||
set_last_progress_sent(0);
|
set_last_progress_sent(0);
|
||||||
LoadUrl(url_, base::BindOnce(&PdfViewWebPlugin::DidOpen, GetWeakPtr()));
|
LoadUrl(url_, base::BindOnce(&PdfViewWebPlugin::DidOpen,
|
||||||
|
weak_factory_.GetWeakPtr()));
|
||||||
preview_engine_.reset();
|
preview_engine_.reset();
|
||||||
|
|
||||||
// TODO(crbug.com/1237952): Figure out a more consistent way to preserve
|
// TODO(crbug.com/1237952): Figure out a more consistent way to preserve
|
||||||
|
@@ -11,11 +11,13 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "base/callback_forward.h"
|
||||||
#include "base/containers/flat_set.h"
|
#include "base/containers/flat_set.h"
|
||||||
#include "base/containers/queue.h"
|
#include "base/containers/queue.h"
|
||||||
#include "base/i18n/rtl.h"
|
#include "base/i18n/rtl.h"
|
||||||
#include "base/memory/raw_ptr.h"
|
#include "base/memory/raw_ptr.h"
|
||||||
#include "base/memory/weak_ptr.h"
|
#include "base/memory/weak_ptr.h"
|
||||||
|
#include "base/strings/string_piece_forward.h"
|
||||||
#include "base/values.h"
|
#include "base/values.h"
|
||||||
#include "cc/paint/paint_image.h"
|
#include "cc/paint/paint_image.h"
|
||||||
#include "mojo/public/cpp/bindings/associated_remote.h"
|
#include "mojo/public/cpp/bindings/associated_remote.h"
|
||||||
@@ -340,7 +342,6 @@ class PdfViewWebPlugin final : public PdfViewPluginBase,
|
|||||||
PDFiumFormFiller::ScriptOption script_option) override;
|
PDFiumFormFiller::ScriptOption script_option) override;
|
||||||
const PDFiumEngine* engine() const override;
|
const PDFiumEngine* engine() const override;
|
||||||
PDFiumEngine* engine() override;
|
PDFiumEngine* engine() override;
|
||||||
void LoadUrl(base::StringPiece url, LoadUrlCallback callback) override;
|
|
||||||
base::WeakPtr<PdfViewPluginBase> GetWeakPtr() override;
|
base::WeakPtr<PdfViewPluginBase> GetWeakPtr() override;
|
||||||
void OnPrintPreviewLoaded() override;
|
void OnPrintPreviewLoaded() override;
|
||||||
void OnDocumentLoadComplete() override;
|
void OnDocumentLoadComplete() override;
|
||||||
@@ -372,6 +373,12 @@ class PdfViewWebPlugin final : public PdfViewPluginBase,
|
|||||||
void PrepareForFirstPaint(std::vector<PaintReadyRect>& ready) override;
|
void PrepareForFirstPaint(std::vector<PaintReadyRect>& ready) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Callback that runs after `LoadUrl()`. The `loader` is the loader used to
|
||||||
|
// load the URL, and `result` is the result code for the load.
|
||||||
|
using LoadUrlCallback =
|
||||||
|
base::OnceCallback<void(std::unique_ptr<UrlLoader> loader,
|
||||||
|
int32_t result)>;
|
||||||
|
|
||||||
// Metadata about an available preview page.
|
// Metadata about an available preview page.
|
||||||
struct PreviewPageInfo {
|
struct PreviewPageInfo {
|
||||||
// Data source URL.
|
// Data source URL.
|
||||||
@@ -389,10 +396,16 @@ class PdfViewWebPlugin final : public PdfViewPluginBase,
|
|||||||
// Sends whether to do smooth scrolling.
|
// Sends whether to do smooth scrolling.
|
||||||
void SendSetSmoothScrolling();
|
void SendSetSmoothScrolling();
|
||||||
|
|
||||||
|
// Handles `LoadUrl()` result for the main document.
|
||||||
|
void DidOpen(std::unique_ptr<UrlLoader> loader, int32_t result);
|
||||||
|
|
||||||
// Updates the scroll position, which is in CSS pixels relative to the
|
// Updates the scroll position, which is in CSS pixels relative to the
|
||||||
// top-left corner.
|
// top-left corner.
|
||||||
void UpdateScroll(const gfx::PointF& scroll_position);
|
void UpdateScroll(const gfx::PointF& scroll_position);
|
||||||
|
|
||||||
|
// Loads `url`, invoking `callback` on receiving the initial response.
|
||||||
|
void LoadUrl(base::StringPiece url, LoadUrlCallback callback);
|
||||||
|
|
||||||
// Handles `Open()` result for `form_loader_`.
|
// Handles `Open()` result for `form_loader_`.
|
||||||
void DidFormOpen(int32_t result);
|
void DidFormOpen(int32_t result);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user