diff --git a/chromium/trunk/PKGBUILD b/chromium/trunk/PKGBUILD index fb0a738..e7f6ff6 100644 --- a/chromium/trunk/PKGBUILD +++ b/chromium/trunk/PKGBUILD @@ -26,7 +26,8 @@ source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgna chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch chromium-system-libpng-r0.patch chromium-ppapi-r0.patch - chromium-no-pnacl-r0.patch) + chromium-no-pnacl-r0.patch + chromium-nocups.patch) sha256sums=('15be31be9614c68b0bc3efc594eea65942a7bb433819736279a60ac4228313e5' '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322' '478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232' @@ -34,7 +35,8 @@ sha256sums=('15be31be9614c68b0bc3efc594eea65942a7bb433819736279a60ac4228313e5' 'c1baf14121502efbc2a31b64029dcafa0e28ca5b71ad0e28a3c6342d18198615' 'd0a8b8f5b3d25be4bd2f060422c467dc827997a0b69dfc34a6d18dc9d2f36868' '1f4b57670d317959bc2dc60e5d2a44aa8fc6028f7ed540cdb502fa0aa99c81bd' - '44061e1648ac4674ad0b9990c265c96c33de435679f6854e4b54a421d81cbe6c') + '44061e1648ac4674ad0b9990c265c96c33de435679f6854e4b54a421d81cbe6c' + '4e29e4c5b8e5c369939aaa66235debb89c74fa03293caeb5196d0c40c098356e') # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # Note: These are for Arch Linux use ONLY. For your own distribution, please @@ -61,6 +63,9 @@ build() { # Fix build without NaCl pnacl toolchain (patch from Gentoo) patch -Np0 -i "$srcdir/chromium-no-pnacl-r0.patch" + # https://chromiumcodereview.appspot.com/12374003 + patch -Np1 -i "$srcdir/chromium-nocups.patch" + # Missing gyp files in tarball (http://crbug.com/144823) sed -i '/nacl_test_data\.gyp/d' chrome/chrome_tests.gypi diff --git a/chromium/trunk/chromium-nocups.patch b/chromium/trunk/chromium-nocups.patch new file mode 100644 index 0000000..a619180 --- /dev/null +++ b/chromium/trunk/chromium-nocups.patch @@ -0,0 +1,65 @@ +commit b824ad5ee90704db9942857145f04b8542924b12 +Author: noamsml@google.com +Date: Thu Feb 28 19:00:49 2013 +0000 + + Fix crash in chrome when trying to print with CUPS down + + This is a workaround for GTK bug https://bugzilla.gnome.org/show_bug.cgi?id=686838. + + Removed listing of printers when setting up default settings in native print dialog, + as it is not necessary (behavior verified to be unchanged). Added check to ensure + print preview dialog does not try to instantiate a printer list when selecting a + cloud printer, as this is also unnecessary (again, no behavior change). + + BUG=160574 + + + Review URL: https://chromiumcodereview.appspot.com/12374003 + + git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185284 0039d316-1c4b-4281-b951-d872f2087c98 +--- + chrome/browser/printing/print_dialog_gtk.cc | 18 +++++------------- + 1 file changed, 5 insertions(+), 13 deletions(-) + +diff --git a/chrome/browser/printing/print_dialog_gtk.cc b/chrome/browser/printing/print_dialog_gtk.cc +index 70fe427..d8cb419 100644 +--- a/chrome/browser/printing/print_dialog_gtk.cc ++++ b/chrome/browser/printing/print_dialog_gtk.cc +@@ -130,21 +130,11 @@ PrintDialogGtk::~PrintDialogGtk() { + + void PrintDialogGtk::UseDefaultSettings() { + DCHECK(!page_setup_); ++ DCHECK(!printer_); + + // |gtk_settings_| is a new object. + gtk_settings_ = gtk_print_settings_new(); +- +- scoped_ptr printer_list(new GtkPrinterList); +- printer_ = printer_list->default_printer(); +- if (printer_) { +- g_object_ref(printer_); +- gtk_print_settings_set_printer(gtk_settings_, +- gtk_printer_get_name(printer_)); +- page_setup_ = gtk_printer_get_default_page_size(printer_); +- } +- +- if (!page_setup_) +- page_setup_ = gtk_page_setup_new(); ++ page_setup_ = gtk_page_setup_new(); + + // No page range to initialize for default settings. + PageRanges ranges_vector; +@@ -173,10 +163,12 @@ bool PrintDialogGtk::UpdateSettings(const base::DictionaryValue& job_settings, + return false; + } + ++ bool is_cloud_print = job_settings.HasKey(printing::kSettingCloudPrintId); ++ + if (!gtk_settings_) + gtk_settings_ = gtk_print_settings_new(); + +- if (!print_to_pdf) { ++ if (!print_to_pdf && !is_cloud_print) { + scoped_ptr printer_list(new GtkPrinterList); + printer_ = printer_list->GetPrinterWithName(device_name.c_str()); + if (printer_) {