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

Side by Side Diff: chrome/app/keystone_glue.h

Issue 339010: Make the About box display existing pending operations instead of firing off a new update check (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/app/keystone_glue.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #ifndef CHROME_APP_KEYSTONE_GLUE_H_ 5 #ifndef CHROME_APP_KEYSTONE_GLUE_H_
6 #define CHROME_APP_KEYSTONE_GLUE_H_ 6 #define CHROME_APP_KEYSTONE_GLUE_H_
7 7
8 #import <Foundation/Foundation.h> 8 #import <Foundation/Foundation.h>
9 #import <base/scoped_nsobject.h> 9 #import <base/scoped_nsobject.h>
10 10
11 // Possible outcomes of -checkForUpdate and -installUpdate. A version may 11 // Possible outcomes of -checkForUpdate and -installUpdate. A version may
12 // accompany some of these, but beware: a version is never required. For 12 // accompany some of these, but beware: a version is never required. For
13 // statuses that can be accompanied by a version, the comment indicates what 13 // statuses that can be accompanied by a version, the comment indicates what
14 // version is referenced. 14 // version is referenced. A notification posted containing an asynchronous
15 // status will always be followed by a notification with a terminal status.
15 enum AutoupdateStatus { 16 enum AutoupdateStatus {
16 kAutoupdateCurrent = 0, // version of the running application 17 kAutoupdateNone = 0, // no version (initial state only)
18 kAutoupdateChecking, // no version (asynchronous operation in progress)
19 kAutoupdateCurrent, // version of the running application
17 kAutoupdateAvailable, // version of the update that is available 20 kAutoupdateAvailable, // version of the update that is available
21 kAutoupdateInstalling, // no version (asynchronous operation in progress)
18 kAutoupdateInstalled, // version of the update that was installed 22 kAutoupdateInstalled, // version of the update that was installed
19 kAutoupdateCheckFailed, // no version 23 kAutoupdateCheckFailed, // no version
20 kAutoupdateInstallFailed // no version 24 kAutoupdateInstallFailed // no version
21 }; 25 };
22 26
23 // kAutoupdateStatusNotification is the name of the notification posted when 27 // kAutoupdateStatusNotification is the name of the notification posted when
24 // -checkForUpdate and -installUpdate complete. This notification will be 28 // -checkForUpdate and -installUpdate complete. This notification will be
25 // sent with with its sender object set to the KeystoneGlue instance sending 29 // sent with with its sender object set to the KeystoneGlue instance sending
26 // the notification. Its userInfo dictionary will contain an AutoupdateStatus 30 // the notification. Its userInfo dictionary will contain an AutoupdateStatus
27 // value as an intValue at key kAutoupdateStatusStatus. If a version is 31 // value as an intValue at key kAutoupdateStatusStatus. If a version is
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 // Return the default Keystone Glue object. 72 // Return the default Keystone Glue object.
69 + (id)defaultKeystoneGlue; 73 + (id)defaultKeystoneGlue;
70 74
71 // Load KeystoneRegistration.framework if present, call into it to register 75 // Load KeystoneRegistration.framework if present, call into it to register
72 // with Keystone, and set up periodic activity pings. 76 // with Keystone, and set up periodic activity pings.
73 - (void)registerWithKeystone; 77 - (void)registerWithKeystone;
74 78
75 // -checkForUpdate launches a check for updates, and -installUpdate begins 79 // -checkForUpdate launches a check for updates, and -installUpdate begins
76 // installing an available update. For each, status will be communicated via 80 // installing an available update. For each, status will be communicated via
77 // a kAutoupdateStatusNotification notification, and will also be available 81 // a kAutoupdateStatusNotification notification, and will also be available
78 // through -recentUpdateStatus. 82 // through -recentNotification.
79 - (void)checkForUpdate; 83 - (void)checkForUpdate;
80 - (void)installUpdate; 84 - (void)installUpdate;
81 85
82 // Accessor for recentNotification_. Returns an autoreleased NSNotification. 86 // Accessor for recentNotification_. Returns an autoreleased NSNotification.
83 - (NSNotification*)recentNotification; 87 - (NSNotification*)recentNotification;
84 88
85 // Clears the saved recentNotification_. 89 // Clears the saved recentNotification_.
86 - (void)clearRecentNotification; 90 - (void)clearRecentNotification;
87 91
92 // Accessor for the kAutoupdateStatusStatus field of recentNotification_'s
93 // userInfo dictionary.
94 - (AutoupdateStatus)recentStatus;
95
96 // Returns YES if an asynchronous operation is pending: if an update check or
97 // installation attempt is currently in progress.
98 - (BOOL)asyncOperationPending;
99
88 @end // @interface KeystoneGlue 100 @end // @interface KeystoneGlue
89 101
90 @interface KeystoneGlue(ExposedForTesting) 102 @interface KeystoneGlue(ExposedForTesting)
91 103
92 // Release the shared instance. Use this in tests to reset the shared 104 // Release the shared instance. Use this in tests to reset the shared
93 // instance in case strange things are done to it for testing purposes. Never 105 // instance in case strange things are done to it for testing purposes. Never
94 // call this from non-test code. 106 // call this from non-test code.
95 + (void)releaseDefaultKeystoneGlue; 107 + (void)releaseDefaultKeystoneGlue;
96 108
97 // Load any params we need for configuring Keystone. 109 // Load any params we need for configuring Keystone.
98 - (void)loadParameters; 110 - (void)loadParameters;
99 111
100 // Load the Keystone registration object. 112 // Load the Keystone registration object.
101 // Return NO on failure. 113 // Return NO on failure.
102 - (BOOL)loadKeystoneRegistration; 114 - (BOOL)loadKeystoneRegistration;
103 115
104 - (void)stopTimer; 116 - (void)stopTimer;
105 117
106 // Called when a checkForUpdate: notification completes. 118 // Called when a checkForUpdate: notification completes.
107 - (void)checkForUpdateComplete:(NSNotification*)notification; 119 - (void)checkForUpdateComplete:(NSNotification*)notification;
108 120
109 // Called when an installUpdate: notification completes. 121 // Called when an installUpdate: notification completes.
110 - (void)installUpdateComplete:(NSNotification*)notification; 122 - (void)installUpdateComplete:(NSNotification*)notification;
111 123
112 @end // @interface KeystoneGlue(ExposedForTesting) 124 @end // @interface KeystoneGlue(ExposedForTesting)
113 125
114 #endif // CHROME_APP_KEYSTONE_GLUE_H_ 126 #endif // CHROME_APP_KEYSTONE_GLUE_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/app/keystone_glue.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698