From bf6a50c53821ba71625459ebd502e261bbcd9773 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 27 Jan 2021 17:09:55 -0800 Subject: [PATCH] fix: pdf viewer missing resources (#27499) * fix: pdf viewer missing resources * test: add simple regression test * 2638992: PDF Viewer: Stop respecting the PDFViewerUpdate flag. https://chromium-review.googlesource.com/c/chromium/src/+/2638992 * 2439433: PDF Viewer Update: Add aria-label for thumbnails https://chromium-review.googlesource.com/c/chromium/src/+/2439433 --- BUILD.gn | 1 + electron_paks.gni | 4 ++++ .../api/resources_private/resources_private_api.cc | 9 ++++----- .../electron_component_extension_resource_manager.cc | 3 +++ spec-main/chromium-spec.ts | 7 +++++++ 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 00f95f8d9c..e704b822ad 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -648,6 +648,7 @@ source_set("electron_lib") { } if (enable_pdf_viewer) { deps += [ + "//chrome/browser/resources/pdf:pdf_resources", "//components/pdf/browser", "//components/pdf/renderer", "//pdf:pdf_ppapi", diff --git a/electron_paks.gni b/electron_paks.gni index 97c3519c88..3602ba0cb2 100644 --- a/electron_paks.gni +++ b/electron_paks.gni @@ -96,6 +96,10 @@ template("electron_extra_paks") { "$root_gen_dir/ui/resources/webui_generated_resources.pak", ] deps += [ "//content/browser/devtools:devtools_resources" ] + if (enable_pdf_viewer) { + sources += [ "$root_gen_dir/chrome/pdf_resources.pak" ] + deps += [ "//chrome/browser/resources/pdf:pdf_resources" ] + } if (enable_print_preview) { sources += [ "$root_gen_dir/chrome/print_preview_resources.pak" ] deps += diff --git a/shell/browser/extensions/api/resources_private/resources_private_api.cc b/shell/browser/extensions/api/resources_private/resources_private_api.cc index 10516d0f91..46b0f0fe2d 100644 --- a/shell/browser/extensions/api/resources_private/resources_private_api.cc +++ b/shell/browser/extensions/api/resources_private/resources_private_api.cc @@ -39,6 +39,7 @@ void AddStringsForPdf(base::DictionaryValue* dict) { {"passwordDialogTitle", IDS_PDF_PASSWORD_DIALOG_TITLE}, {"passwordPrompt", IDS_PDF_NEED_PASSWORD}, {"passwordSubmit", IDS_PDF_PASSWORD_SUBMIT}, + {"thumbnailPageAriaLabel", IDS_PDF_THUMBNAIL_PAGE_ARIA_LABEL}, {"passwordInvalid", IDS_PDF_PASSWORD_INVALID}, {"pageLoading", IDS_PDF_PAGE_LOADING}, {"pageLoadFailed", IDS_PDF_PAGE_LOAD_FAILED}, @@ -66,11 +67,9 @@ void AddAdditionalDataForPdf(base::DictionaryValue* dict) { dict->SetKey("pdfFormSaveEnabled", base::Value(base::FeatureList::IsEnabled( chrome_pdf::features::kSaveEditedPDFForm))); - dict->SetStringKey( - "pdfViewerUpdateEnabledAttribute", - base::FeatureList::IsEnabled(chrome_pdf::features::kPDFViewerUpdate) - ? "pdf-viewer-update-enabled" - : ""); + dict->SetKey("documentPropertiesEnabled", + base::Value(base::FeatureList::IsEnabled( + chrome_pdf::features::kPdfViewerDocumentProperties))); dict->SetKey("presentationModeEnabled", base::Value(base::FeatureList::IsEnabled( chrome_pdf::features::kPdfViewerPresentationMode))); diff --git a/shell/browser/extensions/electron_component_extension_resource_manager.cc b/shell/browser/extensions/electron_component_extension_resource_manager.cc index 7b140e93e0..58309f93bd 100644 --- a/shell/browser/extensions/electron_component_extension_resource_manager.cc +++ b/shell/browser/extensions/electron_component_extension_resource_manager.cc @@ -18,6 +18,7 @@ #if BUILDFLAG(ENABLE_PDF_VIEWER) #include "chrome/browser/pdf/pdf_extension_util.h" // nogncheck +#include "chrome/grit/pdf_resources_map.h" #include "extensions/common/constants.h" #endif @@ -28,6 +29,8 @@ ElectronComponentExtensionResourceManager:: AddComponentResourceEntries(kComponentExtensionResources, kComponentExtensionResourcesSize); #if BUILDFLAG(ENABLE_PDF_VIEWER) + AddComponentResourceEntries(kPdfResources, kPdfResourcesSize); + // Register strings for the PDF viewer, so that $i18n{} replacements work. base::Value pdf_strings(base::Value::Type::DICTIONARY); pdf_extension_util::AddStrings( diff --git a/spec-main/chromium-spec.ts b/spec-main/chromium-spec.ts index 5cb855e4b4..e0ab9ba958 100644 --- a/spec-main/chromium-spec.ts +++ b/spec-main/chromium-spec.ts @@ -1280,6 +1280,13 @@ describe('chromium features', () => { slashes: true }); + it('successfully loads a PDF file', async () => { + const w = new BrowserWindow({ show: false }); + + w.loadURL(pdfSource); + await emittedOnce(w.webContents, 'did-finish-load'); + }); + it('opens when loading a pdf resource as top level navigation', async () => { const w = new BrowserWindow({ show: false }); w.loadURL(pdfSource);