diff --git a/MacPass/Base.lproj/WorkflowPreferences.xib b/MacPass/Base.lproj/WorkflowPreferences.xib index 31363677..45b17bb9 100644 --- a/MacPass/Base.lproj/WorkflowPreferences.xib +++ b/MacPass/Base.lproj/WorkflowPreferences.xib @@ -20,38 +20,25 @@ - - + + - + - + - + - - - - - - - - - - - - - - + @@ -59,7 +46,7 @@ - + @@ -71,47 +58,39 @@ + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - @@ -188,28 +167,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - + - + diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index 790b9624..0823f0a1 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -835,4 +835,22 @@ NSString *const _MPTableSecurCellView = @"PasswordCell"; } } +- (NSArray*)_launchArgumentsForBrowserBundleID:(NSString *)bundleId { + static NSDictionary *privateBrowsingArgs; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + privateBrowsingArgs = @{ @"com.google.Chrome" : @[@"--incognito"] }; + }); + + BOOL usePrivateBrowsing = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyUsePrivateBrowsingWhenOpeningURLs]; + NSMutableArray *args = [[NSMutableArray alloc] init]; + if(usePrivateBrowsing) { + NSArray* privateArgs = privateBrowsingArgs[bundleId]; + if(privateBrowsingArgs) { + [args addObjectsFromArray:privateArgs]; + } + } + return [args copy]; +} + @end diff --git a/MacPass/MPSettingsHelper.h b/MacPass/MPSettingsHelper.h index 7e18ccb5..36a7779a 100644 --- a/MacPass/MPSettingsHelper.h +++ b/MacPass/MPSettingsHelper.h @@ -38,6 +38,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyFocusSearchAfterUnlock; // E /* URL handling */ APPKIT_EXTERN NSString *const kMPSettingsKeyBrowserBundleId; +APPKIT_EXTERN NSString *const kMPSettingsKeyUsePrivateBrowsingWhenOpeningURLs; /* Autolock */ APPKIT_EXTERN NSString *const kMPSettingsKeyLockOnSleep; diff --git a/MacPass/MPSettingsHelper.m b/MacPass/MPSettingsHelper.m index b9074091..072affa9 100644 --- a/MacPass/MPSettingsHelper.m +++ b/MacPass/MPSettingsHelper.m @@ -30,6 +30,7 @@ NSString *const kMPSettingsKeyPasteboardClearTimeout = @"Cl NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit"; NSString *const kMPSettingsKeyPreventUniversalClipboard = @"PreventUniversalClipboard"; NSString *const kMPSettingsKeyBrowserBundleId = @"BrowserBundleId"; +NSString *const kMPSettingsKeyUsePrivateBrowsingWhenOpeningURLs = @"UsePrivateBrowsingWhenOpeningURLs"; NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch"; NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch"; NSString *const kMPSettingsKeyQuitOnLastWindowClose = @"QuitOnLastWindowClose"; @@ -176,7 +177,8 @@ NSString *const kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning = @"Au kMPSettingsKeyFaviconDownloadMethod: @(MPFaviconDownloadMethodDirect), // Download directly from host kMPSettingsKeyGloablAutotypeAlwaysShowCandidateSelection: @NO, kMPSettingsKeyUseUnifiedToolbar: @YES, // Do not use unified toolbar under Big Sur and above - kMPSettingsKeyFocusSearchAfterUnlock: @NO // Do not enter search directly after unlocking the database + kMPSettingsKeyFocusSearchAfterUnlock: @NO, // Do not enter search directly after unlocking the database + kMPSettingsKeyUsePrivateBrowsingWhenOpeningURLs: @NO // No private mode when option URLs by default }; }); return standardDefaults; diff --git a/MacPass/MPWorkflowPreferencesController.m b/MacPass/MPWorkflowPreferencesController.m index 1178d33a..f7859dcd 100644 --- a/MacPass/MPWorkflowPreferencesController.m +++ b/MacPass/MPWorkflowPreferencesController.m @@ -33,6 +33,7 @@ @property (strong) IBOutlet NSButton *generatePasswordOnEntriesCheckButton; @property (strong) IBOutlet NSButton *hideAfterCopyToClipboardCheckButton; @property (strong) IBOutlet NSButton *focusSearchAfterUnlockCheckButton; +//@property (strong) IBOutlet NSButton *privateBrowsingCheckButton; - (IBAction)_showCustomBrowserSelection:(id)sender; @@ -47,12 +48,34 @@ - (void)viewDidLoad { NSUserDefaultsController *defaultsController = NSUserDefaultsController.sharedUserDefaultsController; - [self.doubleClickURLPopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickURLAction] options:nil]; - [self.doubleClickTitlePopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickTitleAction] options:nil]; - [self.updatePasswordOnTemplateEntriesCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyUpdatePasswordOnTemplateEntries] options:nil]; - [self.generatePasswordOnEntriesCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyGeneratePasswordForNewEntires] options:nil]; - [self.hideAfterCopyToClipboardCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyHideAfterCopyToClipboard] options:nil]; - [self.focusSearchAfterUnlockCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyFocusSearchAfterUnlock] options:nil]; + [self.doubleClickURLPopup bind:NSSelectedIndexBinding + toObject:defaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickURLAction] + options:nil]; + [self.doubleClickTitlePopup bind:NSSelectedIndexBinding + toObject:defaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickTitleAction] + options:nil]; + [self.updatePasswordOnTemplateEntriesCheckButton bind:NSValueBinding + toObject:defaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyUpdatePasswordOnTemplateEntries] + options:nil]; + [self.generatePasswordOnEntriesCheckButton bind:NSValueBinding + toObject:defaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyGeneratePasswordForNewEntires] + options:nil]; + [self.hideAfterCopyToClipboardCheckButton bind:NSValueBinding + toObject:defaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyHideAfterCopyToClipboard] + options:nil]; + [self.focusSearchAfterUnlockCheckButton bind:NSValueBinding + toObject:defaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyFocusSearchAfterUnlock] + options:nil]; +// [self.privateBrowsingCheckButton bind:NSValueBinding +// toObject:defaultsController +// withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyUsePrivateBrowsingWhenOpeningURLs] +// options:nil]; [self _updateBrowserSelection]; }