| Index: chrome/browser/resources/hotword_helper/manager.js
|
| diff --git a/chrome/browser/resources/hotword_helper/manager.js b/chrome/browser/resources/hotword_helper/manager.js
|
| index 3fcdb05653ff594c011a009a53b0208a89a87df7..271cb152b9a7535dd3e023321d173cc9bc23a9cd 100644
|
| --- a/chrome/browser/resources/hotword_helper/manager.js
|
| +++ b/chrome/browser/resources/hotword_helper/manager.js
|
| @@ -124,32 +124,67 @@ OptInManager.prototype.handleMessage_ = function(
|
| return false;
|
| };
|
|
|
| +/**
|
| + * Helper function to test URLs as being valid for running the
|
| + * hotwording extension. It's used by isEligibleUrl to make that
|
| + * function clearer.
|
| + * @param {string} url URL to check.
|
| + * @param {string} base Base URL to compare against..
|
| + * @return {boolean} True if url is an eligible hotword URL.
|
| + */
|
| +OptInManager.prototype.checkEligibleUrl = function(url, base) {
|
| + if (!url)
|
| + return false;
|
| +
|
| + if (url === base ||
|
| + url === base + '/' ||
|
| + url.indexOf(base + '/_/chrome/newtab?') === 0 || // Appcache NTP.
|
| + url.indexOf(base + '/?') === 0 ||
|
| + url.indexOf(base + '/#') === 0 ||
|
| + url.indexOf(base + '/webhp') === 0 ||
|
| + url.indexOf(base + '/search') === 0) {
|
| + return true;
|
| + }
|
| + return false;
|
| +
|
| +};
|
|
|
| /**
|
| * Determines if a URL is eligible for hotwording. For now, the
|
| * valid pages are the Google HP and SERP (this will include the NTP).
|
| - * @param {string} url Url to check.
|
| - * @return {boolean} True if url is eligible hotword url.
|
| + * @param {string} url URL to check.
|
| + * @return {boolean} True if url is an eligible hotword URL.
|
| */
|
| OptInManager.prototype.isEligibleUrl = function(url) {
|
| if (!url)
|
| return false;
|
|
|
| + // More URLs will be added in the future so leaving this as an array.
|
| var baseUrls = [
|
| - 'https://www.google.com',
|
| - 'chrome://newtab',
|
| - 'https://encrypted.google.com'
|
| + 'chrome://newtab'
|
| + ];
|
| + var baseGoogleUrls = [
|
| + 'https://www.google.',
|
| + 'https://encrypted.google.'
|
| ];
|
| + var tlds = [
|
| + 'com',
|
| + 'co.uk',
|
| + 'de',
|
| + 'fr',
|
| + 'ru'
|
| + ];
|
| +
|
| + // Check URLs which do not have locale-based TLDs first.
|
| + if (this.checkEligibleUrl(url, baseUrls[0]))
|
| + return true;
|
|
|
| - for (var i = 0; i < baseUrls.length; i++) {
|
| - var base = baseUrls[i];
|
| - if (url === base + '/' ||
|
| - url.indexOf(base + '/_/chrome/newtab?') === 0 || // Appcache NTP.
|
| - url.indexOf(base + '/?') === 0 ||
|
| - url.indexOf(base + '/#') === 0 ||
|
| - url.indexOf(base + '/webhp') === 0 ||
|
| - url.indexOf(base + '/search') === 0) {
|
| - return true;
|
| + // Check URLs with each type of local-based TLD.
|
| + for (var i = 0; i < baseGoogleUrls.length; i++) {
|
| + for (var j = 0; j < tlds.length; j++) {
|
| + var base = baseGoogleUrls[i] + tlds[j];
|
| + if (this.checkEligibleUrl(url, base))
|
| + return true;
|
| }
|
| }
|
| return false;
|
|
|