Merge pull request #1035 from Wevah/mac-app-store-hide-web-inspector

Disable Web Inspector for App Store builds
This commit is contained in:
Maurice Parker 2019-09-19 11:45:10 -05:00 committed by GitHub
commit b75f67bc1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 57 additions and 39 deletions

View File

@ -37,8 +37,10 @@ struct AppDefaults {
static let showTitleOnMainWindow = "KafasisTitleMode" static let showTitleOnMainWindow = "KafasisTitleMode"
static let hideDockUnreadCount = "JustinMillerHideDockUnreadCount" static let hideDockUnreadCount = "JustinMillerHideDockUnreadCount"
static let webInspectorEnabled = "WebInspectorEnabled" #if !MAC_APP_STORE
static let webInspectorStartsAttached = "__WebInspectorPageGroupLevel1__.WebKit2InspectorStartsAttached" static let webInspectorEnabled = "WebInspectorEnabled"
static let webInspectorStartsAttached = "__WebInspectorPageGroupLevel1__.WebKit2InspectorStartsAttached"
#endif
} }
private static let smallestFontSizeRawValue = FontSize.small.rawValue private static let smallestFontSizeRawValue = FontSize.small.rawValue
@ -141,23 +143,25 @@ struct AppDefaults {
return bool(for: Key.hideDockUnreadCount) return bool(for: Key.hideDockUnreadCount)
} }
static var webInspectorEnabled: Bool { #if !MAC_APP_STORE
get { static var webInspectorEnabled: Bool {
return bool(for: Key.webInspectorEnabled) get {
return bool(for: Key.webInspectorEnabled)
}
set {
setBool(for: Key.webInspectorEnabled, newValue)
}
} }
set {
setBool(for: Key.webInspectorEnabled, newValue)
}
}
static var webInspectorStartsAttached: Bool { static var webInspectorStartsAttached: Bool {
get { get {
return bool(for: Key.webInspectorStartsAttached) return bool(for: Key.webInspectorStartsAttached)
}
set {
setBool(for: Key.webInspectorStartsAttached, newValue)
}
} }
set { #endif
setBool(for: Key.webInspectorStartsAttached, newValue)
}
}
static var timelineSortDirection: ComparisonResult { static var timelineSortDirection: ComparisonResult {
get { get {

View File

@ -42,7 +42,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations,
@IBOutlet var sortByOldestArticleOnTopMenuItem: NSMenuItem! @IBOutlet var sortByOldestArticleOnTopMenuItem: NSMenuItem!
@IBOutlet var sortByNewestArticleOnTopMenuItem: NSMenuItem! @IBOutlet var sortByNewestArticleOnTopMenuItem: NSMenuItem!
@IBOutlet var checkForUpdatesMenuItem: NSMenuItem! @IBOutlet var checkForUpdatesMenuItem: NSMenuItem!
var unreadCount = 0 { var unreadCount = 0 {
didSet { didSet {
if unreadCount != oldValue { if unreadCount != oldValue {
@ -309,9 +309,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations,
if item.action == #selector(showAddFeedWindow(_:)) || item.action == #selector(showAddFolderWindow(_:)) { if item.action == #selector(showAddFeedWindow(_:)) || item.action == #selector(showAddFolderWindow(_:)) {
return !isDisplayingSheet && !AccountManager.shared.activeAccounts.isEmpty return !isDisplayingSheet && !AccountManager.shared.activeAccounts.isEmpty
} }
#if !MAC_APP_STORE
if item.action == #selector(toggleWebInspectorEnabled(_:)) { if item.action == #selector(toggleWebInspectorEnabled(_:)) {
(item as! NSMenuItem).state = AppDefaults.webInspectorEnabled ? .on : .off (item as! NSMenuItem).state = AppDefaults.webInspectorEnabled ? .on : .off
} }
#endif
return true return true
} }
@ -530,15 +532,17 @@ extension AppDelegate {
} }
@IBAction func toggleWebInspectorEnabled(_ sender: Any?) { @IBAction func toggleWebInspectorEnabled(_ sender: Any?) {
let newValue = !AppDefaults.webInspectorEnabled #if !MAC_APP_STORE
AppDefaults.webInspectorEnabled = newValue let newValue = !AppDefaults.webInspectorEnabled
AppDefaults.webInspectorEnabled = newValue
// An attached inspector can display incorrectly on certain setups (like mine); default to displaying in a separate window, // An attached inspector can display incorrectly on certain setups (like mine); default to displaying in a separate window,
// and reset the default to a separate window when the preference is toggled off and on again in case the inspector is // and reset the default to a separate window when the preference is toggled off and on again in case the inspector is
// accidentally reattached. // accidentally reattached.
AppDefaults.webInspectorStartsAttached = false AppDefaults.webInspectorStartsAttached = false
NotificationCenter.default.post(name: .WebInspectorEnabledDidChange, object: newValue) NotificationCenter.default.post(name: .WebInspectorEnabledDidChange, object: newValue)
#endif
} }
} }

View File

@ -473,7 +473,7 @@
<menuItem title="Enable Web Inspector" id="EwI-z4-ZA3"> <menuItem title="Enable Web Inspector" id="EwI-z4-ZA3">
<modifierMask key="keyEquivalentModifierMask"/> <modifierMask key="keyEquivalentModifierMask"/>
<connections> <connections>
<action selector="toggleWebInspectorEnabled:" target="Voe-Tx-rLC" id="nsd-PV-Tz2"/> <action selector="toggleWebInspectorEnabled:" target="Voe-Tx-rLC" id="SNL-zh-XIE"/>
</connections> </connections>
</menuItem> </menuItem>
</items> </items>
@ -588,6 +588,7 @@
<connections> <connections>
<outlet property="checkForUpdatesMenuItem" destination="1nF-7O-aKU" id="JmT-jc-DJ8"/> <outlet property="checkForUpdatesMenuItem" destination="1nF-7O-aKU" id="JmT-jc-DJ8"/>
<outlet property="debugMenuItem" destination="UqE-mp-gtV" id="OnR-lr-Zlt"/> <outlet property="debugMenuItem" destination="UqE-mp-gtV" id="OnR-lr-Zlt"/>
<outlet property="enableWebInspectorMenuItem" destination="EwI-z4-ZA3" id="EGp-lP-f91"/>
<outlet property="sortByNewestArticleOnTopMenuItem" destination="TNS-TV-n0U" id="gix-Nd-9k4"/> <outlet property="sortByNewestArticleOnTopMenuItem" destination="TNS-TV-n0U" id="gix-Nd-9k4"/>
<outlet property="sortByOldestArticleOnTopMenuItem" destination="iii-kP-qoF" id="fTe-Tf-EWG"/> <outlet property="sortByOldestArticleOnTopMenuItem" destination="iii-kP-qoF" id="fTe-Tf-EWG"/>
</connections> </connections>

View File

@ -28,14 +28,16 @@ final class DetailWebViewController: NSViewController, WKUIDelegate {
} }
} }
private var webInspectorEnabled: Bool { #if !MAC_APP_STORE
get { private var webInspectorEnabled: Bool {
return webView.configuration.preferences._developerExtrasEnabled get {
return webView.configuration.preferences._developerExtrasEnabled
}
set {
webView.configuration.preferences._developerExtrasEnabled = newValue
}
} }
set { #endif
webView.configuration.preferences._developerExtrasEnabled = newValue
}
}
private var waitingForFirstReload = false private var waitingForFirstReload = false
private let keyboardDelegate = DetailKeyboardDelegate() private let keyboardDelegate = DetailKeyboardDelegate()
@ -96,9 +98,11 @@ final class DetailWebViewController: NSViewController, WKUIDelegate {
webView.isHidden = true webView.isHidden = true
waitingForFirstReload = true waitingForFirstReload = true
webInspectorEnabled = AppDefaults.webInspectorEnabled #if !MAC_APP_STORE
webInspectorEnabled = AppDefaults.webInspectorEnabled
NotificationCenter.default.addObserver(self, selector: #selector(webInspectorEnabledDidChange(_:)), name: .WebInspectorEnabledDidChange, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(webInspectorEnabledDidChange(_:)), name: .WebInspectorEnabledDidChange, object: nil)
#endif
reloadHTML() reloadHTML()
} }
@ -199,9 +203,11 @@ private extension DetailWebViewController {
} }
} }
@objc func webInspectorEnabledDidChange(_ notification: Notification) { #if !MAC_APP_STORE
self.webInspectorEnabled = notification.object! as! Bool @objc func webInspectorEnabledDidChange(_ notification: Notification) {
} self.webInspectorEnabled = notification.object! as! Bool
}
#endif
} }
// MARK: - ScrollInfo // MARK: - ScrollInfo

View File

@ -13,7 +13,10 @@ extension Notification.Name {
static let InspectableObjectsDidChange = Notification.Name("TimelineSelectionDidChangeNotification") static let InspectableObjectsDidChange = Notification.Name("TimelineSelectionDidChangeNotification")
static let UserDidAddFeed = Notification.Name("UserDidAddFeedNotification") static let UserDidAddFeed = Notification.Name("UserDidAddFeedNotification")
static let UserDidRequestSidebarSelection = Notification.Name("UserDidRequestSidebarSelectionNotification") static let UserDidRequestSidebarSelection = Notification.Name("UserDidRequestSidebarSelectionNotification")
static let WebInspectorEnabledDidChange = Notification.Name("WebInspectorEnabledDidChange")
#if !MAC_APP_STORE
static let WebInspectorEnabledDidChange = Notification.Name("WebInspectorEnabledDidChange")
#endif
} }
typealias UserInfoDictionary = [AnyHashable: Any] typealias UserInfoDictionary = [AnyHashable: Any]