diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-31 20:12:03 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-31 20:12:03 +0000 |
commit | 2b7c6fa283836117c79dbea3b8c57193ca271102 (patch) | |
tree | fd66959e4ef861388db6a7aea2ac84a7de4ccfd7 | |
parent | 135d0a4e737b0f15836a694900994b670ee1a20b (diff) | |
download | chromium_src-2b7c6fa283836117c79dbea3b8c57193ca271102.zip chromium_src-2b7c6fa283836117c79dbea3b8c57193ca271102.tar.gz chromium_src-2b7c6fa283836117c79dbea3b8c57193ca271102.tar.bz2 |
Do all the font UMA work in PdfMetafileSkia::FinishDocument.
BUG=80918
TEST=NONE
Review URL: http://codereview.chromium.org/7057041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87351 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | printing/pdf_metafile_skia.cc | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc index 2558a84..beda36f 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_); |