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

Unified Diff: lib/tldjs.js

Issue 29340571: Issue 3687 - Add experimental support for Safari content blockers (Closed)
Patch Set: Don't avoid type conversion Created May 18, 2016, 9:24 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 | « lib/punycode.js ('k') | lib/url.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/tldjs.js
diff --git a/lib/tldjs.js b/lib/tldjs.js
new file mode 100644
index 0000000000000000000000000000000000000000..c354375b2fb223fc83c4472f642d4802a2b3d1b5
--- /dev/null
+++ b/lib/tldjs.js
@@ -0,0 +1,47 @@
+/*
+ * This file is part of Adblock Plus <https://adblockplus.org/>,
+ * Copyright (C) 2006-2016 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @module tldjs */
+
+let getDomain =
+/**
+ * Get the base domain for given hostname.
+ *
+ * @param {string} hostname
+ * @return {string}
+ */
+exports.getDomain = function(hostname)
+{
+ let bits = hostname.split(".");
+ let cutoff = bits.length - 2;
+
+ for (let i = 0; i < bits.length; i++)
+ {
+ let offset = publicSuffixes[bits.slice(i).join(".")];
+
+ if (typeof offset != "undefined")
+ {
+ cutoff = i - offset;
+ break;
+ }
+ }
+
+ if (cutoff <= 0)
+ return hostname;
+
+ return bits.slice(cutoff).join(".");
+}
« no previous file with comments | « lib/punycode.js ('k') | lib/url.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld