mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
* chore: bump chromium to 112.0.5615.10 * 4240798: Get rid of ShowInvalidPrinterSettingsError() in PrintManagerHost. https://chromium-review.googlesource.com/c/chromium/src/+/4240798 * chore: fixup patch * 4173660: Remove unused argument in BeforeUnloadCompleted Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4173660 (cherry picked from commit6d3934f743) * refactor: base value type DICTIONARY replaced with DICT Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4198081 (cherry picked from commitb7acb5c9a4) * 4251237: [StorageKey Cleanup] (2) Rename CreateFirstParty constructors Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4251237 (cherry picked from commit31bdd549d0) * refactor: rename latency metrics Refs: https://chromium-review.googlesource.com/c/chromium/src/+/4048262 (cherry picked from commit1e1b97d387) * refactor: base::span explicit conversion checks Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4219636 (cherry picked from commit020e8c6aae) * chore: iwyu net/cert/cert_verify_result.h (cherry picked from commit24583f5583) * 4258446: Move network::mojom::ClearDataFilter to its own mojom file https://chromium-review.googlesource.com/c/chromium/src/+/4258446 (cherry picked from commit5ff47109cd) * refactor: refactoring geolocation manager Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4161603 (cherry picked from commit1eeaafb45c) * refactor: use modern base values in tracing Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4210912 (cherry picked from commit192c988c1e) * refactor: add sanitized context to clipboard write Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4178264 (cherry picked from commit3ef020b5e5) * 4256866: [Extensions] Replace GetHooksForAPI with a RegisterHooksDelegate Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4256866 (cherry picked from commitb9d905216a) * refactor: s/Rect/WindowFeatures Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4167001 (cherry picked from commit12d121265b) * 4226656: Add response url to SimpleURLLoader::OnRedirectCallback Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4226656 (cherry picked from commit9f66c47930) * Better approach for ShowInvalidPrinterSettingsError() removal * build: use xcode 14 (cherry picked from commit06bd2c0442) * build: update appveyor image 4072083: New toolchain for Windows 11 10.0.22621.755 SDK | https://chromium-review.googlesource.com/c/chromium/src/+/4072083 (cherry picked from commit437c49898f) * 4261434: Remove browser_watcher (1/3): Move ExitCodeWatcher to chrome/app https://chromium-review.googlesource.com/c/chromium/src/+/4261434 (cherry picked from commitedc90d9488) * 4128591: Enable large pdbs by default https://chromium-review.googlesource.com/c/chromium/src/+/4128591 (cherry picked from commite76f2c3f16) * move dbgcore/dbghelp to extensions_to_skip (cherry picked from commit8eeb555145) * 4273450: dpwas: Send announcement when live regions changed https://chromium-review.googlesource.com/c/chromium/src/+/4273450 * 4277708: win7dep: Remove ResolveCoreWinRTStringDelayload https://chromium-review.googlesource.com/c/chromium/src/+/4277708 * Roll clang+rust llvmorg-17-init-3170-g6e30dffe-1 : llvmorg-17-init-3874-g93a2fecc-1 / [skipping Rust] https://chromium-review.googlesource.com/c/chromium/src/+/4308214 * 4285717: Copy d3dcompiler_47.dll on ARM64 Windows builds https://chromium-review.googlesource.com/c/angle/angle/+/4285717 * Revert "Roll clang+rust llvmorg-17-init-3170-g6e30dffe-1 : llvmorg-17-init-3874-g93a2fecc-1 / [skipping Rust]" This reverts commit71080f4f2d. * Revert Roll clang+rust llvmorg-16-init-17653-g39da55e8-3 This clang roll breaks Linux arm 32-bit --------- Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> Co-authored-by: Samuel Attard <marshallofsound@electronjs.org> Co-authored-by: Jeremy Rose <jeremya@chromium.org> Co-authored-by: electron-patch-conflict-fixer[bot] <83340002+electron-patch-conflict-fixer[bot]@users.noreply.github.com>
87 lines
3.4 KiB
Diff
87 lines
3.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
Date: Mon, 17 Jan 2022 23:47:54 +0100
|
|
Subject: fix: crash when saving edited PDF files
|
|
|
|
This commit fixes a crash that persists any time a user attempts to
|
|
download an edited PDF. This was happening because the logic flow for
|
|
downloading of any edited PDF triggers a call to
|
|
chrome.fileSystem.chooseEntry, which we do not support and which
|
|
therefore causes unmapped page access crashes.
|
|
|
|
This patch can be removed should we choose to support chrome.fileSystem
|
|
or support it enough to fix the crash.
|
|
|
|
diff --git a/chrome/browser/resources/pdf/pdf_viewer.ts b/chrome/browser/resources/pdf/pdf_viewer.ts
|
|
index b68423ffe09246ec7ba2935873774c7c452b5952..936ab4b4e12546ca93da27f264559c97f51509ae 100644
|
|
--- a/chrome/browser/resources/pdf/pdf_viewer.ts
|
|
+++ b/chrome/browser/resources/pdf/pdf_viewer.ts
|
|
@@ -895,26 +895,12 @@ export class PdfViewerElement extends PdfViewerBaseElement {
|
|
dataArray = [result.dataToSave];
|
|
}
|
|
|
|
+ const a = document.createElement('a');
|
|
+ a.download = this.attachments_[index].name;
|
|
const blob = new Blob(dataArray);
|
|
- const fileName = this.attachments_[index].name;
|
|
- chrome.fileSystem.chooseEntry(
|
|
- {type: 'saveFile', suggestedName: fileName},
|
|
- (entry?: FileSystemFileEntry) => {
|
|
- if (chrome.runtime.lastError) {
|
|
- if (chrome.runtime.lastError.message !== 'User cancelled') {
|
|
- console.error(
|
|
- 'chrome.fileSystem.chooseEntry failed: ' +
|
|
- chrome.runtime.lastError.message);
|
|
- }
|
|
- return;
|
|
- }
|
|
- entry!.createWriter((writer: FileWriter) => {
|
|
- writer.write(blob);
|
|
- // Unblock closing the window now that the user has saved
|
|
- // successfully.
|
|
- chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false);
|
|
- });
|
|
- });
|
|
+ a.href = URL.createObjectURL(blob);
|
|
+ a.click();
|
|
+ URL.revokeObjectURL(a.href);
|
|
}
|
|
|
|
/**
|
|
@@ -1022,30 +1008,12 @@ export class PdfViewerElement extends PdfViewerBaseElement {
|
|
fileName = fileName + '.pdf';
|
|
}
|
|
|
|
- // Create blob before callback to avoid race condition.
|
|
+ const a = document.createElement('a');
|
|
+ a.download = fileName;
|
|
const blob = new Blob([result.dataToSave], {type: 'application/pdf'});
|
|
- chrome.fileSystem.chooseEntry(
|
|
- {
|
|
- type: 'saveFile',
|
|
- accepts: [{description: '*.pdf', extensions: ['pdf']}],
|
|
- suggestedName: fileName,
|
|
- },
|
|
- (entry?: FileSystemFileEntry) => {
|
|
- if (chrome.runtime.lastError) {
|
|
- if (chrome.runtime.lastError.message !== 'User cancelled') {
|
|
- console.error(
|
|
- 'chrome.fileSystem.chooseEntry failed: ' +
|
|
- chrome.runtime.lastError.message);
|
|
- }
|
|
- return;
|
|
- }
|
|
- entry!.createWriter((writer: FileWriter) => {
|
|
- writer.write(blob);
|
|
- // Unblock closing the window now that the user has saved
|
|
- // successfully.
|
|
- chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false);
|
|
- });
|
|
- });
|
|
+ a.href = URL.createObjectURL(blob);
|
|
+ a.click();
|
|
+ URL.revokeObjectURL(a.href);
|
|
|
|
// <if expr="enable_ink">
|
|
// Saving in Annotation mode is destructive: crbug.com/919364
|