Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/network/NetworkConfigView.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4
5 /** 4 /**
6 * @constructor 5 * @unrestricted
7 * @extends {WebInspector.VBox}
8 */ 6 */
9 WebInspector.NetworkConfigView = function() 7 WebInspector.NetworkConfigView = class extends WebInspector.VBox {
10 { 8 constructor() {
11 WebInspector.VBox.call(this, true); 9 super(true);
12 this.registerRequiredCSS("network/networkConfigView.css"); 10 this.registerRequiredCSS('network/networkConfigView.css');
13 this.contentElement.classList.add("network-config"); 11 this.contentElement.classList.add('network-config');
14 12
15 this._createCacheSection(); 13 this._createCacheSection();
16 this.contentElement.createChild("div").classList.add("panel-section-separato r"); 14 this.contentElement.createChild('div').classList.add('panel-section-separato r');
17 this._createNetworkThrottlingSection(); 15 this._createNetworkThrottlingSection();
18 this.contentElement.createChild("div").classList.add("panel-section-separato r"); 16 this.contentElement.createChild('div').classList.add('panel-section-separato r');
19 this._createUserAgentSection(); 17 this._createUserAgentSection();
20 }; 18 }
21 19
22 WebInspector.NetworkConfigView.prototype = { 20 /**
23 /** 21 * @return {{select: !Element, input: !Element}}
24 * @param {string} title 22 */
25 * @param {string=} className 23 static createUserAgentSelectAndInput() {
26 * @return {!Element} 24 var userAgentSetting = WebInspector.settings.createSetting('customUserAgent' , '');
27 */ 25 var userAgentSelectElement = createElement('select');
28 _createSection: function(title, className) 26
29 { 27 const customOverride = {title: WebInspector.UIString('Custom...'), value: 'c ustom'};
30 var section = this.contentElement.createChild("section", "network-config -group");
31 if (className)
32 section.classList.add(className);
33 section.createChild("div", "network-config-title").textContent = title;
34 return section.createChild("div", "network-config-fields");
35 },
36
37 _createCacheSection: function()
38 {
39 var section = this._createSection(WebInspector.UIString("Caching"), "net work-config-disable-cache");
40 section.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebIns pector.UIString("Disable cache"), WebInspector.moduleSetting("cacheDisabled"), t rue));
41 },
42
43 _createNetworkThrottlingSection: function()
44 {
45 var section = this._createSection(WebInspector.UIString("Network throttl ing"), "network-config-throttling");
46 WebInspector.NetworkConditionsSelector.decorateSelect(/** @type {!HTMLSe lectElement} */(section.createChild("select", "chrome-select")));
47 },
48
49 _createUserAgentSection: function()
50 {
51 var section = this._createSection(WebInspector.UIString("User agent"), " network-config-ua");
52 var checkboxLabel = createCheckboxLabel(WebInspector.UIString("Select au tomatically"), true);
53 section.appendChild(checkboxLabel);
54 this._autoCheckbox = checkboxLabel.checkboxElement;
55 this._autoCheckbox.addEventListener("change", this._userAgentTypeChanged .bind(this));
56
57 this._customUserAgentSetting = WebInspector.settings.createSetting("cust omUserAgent", "");
58 this._customUserAgentSetting.addChangeListener(this._customUserAgentChan ged, this);
59
60 this._customUserAgent = section.createChild("div", "network-config-ua-cu stom");
61 this._customSelectAndInput = WebInspector.NetworkConfigView.createUserAg entSelectAndInput();
62 this._customSelectAndInput.select.classList.add("chrome-select");
63 this._customUserAgent.appendChild(this._customSelectAndInput.select);
64 this._customUserAgent.appendChild(this._customSelectAndInput.input);
65 this._userAgentTypeChanged();
66 },
67
68 _customUserAgentChanged: function()
69 {
70 if (this._autoCheckbox.checked)
71 return;
72 WebInspector.multitargetNetworkManager.setCustomUserAgentOverride(this._ customUserAgentSetting.get());
73 },
74
75 _userAgentTypeChanged: function()
76 {
77 var useCustomUA = !this._autoCheckbox.checked;
78 this._customUserAgent.classList.toggle("checked", useCustomUA);
79 this._customSelectAndInput.select.disabled = !useCustomUA;
80 this._customSelectAndInput.input.disabled = !useCustomUA;
81 var customUA = useCustomUA ? this._customUserAgentSetting.get() : "";
82 WebInspector.multitargetNetworkManager.setCustomUserAgentOverride(custom UA);
83 },
84
85 __proto__ : WebInspector.VBox.prototype
86 };
87
88
89 /**
90 * @return {{select: !Element, input: !Element}}
91 */
92 WebInspector.NetworkConfigView.createUserAgentSelectAndInput = function()
93 {
94 var userAgentSetting = WebInspector.settings.createSetting("customUserAgent" , "");
95 var userAgentSelectElement = createElement("select");
96
97 const customOverride = {title: WebInspector.UIString("Custom..."), value: "c ustom"};
98 userAgentSelectElement.appendChild(new Option(customOverride.title, customOv erride.value)); 28 userAgentSelectElement.appendChild(new Option(customOverride.title, customOv erride.value));
99 29
100 var groups = WebInspector.NetworkConfigView._userAgentGroups; 30 var groups = WebInspector.NetworkConfigView._userAgentGroups;
101 for (var userAgentDescriptor of groups) { 31 for (var userAgentDescriptor of groups) {
102 var groupElement = userAgentSelectElement.createChild("optgroup"); 32 var groupElement = userAgentSelectElement.createChild('optgroup');
103 groupElement.label = userAgentDescriptor.title; 33 groupElement.label = userAgentDescriptor.title;
104 for (var userAgentVersion of userAgentDescriptor.values) { 34 for (var userAgentVersion of userAgentDescriptor.values) {
105 var userAgentValue = WebInspector.MultitargetNetworkManager.patchUse rAgentWithChromeVersion(userAgentVersion.value); 35 var userAgentValue =
106 groupElement.appendChild(new Option(userAgentVersion.title, userAgen tValue)); 36 WebInspector.MultitargetNetworkManager.patchUserAgentWithChromeVersi on(userAgentVersion.value);
107 } 37 groupElement.appendChild(new Option(userAgentVersion.title, userAgentVal ue));
38 }
108 } 39 }
109 40
110 userAgentSelectElement.selectedIndex = 0; 41 userAgentSelectElement.selectedIndex = 0;
111 42
112 var otherUserAgentElement = createElement("input"); 43 var otherUserAgentElement = createElement('input');
113 otherUserAgentElement.type = "text"; 44 otherUserAgentElement.type = 'text';
114 otherUserAgentElement.value = userAgentSetting.get(); 45 otherUserAgentElement.value = userAgentSetting.get();
115 otherUserAgentElement.title = userAgentSetting.get(); 46 otherUserAgentElement.title = userAgentSetting.get();
116 otherUserAgentElement.placeholder = WebInspector.UIString("Enter a custom us er agent"); 47 otherUserAgentElement.placeholder = WebInspector.UIString('Enter a custom us er agent');
117 otherUserAgentElement.required = true; 48 otherUserAgentElement.required = true;
118 49
119 settingChanged(); 50 settingChanged();
120 userAgentSelectElement.addEventListener("change", userAgentSelected, false); 51 userAgentSelectElement.addEventListener('change', userAgentSelected, false);
121 otherUserAgentElement.addEventListener("input", applyOtherUserAgent, false); 52 otherUserAgentElement.addEventListener('input', applyOtherUserAgent, false);
122 53
123 function userAgentSelected() 54 function userAgentSelected() {
124 { 55 var value = userAgentSelectElement.options[userAgentSelectElement.selected Index].value;
125 var value = userAgentSelectElement.options[userAgentSelectElement.select edIndex].value; 56 if (value !== customOverride.value) {
126 if (value !== customOverride.value) { 57 userAgentSetting.set(value);
127 userAgentSetting.set(value); 58 otherUserAgentElement.value = value;
128 otherUserAgentElement.value = value; 59 otherUserAgentElement.title = value;
129 otherUserAgentElement.title = value; 60 } else {
130 } else { 61 otherUserAgentElement.select();
131 otherUserAgentElement.select(); 62 }
63 }
64
65 function settingChanged() {
66 var value = userAgentSetting.get();
67 var options = userAgentSelectElement.options;
68 var selectionRestored = false;
69 for (var i = 0; i < options.length; ++i) {
70 if (options[i].value === value) {
71 userAgentSelectElement.selectedIndex = i;
72 selectionRestored = true;
73 break;
132 } 74 }
75 }
76
77 if (!selectionRestored)
78 userAgentSelectElement.selectedIndex = 0;
133 } 79 }
134 80
135 function settingChanged() 81 function applyOtherUserAgent() {
136 { 82 if (userAgentSetting.get() !== otherUserAgentElement.value) {
137 var value = userAgentSetting.get(); 83 userAgentSetting.set(otherUserAgentElement.value);
138 var options = userAgentSelectElement.options; 84 otherUserAgentElement.title = otherUserAgentElement.value;
139 var selectionRestored = false; 85 settingChanged();
140 for (var i = 0; i < options.length; ++i) { 86 }
141 if (options[i].value === value) {
142 userAgentSelectElement.selectedIndex = i;
143 selectionRestored = true;
144 break;
145 }
146 }
147
148 if (!selectionRestored)
149 userAgentSelectElement.selectedIndex = 0;
150 } 87 }
151 88
152 function applyOtherUserAgent() 89 return {select: userAgentSelectElement, input: otherUserAgentElement};
153 { 90 }
154 if (userAgentSetting.get() !== otherUserAgentElement.value) { 91
155 userAgentSetting.set(otherUserAgentElement.value); 92 /**
156 otherUserAgentElement.title = otherUserAgentElement.value; 93 * @param {string} title
157 settingChanged(); 94 * @param {string=} className
158 } 95 * @return {!Element}
159 } 96 */
160 97 _createSection(title, className) {
161 return { select: userAgentSelectElement, input: otherUserAgentElement }; 98 var section = this.contentElement.createChild('section', 'network-config-gro up');
99 if (className)
100 section.classList.add(className);
101 section.createChild('div', 'network-config-title').textContent = title;
102 return section.createChild('div', 'network-config-fields');
103 }
104
105 _createCacheSection() {
106 var section = this._createSection(WebInspector.UIString('Caching'), 'network -config-disable-cache');
107 section.appendChild(WebInspector.SettingsUI.createSettingCheckbox(
108 WebInspector.UIString('Disable cache'), WebInspector.moduleSetting('cach eDisabled'), true));
109 }
110
111 _createNetworkThrottlingSection() {
112 var section = this._createSection(WebInspector.UIString('Network throttling' ), 'network-config-throttling');
113 WebInspector.NetworkConditionsSelector.decorateSelect(
114 /** @type {!HTMLSelectElement} */ (section.createChild('select', 'chrome -select')));
115 }
116
117 _createUserAgentSection() {
118 var section = this._createSection(WebInspector.UIString('User agent'), 'netw ork-config-ua');
119 var checkboxLabel = createCheckboxLabel(WebInspector.UIString('Select automa tically'), true);
120 section.appendChild(checkboxLabel);
121 this._autoCheckbox = checkboxLabel.checkboxElement;
122 this._autoCheckbox.addEventListener('change', this._userAgentTypeChanged.bin d(this));
123
124 this._customUserAgentSetting = WebInspector.settings.createSetting('customUs erAgent', '');
125 this._customUserAgentSetting.addChangeListener(this._customUserAgentChanged, this);
126
127 this._customUserAgent = section.createChild('div', 'network-config-ua-custom ');
128 this._customSelectAndInput = WebInspector.NetworkConfigView.createUserAgentS electAndInput();
129 this._customSelectAndInput.select.classList.add('chrome-select');
130 this._customUserAgent.appendChild(this._customSelectAndInput.select);
131 this._customUserAgent.appendChild(this._customSelectAndInput.input);
132 this._userAgentTypeChanged();
133 }
134
135 _customUserAgentChanged() {
136 if (this._autoCheckbox.checked)
137 return;
138 WebInspector.multitargetNetworkManager.setCustomUserAgentOverride(this._cust omUserAgentSetting.get());
139 }
140
141 _userAgentTypeChanged() {
142 var useCustomUA = !this._autoCheckbox.checked;
143 this._customUserAgent.classList.toggle('checked', useCustomUA);
144 this._customSelectAndInput.select.disabled = !useCustomUA;
145 this._customSelectAndInput.input.disabled = !useCustomUA;
146 var customUA = useCustomUA ? this._customUserAgentSetting.get() : '';
147 WebInspector.multitargetNetworkManager.setCustomUserAgentOverride(customUA);
148 }
162 }; 149 };
163 150
151
164 /** @type {!Array.<{title: string, values: !Array.<{title: string, value: string }>}>} */ 152 /** @type {!Array.<{title: string, values: !Array.<{title: string, value: string }>}>} */
165 WebInspector.NetworkConfigView._userAgentGroups = [ 153 WebInspector.NetworkConfigView._userAgentGroups = [
166 { 154 {
167 title: "Android", 155 title: 'Android',
168 values: [ 156 values: [
169 {title: "Android (4.0.2) Browser \u2014 Galaxy Nexus", value: "Mozil la/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/5 34.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"}, 157 {
170 {title: "Android (2.3) Browser \u2014 Nexus S", value: "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"} 158 title: 'Android (4.0.2) Browser \u2014 Galaxy Nexus',
171 ] 159 value:
172 }, 160 'Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL 53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
173 { 161 },
174 title: "BlackBerry", 162 {
175 values: [ 163 title: 'Android (2.3) Browser \u2014 Nexus S',
176 {title: "BlackBerry \u2014 BB10", value: "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+" }, 164 value:
177 {title: "BlackBerry \u2014 PlayBook 2.1", value: "Mozilla/5.0 (PlayB ook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Versi on/7.2.1.0 Safari/536.2+"}, 165 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
178 {title: "BlackBerry \u2014 9900", value: "Mozilla/5.0 (BlackBerry; U ; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0. 187 Mobile Safari/534.11+"} 166 }
179 ] 167 ]
180 }, 168 },
181 { 169 {
182 title: "Chrome", 170 title: 'BlackBerry',
183 values: [ 171 values: [
184 {title: "Chrome \u2014 Android Mobile", value: "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome /%s Mobile Safari/537.36"}, 172 {
185 {title: "Chrome \u2014 Android Tablet", value: "Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome /%s Safari/537.36"}, 173 title: 'BlackBerry \u2014 BB10',
186 {title: "Chrome \u2014 iPhone", value: "Mozilla/5.0 (iPhone; CPU iPh one OS 9_1 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/%s Mobile/ 13B143 Safari/601.1.46"}, 174 value:
187 {title: "Chrome \u2014 iPad", value: "Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/%s Mobile/13B143 Safa ri/601.1.46"}, 175 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Ve rsion/10.0.0.1337 Mobile Safari/537.1+'
188 {title: "Chrome \u2014 Mac", value: "Mozilla/5.0 (Macintosh; Intel M ac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36" }, 176 },
189 {title: "Chrome \u2014 Windows", value: "Mozilla/5.0 (Windows NT 10. 0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36"} 177 {
190 ] 178 title: 'BlackBerry \u2014 PlayBook 2.1',
191 }, 179 value:
192 { 180 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/5 36.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+'
193 title: "Edge", 181 },
194 values: [ 182 {
195 {title: "Edge \u2014 Windows", value: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/ 537.36 Edge/12.10240"}, 183 title: 'BlackBerry \u2014 9900',
196 {title: "Edge \u2014 Mobile", value: "Mozilla/5.0 (Windows Phone 10. 0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like G ecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166"}, 184 value:
197 {title: "Edge \u2014 XBox", value: "Mozilla/5.0 (Windows NT 10.0; Wi n64; x64; Xbox; Xbox One) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.231 1.135 Safari/537.36 Edge/13.10586"} 185 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534 .11+ (KHTML, like Gecko) Version/7.0.0.187 Mobile Safari/534.11+'
198 ] 186 }
199 }, 187 ]
200 { 188 },
201 title: "Firefox", 189 {
202 values: [ 190 title: 'Chrome',
203 {title: "Firefox \u2014 Android Mobile", value: "Mozilla/5.0 (Androi d 4.4; Mobile; rv:46.0) Gecko/46.0 Firefox/46.0"}, 191 values: [
204 {title: "Firefox \u2014 Android Tablet", value: "Mozilla/5.0 (Androi d 4.4; Tablet; rv:46.0) Gecko/46.0 Firefox/46.0"}, 192 {
205 {title: "Firefox \u2014 iPhone", value: "Mozilla/5.0 (iPhone; CPU iP hone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mob ile/12F69 Safari/600.1.4"}, 193 title: 'Chrome \u2014 Android Mobile',
206 {title: "Firefox \u2014 iPad", value: "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/ 12F69 Safari/600.1.4"}, 194 value:
207 {title: "Firefox \u2014 Mac", value: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0"}, 195 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/ 537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36'
208 {title: "Firefox \u2014 Windows", value: "Mozilla/5.0 (Windows NT 10 .0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"} 196 },
209 ] 197 {
210 }, 198 title: 'Chrome \u2014 Android Tablet',
211 { 199 value:
212 title: "Googlebot", 200 'Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/ 537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36'
213 values: [ 201 },
214 {title: "Googlebot", value: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"}, 202 {
215 {title: "Googlebot Smartphone", value: "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0 .2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com /bot.html)"} 203 title: 'Chrome \u2014 iPhone',
216 ] 204 value:
217 }, 205 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/6 01.1 (KHTML, like Gecko) CriOS/%s Mobile/13B143 Safari/601.1.46'
218 { 206 },
219 title: "Internet Explorer", 207 {
220 values: [ 208 title: 'Chrome \u2014 iPad',
221 {title: "Internet Explorer 11", value: "Mozilla/5.0 (Windows NT 10.0 ; WOW64; Trident/7.0; rv:11.0) like Gecko"}, 209 value:
222 {title: "Internet Explorer 10", value: "Mozilla/5.0 (compatible; MSI E 10.0; Windows NT 6.1; WOW64; Trident/6.0)"}, 210 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1 (KHT ML, like Gecko) CriOS/%s Mobile/13B143 Safari/601.1.46'
223 {title: "Internet Explorer 9", value: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"}, 211 },
224 {title: "Internet Explorer 8", value: "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)"}, 212 {
225 {title: "Internet Explorer 7", value: "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"} 213 title: 'Chrome \u2014 Mac',
226 ] 214 value:
227 }, 215 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36'
228 { 216 },
229 title: "Opera", 217 {
230 values: [ 218 title: 'Chrome \u2014 Windows',
231 {title: "Opera \u2014 Mac", value: "Mozilla/5.0 (Macintosh; Intel Ma c OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safar i/537.36 OPR/37.0.2178.31"}, 219 value: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36'
232 {title: "Opera \u2014 Windows", value: "Mozilla/5.0 (Windows NT 10.0 ; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.3 6 OPR/37.0.2178.31"}, 220 }
233 {title: "Opera (Presto) \u2014 Mac", value: "Opera/9.80 (Macintosh; Intel Mac OS X 10.9.1) Presto/2.12.388 Version/12.16"}, 221 ]
234 {title: "Opera (Presto) \u2014 Windows", value: "Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.16"}, 222 },
235 {title: "Opera Mobile \u2014 Android Mobile", value: "Opera/12.02 (A ndroid 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/1 2.02"}, 223 {
236 {title: "Opera Mini \u2014 iOS", value: "Opera/9.80 (iPhone; Opera M ini/8.0.0/34.2336; U; en) Presto/2.8.119 Version/11.10"} 224 title: 'Edge',
237 ] 225 values: [
238 }, 226 {
239 { 227 title: 'Edge \u2014 Windows',
240 title: "Safari", 228 value:
241 values: [ 229 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML , like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240'
242 {title: "Safari \u2014 iPad iOS 9", value: "Mozilla/5.0 (iPad; CPU O S 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile /13B137 Safari/601.1"}, 230 },
243 {title: "Safari \u2014 iPhone iOS 9", value: "Mozilla/5.0 (iPhone; C PU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version /9.0 Mobile/13B137 Safari/601.1"}, 231 {
244 {title: "Safari \u2014 Mac", value: "Mozilla/5.0 (Macintosh; Intel M ac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7 046A194A"} 232 title: 'Edge \u2014 Mobile',
245 ] 233 value:
246 }, 234 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 64 0 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Saf ari/537.36 Edge/12.10166'
247 { 235 },
248 title: "UC Browser", 236 {
249 values: [ 237 title: 'Edge \u2014 XBox',
250 {title: "UC Browser \u2014 Android Mobile", value: "Mozilla/5.0 (Lin ux; U; Android 4.4.4; en-US; XT1022 Build/KXC21.5-40) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/10.7.0.636 U3/0.8.0 Mobile Safari/534.30"}, 238 value:
251 {title: "UC Browser \u2014 iOS", value: "UCWEB/2.0 (iPad; U; CPU OS 7_1 like Mac OS X; en; iPad3,6) U2/1.0.0 UCBrowser/9.3.1.344"}, 239 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox One) AppleWebK it/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/13.10586'
252 {title: "UC Browser \u2014 Windows Phone", value: "NokiaX2-02/2.0 (1 1.79) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) UCBrowser8.4.0.159/70/352"} 240 }
253 ] 241 ]
254 } 242 },
243 {
244 title: 'Firefox',
245 values: [
246 {
247 title: 'Firefox \u2014 Android Mobile',
248 value: 'Mozilla/5.0 (Android 4.4; Mobile; rv:46.0) Gecko/46.0 Firefox/46 .0'
249 },
250 {
251 title: 'Firefox \u2014 Android Tablet',
252 value: 'Mozilla/5.0 (Android 4.4; Tablet; rv:46.0) Gecko/46.0 Firefox/46 .0'
253 },
254 {
255 title: 'Firefox \u2014 iPhone',
256 value:
257 'Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/6 00.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4'
258 },
259 {
260 title: 'Firefox \u2014 iPad',
261 value:
262 'Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600 .1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4'
263 },
264 {
265 title: 'Firefox \u2014 Mac',
266 value: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/201 00101 Firefox/46.0'
267 },
268 {
269 title: 'Firefox \u2014 Windows',
270 value: 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Fir efox/46.0'
271 }
272 ]
273 },
274 {
275 title: 'Googlebot',
276 values: [
277 {title: 'Googlebot', value: 'Mozilla/5.0 (compatible; Googlebot/2.1; +http ://www.google.com/bot.html)'}, {
278 title: 'Googlebot Smartphone',
279 value:
280 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebK it/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatib le; Googlebot/2.1; +http://www.google.com/bot.html)'
281 }
282 ]
283 },
284 {
285 title: 'Internet Explorer',
286 values: [
287 {title: 'Internet Explorer 11', value: 'Mozilla/5.0 (Windows NT 10.0; WOW6 4; Trident/7.0; rv:11.0) like Gecko'},
288 {title: 'Internet Explorer 10', value: 'Mozilla/5.0 (compatible; MSIE 10.0 ; Windows NT 6.1; WOW64; Trident/6.0)'},
289 {title: 'Internet Explorer 9', value: 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'},
290 {title: 'Internet Explorer 8', value: 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)'},
291 {title: 'Internet Explorer 7', value: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'}
292 ]
293 },
294 {
295 title: 'Opera',
296 values: [
297 {
298 title: 'Opera \u2014 Mac',
299 value:
300 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31'
301 },
302 {
303 title: 'Opera \u2014 Windows',
304 value:
305 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, lik e Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.31'
306 },
307 {
308 title: 'Opera (Presto) \u2014 Mac',
309 value: 'Opera/9.80 (Macintosh; Intel Mac OS X 10.9.1) Presto/2.12.388 Ve rsion/12.16'
310 },
311 {title: 'Opera (Presto) \u2014 Windows', value: 'Opera/9.80 (Windows NT 6. 1) Presto/2.12.388 Version/12.16'}, {
312 title: 'Opera Mobile \u2014 Android Mobile',
313 value: 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; e n-US) Presto/2.9.201 Version/12.02'
314 },
315 {
316 title: 'Opera Mini \u2014 iOS',
317 value: 'Opera/9.80 (iPhone; Opera Mini/8.0.0/34.2336; U; en) Presto/2.8. 119 Version/11.10'
318 }
319 ]
320 },
321 {
322 title: 'Safari',
323 values: [
324 {
325 title: 'Safari \u2014 iPad iOS 9',
326 value:
327 'Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 ( KHTML, like Gecko) Version/9.0 Mobile/13B137 Safari/601.1'
328 },
329 {
330 title: 'Safari \u2014 iPhone iOS 9',
331 value:
332 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/6 01.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B137 Safari/601.1'
333 },
334 {
335 title: 'Safari \u2014 Mac',
336 value:
337 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.1 4 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'
338 }
339 ]
340 },
341 {
342 title: 'UC Browser',
343 values: [
344 {
345 title: 'UC Browser \u2014 Android Mobile',
346 value:
347 'Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; XT1022 Build/KXC21.5-4 0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/10.7.0.636 U3/0. 8.0 Mobile Safari/534.30'
348 },
349 {
350 title: 'UC Browser \u2014 iOS',
351 value: 'UCWEB/2.0 (iPad; U; CPU OS 7_1 like Mac OS X; en; iPad3,6) U2/1. 0.0 UCBrowser/9.3.1.344'
352 },
353 {
354 title: 'UC Browser \u2014 Windows Phone',
355 value:
356 'NokiaX2-02/2.0 (11.79) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozi lla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;.NET CLR 2.0.5 0727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) U CBrowser8.4.0.159/70/352'
357 }
358 ]
359 }
255 ]; 360 ];
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698