Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: pdf/out_of_process_instance.cc

Issue 2398763002: Add font substitution metric for Linux (Closed)
Patch Set: Use histogram instead of action Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "pdf/out_of_process_instance.h" 5 #include "pdf/out_of_process_instance.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> // for min/max() 10 #include <algorithm> // for min/max()
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 150
151 static const char kPPPPdfInterface[] = PPP_PDF_INTERFACE_1; 151 static const char kPPPPdfInterface[] = PPP_PDF_INTERFACE_1;
152 152
153 // Used for UMA. Do not delete entries, and keep in sync with histograms.xml. 153 // Used for UMA. Do not delete entries, and keep in sync with histograms.xml.
154 enum PDFFeatures { 154 enum PDFFeatures {
155 LOADED_DOCUMENT = 0, 155 LOADED_DOCUMENT = 0,
156 HAS_TITLE = 1, 156 HAS_TITLE = 1,
157 HAS_BOOKMARKS = 2, 157 HAS_BOOKMARKS = 2,
158 FEATURES_COUNT 158 FEATURES_COUNT
159 }; 159 };
160 enum PDFFontSubstituted {
161 NO_FONT_SUBST = 0,
162 FONT_SUBSTITUTED = 1,
163 FONT_SUBST_BOOL
164 };
160 165
161 PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) { 166 PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) {
162 pp::Var var; 167 pp::Var var;
163 void* object = pp::Instance::GetPerInstanceObject(instance, kPPPPdfInterface); 168 void* object = pp::Instance::GetPerInstanceObject(instance, kPPPPdfInterface);
164 if (object) { 169 if (object) {
165 var = static_cast<OutOfProcessInstance*>(object)->GetLinkAtPosition( 170 var = static_cast<OutOfProcessInstance*>(object)->GetLinkAtPosition(
166 pp::Point(point)); 171 pp::Point(point));
167 } 172 }
168 return var.Detach(); 173 return var.Detach();
169 } 174 }
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 cursor_(PP_CURSORTYPE_POINTER), 280 cursor_(PP_CURSORTYPE_POINTER),
276 zoom_(1.0), 281 zoom_(1.0),
277 device_scale_(1.0), 282 device_scale_(1.0),
278 full_(false), 283 full_(false),
279 paint_manager_(this, this, true), 284 paint_manager_(this, this, true),
280 first_paint_(true), 285 first_paint_(true),
281 document_load_state_(LOAD_STATE_LOADING), 286 document_load_state_(LOAD_STATE_LOADING),
282 preview_document_load_state_(LOAD_STATE_COMPLETE), 287 preview_document_load_state_(LOAD_STATE_COMPLETE),
283 uma_(this), 288 uma_(this),
284 told_browser_about_unsupported_feature_(false), 289 told_browser_about_unsupported_feature_(false),
290 font_substitution_reported_(false),
285 print_preview_page_count_(0), 291 print_preview_page_count_(0),
286 last_progress_sent_(0), 292 last_progress_sent_(0),
287 recently_sent_find_update_(false), 293 recently_sent_find_update_(false),
288 received_viewport_message_(false), 294 received_viewport_message_(false),
289 did_call_start_loading_(false), 295 did_call_start_loading_(false),
290 stop_scrolling_(false), 296 stop_scrolling_(false),
291 background_color_(0), 297 background_color_(0),
292 top_toolbar_height_(0), 298 top_toolbar_height_(0),
293 accessibility_state_(ACCESSIBILITY_STATE_OFF) { 299 accessibility_state_(ACCESSIBILITY_STATE_OFF) {
294 loader_factory_.Initialize(this); 300 loader_factory_.Initialize(this);
(...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 1205
1200 void OutOfProcessInstance::DocumentLoadComplete(int page_count) { 1206 void OutOfProcessInstance::DocumentLoadComplete(int page_count) {
1201 // Clear focus state for OSK. 1207 // Clear focus state for OSK.
1202 FormTextFieldFocusChange(false); 1208 FormTextFieldFocusChange(false);
1203 1209
1204 DCHECK(document_load_state_ == LOAD_STATE_LOADING); 1210 DCHECK(document_load_state_ == LOAD_STATE_LOADING);
1205 document_load_state_ = LOAD_STATE_COMPLETE; 1211 document_load_state_ = LOAD_STATE_COMPLETE;
1206 UserMetricsRecordAction("PDF.LoadSuccess"); 1212 UserMetricsRecordAction("PDF.LoadSuccess");
1207 uma_.HistogramEnumeration("PDF.DocumentFeature", LOADED_DOCUMENT, 1213 uma_.HistogramEnumeration("PDF.DocumentFeature", LOADED_DOCUMENT,
1208 FEATURES_COUNT); 1214 FEATURES_COUNT);
1215 if (!font_substitution_reported_)
1216 uma_.HistogramEnumeration("PDF.FontSubstituted", NO_FONT_SUBST,
1217 FONT_SUBST_BOOL);
1209 1218
1210 // Note: If we are in print preview mode the scroll location is retained 1219 // Note: If we are in print preview mode the scroll location is retained
1211 // across document loads so we don't want to scroll again and override it. 1220 // across document loads so we don't want to scroll again and override it.
1212 if (IsPrintPreview()) { 1221 if (IsPrintPreview()) {
1213 AppendBlankPrintPreviewPages(); 1222 AppendBlankPrintPreviewPages();
1214 OnGeometryChanged(0, 0); 1223 OnGeometryChanged(0, 0);
1215 } 1224 }
1216 1225
1217 pp::VarDictionary metadata_message; 1226 pp::VarDictionary metadata_message;
1218 metadata_message.Set(pp::Var(kType), pp::Var(kJSMetadataType)); 1227 metadata_message.Set(pp::Var(kType), pp::Var(kJSMetadataType));
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 document_load_state_ = LOAD_STATE_FAILED; 1314 document_load_state_ = LOAD_STATE_FAILED;
1306 paint_manager_.InvalidateRect(pp::Rect(pp::Point(), plugin_size_)); 1315 paint_manager_.InvalidateRect(pp::Rect(pp::Point(), plugin_size_));
1307 1316
1308 // Send a progress value of -1 to indicate a failure. 1317 // Send a progress value of -1 to indicate a failure.
1309 pp::VarDictionary message; 1318 pp::VarDictionary message;
1310 message.Set(pp::Var(kType), pp::Var(kJSLoadProgressType)); 1319 message.Set(pp::Var(kType), pp::Var(kJSLoadProgressType));
1311 message.Set(pp::Var(kJSProgressPercentage), pp::Var(-1)); 1320 message.Set(pp::Var(kJSProgressPercentage), pp::Var(-1));
1312 PostMessage(message); 1321 PostMessage(message);
1313 } 1322 }
1314 1323
1324 void OutOfProcessInstance::FontSubstituted() {
1325 if (font_substitution_reported_)
1326 return;
1327 font_substitution_reported_ = true;
1328 uma_.HistogramEnumeration("PDF.FontSubstituted", FONT_SUBSTITUTED,
1329 FONT_SUBST_BOOL);
1330 }
1331
1315 void OutOfProcessInstance::PreviewDocumentLoadFailed() { 1332 void OutOfProcessInstance::PreviewDocumentLoadFailed() {
1316 UserMetricsRecordAction("PDF.PreviewDocumentLoadFailure"); 1333 UserMetricsRecordAction("PDF.PreviewDocumentLoadFailure");
1317 if (preview_document_load_state_ != LOAD_STATE_LOADING || 1334 if (preview_document_load_state_ != LOAD_STATE_LOADING ||
1318 preview_pages_info_.empty()) { 1335 preview_pages_info_.empty()) {
1319 return; 1336 return;
1320 } 1337 }
1321 1338
1322 preview_document_load_state_ = LOAD_STATE_FAILED; 1339 preview_document_load_state_ = LOAD_STATE_FAILED;
1323 preview_pages_info_.pop(); 1340 preview_pages_info_.pop();
1324 1341
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1534 const pp::FloatPoint& scroll_offset) { 1551 const pp::FloatPoint& scroll_offset) {
1535 float max_x = document_size_.width() * zoom_ - plugin_dip_size_.width(); 1552 float max_x = document_size_.width() * zoom_ - plugin_dip_size_.width();
1536 float x = std::max(std::min(scroll_offset.x(), max_x), 0.0f); 1553 float x = std::max(std::min(scroll_offset.x(), max_x), 0.0f);
1537 float min_y = -top_toolbar_height_; 1554 float min_y = -top_toolbar_height_;
1538 float max_y = document_size_.height() * zoom_ - plugin_dip_size_.height(); 1555 float max_y = document_size_.height() * zoom_ - plugin_dip_size_.height();
1539 float y = std::max(std::min(scroll_offset.y(), max_y), min_y); 1556 float y = std::max(std::min(scroll_offset.y(), max_y), min_y);
1540 return pp::FloatPoint(x, y); 1557 return pp::FloatPoint(x, y);
1541 } 1558 }
1542 1559
1543 } // namespace chrome_pdf 1560 } // namespace chrome_pdf
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698