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

Unified Diff: ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm

Issue 2894513002: Adding tools menu responsiveness metric. (Closed)
Patch Set: Tweak to metric description summary Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm
diff --git a/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm b/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm
index e6bd95496bce10cbe3a5a71d22163a90f2dbbd75..09b81d46bd2271edaa03ecc0fdae66dca578546c 100644
--- a/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm
+++ b/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.mm
@@ -12,6 +12,7 @@
#include "base/mac/objc_property_releaser.h"
#include "base/mac/scoped_nsobject.h"
#include "base/metrics/field_trial.h"
+#include "base/metrics/histogram_macros.h"
#include "components/strings/grit/components_strings.h"
#include "ios/chrome/browser/experimental_flags.h"
#import "ios/chrome/browser/ui/animation_util.h"
@@ -36,7 +37,6 @@
#include "ios/web/public/user_agent.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/l10n/l10n_util_mac.h"
-
using ios::material::TimingFunction;
namespace {
@@ -114,6 +114,10 @@ NS_INLINE void AnimateInViews(NSArray* views,
@property(nonatomic, retain) ToolsMenuCollectionView* menuView;
@property(nonatomic, retain) MDCInkView* touchFeedbackView;
@property(nonatomic, assign) ToolbarType toolbarType;
+// Populated by the configuration object in |initializeMenuWithConfiguration:|
+// stores the time this view controller was requested by the user for the
+// reporting of metrics.
+@property(nonatomic, assign) NSTimeInterval requestStartTime;
// Returns the reading list cell.
- (ReadingListMenuViewCell*)readingListCell;
@@ -128,6 +132,7 @@ NS_INLINE void AnimateInViews(NSArray* views,
@synthesize toolbarType = _toolbarType;
@synthesize menuItems = _menuItems;
@synthesize delegate = _delegate;
+@synthesize requestStartTime = _requestStartTime;
#pragma mark Public methods
@@ -209,6 +214,8 @@ NS_INLINE void AnimateInViews(NSArray* views,
}
- (void)initializeMenuWithConfiguration:(ToolsMenuConfiguration*)configuration {
+ self.requestStartTime = configuration.requestStartTime;
+
if (configuration.readingListMenuNotifier) {
_readingListMenuNotifier.reset(configuration.readingListMenuNotifier);
[configuration.readingListMenuNotifier setDelegate:self];
@@ -434,6 +441,18 @@ NS_INLINE void AnimateInViews(NSArray* views,
[CATransaction
setAnimationTimingFunction:TimingFunction(ios::material::CurveEaseInOut)];
[CATransaction setAnimationDuration:ios::material::kDuration5];
+ [CATransaction setCompletionBlock:^{
+ if (self.requestStartTime != 0) {
+ UMA_HISTOGRAM_TIMES(
+ "Toolbar.ShowToolsMenuResponsiveness",
+ base::TimeDelta::FromSecondsD(
+ [NSDate timeIntervalSinceReferenceDate] - self.requestStartTime));
+ // Reset the start time to ensure that whatever happens, we only record
+ // this once.
+ self.requestStartTime = 0;
+ }
+
+ }];
AnimateInViews([toolsCell allButtons], 10, 0);
AnimateInViews(visibleCells, 0, -10);
[CATransaction commit];
« no previous file with comments | « ios/chrome/browser/ui/toolbar/toolbar_controller.h ('k') | ios/shared/chrome/browser/ui/tools_menu/tools_menu_configuration.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698