Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fixed showing contextual Messages for adBlock and AntiTracking
- Loading branch information
|
|
@@ -134,8 +134,9 @@ class ContextualMessagesViewModel: NSObject { |
|
|
let regex = try! NSRegularExpression(pattern: "facebook|google|twitter|linkedin") |
|
|
|
|
|
for tracker in trackerCompanies { |
|
|
let range = NSRange(location: 0, length: tracker.lowercased().utf16.count) |
|
|
if regex.firstMatch(in: tracker, options: [], range: range) != nil { |
|
|
let trakcerLowercased = tracker.lowercased() |
|
|
let range = NSRange(location: 0, length: trakcerLowercased.utf16.count) |
|
|
if regex.firstMatch(in: trakcerLowercased, options: [], range: range) != nil { |
|
|
return tracker |
|
|
} |
|
|
} |
|
|
|
|
|
@@ -263,7 +263,8 @@ class CurrentPageInfo: NSObject { |
|
|
if currentHost == self.host { |
|
|
if let result = tabDashboardStats["result"] as? [String: Any], |
|
|
let blockedAds = result["adsBlocked"] as? Int, |
|
|
let trackerCompanies = result["trackers"] as? [String] { |
|
|
let trackerCompanies = self.getTrackers(result) { |
|
|
print(result) |
|
|
if let messageType = ContextualMessagesViewModel.shared.getContextualMessageType(blockedAds: blockedAds, trackerCompanies: trackerCompanies) { |
|
|
NotificationCenter.default.post(name: Notification.Name.ContextualMessageNotification, object: messageType) |
|
|
} |
|
|
@@ -273,6 +274,23 @@ class CurrentPageInfo: NSObject { |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
private func getTrackers(_ dashboardStats: [String: Any]) -> [String]? { |
|
|
var trackers = [String]() |
|
|
if let trackersDetails = dashboardStats["trackersDetailed"] as? NSArray { |
|
|
for trackerData in trackersDetails { |
|
|
if let data = trackerData as? NSDictionary, |
|
|
let category = data["cat"] as? String, |
|
|
let name = data["name"] as? String, |
|
|
category != "advertising" { |
|
|
|
|
|
trackers.append(name) |
|
|
} |
|
|
} |
|
|
} |
|
|
return trackers.count > 0 ? trackers : nil |
|
|
} |
|
|
|
|
|
private func reset() { |
|
|
self.host = nil |
|
|
self.startLoadTime = nil |
|
|
|