28 url = request.url() |
28 url = request.url() |
29 urlString = bytes(url.toEncoded()).decode() |
29 urlString = bytes(url.toEncoded()).decode() |
30 urlDomain = url.host() |
30 urlDomain = url.host() |
31 urlScheme = url.scheme() |
31 urlScheme = url.scheme() |
32 |
32 |
33 manager = Helpviewer.HelpWindow.HelpWindow.adblockManager() |
33 manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager() |
34 if not manager.isEnabled() or not self.canRunOnScheme(urlScheme): |
34 if not manager.isEnabled() or not self.canRunOnScheme(urlScheme): |
35 return None |
35 return None |
36 |
36 |
37 for subscription in manager.subscriptions(): |
37 for subscription in manager.subscriptions(): |
38 blockedRule = subscription.match(request, urlDomain, urlString) |
38 if subscription.isEnabled(): |
39 if blockedRule: |
39 blockedRule = subscription.match(request, urlDomain, urlString) |
40 webPage = request.attribute(QNetworkRequest.User + 100) |
40 if blockedRule: |
41 if webPage is not None: |
41 webPage = request.attribute(QNetworkRequest.User + 100) |
42 if not self.__canBeBlocked(webPage.url()): |
42 if webPage is not None: |
43 return None |
43 if not self.__canBeBlocked(webPage.url()): |
|
44 return None |
|
45 |
|
46 webPage.addAdBlockRule(blockedRule, url) |
44 |
47 |
45 webPage.addAdBlockRule(blockedRule, url) |
48 reply = AdBlockBlockedNetworkReply( |
46 |
49 request, subscription, blockedRule, self) |
47 reply = AdBlockBlockedNetworkReply(request, subscription, blockedRule, self) |
50 return reply |
48 return reply |
|
49 |
51 |
50 return None |
52 return None |
51 |
53 |
52 def canRunOnScheme(self, scheme): |
54 def canRunOnScheme(self, scheme): |
53 """ |
55 """ |
63 Private method to check, if an URL can be blocked. |
65 Private method to check, if an URL can be blocked. |
64 |
66 |
65 @param url URL to be checked (QUrl) |
67 @param url URL to be checked (QUrl) |
66 @return flag indicating, that the URL can be blocked (boolean) |
68 @return flag indicating, that the URL can be blocked (boolean) |
67 """ |
69 """ |
68 manager = Helpviewer.HelpWindow.HelpWindow.adblockManager() |
70 manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager() |
69 for subscription in manager.subscriptions(): |
71 for subscription in manager.subscriptions(): |
70 if subscription.adBlockDisabledForUrl(url): |
72 if subscription.isEnabled() and subscription.adBlockDisabledForUrl(url): |
71 return False |
73 return False |
72 |
74 |
73 return True |
75 return True |