diff --git a/.gitignore b/.gitignore index 7f5873b..55f1521 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,5 @@ fastlane/test_output iOSInjectionProject/ IDEWorkspaceChecks.plist + +.DS_Store diff --git a/AutotypeURL.xcodeproj/project.pbxproj b/AutotypeURL.xcodeproj/project.pbxproj index 1f6872c..8889cc6 100644 --- a/AutotypeURL.xcodeproj/project.pbxproj +++ b/AutotypeURL.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ 4C8139322281FD3900092FD7 /* ATUAutotypeURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8139312281FD3900092FD7 /* ATUAutotypeURL.m */; }; 4C93F3C022859C54005C8A3D /* ATUSafariExtractor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C93F3BF22859C54005C8A3D /* ATUSafariExtractor.m */; }; 4C93F3C322859E46005C8A3D /* ATUChromeExtractor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C93F3C222859E46005C8A3D /* ATUChromeExtractor.m */; }; + 7C620A1C29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C620A1B29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.m */; }; 7E9B915822D911BA0017A2BA /* ATUSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9B915622D911B90017A2BA /* ATUSettingsViewController.m */; }; 7E9B915922D911BA0017A2BA /* AutotypeURLSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E9B915722D911BA0017A2BA /* AutotypeURLSettings.xib */; }; D5328CBB26D296E100C318AC /* ATUFirefoxExtractor.h in Sources */ = {isa = PBXBuildFile; fileRef = D5328CBA26D296E100C318AC /* ATUFirefoxExtractor.h */; }; @@ -26,6 +27,8 @@ 4C93F3BF22859C54005C8A3D /* ATUSafariExtractor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ATUSafariExtractor.m; sourceTree = ""; }; 4C93F3C122859E46005C8A3D /* ATUChromeExtractor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ATUChromeExtractor.h; sourceTree = ""; }; 4C93F3C222859E46005C8A3D /* ATUChromeExtractor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ATUChromeExtractor.m; sourceTree = ""; }; + 7C620A1A29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ATUSafariTechnologyPreviewExtractor.h; sourceTree = ""; }; + 7C620A1B29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ATUSafariTechnologyPreviewExtractor.m; sourceTree = ""; }; 7E9B915522D911B90017A2BA /* ATUSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ATUSettingsViewController.h; sourceTree = ""; }; 7E9B915622D911B90017A2BA /* ATUSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ATUSettingsViewController.m; sourceTree = ""; }; 7E9B915722D911BA0017A2BA /* AutotypeURLSettings.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutotypeURLSettings.xib; sourceTree = ""; }; @@ -63,17 +66,19 @@ 4C8139292281FBC200092FD7 /* AutotypeURL */ = { isa = PBXGroup; children = ( - 7E9B915422D911A80017A2BA /* Settings */, - 4C81392A2281FBC200092FD7 /* Info.plist */, 4C8139302281FD3900092FD7 /* ATUAutotypeURL.h */, 4C8139312281FD3900092FD7 /* ATUAutotypeURL.m */, - 4C93F3BD22859AA7005C8A3D /* ATUURLExtraction.h */, - 4C93F3BE22859C54005C8A3D /* ATUSafariExtractor.h */, + 4C93F3C122859E46005C8A3D /* ATUChromeExtractor.h */, + 4C93F3C222859E46005C8A3D /* ATUChromeExtractor.m */, D5328CBA26D296E100C318AC /* ATUFirefoxExtractor.h */, D5328CBC26D2971600C318AC /* ATUFirefoxExtractor.m */, + 4C93F3BE22859C54005C8A3D /* ATUSafariExtractor.h */, 4C93F3BF22859C54005C8A3D /* ATUSafariExtractor.m */, - 4C93F3C122859E46005C8A3D /* ATUChromeExtractor.h */, - 4C93F3C222859E46005C8A3D /* ATUChromeExtractor.m */, + 7C620A1A29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.h */, + 7C620A1B29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.m */, + 4C93F3BD22859AA7005C8A3D /* ATUURLExtraction.h */, + 4C81392A2281FBC200092FD7 /* Info.plist */, + 7E9B915422D911A80017A2BA /* Settings */, ); path = AutotypeURL; sourceTree = ""; @@ -180,6 +185,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7C620A1C29FA554D00A401CA /* ATUSafariTechnologyPreviewExtractor.m in Sources */, 4C8139322281FD3900092FD7 /* ATUAutotypeURL.m in Sources */, D5328CBD26D2971600C318AC /* ATUFirefoxExtractor.m in Sources */, 7E9B915822D911BA0017A2BA /* ATUSettingsViewController.m in Sources */, @@ -336,6 +342,7 @@ DSTROOT = "$(HOME)"; INFOPLIST_FILE = AutotypeURL/Info.plist; INSTALL_PATH = "/Library/Application Support/MacPass"; + MARKETING_VERSION = 1.4; PRODUCT_BUNDLE_IDENTIFIER = com.hicknhacksoftware.AutotypeURL; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -355,6 +362,7 @@ DSTROOT = "$(HOME)"; INFOPLIST_FILE = AutotypeURL/Info.plist; INSTALL_PATH = "/Library/Application Support/MacPass"; + MARKETING_VERSION = 1.4; PRODUCT_BUNDLE_IDENTIFIER = com.hicknhacksoftware.AutotypeURL; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/AutotypeURL/ATUAutotypeURL.m b/AutotypeURL/ATUAutotypeURL.m index 669c4f4..da691f5 100644 --- a/AutotypeURL/ATUAutotypeURL.m +++ b/AutotypeURL/ATUAutotypeURL.m @@ -10,6 +10,7 @@ #import "ATUSafariExtractor.h" #import "ATUFirefoxExtractor.h" #import "ATUChromeExtractor.h" +#import "ATUSafariTechnologyPreviewExtractor.h" #import "ATUSettingsViewController.h" @@ -34,7 +35,12 @@ +(void)initialize{ - (instancetype)initWithPluginHost:(MPPluginHost *)host { self = [super initWithPluginHost:host]; if(self) { - self.extractors = @[[[ATUChromeExtractor alloc] init], [[ATUSafariExtractor alloc] init], [[ATUFirefoxExtractor alloc] init]]; + self.extractors = @[ + [[ATUChromeExtractor alloc] init], + [[ATUSafariExtractor alloc] init], + [[ATUFirefoxExtractor alloc] init], + [[ATUSafariTechnologyPreviewExtractor alloc] init], + ]; } return self; } diff --git a/AutotypeURL/ATUFirefoxExtractor.h b/AutotypeURL/ATUFirefoxExtractor.h index 4ada8dd..aab22db 100644 --- a/AutotypeURL/ATUFirefoxExtractor.h +++ b/AutotypeURL/ATUFirefoxExtractor.h @@ -1,5 +1,5 @@ // -// ATUSafariExtractor.h +// ATUFirefoxExtractor.h // AutotypeURL // // Created by Michael Starke on 10.05.19. diff --git a/AutotypeURL/ATUSafariTechnologyPreviewExtractor.h b/AutotypeURL/ATUSafariTechnologyPreviewExtractor.h new file mode 100644 index 0000000..c10d3a4 --- /dev/null +++ b/AutotypeURL/ATUSafariTechnologyPreviewExtractor.h @@ -0,0 +1,19 @@ +// +// ATUSafariTechnologyPreviewExtractor.h +// AutotypeURL +// +// Created by Advers on 27.04.2023. +// Copyright © 2019 HicknHack Software GmbH. All rights reserved. +// Copyright © 2023 Advers Inc. All rights reserved. +// + +#import +#import "ATUURLExtraction.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ATUSafariTechnologyPreviewExtractor : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/AutotypeURL/ATUSafariTechnologyPreviewExtractor.m b/AutotypeURL/ATUSafariTechnologyPreviewExtractor.m new file mode 100644 index 0000000..206bfae --- /dev/null +++ b/AutotypeURL/ATUSafariTechnologyPreviewExtractor.m @@ -0,0 +1,31 @@ +// +// ATUSafariTechnologyPreviewExtractor.m +// AutotypeURL +// +// Created by Advers on 27.04.2023. +// Copyright © 2019 HicknHack Software GmbH. All rights reserved. +// Copyright © 2023 Advers Inc. All rights reserved. +// + +#import +#import "ATUSafariTechnologyPreviewExtractor.h" + +static NSString *ATUSafariPreviewBundleIdentifier = @"com.apple.SafariTechnologyPreview"; + +@implementation ATUSafariTechnologyPreviewExtractor + +- (NSArray*)supportedBundleIdentifiers { + return @[ATUSafariPreviewBundleIdentifier]; +} + +- (nonnull NSString *)URLForRunningApplication:(nonnull NSRunningApplication *)runningApplication { + if(![self.supportedBundleIdentifiers containsObject:runningApplication.bundleIdentifier]) { + return @""; + } + NSAppleScript *script = [[NSAppleScript alloc] initWithSource:@"tell application \"Safari Technology Preview\" to get URL of front document"]; + NSAppleEventDescriptor *aed = [script executeAndReturnError:NULL]; + NSString *urlString = aed.stringValue; + return urlString == nil ? @"" : urlString; +} + +@end diff --git a/AutotypeURL/Info.plist b/AutotypeURL/Info.plist index 1f623bb..2e77eb5 100644 --- a/AutotypeURL/Info.plist +++ b/AutotypeURL/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - $(CURRENT_PROJECT_VERSION) + $(MARKETING_VERSION) CFBundleVersion UNKNOWN NSHumanReadableCopyright