diff options
Diffstat (limited to 'printing')
-rw-r--r-- | printing/pdf_metafile_skia.cc | 7 | ||||
-rw-r--r-- | printing/print_settings.cc | 11 | ||||
-rw-r--r-- | printing/print_settings.h | 5 |
3 files changed, 22 insertions, 1 deletions
diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc index bb22792..1e7a7d1 100644 --- a/printing/pdf_metafile_skia.cc +++ b/printing/pdf_metafile_skia.cc @@ -10,6 +10,7 @@ #include "base/numerics/safe_conversions.h" #include "base/posix/eintr_wrapper.h" #include "base/time/time.h" +#include "printing/print_settings.h" #include "skia/ext/refptr.h" #include "third_party/skia/include/core/SkData.h" #include "third_party/skia/include/core/SkDocument.h" @@ -163,7 +164,11 @@ bool PdfMetafileSkia::FinishDocument() { pdf_doc->endPage(); } SkTArray<SkDocument::Attribute> info; - info.emplace_back(SkString("Creator"), SkString("Chromium")); + const std::string& user_agent = GetAgent(); + info.emplace_back(SkString("Creator"), + user_agent.empty() + ? SkString("Chromium") + : SkString(user_agent.c_str(), user_agent.size())); SkTime::DateTime now = TimeToSkTime(base::Time::Now()); pdf_doc->setMetadata(info, &now, &now); if (!pdf_doc->close()) diff --git a/printing/print_settings.cc b/printing/print_settings.cc index b1c50c9..7f555f0 100644 --- a/printing/print_settings.cc +++ b/printing/print_settings.cc @@ -5,12 +5,23 @@ #include "printing/print_settings.h" #include "base/atomic_sequence_num.h" +#include "base/lazy_instance.h" #include "base/logging.h" #include "printing/print_job_constants.h" #include "printing/units.h" namespace printing { +base::LazyInstance<std::string> g_user_agent; + +void SetAgent(const std::string& user_agent) { + g_user_agent.Get() = user_agent; +} + +const std::string& GetAgent() { + return g_user_agent.Get(); +} + #if defined(USE_CUPS) void GetColorModelForMode( int color_mode, std::string* color_setting_name, std::string* color_value) { diff --git a/printing/print_settings.h b/printing/print_settings.h index 1f35e90..08c7d56 100644 --- a/printing/print_settings.h +++ b/printing/print_settings.h @@ -26,6 +26,11 @@ PRINTING_EXPORT void GetColorModelForMode(int color_mode, std::string* color_value); #endif +// Inform the printing system that it may embed this user-agent string +// in its output's metadata. +PRINTING_EXPORT void SetAgent(const std::string& user_agent); +PRINTING_EXPORT const std::string& GetAgent(); + // OS-independent print settings. class PRINTING_EXPORT PrintSettings { public: |