From cd98c92b94cbb14b106b357f047797d19c167f73 Mon Sep 17 00:00:00 2001 From: GRMrGecko Date: Thu, 15 Sep 2011 20:54:40 -0500 Subject: [PATCH] Now reads from Google's API instead of the Apache location due to the Apache location being deprecated. --- Classes/MGMController.h | 2 + Classes/MGMController.m | 134 +- Resources/Info.plist | 6 +- Resources/Preferences/AdvancedPane.xib | 2034 ++++++++++++------------ 4 files changed, 1123 insertions(+), 1053 deletions(-) diff --git a/Classes/MGMController.h b/Classes/MGMController.h index 96611d6..fbf4c37 100644 --- a/Classes/MGMController.h +++ b/Classes/MGMController.h @@ -43,6 +43,8 @@ extern NSString * const MGMQuitAfterLaunch; NSMutableDictionary *channelRevisions; NSString *chromiumPath; + NSMutableArray *revisionsArray; + IBOutlet NSPopUpButton *channelPopUp; IBOutlet NSTextField *buildWarningField; IBOutlet NSPopUpButton *buildPopUp; diff --git a/Classes/MGMController.m b/Classes/MGMController.m index ec45040..d5798d1 100644 --- a/Classes/MGMController.m +++ b/Classes/MGMController.m @@ -43,7 +43,8 @@ NSString * const MGMChromiumZip = @"chrome-mac.zip"; NSString * const MGMTMPPath = @"/tmp"; NSString * const MGMChannelsURL = @"http://omahaproxy.appspot.com/all.json?os=mac"; -static NSString *MGMSnapshotURL = @"http://build.chromium.org/f/chromium/snapshots/Mac/"; +static NSString *MGMSnapshotURL = @"https://commondatastorage.googleapis.com/chromium-browser-snapshots/"; +NSString * const MGMSnapshotPrefix = @"Mac/"; NSString * const MGMSVNLogsURL = @"http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog.html?url=/trunk/src&range=%@:%@&mode=html&os=mac"; NSString * const MGMCChannel = @"channel"; @@ -57,6 +58,27 @@ NSString * const MGMUBUpdate = @"Update"; NSString * const MGMUBInstall = @"Install"; NSString * const MGMUBCancel = @"Cancel"; +@interface NSString (MGMAddonsSort) +- (NSComparisonResult)numberCompare:(id)theItem; +@end + + +@implementation NSString (MGMAddonsSort) +- (NSComparisonResult)numberCompare:(id)theItem { + unsigned int theNumber = 0; + unsigned int number = 0; + if ([theItem isKindOfClass:[NSString class]]) + sscanf([theItem UTF8String], "%u", &theNumber); + sscanf([self UTF8String], "%u", &number); + if (numbertheNumber) + return NSOrderedDescending; + return NSOrderedSame; +} +@end + + @interface NSOpenPanel (MGMIgnore) - (void)setDirectoryURL:(NSURL *)url; - (void)setDirectory:(NSString *)path; @@ -131,7 +153,9 @@ NSString * const MGMUBCancel = @"Cancel"; [handler setFailWithError:@selector(channels:didFailWithError:)]; [handler setFinish:@selector(channelsFinished:)]; [connectionManager addHandler:handler]; - handler = [MGMURLBasicHandler handlerWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:MGMSnapshotURL]] delegate:self]; + revisionsArray = [NSMutableArray new]; + NSString *url = [MGMSnapshotURL stringByAppendingFormat:@"?delimiter=/&prefix=%@", MGMSnapshotPrefix]; + handler = [MGMURLBasicHandler handlerWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]] delegate:self]; [handler setFailWithError:@selector(revisions:didFailWithError:)]; [handler setFinish:@selector(revisionsFinished:)]; [connectionManager addHandler:handler]; @@ -192,42 +216,86 @@ NSString * const MGMUBCancel = @"Cancel"; [alert setMessageText:@"Error loading revisions"]; [alert setInformativeText:[theError localizedDescription]]; [alert runModal]; -} -- (void)revisionsFinished:(MGMURLBasicHandler *)theHandler { - NSString *returnedString = [theHandler string]; - [buildPopUp removeAllItems]; - [progress setDoubleValue:0.50]; - NSMenu *items = [NSMenu new]; - unsigned long length = [returnedString length]; - NSRange range = NSMakeRange(0, length); - while (range.location!=length) { - NSRange urlRange = [returnedString rangeOfString:@"/\">" options:0 range:range]; - if (urlRange.location==NSNotFound) - break; - range.location = urlRange.location+urlRange.length; - range.length = length-range.location; - - urlRange = [returnedString rangeOfString:@"" options:0 range:range]; - if (urlRange.location==NSNotFound) - continue; - NSRange revisionRange = NSMakeRange(range.location, urlRange.location-range.location); - range.location = urlRange.location+urlRange.length; - range.length = length-range.location; - urlRange = [returnedString rangeOfString:@"/" options:0 range:revisionRange]; - if (urlRange.location==NSNotFound) - continue; - revisionRange.length -= 1; - + [revisionsArray sortUsingSelector:@selector(numberCompare:)]; + for (unsigned int i=0; i<[revisionsArray count]; i++) { NSMenuItem *item = [NSMenuItem new]; - [item setTitle:[returnedString substringWithRange:revisionRange]]; + [item setTitle:[revisionsArray objectAtIndex:i]]; [items addItem:item]; [item release]; } + [buildPopUp removeAllItems]; [buildPopUp setMenu:items]; [items release]; + [revisionsArray release]; + revisionsArray = nil; [self channelSelect:self]; } +- (void)revisionsFinished:(MGMURLBasicHandler *)theHandler { + NSError *error = nil; + NSXMLDocument *xml = [[NSXMLDocument alloc] initWithData:[theHandler data] options:NSXMLDocumentTidyXML error:&error]; + [progress setDoubleValue:0.50]; + + if (error!=nil) { + NSLog(@"%@", error); + NSAlert *alert = [[NSAlert new] autorelease]; + [alert setMessageText:@"Error parsing revisions"]; + [alert setInformativeText:[error localizedDescription]]; + [alert runModal]; + NSMenu *items = [NSMenu new]; + [revisionsArray sortUsingSelector:@selector(numberCompare:)]; + for (unsigned int i=0; i<[revisionsArray count]; i++) { + NSMenuItem *item = [NSMenuItem new]; + [item setTitle:[revisionsArray objectAtIndex:i]]; + [items addItem:item]; + [item release]; + } + [buildPopUp removeAllItems]; + [buildPopUp setMenu:items]; + [items release]; + [revisionsArray release]; + revisionsArray = nil; + [self channelSelect:self]; + } else { + NSXMLElement *rootElement = [xml rootElement]; + NSArray *isTruncated = [rootElement elementsForName:@"IsTruncated"]; + NSArray *commonPrefixes = [rootElement elementsForName:@"CommonPrefixes"]; + for (int i=0; i<[commonPrefixes count]; i++) { + NSArray *prefix = [[commonPrefixes objectAtIndex:i] elementsForName:@"Prefix"]; + if ([prefix count]<1) + continue; + NSArray *parsed = [[[prefix objectAtIndex:0] stringValue] componentsSeparatedByString:@"/"]; + if ([parsed count]<2) + continue; + [revisionsArray addObject:[parsed objectAtIndex:1]]; + } + NSArray *nextMarkers = [rootElement elementsForName:@"NextMarker"]; + if ([isTruncated count]>0 && [[[isTruncated objectAtIndex:0] stringValue] isEqual:@"true"] && [nextMarkers count]>0) { + NSString *nextMarker = [[nextMarkers objectAtIndex:0] stringValue]; + NSString *url = [MGMSnapshotURL stringByAppendingFormat:@"?delimiter=/&prefix=%@&marker=%@", MGMSnapshotPrefix, nextMarker]; + MGMURLBasicHandler *handler = [MGMURLBasicHandler handlerWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]] delegate:self]; + [handler setFailWithError:@selector(revisions:didFailWithError:)]; + [handler setFinish:@selector(revisionsFinished:)]; + [connectionManager addHandler:handler]; + } else { + NSMenu *items = [NSMenu new]; + [revisionsArray sortUsingSelector:@selector(numberCompare:)]; + for (unsigned int i=0; i<[revisionsArray count]; i++) { + NSMenuItem *item = [NSMenuItem new]; + [item setTitle:[revisionsArray objectAtIndex:i]]; + [items addItem:item]; + [item release]; + } + [buildPopUp removeAllItems]; + [buildPopUp setMenu:items]; + [items release]; + [revisionsArray release]; + revisionsArray = nil; + [self channelSelect:self]; + } + } + [xml release]; +} - (IBAction)channelSelect:(id)sender { [[NSUserDefaults standardUserDefaults] setInteger:[channelPopUp indexOfSelectedItem] forKey:MGMChannel]; @@ -247,7 +315,7 @@ NSString * const MGMUBCancel = @"Cancel"; if (itemIndex==NSNotFound) { [buildWarningField setHidden:NO]; for (unsigned int i=0; i<[revisions count]; i++) { - if ([(NSString *)[revisions objectAtIndex:i] compare:revision]==NSOrderedDescending) { + if ([(NSString *)[revisions objectAtIndex:i] numberCompare:revision]==NSOrderedDescending) { itemIndex = i; break; } @@ -263,7 +331,7 @@ NSString * const MGMUBCancel = @"Cancel"; [self buildSelect:self]; } - (IBAction)buildSelect:(id)sender { - NSURL *buildURL = [[[NSURL URLWithString:MGMSnapshotURL] appendPathComponent:[buildPopUp titleOfSelectedItem]] appendPathComponent:@"REVISIONS"]; + NSURL *buildURL = [[[[NSURL URLWithString:MGMSnapshotURL] appendPathComponent:MGMSnapshotPrefix] appendPathComponent:[buildPopUp titleOfSelectedItem]] appendPathComponent:@"REVISIONS"]; MGMURLBasicHandler *handler = [MGMURLBasicHandler handlerWithRequest:[NSURLRequest requestWithURL:buildURL] delegate:self]; [handler setFailWithError:@selector(revision:didFailWithError:)]; [handler setReceiveResponse:@selector(revision:didReceiveResponse:)]; @@ -397,7 +465,7 @@ NSString * const MGMUBCancel = @"Cancel"; NSString *revision1, *revision2, *tmp; revision1 = [yourBuildField stringValue]; revision2 = [buildPopUp titleOfSelectedItem]; - if ([revision1 compare:revision2]==NSOrderedDescending) { + if ([revision1 numberCompare:revision2]==NSOrderedDescending) { tmp = revision1; revision1 = revision2; revision2 = tmp; @@ -418,7 +486,7 @@ NSString * const MGMUBCancel = @"Cancel"; [progress startAnimation:self]; startTime = [[NSDate date] timeIntervalSince1970]; - NSURL *url = [[[NSURL URLWithString:MGMSnapshotURL] appendPathComponent:[buildPopUp titleOfSelectedItem]] appendPathComponent:MGMChromiumZip]; + NSURL *url = [[[[NSURL URLWithString:MGMSnapshotURL] appendPathComponent:MGMSnapshotPrefix] appendPathComponent:[buildPopUp titleOfSelectedItem]] appendPathComponent:MGMChromiumZip]; [updateHandler release]; updateHandler = [[MGMURLBasicHandler handlerWithRequest:[NSURLRequest requestWithURL:url] delegate:self] retain]; [updateHandler setFile:[MGMTMPPath stringByAppendingPathComponent:MGMChromiumZip]]; diff --git a/Resources/Info.plist b/Resources/Info.plist index 4036fb9..a2a36e0 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.2 + 0.2.1 CFBundleSignature ???? CFBundleVersion - 0.2 + 0.2.1 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} MGMGRBugsEmail @@ -37,7 +37,7 @@ MGMGRTimeZone CST NSHumanReadableCopyright - Copyright (c) 2011 Mr. Gecko's Media (James Coleman). http://mrgeckosmedia.com/ + Copyright (c) 2011 Mr. Gecko's Media (James Coleman). http://mrgeckosmedia.com/ NSMainNibFile MainMenu NSPrincipalClass diff --git a/Resources/Preferences/AdvancedPane.xib b/Resources/Preferences/AdvancedPane.xib index 2af13fd..49a2947 100644 --- a/Resources/Preferences/AdvancedPane.xib +++ b/Resources/Preferences/AdvancedPane.xib @@ -1,1020 +1,1020 @@ - - 1050 - 10J869 - 823 - 1038.35 - 461.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 823 - - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES - - MGMAdvancedPane - - - FirstResponder - - - NSApplication - - - - 268 - - YES - - - 268 - {{17, 80}, {453, 51}} - - YES - - 67239424 - 272629760 - The URL to check for new versions and get all revisions. This must be a apache directory URL, other wise it'll fail. After changing, close the Preferences and restart Chromatic to update. - - LucidaGrande - 13 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2ODY1AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{139, 20}, {331, 51}} - - YES - - 67239424 - 272629760 - If not Move to Trash, Chromatic will permanently delete the old version of Chromium from your hard disk. - - - - - - - - - 268 - {{118, 38}, {18, 18}} - - YES - - -2080244224 - 0 - - - LucidaGrande - 13 - 1044 - - - 1215582719 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 268 - {{17, 39}, {98, 17}} - - YES - - 68288064 - 71304192 - Move to Trash: - - - - - - - - - 268 - {{97, 137}, {370, 22}} - - YES - - -1804468671 - 272630784 - - - http://build.chromium.org/f/chromium/snapshots/Mac/ - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - - - - - - 268 - {{17, 139}, {75, 17}} - - YES - - 68288064 - 71304192 - Check URL: - - - - - - - - {487, 179} - - NSView - - - - - YES - - - mainView - - - - 2 - - - - snapshotField - - - - 17 - - - - save: - - - - 18 - - - - trashButton - - - - 19 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - YES - - - - - - - - - - - 3 - - - YES - - - - - - 4 - - - - - 5 - - - YES - - - - - - 6 - - - - - 7 - - - YES - - - - - - 8 - - - - - 9 - - - YES - - - - - - 10 - - - - - 13 - - - YES - - - - - - 14 - - - - - 15 - - - YES - - - - - - 16 - - - - - - - YES - - YES - 1.IBEditorWindowLastContentRect - 1.IBPluginDependency - 1.WindowOrigin - 1.editorWindowContentRectSynchronizationRect - 10.IBPluginDependency - 13.IBPluginDependency - 13.IBViewBoundsToFrameTransform - 14.IBPluginDependency - 15.IBPluginDependency - 15.IBViewBoundsToFrameTransform - 16.IBPluginDependency - 3.IBPluginDependency - 3.IBViewBoundsToFrameTransform - 4.IBPluginDependency - 5.IBPluginDependency - 5.IBViewBoundsToFrameTransform - 6.IBPluginDependency - 7.IBPluginDependency - 7.IBViewBoundsToFrameTransform - 8.IBPluginDependency - 9.IBPluginDependency - 9.IBViewBoundsToFrameTransform - - - YES - {{32, 250}, {487, 179}} - com.apple.InterfaceBuilder.CocoaPlugin - {628, 654} - {{217, 442}, {480, 272}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDCwAAwvIAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB6AAAwvYAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCIAAAwxQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC8AAAw3YAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAwtQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC7AAAwtQAAA - - - - - YES - - - YES - - - - - YES - - - YES - - - - 19 - - - - YES - - MGMAdvancedPane - MGMPreferencesPane - - save: - id - - - save: - - save: - id - - - - YES - - YES - mainView - snapshotField - trashButton - - - YES - NSView - NSTextField - NSButton - - - - YES - - YES - mainView - snapshotField - trashButton - - - YES - - mainView - NSView - - - snapshotField - NSTextField - - - trashButton - NSButton - - - - - IBProjectSource - Classes/Preferences/MGMAdvancedPane.h - - - - - YES - - MGMPreferencesPane - NSObject - - IBFrameworkSource - MGMUsers.framework/Headers/MGMPreferencesPane.h - - - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUAppcast.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUUpdater.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebDownload.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebEditingDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebFrameLoadDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebJavaPlugIn.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPlugin.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPluginContainer.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPolicyDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebResourceLoadDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebScriptObject.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebUIDelegate.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../../Chromatic.xcodeproj - 3 - - NSSwitch - {15, 15} - - + + 1050 + 11B26 + 851 + 1138 + 566.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + MGMAdvancedPane + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{17, 80}, {453, 51}} + + YES + + 67239424 + 272629760 + The URL to check for new versions and get all revisions. This must be a Google API directory URL, other wise it'll fail. After changing, close the Preferences and restart Chromatic to update. + + LucidaGrande + 13 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{139, 20}, {331, 51}} + + YES + + 67239424 + 272629760 + If not Move to Trash, Chromatic will permanently delete the old version of Chromium from your hard disk. + + + + + + + + + 268 + {{118, 38}, {18, 18}} + + YES + + -2080244224 + 0 + + + LucidaGrande + 13 + 1040 + + + 1215582719 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{17, 39}, {98, 17}} + + YES + + 68288064 + 71304192 + Move to Trash: + + + + + + + + + 268 + {{97, 137}, {370, 22}} + + YES + + -1804468671 + 272630784 + + + https://commondatastorage.googleapis.com/chromium-browser-snapshots/ + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{17, 139}, {75, 17}} + + YES + + 68288064 + 71304192 + Check URL: + + + + + + + + {487, 179} + + NSView + + + + + YES + + + mainView + + + + 2 + + + + snapshotField + + + + 17 + + + + save: + + + + 18 + + + + trashButton + + + + 19 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + + + + + + 3 + + + YES + + + + + + 4 + + + + + 5 + + + YES + + + + + + 6 + + + + + 7 + + + YES + + + + + + 8 + + + + + 9 + + + YES + + + + + + 10 + + + + + 13 + + + YES + + + + + + 14 + + + + + 15 + + + YES + + + + + + 16 + + + + + + + YES + + YES + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 10.IBPluginDependency + 13.IBPluginDependency + 13.IBViewBoundsToFrameTransform + 14.IBPluginDependency + 15.IBPluginDependency + 15.IBViewBoundsToFrameTransform + 16.IBPluginDependency + 3.IBPluginDependency + 3.IBViewBoundsToFrameTransform + 4.IBPluginDependency + 5.IBPluginDependency + 5.IBViewBoundsToFrameTransform + 6.IBPluginDependency + 7.IBPluginDependency + 7.IBViewBoundsToFrameTransform + 8.IBPluginDependency + 9.IBPluginDependency + 9.IBViewBoundsToFrameTransform + + + YES + {{329, 250}, {487, 179}} + com.apple.InterfaceBuilder.CocoaPlugin + {628, 654} + {{217, 442}, {480, 272}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDCwAAwvIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB6AAAwvYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCIAAAwxQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC8AAAw3YAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwtQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC7AAAwtQAAA + + + + + YES + + + YES + + + + + YES + + + YES + + + + 19 + + + + YES + + MGMAdvancedPane + MGMPreferencesPane + + save: + id + + + save: + + save: + id + + + + YES + + YES + mainView + snapshotField + trashButton + + + YES + NSView + NSTextField + NSButton + + + + YES + + YES + mainView + snapshotField + trashButton + + + YES + + mainView + NSView + + + snapshotField + NSTextField + + + trashButton + NSButton + + + + + IBProjectSource + Classes/Preferences/MGMAdvancedPane.h + + + + + YES + + MGMPreferencesPane + NSObject + + IBFrameworkSource + MGMUsers.framework/Headers/MGMPreferencesPane.h + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUAppcast.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUUpdater.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebDownload.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebEditingDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebFrameLoadDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebJavaPlugIn.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebPlugin.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebPluginContainer.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebPolicyDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebResourceLoadDelegate.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebScriptObject.h + + + + NSObject + + IBFrameworkSource + WebKit.framework/Headers/WebUIDelegate.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../Chromatic.xcodeproj + 3 + + NSSwitch + {15, 15} + +