aboutsummaryrefslogtreecommitdiffstats
path: root/src/models/UserAgent.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/models/UserAgent.js')
-rw-r--r--src/models/UserAgent.js35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/models/UserAgent.js b/src/models/UserAgent.js
index f51f2e5a6..f1d08e306 100644
--- a/src/models/UserAgent.js
+++ b/src/models/UserAgent.js
@@ -18,7 +18,9 @@ export default class UserAgent {
18 18
19 @observable chromelessUserAgent = false; 19 @observable chromelessUserAgent = false;
20 20
21 @observable getUserAgent = defaultUserAgent; 21 @observable userAgentPref = null;
22
23 @observable getUserAgent = null;
22 24
23 constructor(overrideUserAgent = null) { 25 constructor(overrideUserAgent = null) {
24 if (typeof overrideUserAgent === 'function') { 26 if (typeof overrideUserAgent === 'function') {
@@ -36,8 +38,37 @@ export default class UserAgent {
36 }); 38 });
37 } 39 }
38 40
41 @computed get defaultUserAgent() {
42 if (typeof this.getUserAgent === 'function') {
43 return this.getUserAgent();
44 }
45 const globalPref = window.ferdi.stores.settings.all.app.userAgentPref;
46 if (typeof globalPref === 'string') {
47 const trimmed = globalPref.trim();
48 if (trimmed !== '') {
49 return trimmed;
50 }
51 }
52 return defaultUserAgent();
53 }
54
55 @computed get userAgentWithChromeVersion() {
56 if (typeof this.userAgentPref === 'string') {
57 const trimmed = this.userAgentPref.trim();
58 if (trimmed !== '') {
59 return trimmed;
60 }
61 }
62 return this.defaultUserAgent;
63 }
64
65 @computed get userAgentWithoutChromeVersion() {
66 const withChrome = this.userAgentWithChromeVersion;
67 return withChrome.replace(/Chrome\/[0-9.]+/, 'Chrome');
68 }
69
39 @computed get userAgent() { 70 @computed get userAgent() {
40 return this.chromelessUserAgent ? defaultUserAgent(true) : this.getUserAgent(); 71 return this.chromelessUserAgent ? this.userAgentWithoutChromeVersion : this.userAgentWithChromeVersion;
41 } 72 }
42 73
43 @action setWebviewReference(webview) { 74 @action setWebviewReference(webview) {