diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index d0c80dad3c..5624f9f89d 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -6345,8 +6345,6 @@ children = ( AA3D531A27A2F57E00074EC1 /* Feedback.swift */, AA3D531C27A2F58F00074EC1 /* FeedbackSender.swift */, - AAD8078627B3F45600CF7703 /* WebsiteBreakage.swift */, - AAD8078427B3F3BE00CF7703 /* WebsiteBreakageSender.swift */, ); path = Model; sourceTree = ""; @@ -7863,9 +7861,9 @@ B6FA893A269C414900588ECD /* PrivacyDashboard */ = { isa = PBXGroup; children = ( + F1D6DA032B21E90500EE9745 /* Breakage */, B6FA893B269C41ED00588ECD /* View */, 1E7E2E8F29029A2A00C01B54 /* ContentBlockingRulesUpdateObserver.swift */, - 1E7E2E9129029F9B00C01B54 /* WebsiteBreakageReporter.swift */, 1E7E2E932902AC0E00C01B54 /* PrivacyDashboardPermissionHandler.swift */, ); path = PrivacyDashboard; @@ -7942,6 +7940,16 @@ path = JSAlert; sourceTree = ""; }; + F1D6DA032B21E90500EE9745 /* Breakage */ = { + isa = PBXGroup; + children = ( + 1E7E2E9129029F9B00C01B54 /* WebsiteBreakageReporter.swift */, + AAD8078627B3F45600CF7703 /* WebsiteBreakage.swift */, + AAD8078427B3F3BE00CF7703 /* WebsiteBreakageSender.swift */, + ); + path = Breakage; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -12929,8 +12937,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/duckduckgo/BrowserServicesKit"; requirement = { - kind = exactVersion; - version = 95.0.0; + branch = fcappelli/breakage_improvement_mac; + kind = branch; }; }; AA06B6B52672AF8100F541C5 /* XCRemoteSwiftPackageReference "Sparkle" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 301109ce38..3905f02c98 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -14,8 +14,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/duckduckgo/BrowserServicesKit", "state" : { - "revision" : "ae9e9180f74d92c83fc3cc1d2fc23f4855fb361c", - "version" : "95.0.0" + "branch" : "fcappelli/breakage_improvement_mac", + "revision" : "12e535fcd2a8c3020c0718caccda3df629d1e02e" } }, { @@ -77,8 +77,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/duckduckgo/privacy-dashboard", "state" : { - "revision" : "38336a574e13090764ba09a6b877d15ee514e371", - "version" : "3.1.1" + "branch" : "12-14-feat_macos_allow_direct_navigation_to_breakage_form", + "revision" : "24b6260043a888827998124bc12104f4779e010f" } }, { diff --git a/DuckDuckGo/Application/AppDelegate.swift b/DuckDuckGo/Application/AppDelegate.swift index 8d21c98b97..8b887b742e 100644 --- a/DuckDuckGo/Application/AppDelegate.swift +++ b/DuckDuckGo/Application/AppDelegate.swift @@ -73,6 +73,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate, FileDownloadManagerDel private var emailCancellables = Set() let bookmarksManager = LocalBookmarkManager.shared + var privacyDashboardWindow: NSWindow? + private var didFinishLaunching = false #if SPARKLE diff --git a/DuckDuckGo/Assets.xcassets/Colors/Exclamation.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/Colors/Exclamation.imageset/Contents.json new file mode 100644 index 0000000000..ea625b9491 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/Colors/Exclamation.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Exclamation-16.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/DuckDuckGo/Assets.xcassets/Colors/Exclamation.imageset/Exclamation-16.pdf b/DuckDuckGo/Assets.xcassets/Colors/Exclamation.imageset/Exclamation-16.pdf new file mode 100644 index 0000000000..4fd30568aa Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/Colors/Exclamation.imageset/Exclamation-16.pdf differ diff --git a/DuckDuckGo/Common/Localizables/UserText.swift b/DuckDuckGo/Common/Localizables/UserText.swift index d4084d6d47..5b68a8c193 100644 --- a/DuckDuckGo/Common/Localizables/UserText.swift +++ b/DuckDuckGo/Common/Localizables/UserText.swift @@ -432,6 +432,9 @@ struct UserText { static let bookmarksManageBookmarks = NSLocalizedString("bookmarks.manage-bookmarks", value: "Manage Bookmarks", comment: "Menu item for opening the bookmarks management interface") static let bookmarkImportedFromFolder = NSLocalizedString("bookmarks.imported.from.folder", value: "Imported from", comment: "Name of the folder the imported bookmarks are saved into") + static let reportBrokenSite = NSLocalizedString("report.broken.site", value: "Report Broken Site", comment: "Menu with feedback commands") + static let browserFeedback = NSLocalizedString("send.browser.feedback", value: "Send Browser Feedback", comment: "Menu with feedback commands") + static let zoom = NSLocalizedString("zoom", value: "Zoom", comment: "Menu with Zooming commands") static let emailOptionsMenuItem = NSLocalizedString("email.optionsMenu", value: "Email Protection", comment: "Menu item email feature") @@ -555,7 +558,6 @@ struct UserText { static let sendFeedback = NSLocalizedString("preferences.about.send-feedback", value: "Send Feedback", comment: "Feedback button in the about preferences page") - static let feedbackBreakageDisclaimer = NSLocalizedString("feedback.breakage.disclaimer", value: "Reports sent to DuckDuckGo are 100% anonymous and only include your selection above, your optional message, the URL, a list of trackers we found on the site, the DuckDuckGo app version, and your macOS version.", comment: "Disclaimer in breakage form") static let feedbackDisclaimer = NSLocalizedString("feedback.disclaimer", value: "Reports sent to DuckDuckGo are 100% anonymous and only include your message, the DuckDuckGo app version, and your macOS version.", comment: "Disclaimer in breakage form") static let feedbackBugDescription = NSLocalizedString("feedback.bug.description", value: "Please describe the problem in as much detail as possible:", comment: "Label in the feedback form") diff --git a/DuckDuckGo/DataImport/ChromePreferences.swift b/DuckDuckGo/DataImport/ChromePreferences.swift index e24be4699a..82975cc92c 100644 --- a/DuckDuckGo/DataImport/ChromePreferences.swift +++ b/DuckDuckGo/DataImport/ChromePreferences.swift @@ -33,7 +33,7 @@ struct ChromePreferences: Decodable { let profile: Profile init(from data: Data) throws { - var decoder = JSONDecoder() + let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase self = try decoder.decode(Self.self, from: data) diff --git a/DuckDuckGo/Feedback/View/Feedback.storyboard b/DuckDuckGo/Feedback/View/Feedback.storyboard index 510649b5af..117a33ec84 100644 --- a/DuckDuckGo/Feedback/View/Feedback.storyboard +++ b/DuckDuckGo/Feedback/View/Feedback.storyboard @@ -1,7 +1,7 @@ - + - + @@ -42,12 +42,9 @@ - - - - - - + + + @@ -55,22 +52,24 @@ + + @@ -86,9 +85,6 @@