From 904398308debad22fedec227ec8e71adb2bc5720 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sun, 17 May 2015 13:24:46 +0100 Subject: TabToOpen: respect trailing options when extracting query terms. A custom search engine like this... i: https://www.google.ie/search?q=%s&num=30&newwindow=1&biw=1918&bih=1015&tbm=isch Google image search Should not match a URL like this... https://www.google.ie/search?q=bbc+sport --- lib/utils.coffee | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lib/utils.coffee') diff --git a/lib/utils.coffee b/lib/utils.coffee index 63b8ba0e..03403644 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -121,10 +121,15 @@ Utils = httpProtocolRegexp = new RegExp "^https?://" (searchUrl, url) -> url = url.replace httpProtocolRegexp - searchUrl = searchUrl.split("%s")[0].replace httpProtocolRegexp + searchUrl = searchUrl.replace httpProtocolRegexp + [ searchUrl, suffixTerms... ] = searchUrl.split "%s" + # We require the URL to start with the search URL. + return null unless url.startsWith searchUrl + # We require any remaining terms in the search URL to also be present in the URL. + for suffix in suffixTerms + return null unless 0 <= url.indexOf suffix # We use try/catch because decodeURIComponent can throw an exception. try - if url.startsWith searchUrl url[searchUrl.length..].split(queryTerminator)[0].split("+").map(decodeURIComponent).join " " catch null -- cgit v1.2.3