summaryrefslogtreecommitdiffstats
path: root/printing/backend
diff options
context:
space:
mode:
authoralekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-05 21:44:45 +0000
committeralekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-05 21:44:45 +0000
commitdfb4a9d16122d903d026b8bba069ca144b8b729c (patch)
tree50fe7d4eaf1321fc9a3e15125a299367aedc7af4 /printing/backend
parented5e116cc02087bb0172ef8aeaac4cc6cf656c70 (diff)
downloadchromium_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.cc4
-rw-r--r--printing/backend/cups_helper_unittest.cc35
-rw-r--r--printing/backend/print_backend.cc17
-rw-r--r--printing/backend/print_backend.h22
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 {