mirror of
https://github.com/bitwarden/browser
synced 2025-12-21 18:53:29 +00:00
respond to review comments:
• replace usage of compile time flag with boolean for conditinal logic • moved sandbox specific logic to contained module inside macos.rs • remove redundant browser array from objc code and pass the target browser path as arg
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
// Request user permission to access browser directory
|
||||
// Returns base64-encoded bookmark data, or NULL if declined
|
||||
// Caller must free returned string
|
||||
char* requestBrowserAccess(const char* browserName);
|
||||
char* requestBrowserAccess(const char* browserName, const char* relativePath);
|
||||
|
||||
// Check if we have stored bookmark (doesn't verify validity)
|
||||
bool hasStoredBrowserAccess(const char* browserName);
|
||||
|
||||
@@ -14,10 +14,11 @@ static BrowserAccessManager* getManager() {
|
||||
return sharedManager;
|
||||
}
|
||||
|
||||
char* requestBrowserAccess(const char* browserName) {
|
||||
char* requestBrowserAccess(const char* browserName, const char* relativePath) {
|
||||
@autoreleasepool {
|
||||
NSString* name = [NSString stringWithUTF8String:browserName];
|
||||
NSString* result = [getManager() requestAccessToBrowserDir:name];
|
||||
NSString* path = [NSString stringWithUTF8String:relativePath];
|
||||
NSString* result = [getManager() requestAccessToBrowserDir:name relativePath:path];
|
||||
|
||||
if (result == nil) {
|
||||
return NULL;
|
||||
|
||||
@@ -8,7 +8,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/// Request access to a specific browser's directory
|
||||
/// Returns security bookmark data (used to persist permissions) as base64 string, or nil if user declined
|
||||
- (nullable NSString *)requestAccessToBrowserDir:(NSString *)browserName;
|
||||
- (nullable NSString *)requestAccessToBrowserDir:(NSString *)browserName relativePath:(NSString *)relativePath;
|
||||
|
||||
/// Check if we have stored bookmark for browser (doesn't verify it's still valid)
|
||||
- (BOOL)hasStoredAccess:(NSString *)browserName;
|
||||
|
||||
@@ -3,31 +3,19 @@
|
||||
|
||||
@implementation BrowserAccessManager {
|
||||
NSString *_bookmarkKey;
|
||||
NSDictionary<NSString *, NSString *> *_browserPaths;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_bookmarkKey = @"com.bitwarden.chromiumImporter.bookmarks";
|
||||
|
||||
_browserPaths = @{
|
||||
@"Chrome": @"Library/Application Support/Google/Chrome",
|
||||
@"Chromium": @"Library/Application Support/Chromium",
|
||||
@"Microsoft Edge": @"Library/Application Support/Microsoft Edge",
|
||||
@"Brave": @"Library/Application Support/BraveSoftware/Brave-Browser",
|
||||
@"Arc": @"Library/Application Support/Arc/User Data",
|
||||
@"Opera": @"Library/Application Support/com.operasoftware.Opera",
|
||||
@"Vivaldi": @"Library/Application Support/Vivaldi"
|
||||
};
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *)requestAccessToBrowserDir:(NSString *)browserName {
|
||||
- (NSString *)requestAccessToBrowserDir:(NSString *)browserName relativePath:(NSString *)relativePath {
|
||||
// NSLog(@"[OBJC] requestAccessToBrowserDir called for: %@", browserName);
|
||||
|
||||
NSString *relativePath = _browserPaths[browserName];
|
||||
if (!relativePath) {
|
||||
// NSLog(@"[OBJC] Unknown browser: %@", browserName);
|
||||
return nil;
|
||||
|
||||
Reference in New Issue
Block a user