Skip to content

Commit

Permalink
[CUPS Printing] Pass document name when required by policy.
Browse files Browse the repository at this point in the history
Also, avoid conflating it with title used for rendering.

Bug: 951541
Change-Id: I42058c36be8c584b1275cfae54e9e0d4dd8dcf3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1569139
Reviewed-by: Sean Kau <skau@chromium.org>
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Commit-Queue: Vladislav Kuzkokov <vkuzkokov@chromium.org>
Auto-Submit: Vladislav Kuzkokov <vkuzkokov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#654000}
  • Loading branch information
Vladislav Kuzkokov authored and Commit Bot committed Apr 25, 2019
1 parent 09478f9 commit 9f46117
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,7 @@ void LocalPrinterHandlerChromeos::StartPrint(
settings.SetKey(
kSettingUsername,
base::Value(username.empty() ? kUsernamePlaceholder : username));
settings.SetKey(kSettingJobTitle, base::Value(job_title));
settings.SetKey(kSettingSendUserInfo, base::Value(true));
}
StartLocalPrint(std::move(settings), std::move(print_data),
Expand Down
3 changes: 3 additions & 0 deletions printing/print_job_constants.cc
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ const char kSettingFitToPageScaling[] = "fitToPageScaling";
// Print job duplex mode. Value is an int from DuplexMode enum.
const char kSettingDuplexMode[] = "duplex";

// Job title to be sent to printer.
const char kSettingJobTitle[] = "jobTitle";

// Option to fit source page contents to printer paper size: true if
// selected else false.
const char kSettingFitToPageEnabled[] = "fitToPageEnabled";
Expand Down
1 change: 1 addition & 0 deletions printing/print_job_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ PRINTING_EXPORT extern const float kSettingHeaderFooterInterstice;
PRINTING_EXPORT extern const char kSettingHeaderFooterDate[];
PRINTING_EXPORT extern const char kSettingHeaderFooterTitle[];
PRINTING_EXPORT extern const char kSettingHeaderFooterURL[];
PRINTING_EXPORT extern const char kSettingJobTitle[];
PRINTING_EXPORT extern const char kSettingLandscape[];
PRINTING_EXPORT extern const char kSettingMediaSize[];
PRINTING_EXPORT extern const char kSettingMediaSizeHeightMicrons[];
Expand Down
6 changes: 6 additions & 0 deletions printing/print_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,9 @@ class PRINTING_EXPORT PrintSettings {
void set_username(const std::string& username) { username_ = username; }
const std::string& username() const { return username_; }

void set_job_title(const std::string& job_title) { job_title_ = job_title; }
const std::string& job_title() const { return job_title_; }

void set_pin_value(const std::string& pin_value) { pin_value_ = pin_value; }
const std::string& pin_value() const { return pin_value_; }
#endif
Expand Down Expand Up @@ -291,6 +294,9 @@ class PRINTING_EXPORT PrintSettings {
// Username if it's required by the printer.
std::string username_;

// Job title if it's required by the printer.
std::string job_title_;

// PIN code entered by the user.
std::string pin_value_;
#endif
Expand Down
4 changes: 4 additions & 0 deletions printing/print_settings_conversion.cc
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,10 @@ bool PrintSettingsFromJobSettings(const base::Value& job_settings,
const std::string* username = job_settings.FindStringKey(kSettingUsername);
if (username)
settings->set_username(*username);

const std::string* job_title = job_settings.FindStringKey(kSettingJobTitle);
if (job_title)
settings->set_job_title(*job_title);
}

const std::string* pin_value = job_settings.FindStringKey(kSettingPinValue);
Expand Down
3 changes: 3 additions & 0 deletions printing/print_settings_conversion_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ const char kPrinterSettings[] = R"({
"previewModifiable": true,
"sendUserInfo": true,
"username": "username@domain.net",
"jobTitle": "test.pdf",
"pinValue": "0000"
})";

Expand All @@ -58,6 +59,7 @@ TEST(PrintSettingsConversionTest, ConversionTest) {
#if defined(OS_CHROMEOS)
EXPECT_TRUE(settings.send_user_info());
EXPECT_EQ("username@domain.net", settings.username());
EXPECT_EQ("test.pdf", settings.job_title());
EXPECT_EQ("0000", settings.pin_value());
#endif
}
Expand All @@ -74,6 +76,7 @@ TEST(PrintSettingsConversionTest, ConversionTest_DontSendUsername) {
ASSERT_TRUE(success);
EXPECT_FALSE(settings.send_user_info());
EXPECT_EQ("", settings.username());
EXPECT_EQ("", settings.job_title());
}
#endif

Expand Down
3 changes: 1 addition & 2 deletions printing/printing_context_chromeos.cc
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,7 @@ std::vector<ScopedCupsOption> SettingsToCupsOptions(
ConstructOption(kIppCollate,
GetCollateString(settings.collate()))); // collate
if (settings.send_user_info()) {
options.push_back(
ConstructOption(kIppDocumentName, base::UTF16ToUTF8(settings.title())));
options.push_back(ConstructOption(kIppDocumentName, settings.job_title()));
options.push_back(
ConstructOption(kIppRequestingUserName, settings.username()));
}
Expand Down

0 comments on commit 9f46117

Please sign in to comment.