From ba4783868de0106e21acf8344ed86ddc91ec11fa Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Fri, 5 Apr 2019 17:43:04 +0100 Subject: [PATCH 01/10] Update the regex for custom browsers --- src/parser-browsers.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 74b2bad..a60d410 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -591,8 +591,8 @@ const browsersList = [ test: [/.*/i], describe(ua) { return { - name: Utils.getFirstMatch(/^(.*)\/(.*) /, ua), - version: Utils.getSecondMatch(/^(.*)\/(.*) /, ua), + name: Utils.getFirstMatch(/^(.*)\/(.*)\((.*) /, ua), + version: Utils.getSecondMatch(/^(.*)\/(.*)\((.*) /, ua), }; }, }, From f1bdd501166bb533d28dd72fac00811d9f7af6d8 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Fri, 5 Apr 2019 17:58:30 +0100 Subject: [PATCH 02/10] Update test for Generic browser --- test/acceptance/useragentstrings.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index 5c05906..bf76b73 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -2217,7 +2217,7 @@ name: "Blink" Generic: - - ua: "Generic/2.15 libww" + ua: "Generic/2.15 (Macintosh; Intel Mac OS X 10_6_8)" spec: browser: name: "Generic" From 3bfb24c8cbf7ed836f51c76b3aea9eda4a0b1fcc Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Fri, 5 Apr 2019 18:18:39 +0100 Subject: [PATCH 03/10] Updated the check for generic browsers --- src/parser-browsers.js | 5 +++-- test/acceptance/useragentstrings.yml | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index a60d410..507ef54 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -590,9 +590,10 @@ const browsersList = [ { test: [/.*/i], describe(ua) { + const regexp = ua.search("\\(") == -1 ? /^(.*)\/(.*) / : /^(.*)\/(.*)\((.*) / return { - name: Utils.getFirstMatch(/^(.*)\/(.*)\((.*) /, ua), - version: Utils.getSecondMatch(/^(.*)\/(.*)\((.*) /, ua), + name: Utils.getFirstMatch(regexp, ua), + version: Utils.getSecondMatch(regexp, ua), }; }, }, diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index bf76b73..65af172 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -2216,6 +2216,15 @@ engine: name: "Blink" Generic: + - + ua: "Generic/2.15 libww" + spec: + browser: + name: "Generic" + version: "2.15" + os: {} + platform: {} + engine: {} - ua: "Generic/2.15 (Macintosh; Intel Mac OS X 10_6_8)" spec: From cfe2b493bb547d2623a9dea4e5e823e624989f89 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Fri, 5 Apr 2019 18:33:15 +0100 Subject: [PATCH 04/10] Remove missing space at the end --- src/parser-browsers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 507ef54..bc0c7f1 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -590,7 +590,7 @@ const browsersList = [ { test: [/.*/i], describe(ua) { - const regexp = ua.search("\\(") == -1 ? /^(.*)\/(.*) / : /^(.*)\/(.*)\((.*) / + const regexp = ua.search('\\(') === -1 ? /^(.*)\/(.*) / : /^(.*)\/(.*)[ \t]\((.*)/; return { name: Utils.getFirstMatch(regexp, ua), version: Utils.getSecondMatch(regexp, ua), From 42b0f185e2525ebccaa9af15a3f6fef31c747bd1 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Fri, 5 Apr 2019 18:39:25 +0100 Subject: [PATCH 05/10] Change test os and platform --- test/acceptance/useragentstrings.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index 65af172..a613c90 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -2231,8 +2231,12 @@ browser: name: "Generic" version: "2.15" - os: {} - platform: {} + os: + name: "macOS" + version: "10.6.8" + platform: + type: "desktop" + vendor: "Apple" engine: {} Googlebot: - From 4d8c7813691104739fbf297865b0b098a35c4a71 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Tue, 23 Apr 2019 10:11:04 +0100 Subject: [PATCH 06/10] updated the code to be more clear --- src/parser-browsers.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index bc0c7f1..5c1a867 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -590,7 +590,11 @@ const browsersList = [ { test: [/.*/i], describe(ua) { - const regexp = ua.search('\\(') === -1 ? /^(.*)\/(.*) / : /^(.*)\/(.*)[ \t]\((.*)/; + // Define the regexp depending if the ua has device specifications + const regexpWithoutParenthesis = /^(.*)\/(.*) /; + const regexpWithParenthesis = /^(.*)\/(.*)[ \t]\((.*)/; + const hasDeviceSpec = ua.search('\\(') !== -1; + const regexp = hasDeviceSpec ? regexpWithoutParenthesis : regexpWithParenthesis; return { name: Utils.getFirstMatch(regexp, ua), version: Utils.getSecondMatch(regexp, ua), From 8e49696d027e17a3054bd32ea12187a07918c490 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Tue, 23 Apr 2019 10:13:52 +0100 Subject: [PATCH 07/10] update the comment --- src/parser-browsers.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 5c1a867..aa76643 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -590,7 +590,10 @@ const browsersList = [ { test: [/.*/i], describe(ua) { - // Define the regexp depending if the ua has device specifications + /* Here we try to make sure that there are explicit details about the device + * in order to decide what regexp exactly we want to apply + * (as there is a specific decision based on that conclusion) + */ const regexpWithoutParenthesis = /^(.*)\/(.*) /; const regexpWithParenthesis = /^(.*)\/(.*)[ \t]\((.*)/; const hasDeviceSpec = ua.search('\\(') !== -1; From d0959a43c46cf828d93c724b9c3bd6f65042c1fd Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Tue, 23 Apr 2019 10:15:02 +0100 Subject: [PATCH 08/10] update the constant names --- src/parser-browsers.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index aa76643..4de9509 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -594,10 +594,10 @@ const browsersList = [ * in order to decide what regexp exactly we want to apply * (as there is a specific decision based on that conclusion) */ - const regexpWithoutParenthesis = /^(.*)\/(.*) /; - const regexpWithParenthesis = /^(.*)\/(.*)[ \t]\((.*)/; + const regexpWithoutDeviceSpec = /^(.*)\/(.*) /; + const regexpWithDeviceSpec = /^(.*)\/(.*)[ \t]\((.*)/; const hasDeviceSpec = ua.search('\\(') !== -1; - const regexp = hasDeviceSpec ? regexpWithoutParenthesis : regexpWithParenthesis; + const regexp = hasDeviceSpec ? regexpWithoutDeviceSpec : regexpWithDeviceSpec; return { name: Utils.getFirstMatch(regexp, ua), version: Utils.getSecondMatch(regexp, ua), From 2dcfca13889fd6478ff9ec97f38c4cc9b37062a6 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Tue, 23 Apr 2019 10:28:11 +0100 Subject: [PATCH 09/10] remove tabs --- src/parser-browsers.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 4de9509..0ac4696 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -590,13 +590,13 @@ const browsersList = [ { test: [/.*/i], describe(ua) { - /* Here we try to make sure that there are explicit details about the device - * in order to decide what regexp exactly we want to apply - * (as there is a specific decision based on that conclusion) - */ - const regexpWithoutDeviceSpec = /^(.*)\/(.*) /; - const regexpWithDeviceSpec = /^(.*)\/(.*)[ \t]\((.*)/; - const hasDeviceSpec = ua.search('\\(') !== -1; + /* Here we try to make sure that there are explicit details about the device + * in order to decide what regexp exactly we want to apply + * (as there is a specific decision based on that conclusion) + */ + const regexpWithoutDeviceSpec = /^(.*)\/(.*) /; + const regexpWithDeviceSpec = /^(.*)\/(.*)[ \t]\((.*)/; + const hasDeviceSpec = ua.search('\\(') !== -1; const regexp = hasDeviceSpec ? regexpWithoutDeviceSpec : regexpWithDeviceSpec; return { name: Utils.getFirstMatch(regexp, ua), From b8d60f75931ea18e170ab9b8b5df480c1c67f466 Mon Sep 17 00:00:00 2001 From: Ricardo Rauber Pereira Date: Tue, 23 Apr 2019 10:40:04 +0100 Subject: [PATCH 10/10] fix regexp selection order --- src/parser-browsers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 0ac4696..53d99c7 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -597,7 +597,7 @@ const browsersList = [ const regexpWithoutDeviceSpec = /^(.*)\/(.*) /; const regexpWithDeviceSpec = /^(.*)\/(.*)[ \t]\((.*)/; const hasDeviceSpec = ua.search('\\(') !== -1; - const regexp = hasDeviceSpec ? regexpWithoutDeviceSpec : regexpWithDeviceSpec; + const regexp = hasDeviceSpec ? regexpWithDeviceSpec : regexpWithoutDeviceSpec; return { name: Utils.getFirstMatch(regexp, ua), version: Utils.getSecondMatch(regexp, ua),