Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/ui.js

Issue 5309182173511680: Issue 2211 - Implemented subscribe.adblockplus.org subscription links (Closed)
Patch Set: Created April 1, 2015, 11:56 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/ui.js
===================================================================
--- a/lib/ui.js
+++ b/lib/ui.js
@@ -895,9 +895,9 @@
/**
* Handles clicks inside the browser's content area, will intercept clicks on
- * abp: links. This can be called either with an event object or with the link
- * target (if it is the former then link target will be retrieved from event
- * target).
+ * abp: links as well as links to subscribe.adblockplus.org. This can be called
+ * either with an event object or with the link target (if it is the former then
+ * link target will be retrieved from event target).
*/
onBrowserClick: function (/**Window*/ window, /**Event*/ event, /**String*/ linkTarget)
{
@@ -909,29 +909,33 @@
// Search the link associated with the click
let link = event.target;
- while (link && !(link instanceof Ci.nsIDOMHTMLAnchorElement))
+ while (!(link instanceof Ci.nsIDOMHTMLAnchorElement))
+ {
link = link.parentNode;
- if (!link || link.protocol != "abp:")
- return;
+ if (!link)
+ return;
+ }
+ linkTarget = link.href;
+ }
+ let match = /^(?:abp:\/*subscribe|https?:\/*subscribe\.adblockplus\.org)\/*\?(.*)/i.exec(linkTarget);
Sebastian Noack 2015/04/01 12:29:49 I think we should use DOM API's (i.e. the anchor e
Thomas Greiner 2015/04/01 12:41:15 It's a different situation than on Chrome since we
Sebastian Noack 2015/04/01 12:44:20 I'm not sure what you mean. Since you already use
Thomas Greiner 2015/04/01 12:51:30 There are two ways to get a link target here. One
+ if (!match)
+ return;
+
+ if (event)
+ {
// This is our link - make sure the browser doesn't handle it
event.preventDefault();
event.stopPropagation();
-
- linkTarget = link.href;
}
- let match = /^abp:\/*subscribe\/*\?(.*)/i.exec(linkTarget);
- if (!match)
- return;
-
// Decode URL parameters
let title = null;
let url = null;
let mainSubscriptionTitle = null;
let mainSubscriptionURL = null;
- for (let param of match[1].split('&'))
+ for (let param of match[1].split("&"))
{
let parts = param.split("=", 2);
if (parts.length != 2 || !/\S/.test(parts[1]))
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld