| Index: printing/pdf_metafile_skia.cc
|
| diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc
|
| index 2558a8453a95f34229ee906e3bb17470a90b130e..beda36f8ae488472fdc2291c6332a401e87a1640 100644
|
| --- a/printing/pdf_metafile_skia.cc
|
| +++ b/printing/pdf_metafile_skia.cc
|
| @@ -22,18 +22,12 @@
|
| #include "ui/gfx/rect.h"
|
| #include "ui/gfx/size.h"
|
|
|
| -namespace {
|
| - typedef base::hash_map<SkFontID, SkAdvancedTypefaceMetrics::FontType>
|
| - FontTypeMap;
|
| -};
|
| -
|
| namespace printing {
|
|
|
| struct PdfMetafileSkiaData {
|
| SkRefPtr<SkPDFDevice> current_page_;
|
| SkPDFDocument pdf_doc_;
|
| SkDynamicMemoryWStream pdf_stream_;
|
| - FontTypeMap font_type_stats_;
|
| };
|
|
|
| PdfMetafileSkia::~PdfMetafileSkia() {}
|
| @@ -81,13 +75,6 @@ bool PdfMetafileSkia::StartPage(const gfx::Size& page_size,
|
| bool PdfMetafileSkia::FinishPage() {
|
| DCHECK(data_->current_page_.get());
|
|
|
| - const SkTDArray<SkPDFFont*>& font_resources =
|
| - data_->current_page_->getFontResources();
|
| - for (int i = 0; i < font_resources.count(); i++) {
|
| - SkFontID key = font_resources[i]->typeface()->uniqueID();
|
| - data_->font_type_stats_[key] = font_resources[i]->getType();
|
| - }
|
| -
|
| data_->pdf_doc_.appendPage(data_->current_page_);
|
| data_->current_page_ = NULL;
|
| return true;
|
| @@ -101,13 +88,22 @@ bool PdfMetafileSkia::FinishDocument() {
|
| if (data_->current_page_.get())
|
| FinishPage();
|
|
|
| - for (FontTypeMap::const_iterator it = data_->font_type_stats_.begin();
|
| - it != data_->font_type_stats_.end();
|
| - it++) {
|
| - UMA_HISTOGRAM_ENUMERATION(
|
| - "PrintPreview.FontType",
|
| - it->second,
|
| - SkAdvancedTypefaceMetrics::kNotEmbeddable_Font + 1);
|
| + base::hash_set<SkFontID> font_set;
|
| +
|
| + const SkTDArray<SkPDFPage*>& pages = data_->pdf_doc_.getPages();
|
| + for (int page_number = 0; page_number < pages.count(); page_number++) {
|
| + const SkTDArray<SkPDFFont*>& font_resources =
|
| + pages[page_number]->getFontResources();
|
| + for (int font = 0; font < font_resources.count(); font++) {
|
| + SkFontID font_id = font_resources[font]->typeface()->uniqueID();
|
| + if (font_set.find(font_id) == font_set.end()) {
|
| + font_set.insert(font_id);
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "PrintPreview.FontType",
|
| + font_resources[font]->getType(),
|
| + SkAdvancedTypefaceMetrics::kNotEmbeddable_Font + 1);
|
| + }
|
| + }
|
| }
|
|
|
| return data_->pdf_doc_.emitPDF(&data_->pdf_stream_);
|
|
|