Browse Source

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
Shelley Vohr 4 years ago
parent
commit
bf6a50c538

+ 1 - 0
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",

+ 4 - 0
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 +=

+ 4 - 5
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)));

+ 3 - 0
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(

+ 7 - 0
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);