diff options
author | alekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-05 21:44:45 +0000 |
---|---|---|
committer | alekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-05 21:44:45 +0000 |
commit | dfb4a9d16122d903d026b8bba069ca144b8b729c (patch) | |
tree | 50fe7d4eaf1321fc9a3e15125a299367aedc7af4 /printing/backend | |
parent | ed5e116cc02087bb0172ef8aeaac4cc6cf656c70 (diff) | |
download | chromium_src-dfb4a9d16122d903d026b8bba069ca144b8b729c.zip chromium_src-dfb4a9d16122d903d026b8bba069ca144b8b729c.tar.gz chromium_src-dfb4a9d16122d903d026b8bba069ca144b8b729c.tar.bz2 |
Convert local printer capabilites to CDD format to unify with cloud printers and PDF printer. This is a necessary step for adding paper size capability to local printers.
BUG=239879
Review URL: https://codereview.chromium.org/313723002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275250 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/backend')
-rw-r--r-- | printing/backend/cups_helper.cc | 4 | ||||
-rw-r--r-- | printing/backend/cups_helper_unittest.cc | 35 | ||||
-rw-r--r-- | printing/backend/print_backend.cc | 17 | ||||
-rw-r--r-- | printing/backend/print_backend.h | 22 |
4 files changed, 52 insertions, 26 deletions
diff --git a/printing/backend/cups_helper.cc b/printing/backend/cups_helper.cc index e183841..981a539 100644 --- a/printing/backend/cups_helper.cc +++ b/printing/backend/cups_helper.cc @@ -365,6 +365,10 @@ bool ParsePpdCapabilities( #if !defined(OS_MACOSX) MarkLpOptions(printer_name, &ppd); #endif + caps.collate_capable = true; + caps.collate_default = true; + caps.copies_capable = true; + ppd_choice_t* duplex_choice = ppdFindMarkedChoice(ppd, kDuplex); if (!duplex_choice) { ppd_option_t* option = ppdFindOption(ppd, kDuplex); diff --git a/printing/backend/cups_helper_unittest.cc b/printing/backend/cups_helper_unittest.cc index 7f2b77c..83dc0a1 100644 --- a/printing/backend/cups_helper_unittest.cc +++ b/printing/backend/cups_helper_unittest.cc @@ -33,10 +33,13 @@ TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorDuplexLongEdge) { printing::PrinterSemanticCapsAndDefaults caps; EXPECT_TRUE(printing::ParsePpdCapabilities("test", test_ppd_data, &caps)); - EXPECT_FALSE(caps.color_changeable); - EXPECT_FALSE(caps.color_default); + EXPECT_TRUE(caps.collate_capable); + EXPECT_TRUE(caps.collate_default); + EXPECT_TRUE(caps.copies_capable); EXPECT_TRUE(caps.duplex_capable); EXPECT_EQ(caps.duplex_default, printing::LONG_EDGE); + EXPECT_FALSE(caps.color_changeable); + EXPECT_FALSE(caps.color_default); } // Test duplex detection code, which regressed in http://crbug.com/103999. @@ -58,10 +61,13 @@ TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorDuplexSimples) { printing::PrinterSemanticCapsAndDefaults caps; EXPECT_TRUE(printing::ParsePpdCapabilities("test", test_ppd_data, &caps)); - EXPECT_FALSE(caps.color_changeable); - EXPECT_FALSE(caps.color_default); + EXPECT_TRUE(caps.collate_capable); + EXPECT_TRUE(caps.collate_default); + EXPECT_TRUE(caps.copies_capable); EXPECT_TRUE(caps.duplex_capable); EXPECT_EQ(caps.duplex_default, printing::SIMPLEX); + EXPECT_FALSE(caps.color_changeable); + EXPECT_FALSE(caps.color_default); } TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorNoDuplex) { @@ -82,10 +88,13 @@ TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorNoDuplex) { printing::PrinterSemanticCapsAndDefaults caps; EXPECT_TRUE(printing::ParsePpdCapabilities("test", test_ppd_data, &caps)); - EXPECT_FALSE(caps.color_changeable); - EXPECT_FALSE(caps.color_default); + EXPECT_TRUE(caps.collate_capable); + EXPECT_TRUE(caps.collate_default); + EXPECT_TRUE(caps.copies_capable); EXPECT_FALSE(caps.duplex_capable); EXPECT_EQ(caps.duplex_default, printing::UNKNOWN_DUPLEX_MODE); + EXPECT_FALSE(caps.color_changeable); + EXPECT_FALSE(caps.color_default); } TEST(PrintBackendCupsHelperTest, TestPpdParsingColorTrueDuplexLongEdge) { @@ -115,10 +124,13 @@ TEST(PrintBackendCupsHelperTest, TestPpdParsingColorTrueDuplexLongEdge) { printing::PrinterSemanticCapsAndDefaults caps; EXPECT_TRUE(printing::ParsePpdCapabilities("test", test_ppd_data, &caps)); - EXPECT_TRUE(caps.color_changeable); - EXPECT_TRUE(caps.color_default); + EXPECT_TRUE(caps.collate_capable); + EXPECT_TRUE(caps.collate_default); + EXPECT_TRUE(caps.copies_capable); EXPECT_TRUE(caps.duplex_capable); EXPECT_EQ(caps.duplex_default, printing::LONG_EDGE); + EXPECT_TRUE(caps.color_changeable); + EXPECT_TRUE(caps.color_default); } TEST(PrintBackendCupsHelperTest, TestPpdParsingColorFalseDuplexLongEdge) { @@ -152,8 +164,11 @@ TEST(PrintBackendCupsHelperTest, TestPpdParsingColorFalseDuplexLongEdge) { printing::PrinterSemanticCapsAndDefaults caps; EXPECT_TRUE(printing::ParsePpdCapabilities("test", test_ppd_data, &caps)); - EXPECT_TRUE(caps.color_changeable); - EXPECT_FALSE(caps.color_default); + EXPECT_TRUE(caps.collate_capable); + EXPECT_TRUE(caps.collate_default); + EXPECT_TRUE(caps.copies_capable); EXPECT_TRUE(caps.duplex_capable); EXPECT_EQ(caps.duplex_default, printing::LONG_EDGE); + EXPECT_TRUE(caps.color_changeable); + EXPECT_FALSE(caps.color_default); } diff --git a/printing/backend/print_backend.cc b/printing/backend/print_backend.cc index 1ec7146..d071201 100644 --- a/printing/backend/print_backend.cc +++ b/printing/backend/print_backend.cc @@ -13,16 +13,19 @@ PrinterBasicInfo::PrinterBasicInfo() PrinterBasicInfo::~PrinterBasicInfo() {} PrinterSemanticCapsAndDefaults::PrinterSemanticCapsAndDefaults() - : color_changeable(false), - color_default(false), -#if defined (OS_WIN) - collate_capable(false), + : collate_capable(false), collate_default(false), copies_capable(false), -#endif duplex_capable(false), - duplex_default(UNKNOWN_DUPLEX_MODE) { -} + duplex_default(UNKNOWN_DUPLEX_MODE), + color_changeable(false), + color_default(false) +#if defined (OS_POSIX) + , + color_model(UNKNOWN_COLOR_MODEL), + bw_model(UNKNOWN_COLOR_MODEL) +#endif +{} PrinterSemanticCapsAndDefaults::~PrinterSemanticCapsAndDefaults() {} diff --git a/printing/backend/print_backend.h b/printing/backend/print_backend.h index 43a2563..30e4512 100644 --- a/printing/backend/print_backend.h +++ b/printing/backend/print_backend.h @@ -38,20 +38,27 @@ struct PRINTING_EXPORT PrinterSemanticCapsAndDefaults { PrinterSemanticCapsAndDefaults(); ~PrinterSemanticCapsAndDefaults(); + bool collate_capable; + bool collate_default; + + bool copies_capable; + + bool duplex_capable; + DuplexMode duplex_default; + bool color_changeable; bool color_default; -#if defined(USE_CUPS) + // These are CUPS specific data, which soon be removed altogether. They are + // not defined under USE_CUPS to do not pull CUPS dependency into common code. +#if defined(OS_POSIX) + // TODO(alekseys): Resolve color model within printing context, do not expose + // it outside of the context. ColorModel color_model; ColorModel bw_model; #endif #if defined(OS_WIN) - bool collate_capable; - bool collate_default; - - bool copies_capable; - struct Paper { std::string name; gfx::Size size_um; @@ -63,9 +70,6 @@ struct PRINTING_EXPORT PrinterSemanticCapsAndDefaults { std::vector<gfx::Size> dpis; gfx::Size default_dpi; #endif - - bool duplex_capable; - DuplexMode duplex_default; }; struct PRINTING_EXPORT PrinterCapsAndDefaults { |