Chromium Code Reviews| Index: printing/pdf_render_settings.h |
| diff --git a/printing/pdf_render_settings.h b/printing/pdf_render_settings.h |
| index d9e8f9e7801fe134fa689712a33a3eb4f4c9a9aa..a0c0da93d0cc41bb6edee58932d39fe4469611a6 100644 |
| --- a/printing/pdf_render_settings.h |
| +++ b/printing/pdf_render_settings.h |
| @@ -16,14 +16,22 @@ namespace printing { |
| // Defining PDF rendering settings. |
| struct PdfRenderSettings { |
| - PdfRenderSettings() : dpi(0), autorotate(false) {} |
| - PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate) |
| - : area(area), dpi(dpi), autorotate(autorotate) {} |
| + enum class Mode : uint8_t { |
| + NORMAL = 0, |
| +#if defined(OS_WIN) |
| + GDI_TEXT, |
| +#endif |
| + }; |
| + |
| + PdfRenderSettings() : dpi(0), autorotate(false), mode(Mode::NORMAL) {} |
| + PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate, Mode mode) |
| + : area(area), dpi(dpi), autorotate(autorotate), mode(mode) {} |
| ~PdfRenderSettings() {} |
| gfx::Rect area; |
| int dpi; |
| bool autorotate; |
| + Mode mode; |
| }; |
| } // namespace printing |
| @@ -31,19 +39,25 @@ struct PdfRenderSettings { |
| namespace IPC { |
| template <> |
| struct ParamTraits<printing::PdfRenderSettings> { |
| - typedef printing::PdfRenderSettings param_type; |
| + using param_type = printing::PdfRenderSettings; |
| static void Write(base::Pickle* m, const param_type& p) { |
| WriteParam(m, p.area); |
| WriteParam(m, p.dpi); |
| WriteParam(m, p.autorotate); |
| + WriteParam(m, static_cast<uint8_t>(p.mode)); |
| } |
| static bool Read(const base::Pickle* m, |
| base::PickleIterator* iter, |
| param_type* r) { |
| - return ReadParam(m, iter, &r->area) && |
| - ReadParam(m, iter, &r->dpi) && |
| - ReadParam(m, iter, &r->autorotate); |
| + uint8_t mode = 0; |
| + bool ret = ReadParam(m, iter, &r->area) && |
| + ReadParam(m, iter, &r->dpi) && |
| + ReadParam(m, iter, &r->autorotate) && |
| + ReadParam(m, iter, &mode); |
| + if (ret) |
| + r->mode = static_cast<printing::PdfRenderSettings::Mode>(mode); |
|
Tom Sepez
2017/01/23 21:14:08
Need to validate that mode is in range here or use
Vitaly Buka (NO REVIEWS)
2017/01/23 22:03:30
Better to use IPC macros
rbpotter
2017/01/24 02:22:01
Done.
I switched the entire structure to use the
|
| + return ret; |
| } |
| static void Log(const param_type& p, std::string* l) { |
| @@ -52,6 +66,8 @@ struct ParamTraits<printing::PdfRenderSettings> { |
| LogParam(p.dpi, l); |
| l->append(", "); |
| LogParam(p.autorotate, l); |
| + l->append(", "); |
| + LogParam(static_cast<uint8_t>(p.mode), l); |
| } |
| }; |