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];
}