summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-31 20:12:03 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-31 20:12:03 +0000
commit2b7c6fa283836117c79dbea3b8c57193ca271102 (patch)
treefd66959e4ef861388db6a7aea2ac84a7de4ccfd7
parent135d0a4e737b0f15836a694900994b670ee1a20b (diff)
downloadchromium_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.cc36
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_);