зеркало из https://github.com/mozilla/pjs.git
413709 Don't automatically update unofficial builds. Only put our app.update.url into official builds. Disable update UI if there's no app.update.url. Show a tooltip for disabled items to keep people from getting too confused. r=smorgan
This commit is contained in:
Родитель
b73e32b723
Коммит
632604544b
|
@ -66,6 +66,10 @@ PLATFORM_BUILD_ID_FILE = $(DEPTH)/config/buildid
|
|||
PLATFORM_BUILD_ID := $(shell cat $(PLATFORM_BUILD_ID_FILE))
|
||||
PLATFORM_INI_FILE = ../toolkit/xre/platform.ini
|
||||
|
||||
ifdef MOZILLA_OFFICIAL
|
||||
APP_UPDATE_URL = https://caminobrowser.org/update-check
|
||||
endif
|
||||
|
||||
# For Launch Services compatibility, CFBundleVersion can be at most three
|
||||
# .-separated integers, aaaaaa.bb.cc, with a maximum of 429496.99.99. Use
|
||||
# Camino's major and minor version number and the build date as the basis for
|
||||
|
@ -194,7 +198,8 @@ generated/resources/application/all-camino.js: \
|
|||
$(CM_APP_VERSION_FILE)
|
||||
mkdir -p $(dir $@)
|
||||
sed -e "s/%FOX_APP_VERSION%/$(FOX_APP_VERSION)/" \
|
||||
-e "s/%CM_APP_VERSION%/$(CM_APP_VERSION)/" $< > $@
|
||||
-e "s/%CM_APP_VERSION%/$(CM_APP_VERSION)/" \
|
||||
-e "s@%APP_UPDATE_URL%@$(APP_UPDATE_URL)@" $< > $@
|
||||
|
||||
generated/Info-Camino.plist: \
|
||||
$(srcdir)/Info-Camino.plist.in \
|
||||
|
|
|
@ -107,8 +107,15 @@ static const char kRememberWindowStatePrefName[] = "camino.remember_window_state
|
|||
if ([self getBooleanPref:kRememberWindowStatePrefName withSuccess:&gotPref])
|
||||
[checkboxRememberWindowState setState:NSOnState];
|
||||
|
||||
if ([[NSUserDefaults standardUserDefaults] integerForKey:SUScheduledCheckIntervalKey] > 0)
|
||||
if ([[[NSUserDefaults standardUserDefaults] stringForKey:SUFeedURLKey] length] == 0) {
|
||||
// Disable update checking if there's no feed to check. The tooltip comes
|
||||
// from the main application because it's used there too.
|
||||
[checkboxAutoUpdate setEnabled:NO];
|
||||
[checkboxAutoUpdate setToolTip:NSLocalizedString(@"AutoUpdateDisabledToolTip", @"")];
|
||||
}
|
||||
else if ([[NSUserDefaults standardUserDefaults] integerForKey:SUScheduledCheckIntervalKey] > 0) {
|
||||
[checkboxAutoUpdate setState:NSOnState];
|
||||
}
|
||||
|
||||
[textFieldHomePage setStringValue:[self currentHomePage]];
|
||||
|
||||
|
|
|
@ -195,4 +195,4 @@ pref("wallet.crypto.autocompleteoverride", false);
|
|||
pref("ui.use_native_popup_windows", true);
|
||||
|
||||
// auto-update URL base
|
||||
pref("app.update.url", "https://caminobrowser.org/update-check");
|
||||
pref("app.update.url", "%APP_UPDATE_URL%");
|
||||
|
|
|
@ -457,3 +457,6 @@
|
|||
"SearchPluginInstallationConfirmationMessage" = "Would you like to add the search engine “%@” to the search field?";
|
||||
"SearchPluginInstallationConfirmButton" = "Add";
|
||||
"SearchPluginInstallationCancelButton" = "Don’t Add";
|
||||
|
||||
/* Auto-Update */
|
||||
"AutoUpdateDisabledToolTip" = "Automatic updates are available in official builds";
|
||||
|
|
|
@ -139,6 +139,7 @@
|
|||
aboutPlugins = id;
|
||||
aboutServers = id;
|
||||
aboutWindow = id;
|
||||
checkForUpdates = id;
|
||||
clearHistory = id;
|
||||
closeAllWindows = id;
|
||||
closeCurrentTab = id;
|
||||
|
@ -149,7 +150,6 @@
|
|||
emptyCache = id;
|
||||
exportBookmarks = id;
|
||||
feedbackLink = id;
|
||||
findInPage = id;
|
||||
goBack = id;
|
||||
goForward = id;
|
||||
goHome = id;
|
||||
|
|
Двоичные данные
camino/resources/localized/English.lproj/MainMenu.nib/keyedobjects.nib
сгенерированный
Двоичные данные
camino/resources/localized/English.lproj/MainMenu.nib/keyedobjects.nib
сгенерированный
Двоичный файл не отображается.
|
@ -7,5 +7,7 @@ This is based on trunk r52 of Sparkle:
|
|||
svn co -r52 http://code.andymatuschak.org/sparkle/trunk Sparkle
|
||||
with the following changes:
|
||||
- Bug 405901: fix an XML attribute handling bug (already part of Sparkle trunk)
|
||||
- Bug 412857: don't show CFBundleVersion (Sparkle ticket 150; may require some change on our part when we switch to trunk)
|
||||
- Bug 412857: don't show CFBundleVersion (Sparkle ticket 150; may require some
|
||||
change on our part when we switch to trunk)
|
||||
- Bug 412837: keep updates out of the quarantine
|
||||
- In support of bug 413709: let an empty value for SUFeedURLKey disable updates
|
||||
|
|
|
@ -149,6 +149,17 @@
|
|||
// This is generally useful for a menu item--when the check is explicitly invoked.
|
||||
- (void)checkForUpdatesAndNotify:(BOOL)verbosity
|
||||
{
|
||||
// A value in the user defaults overrides one in the Info.plist (so preferences panels can be created wherein users choose between beta / release feeds).
|
||||
NSString *appcastString = [[NSUserDefaults standardUserDefaults] objectForKey:SUFeedURLKey];
|
||||
if (!appcastString)
|
||||
appcastString = SUInfoValueForKey(SUFeedURLKey);
|
||||
if (!appcastString) { [NSException raise:@"SUNoFeedURL" format:@"No feed URL is specified in the Info.plist or the user defaults!"]; }
|
||||
if (![appcastString length]) {
|
||||
// Allow the application to provide an empty appcast string to
|
||||
// indicate that update checking should be disabled.
|
||||
return;
|
||||
}
|
||||
|
||||
if (updateInProgress)
|
||||
{
|
||||
if (verbosity)
|
||||
|
@ -166,12 +177,6 @@
|
|||
verbose = verbosity;
|
||||
updateInProgress = YES;
|
||||
|
||||
// A value in the user defaults overrides one in the Info.plist (so preferences panels can be created wherein users choose between beta / release feeds).
|
||||
NSString *appcastString = [[NSUserDefaults standardUserDefaults] objectForKey:SUFeedURLKey];
|
||||
if (!appcastString)
|
||||
appcastString = SUInfoValueForKey(SUFeedURLKey);
|
||||
if (!appcastString) { [NSException raise:@"SUNoFeedURL" format:@"No feed URL is specified in the Info.plist or the user defaults!"]; }
|
||||
|
||||
SUAppcast *appcast = [[SUAppcast alloc] init];
|
||||
[appcast setDelegate:self];
|
||||
[appcast fetchAppcastFromURL:[NSURL URLWithString:appcastString]];
|
||||
|
|
|
@ -113,6 +113,7 @@ typedef enum EBookmarkOpenBehavior
|
|||
// Application menu actions
|
||||
- (IBAction)aboutWindow:(id)sender;
|
||||
- (IBAction)feedbackLink:(id)aSender;
|
||||
- (IBAction)checkForUpdates:(id)sender;
|
||||
- (IBAction)displayPreferencesWindow:(id)sender;
|
||||
- (IBAction)resetBrowser:(id)sender;
|
||||
- (IBAction)emptyCache:(id)sender;
|
||||
|
|
|
@ -955,6 +955,14 @@ NSString* const kPreviousSessionTerminatedNormallyKey = @"PreviousSessionTermina
|
|||
[self loadApplicationPage:pageToLoad];
|
||||
}
|
||||
|
||||
- (IBAction)checkForUpdates:(id)sender
|
||||
{
|
||||
// MainController is the target of the "Check for Updates..." menu item
|
||||
// instead of SUUpdater solely to allow MainController to participate in
|
||||
// NSMenuValidation for the menu item.
|
||||
return [mAutoUpdater checkForUpdates:sender];
|
||||
}
|
||||
|
||||
- (IBAction)displayPreferencesWindow:(id)sender
|
||||
{
|
||||
[[MVPreferencesController sharedInstance] showPreferences:nil];
|
||||
|
@ -1707,6 +1715,13 @@ NSString* const kPreviousSessionTerminatedNormallyKey = @"PreviousSessionTermina
|
|||
return (browserController && [browserController validateActionBySelector:action]);
|
||||
}
|
||||
|
||||
if (action == @selector(checkForUpdates:) &&
|
||||
[[[NSUserDefaults standardUserDefaults] stringForKey:SUFeedURLKey] length] == 0) {
|
||||
// Disable update checking if there's no feed to check.
|
||||
[aMenuItem setToolTip:NSLocalizedString(@"AutoUpdateDisabledToolTip", @"")];
|
||||
return NO;
|
||||
}
|
||||
|
||||
// default return
|
||||
return YES;
|
||||
}
|
||||
|
|
|
@ -668,21 +668,26 @@ static BOOL gMadePrefManager;
|
|||
withSuccess:NULL];
|
||||
if (![baseURL length])
|
||||
baseURL = [self getStringPref:"app.update.url" withSuccess:NULL];
|
||||
NSString* intlUAString = [self getStringPref:"general.useragent.extra.multilang"
|
||||
withSuccess:NULL];
|
||||
// Append the parameters we might be interested in.
|
||||
NSString* manifestURL = !baseURL ? @"" : [NSString stringWithFormat:@"%@?os=%@&arch=%@&version=%@&intl=%d",
|
||||
baseURL,
|
||||
[NSWorkspace osVersionString],
|
||||
|
||||
// An empty manifestURL will tell Sparkle not to check for updates.
|
||||
NSString* manifestURL = @"";
|
||||
if ([baseURL length]) {
|
||||
// Append the parameters we might be interested in.
|
||||
NSString* intlUAString = [self getStringPref:"general.useragent.extra.multilang"
|
||||
withSuccess:NULL];
|
||||
manifestURL = [NSString stringWithFormat:@"%@?os=%@&arch=%@&version=%@&intl=%d",
|
||||
baseURL,
|
||||
[NSWorkspace osVersionString],
|
||||
#if defined(__ppc__)
|
||||
@"ppc",
|
||||
@"ppc",
|
||||
#elif defined(__i386__)
|
||||
@"x86",
|
||||
@"x86",
|
||||
#else
|
||||
#error Unknown Architecture
|
||||
#endif
|
||||
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"],
|
||||
([intlUAString length] ? 1 : 0)];
|
||||
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"],
|
||||
([intlUAString length] ? 1 : 0)];
|
||||
}
|
||||
[defaults setObject:manifestURL forKey:SUFeedURLKey];
|
||||
|
||||
// Set the update interval default if none is set. We don't set this in the
|
||||
|
|
Загрузка…
Ссылка в новой задаче