New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 809738 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 2
Type: Bug

Blocking:
issue 470472



Sign in to add a comment

Move printer driver interactions to a separate process

Project Member Reported by thestig@chromium.org, Feb 6 2018

Issue description

Currently, the browser process loads printer drivers into memory to interact with them. When printer drivers are incompatible or buggy, interacting with them can cause the entire browser will crash. There have been many bug reports of this nature.

To improve browser stability and provide a better user experience, we should move the printer driver interaction into a separate utility process. Then if a crash occurs due to a printer driver, the utility process dies, but the browser continues to work and can gracefully handle the failure.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5

commit 1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5
Author: rbpotter <rbpotter@chromium.org>
Date: Wed Feb 07 22:36:35 2018

Move printing crash key to components

Split from https://crrev.com/c/902668

Bug: 809738
Change-Id: I6f462c82370238a79baee437eb7020990334e8fd
Reviewed-on: https://chromium-review.googlesource.com/905984
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535166}
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/browser/ui/DEPS
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/browser/ui/webui/print_preview/printer_capabilities.cc
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/common/crash_keys.cc
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/common/crash_keys.h
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/service/cloud_print/DEPS
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/service/cloud_print/print_system_cups.cc
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/service/cloud_print/print_system_win.cc
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/utility/DEPS
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/chrome/utility/printing_handler.cc
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/components/crash/core/common/crash_keys.cc
[modify] https://crrev.com/1b47cd00d813a20c0cbb8ea4a4af4895b1dbfae5/components/crash/core/common/crash_keys.h

Project Member

Comment 3 by bugdroid1@chromium.org, Feb 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8

commit cf03e2818d095a2a21187cc9c58fb32b3c5eadb8
Author: rbpotter <rbpotter@chromium.org>
Date: Fri Feb 23 23:34:17 2018

Move cloud_print_cdd_conversion to components/printing

This function is used outside of cloud print (in webui/print_preview)
and will be needed by the print backend service in future. Split from
https://crrev.com/c/902668

Bug: 809738
Change-Id: I00a668db965e1b179dd87ee19b2d6e37faeba44b
Reviewed-on: https://chromium-review.googlesource.com/912274
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538943}
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/chrome/browser/ui/webui/print_preview/printer_capabilities.cc
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/chrome/common/cloud_print/BUILD.gn
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/chrome/service/cloud_print/DEPS
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/chrome/service/cloud_print/print_system_win.cc
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/components/printing/DEPS
[modify] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/components/printing/common/BUILD.gn
[rename] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/components/printing/common/cloud_print_cdd_conversion.cc
[rename] https://crrev.com/cf03e2818d095a2a21187cc9c58fb32b3c5eadb8/components/printing/common/cloud_print_cdd_conversion.h

Cc: krajshree@chromium.org
Labels: Needs-Feedback
rbpotter@ - Could you please provide consistent reproducible steps with expected and actual results to verify the issue from TE-end.

Thanks...!!
Labels: -Needs-Feedback
So far all that has been changed is refactoring. No changes are expected at this point, so there is nothing to test.
Blocking: 470472
Labels: -M-67 OS-Mac
This can also help Mac mitigate the crash in bug 374359.
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1d2a25684afc592e35ac7a4ec5e3d62b67976b42

commit 1d2a25684afc592e35ac7a4ec5e3d62b67976b42
Author: Patrick Monette <pmonette@chromium.org>
Date: Fri Nov 23 21:27:09 2018

Disable the NtMapViewOfSection hook when printing is initiated

Due to an issue with printing drivers possibly loading third-party DLLs
that mustn't be blocked, initiating a printing operation now disables
the hook in chrome_elf for the remainder of the process' lifetime.

This is a short term solution to allow us to ship third-party blocking.

Bug: 809738, 892294
Change-Id: I0b583197c2b619226e5a4a05836451b9f30eb133
Reviewed-on: https://chromium-review.googlesource.com/c/1312166
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Reviewed-by: Chris Hamilton <chrisha@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Patrick Monette <pmonette@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610672}
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/conflicts/module_database_win.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/conflicts/module_database_win.h
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/conflicts/module_load_attempt_log_listener_win.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/conflicts/third_party_metrics_recorder_win.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/conflicts/third_party_metrics_recorder_win.h
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/printing/DEPS
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/printing/print_preview_dialog_controller.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome/browser/printing/printing_message_filter.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/BUILD.gn
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/chrome_elf_test_stubs.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/chrome_elf_x64.def
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/chrome_elf_x86.def
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/third_party_dlls/hook.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/third_party_dlls/logs.h
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/third_party_dlls/logs_unittest.cc
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/third_party_dlls/main_unittest_exe.cc
[rename] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/third_party_dlls/public_api.cc
[rename] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/chrome_elf/third_party_dlls/public_api.h
[modify] https://crrev.com/1d2a25684afc592e35ac7a4ec5e3d62b67976b42/tools/metrics/histograms/histograms.xml

Sign in to add a comment