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

Side by Side Diff: chrome/browser/mac/keystone_glue.mm

Issue 593243002: Profile_Metrics integration with Keystone (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove separate attribute header; refactor setActive methods. Created 6 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 #import "chrome/browser/mac/keystone_glue.h" 5 #import "chrome/browser/mac/keystone_glue.h"
6 6
7 #include <sys/mount.h> 7 #include <sys/mount.h>
8 #include <sys/param.h> 8 #include <sys/param.h>
9 #include <sys/stat.h> 9 #include <sys/stat.h>
10 10
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // outer application bundle's Info.plist, not the framework's Info.plist. 112 // outer application bundle's Info.plist, not the framework's Info.plist.
113 - (NSString*)appInfoPlistPath; 113 - (NSString*)appInfoPlistPath;
114 114
115 // Returns a dictionary containing parameters to be used for a KSRegistration 115 // Returns a dictionary containing parameters to be used for a KSRegistration
116 // -registerWithParameters: or -promoteWithParameters:authorization: call. 116 // -registerWithParameters: or -promoteWithParameters:authorization: call.
117 - (NSDictionary*)keystoneParameters; 117 - (NSDictionary*)keystoneParameters;
118 118
119 // Called when Keystone registration completes. 119 // Called when Keystone registration completes.
120 - (void)registrationComplete:(NSNotification*)notification; 120 - (void)registrationComplete:(NSNotification*)notification;
121 121
122 // Set the registration active and pass profile count parameters.
123 - (void)setRegistrationActive;
124
122 // Called periodically to announce activity by pinging the Keystone server. 125 // Called periodically to announce activity by pinging the Keystone server.
123 - (void)markActive:(NSTimer*)timer; 126 - (void)markActive:(NSTimer*)timer;
124 127
125 // Called when an update check or update installation is complete. Posts the 128 // Called when an update check or update installation is complete. Posts the
126 // kAutoupdateStatusNotification notification to the default notification 129 // kAutoupdateStatusNotification notification to the default notification
127 // center. 130 // center.
128 - (void)updateStatus:(AutoupdateStatus)status version:(NSString*)version; 131 - (void)updateStatus:(AutoupdateStatus)status version:(NSString*)version;
129 132
130 // Returns the version of the currently-installed application on disk. 133 // Returns the version of the currently-installed application on disk.
131 - (NSString*)currentlyInstalledVersion; 134 - (NSString*)currentlyInstalledVersion;
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 url_, ksr::KSRegistrationServerURLStringKey, 487 url_, ksr::KSRegistrationServerURLStringKey,
485 preserveTTToken, ksr::KSRegistrationPreserveTrustedTesterTokenKey, 488 preserveTTToken, ksr::KSRegistrationPreserveTrustedTesterTokenKey,
486 tagValue, ksr::KSRegistrationTagKey, 489 tagValue, ksr::KSRegistrationTagKey,
487 appInfoPlistPath, ksr::KSRegistrationTagPathKey, 490 appInfoPlistPath, ksr::KSRegistrationTagPathKey,
488 tagKey, ksr::KSRegistrationTagKeyKey, 491 tagKey, ksr::KSRegistrationTagKeyKey,
489 brandPath, ksr::KSRegistrationBrandPathKey, 492 brandPath, ksr::KSRegistrationBrandPathKey,
490 brandKey, ksr::KSRegistrationBrandKeyKey, 493 brandKey, ksr::KSRegistrationBrandKeyKey,
491 nil]; 494 nil];
492 } 495 }
493 496
497 - (void)setRegistrationActive {
498 if (numProfiles_ == 0) {
499 [registration_ setActive];
Mark Mentovai 2014/10/09 21:26:20 What’s the point of this? Why wouldn’t we want to
Mike Lerman 2014/10/10 15:32:29 There should never be zero profiles - that's inval
500 return;
501 }
502
503 NSError* reportingError = nil;
504 KSUnsignedReportingAttribute* numProfilesAttribute =
505 [KSUnsignedReportingAttribute
506 reportingAttributeWithValue:numProfiles_
507 name:@"_NumAccounts"
508 aggregationType:kKSReportingAggregationSum
509 error:&reportingError];
510 if (reportingError != nil)
511 VLOG(INFO) << [reportingError localizedDescription];
Mark Mentovai 2014/10/09 21:26:20 What is VLOG(INFO)? VLOG() takes an integer argume
Mike Lerman 2014/10/10 15:32:29 I suppose so! VLOG and LOG should have a similar i
512
513 reportingError = nil;
514 KSUnsignedReportingAttribute* numSignedInProfilesAttribute =
515 [KSUnsignedReportingAttribute
516 reportingAttributeWithValue:numSignedInProfiles_
517 name:@"_NumSignedIn"
518 aggregationType:kKSReportingAggregationSum
519 error:&reportingError];
520 if (reportingError != nil)
521 VLOG(INFO) << [reportingError localizedDescription];
522
523 NSArray* profileCountsInformation =
524 [NSArray arrayWithObjects:numProfilesAttribute,
525 numSignedInProfilesAttribute,
526 nil];
527
528 reportingError = nil;
529 if (![registration_ setActiveWithReportingAttributes:profileCountsInformation
530 error:&reportingError])
531 VLOG(INFO) << [reportingError localizedDescription];
532 }
533
494 - (void)registerWithKeystone { 534 - (void)registerWithKeystone {
495 [self updateStatus:kAutoupdateRegistering version:nil]; 535 [self updateStatus:kAutoupdateRegistering version:nil];
496 536
497 NSDictionary* parameters = [self keystoneParameters]; 537 NSDictionary* parameters = [self keystoneParameters];
498 BOOL result; 538 BOOL result;
499 { 539 {
500 // TODO(shess): Allows Keystone to throw an exception when 540 // TODO(shess): Allows Keystone to throw an exception when
501 // /usr/bin/python does not exist (really!). 541 // /usr/bin/python does not exist (really!).
502 // http://crbug.com/86221 and http://crbug.com/87931 542 // http://crbug.com/86221 and http://crbug.com/87931
503 base::mac::ScopedNSExceptionEnabler enabler; 543 base::mac::ScopedNSExceptionEnabler enabler;
504 result = [registration_ registerWithParameters:parameters]; 544 result = [registration_ registerWithParameters:parameters];
505 } 545 }
506 if (!result) { 546 if (!result) {
507 [self updateStatus:kAutoupdateRegisterFailed version:nil]; 547 [self updateStatus:kAutoupdateRegisterFailed version:nil];
508 return; 548 return;
509 } 549 }
510 550
511 // Upon completion, ksr::KSRegistrationDidCompleteNotification will be 551 // Upon completion, ksr::KSRegistrationDidCompleteNotification will be
512 // posted, and -registrationComplete: will be called. 552 // posted, and -registrationComplete: will be called.
513 553
514 // Mark an active RIGHT NOW; don't wait an hour for the first one. 554 // Mark an active RIGHT NOW; don't wait an hour for the first one.
515 [registration_ setActive]; 555 [self setRegistrationActive];
516 556
517 // Set up hourly activity pings. 557 // Set up hourly activity pings.
518 timer_ = [NSTimer scheduledTimerWithTimeInterval:60 * 60 // One hour 558 timer_ = [NSTimer scheduledTimerWithTimeInterval:60 * 60 // One hour
519 target:self 559 target:self
520 selector:@selector(markActive:) 560 selector:@selector(markActive:)
521 userInfo:registration_ 561 userInfo:nil
522 repeats:YES]; 562 repeats:YES];
523 } 563 }
524 564
525 - (void)registrationComplete:(NSNotification*)notification { 565 - (void)registrationComplete:(NSNotification*)notification {
526 NSDictionary* userInfo = [notification userInfo]; 566 NSDictionary* userInfo = [notification userInfo];
527 if ([[userInfo objectForKey:ksr::KSRegistrationStatusKey] boolValue]) { 567 if ([[userInfo objectForKey:ksr::KSRegistrationStatusKey] boolValue]) {
528 if ([self isSystemTicketDoomed]) { 568 if ([self isSystemTicketDoomed]) {
529 [self updateStatus:kAutoupdateNeedsPromotion version:nil]; 569 [self updateStatus:kAutoupdateNeedsPromotion version:nil];
530 } else { 570 } else {
531 [self updateStatus:kAutoupdateRegistered version:nil]; 571 [self updateStatus:kAutoupdateRegistered version:nil];
532 } 572 }
533 } else { 573 } else {
534 // Dump registration_? 574 // Dump registration_?
535 [self updateStatus:kAutoupdateRegisterFailed version:nil]; 575 [self updateStatus:kAutoupdateRegisterFailed version:nil];
536 } 576 }
537 } 577 }
538 578
539 - (void)stopTimer { 579 - (void)stopTimer {
540 [timer_ invalidate]; 580 [timer_ invalidate];
541 } 581 }
542 582
543 - (void)markActive:(NSTimer*)timer { 583 - (void)markActive:(NSTimer*)timer {
544 KSRegistration* ksr = [timer userInfo]; 584 [self setRegistrationActive];
545 [ksr setActive];
546 } 585 }
547 586
548 - (void)checkForUpdate { 587 - (void)checkForUpdate {
549 DCHECK(![self asyncOperationPending]); 588 DCHECK(![self asyncOperationPending]);
550 589
551 if (!registration_) { 590 if (!registration_) {
552 [self updateStatus:kAutoupdateCheckFailed version:nil]; 591 [self updateStatus:kAutoupdateCheckFailed version:nil];
553 return; 592 return;
554 } 593 }
555 594
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 NSString* tagSuffix = @""; 1081 NSString* tagSuffix = @"";
1043 if (ObsoleteSystemMac::Has32BitOnlyCPU()) { 1082 if (ObsoleteSystemMac::Has32BitOnlyCPU()) {
1044 tagSuffix = [tagSuffix stringByAppendingString:@"-32bit"]; 1083 tagSuffix = [tagSuffix stringByAppendingString:@"-32bit"];
1045 } 1084 }
1046 if ([self wantsFullInstaller]) { 1085 if ([self wantsFullInstaller]) {
1047 tagSuffix = [tagSuffix stringByAppendingString:@"-full"]; 1086 tagSuffix = [tagSuffix stringByAppendingString:@"-full"];
1048 } 1087 }
1049 return tagSuffix; 1088 return tagSuffix;
1050 } 1089 }
1051 1090
1091
1092 - (void)updateProfileCountsWithNumProfiles:(uint32_t)numProfiles
1093 numSignedInProfiles:(uint32_t)numSignedInProfiles {
1094 numProfiles_ = numProfiles;
1095 numSignedInProfiles_ = numSignedInProfiles;
1096 }
1097
1052 @end // @implementation KeystoneGlue 1098 @end // @implementation KeystoneGlue
1053 1099
1054 namespace { 1100 namespace {
1055 1101
1056 std::string BrandCodeInternal() { 1102 std::string BrandCodeInternal() {
1057 KeystoneGlue* keystone_glue = [KeystoneGlue defaultKeystoneGlue]; 1103 KeystoneGlue* keystone_glue = [KeystoneGlue defaultKeystoneGlue];
1058 NSString* brand_path = [keystone_glue brandFilePath]; 1104 NSString* brand_path = [keystone_glue brandFilePath];
1059 1105
1060 if (![brand_path length]) 1106 if (![brand_path length])
1061 return std::string(); 1107 return std::string();
(...skipping 22 matching lines...) Expand all
1084 return [KeystoneGlue defaultKeystoneGlue] != nil; 1130 return [KeystoneGlue defaultKeystoneGlue] != nil;
1085 } 1131 }
1086 1132
1087 base::string16 CurrentlyInstalledVersion() { 1133 base::string16 CurrentlyInstalledVersion() {
1088 KeystoneGlue* keystoneGlue = [KeystoneGlue defaultKeystoneGlue]; 1134 KeystoneGlue* keystoneGlue = [KeystoneGlue defaultKeystoneGlue];
1089 NSString* version = [keystoneGlue currentlyInstalledVersion]; 1135 NSString* version = [keystoneGlue currentlyInstalledVersion];
1090 return base::SysNSStringToUTF16(version); 1136 return base::SysNSStringToUTF16(version);
1091 } 1137 }
1092 1138
1093 } // namespace keystone_glue 1139 } // namespace keystone_glue
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698