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

Unified Diff: chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm

Issue 308433002: Desktop Menu UMA for Mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename variables; subViews to access profileChooserController for UMA Created 6 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: chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
diff --git a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
index 7ff7d0d19c86435755222c9dbc1325ac92a6d478..4e0bc668461ca9bb1cdfaa2bd921722560f49bcd 100644
--- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
+++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
@@ -22,6 +22,7 @@
#include "chrome/browser/profiles/profile_window.h"
#include "chrome/browser/profiles/profiles_state.h"
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
+#include "chrome/browser/signin/signin_header_helper.h"
#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/browser/signin/signin_promo.h"
#include "chrome/browser/ui/browser.h"
@@ -363,12 +364,14 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
base::scoped_nsobject<TransparentBackgroundButton> changePhotoButton_;
// Used to display the "Change" button on hover.
ui::ScopedCrTrackingArea trackingArea_;
+ ProfileChooserController* controller_;
}
- (id)initWithFrame:(NSRect)frameRect
avatarMenu:(AvatarMenu*)avatarMenu
profileIcon:(const gfx::Image&)profileIcon
- editingAllowed:(BOOL)editingAllowed;
+ editingAllowed:(BOOL)editingAllowed
+ withController:(ProfileChooserController*)controller;
// Called when the "Change" button is clicked.
- (void)editPhoto:(id)sender;
@@ -389,9 +392,11 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (id)initWithFrame:(NSRect)frameRect
avatarMenu:(AvatarMenu*)avatarMenu
profileIcon:(const gfx::Image&)profileIcon
- editingAllowed:(BOOL)editingAllowed {
+ editingAllowed:(BOOL)editingAllowed
+ withController:(ProfileChooserController*)controller {
if ((self = [super initWithFrame:frameRect])) {
avatarMenu_ = avatarMenu;
+ controller_ = controller;
[self setImage:CreateProfileImage(
profileIcon, kLargeImageSide).ToNSImage()];
@@ -430,6 +435,8 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (void)editPhoto:(id)sender {
avatarMenu_->EditProfile(avatarMenu_->GetActiveProfileIndex());
+ [controller_
+ postActionPerformed:ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_IMAGE];
}
- (void)mouseEntered:(NSEvent*)event {
@@ -457,12 +464,14 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
@private
base::scoped_nsobject<NSTextField> profileNameTextField_;
Profile* profile_; // Weak.
+ ProfileChooserController* controller_;
}
- (id)initWithFrame:(NSRect)frameRect
profile:(Profile*)profile
profileName:(NSString*)profileName
- editingAllowed:(BOOL)editingAllowed;
+ editingAllowed:(BOOL)editingAllowed
+ withController:(ProfileChooserController*)controller;
// Called when the button is clicked.
- (void)showEditableView:(id)sender;
@@ -475,9 +484,11 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (id)initWithFrame:(NSRect)frameRect
profile:(Profile*)profile
profileName:(NSString*)profileName
- editingAllowed:(BOOL)editingAllowed {
+ editingAllowed:(BOOL)editingAllowed
+ withController:(ProfileChooserController*)controller {
if ((self = [super initWithFrame:frameRect])) {
profile_ = profile;
+ controller_ = controller;
[self setBordered:NO];
[self setFont:[NSFont labelFontOfSize:kTitleFontSize]];
@@ -533,6 +544,8 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
// Empty profile names are not allowed, and are treated as a cancel.
if ([text length] > 0) {
profiles::UpdateProfileName(profile_, base::SysNSStringToUTF16(text));
+ [controller_
+ postActionPerformed:ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_NAME];
[self setTitle:text];
}
[profileNameTextField_ setHidden:YES];
@@ -737,7 +750,6 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (NSButton*)accountButtonWithRect:(NSRect)rect
title:(const std::string&)title
tag:(int)tag;
-
@end
@implementation ProfileChooserController
@@ -773,6 +785,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (IBAction)lockProfile:(id)sender {
profiles::LockProfile(browser_->profile());
+ [self postActionPerformed:ProfileMetrics::PROFILE_DESKTOP_MENU_LOCK];
}
- (IBAction)showInlineSigninPage:(id)sender {
@@ -785,6 +798,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (IBAction)addAccount:(id)sender {
[self initMenuContentsWithView:profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT];
+ [self postActionPerformed:ProfileMetrics::PROFILE_DESKTOP_MENU_ADD_ACCT];
}
- (IBAction)navigateBackFromSigninPage:(id)sender {
@@ -816,6 +830,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
DCHECK(!accountIdToRemove_.empty());
ProfileOAuth2TokenServiceFactory::GetPlatformSpecificForProfile(
browser_->profile())->RevokeCredentials(accountIdToRemove_);
+ [self postActionPerformed:ProfileMetrics::PROFILE_DESKTOP_MENU_REMOVE_ACCT];
accountIdToRemove_.clear();
[self initMenuContentsWithView:profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT];
@@ -875,7 +890,8 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
- (id)initWithBrowser:(Browser*)browser
anchoredAt:(NSPoint)point
- withMode:(profiles::BubbleViewMode)mode {
+ withMode:(profiles::BubbleViewMode)mode
+ withServiceType:(signin::GAIAServiceType)serviceType {
base::scoped_nsobject<InfoBubbleWindow> window([[InfoBubbleWindow alloc]
initWithContentRect:ui::kWindowSizeDeterminedLater
styleMask:NSBorderlessWindowMask
@@ -889,6 +905,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
viewMode_ = mode;
tutorialMode_ = profiles::TUTORIAL_MODE_NONE;
observer_.reset(new ActiveProfileObserverBridge(self, browser_));
+ serviceType_ = serviceType;
avatarMenu_.reset(new AvatarMenu(
&g_browser_process->profile_manager()->GetProfileInfoCache(),
@@ -1031,7 +1048,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
}
[container setFrameSize:NSMakeSize(kFixedMenuWidth, yOffset)];
- return container.autorelease();;
+ return container.autorelease();
}
- (NSView*)buildPreviewTutorialIfNeeded:(const AvatarMenu::Item&)item {
@@ -1215,7 +1232,8 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
profile:browser_->profile()
profileName:base::SysUTF16ToNSString(
profiles::GetAvatarNameForProfile(browser_->profile()))
- editingAllowed:editingAllowed]);
+ editingAllowed:editingAllowed
+ withController:self]);
[container addSubview:profileName];
yOffset = NSMaxY([profileName frame]);
@@ -1228,7 +1246,8 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
kLargeImageSide, kLargeImageSide)
avatarMenu:avatarMenu_.get()
profileIcon:item.icon
- editingAllowed:!isGuestSession_]);
+ editingAllowed:!isGuestSession_
+ withController:self]);
[container addSubview:iconView];
yOffset = NSMaxY([iconView frame]);
@@ -1719,4 +1738,9 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
return button.autorelease();
}
+- (void)postActionPerformed:(ProfileMetrics::ProfileDesktopMenu)action {
+ ProfileMetrics::LogProfileDesktopMenu(action, serviceType_);
+ serviceType_ = signin::GAIA_SERVICE_TYPE_NONE;
+}
+
@end

Powered by Google App Engine
This is Rietveld 408576698