Changeset 99408 in webkit
- Timestamp:
- Nov 7, 2011, 5:22:09 AM (15 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
-
ChangeLog (modified) (1 diff)
-
English.lproj/localizedStrings.js (modified) ( previous)
-
inspector/InspectorResourceAgent.cpp (modified) (4 diffs)
-
inspector/front-end/HelpScreen.js (modified) (4 diffs)
-
inspector/front-end/NetworkManager.js (modified) (2 diffs)
-
inspector/front-end/Settings.js (modified) (1 diff)
-
inspector/front-end/SettingsScreen.js (modified) (4 diffs)
-
inspector/front-end/helpScreen.css (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r99407 r99408 1 2011-11-07 Pavel Feldman <pfeldman@chromium.org> 2 3 Web Inspector: introduce UserAgent override setting. 4 https://bugs.webkit.org/show_bug.cgi?id=71627 5 6 Reviewed by Yury Semikhatsky. 7 8 * English.lproj/localizedStrings.js: 9 * inspector/InspectorResourceAgent.cpp: 10 (WebCore::InspectorResourceAgent::clearFrontend): 11 (WebCore::InspectorResourceAgent::applyUserAgentOverride): 12 (WebCore::InspectorResourceAgent::setUserAgentOverride): 13 * inspector/front-end/HelpScreen.js: 14 (WebInspector.HelpScreen): 15 (WebInspector.HelpScreen.prototype.show): 16 (WebInspector.HelpScreen.prototype._onBlur): 17 * inspector/front-end/NetworkManager.js: 18 (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged): 19 (WebInspector.NetworkManager.prototype._userAgentSettingChanged): 20 * inspector/front-end/Settings.js: 21 (WebInspector.Settings): 22 * inspector/front-end/SettingsScreen.js: 23 (WebInspector.SettingsScreen): 24 (WebInspector.SettingsScreen.prototype._createSelectSetting.get for): 25 (WebInspector.SettingsScreen.prototype._createCustomSetting): 26 (WebInspector.SettingsScreen.prototype._createUserActionControl.checkboxClicked): 27 (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const): 28 (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.textDoubleClicked): 29 (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.textChanged): 30 * inspector/front-end/helpScreen.css: 31 (.help-table td): 32 (.help-content fieldset label): 33 1 34 2011-11-07 Alexander Pavlov <apavlov@chromium.org> 2 35 -
trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp
r96227 r99408 74 74 static const char extraRequestHeaders[] = "extraRequestHeaders"; 75 75 static const char cacheDisabled[] = "cacheDisabled"; 76 static const char userAgentOverride[] = "userAgentOverride"; 76 77 } 77 78 … … 86 87 ErrorString error; 87 88 disable(&error); 88 m_userAgentOverride = "";89 89 } 90 90 … … 349 349 void InspectorResourceAgent::applyUserAgentOverride(String* userAgent) 350 350 { 351 if (!m_userAgentOverride.isEmpty()) 352 *userAgent = m_userAgentOverride; 351 String userAgentOverride = m_state->getString(ResourceAgentState::userAgentOverride); 352 if (!userAgentOverride.isEmpty()) 353 *userAgent = userAgentOverride; 353 354 } 354 355 … … 470 471 void InspectorResourceAgent::setUserAgentOverride(ErrorString*, const String& userAgent) 471 472 { 472 m_ userAgentOverride = userAgent;473 m_state->setString(ResourceAgentState::userAgentOverride, userAgent); 473 474 } 474 475 -
trunk/Source/WebCore/inspector/front-end/HelpScreen.js
r98855 r99408 37 37 this._element.className = "help-window-outer"; 38 38 this._element.addEventListener("keydown", this._onKeyDown.bind(this), false); 39 this._element.tabIndex = 0; 40 this._element.addEventListener("focus", this._onBlur.bind(this), false); 39 41 40 42 var mainWindow = this._element.createChild("div", "help-window-main"); … … 42 44 var closeButton = captionWindow.createChild("button", "help-close-button"); 43 45 this.contentElement = mainWindow.createChild("div", "help-content"); 44 this.contentElement.tabIndex = 0;45 this.contentElement.addEventListener("blur", this._onBlur.bind(this), false);46 46 captionWindow.createChild("h1", "help-window-title").textContent = title; 47 47 … … 65 65 this._onHide = onHide; 66 66 this._previousFocusElement = WebInspector.currentFocusElement(); 67 WebInspector.setCurrentFocusElement(this. contentElement);67 WebInspector.setCurrentFocusElement(this._element); 68 68 }, 69 69 … … 90 90 }, 91 91 92 _onBlur: function( )92 _onBlur: function(event) 93 93 { 94 // Pretend we're modal, grab focus back if we're still shown.95 if (this._isShown )96 WebInspector.setCurrentFocusElement(this. contentElement);94 // Pretend we're modal, grab focus back if we're still shown. 95 if (this._isShown && event.target !== this._element && !this._element.isAncestor(event.target)) 96 WebInspector.setCurrentFocusElement(this._element); 97 97 } 98 98 } -
trunk/Source/WebCore/inspector/front-end/NetworkManager.js
r98456 r99408 41 41 NetworkAgent.enable(); 42 42 43 WebInspector.settings.cacheDisabled.addChangeListener(this._cacheDisabledSettingChanged.bind(this)); 43 WebInspector.settings.cacheDisabled.addChangeListener(this._cacheDisabledSettingChanged, this); 44 45 if (WebInspector.settings.userAgent.get()) 46 this._userAgentSettingChanged(); 47 WebInspector.settings.userAgent.addChangeListener(this._userAgentSettingChanged, this); 44 48 } 45 49 … … 76 80 { 77 81 NetworkAgent.setCacheDisabled(event.data); 82 }, 83 84 _userAgentSettingChanged: function() 85 { 86 NetworkAgent.setUserAgentOverride(WebInspector.settings.userAgent.get()); 78 87 } 79 88 } -
trunk/Source/WebCore/inspector/front-end/Settings.js
r98855 r99408 91 91 this.workerInspectionEnabled = this.createSetting("workerInspectionEnabled", []); 92 92 this.cacheDisabled = this.createSetting("cacheDisabled", false); 93 this.overrideUserAgent = this.createSetting("overrideUserAgent", ""); 94 this.userAgent = this.createSetting("userAgent", ""); 93 95 this.showScriptFolders = this.createSetting("showScriptFolders", true); 94 96 -
trunk/Source/WebCore/inspector/front-end/SettingsScreen.js
r98545 r99408 53 53 p = this._appendSection(WebInspector.UIString("Text editor")); 54 54 p.appendChild(this._createSelectSetting(WebInspector.UIString("Indent"), [ 55 [ WebInspector.TextEditorModel.Indent.TwoSpaces, WebInspector.UIString("2 spaces") ], 56 [ WebInspector.TextEditorModel.Indent.FourSpaces, WebInspector.UIString("4 spaces") ], 57 [ WebInspector.TextEditorModel.Indent.EightSpaces, WebInspector.UIString("8 spaces") ], 58 [ WebInspector.TextEditorModel.Indent.TabCharacter, WebInspector.UIString("Tab character") ] ], WebInspector.settings.textEditorIndent)); 59 60 if (Preferences.canDisableCache) { 61 p = this._appendSection(WebInspector.UIString("Network"), true); 55 [ WebInspector.UIString("2 spaces"), WebInspector.TextEditorModel.Indent.TwoSpaces ], 56 [ WebInspector.UIString("4 spaces"), WebInspector.TextEditorModel.Indent.FourSpaces ], 57 [ WebInspector.UIString("8 spaces"), WebInspector.TextEditorModel.Indent.EightSpaces ], 58 [ WebInspector.UIString("Tab character"), WebInspector.TextEditorModel.Indent.TabCharacter ] 59 ], WebInspector.settings.textEditorIndent)); 60 61 p = this._appendSection(WebInspector.UIString("Network"), true); 62 if (Preferences.canDisableCache) 62 63 p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Disable cache"), WebInspector.settings.cacheDisabled)); 63 }64 p.appendChild(this._createUserActionControl()); 64 65 65 66 p = this._appendSection(WebInspector.UIString("Scripts"), true); … … 130 131 { 131 132 var fieldsetElement = document.createElement("fieldset"); 132 fieldsetElement. textContent = name;133 fieldsetElement.createChild("label").textContent = name; 133 134 134 135 var select = document.createElement("select"); … … 137 138 for (var i = 0; i < options.length; ++i) { 138 139 var option = options[i]; 139 select.add(new Option(option[ 1], option[0]));140 if (settingValue === option[ 0])140 select.add(new Option(option[0], option[1])); 141 if (settingValue === option[1]) 141 142 select.selectedIndex = i; 142 143 143 } 144 144 … … 197 197 var p = document.createElement("p"); 198 198 var fieldsetElement = document.createElement("fieldset"); 199 fieldsetElement. textContent = name;199 fieldsetElement.createChild("label").textContent = name; 200 200 fieldsetElement.appendChild(element); 201 201 p.appendChild(fieldsetElement); 202 202 return p; 203 }, 204 205 _createUserActionControl: function() 206 { 207 var userAgent = WebInspector.settings.userAgent.get(); 208 209 var p = document.createElement("p"); 210 var labelElement = p.createChild("label"); 211 var checkboxElement = labelElement.createChild("input"); 212 checkboxElement.type = "checkbox"; 213 checkboxElement.checked = !!userAgent; 214 checkboxElement.addEventListener("click", checkboxClicked.bind(this), false); 215 labelElement.appendChild(document.createTextNode("Override User Agent")); 216 217 var selectSectionElement; 218 function checkboxClicked() 219 { 220 if (checkboxElement.checked) { 221 selectSectionElement = this._createUserAgentSelectRowElement(); 222 p.appendChild(selectSectionElement); 223 } else { 224 if (selectSectionElement) { 225 p.removeChild(selectSectionElement); 226 selectSectionElement = null; 227 } 228 WebInspector.settings.userAgent.set(""); 229 } 230 } 231 232 checkboxClicked.call(this); 233 return p; 234 }, 235 236 _createUserAgentSelectRowElement: function() 237 { 238 var userAgent = WebInspector.settings.userAgent.get(); 239 const userAgents = [ 240 ["Internet Explorer 9", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0"], 241 ["Internet Explorer 8", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0"], 242 ["Internet Explorer 7", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0"], 243 244 ["Firefox 7 \u2014 Windows", "Mozilla/5.0 (Windows NT 6.1; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"], 245 ["Firefox 7 \u2014 Mac", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"], 246 ["Firefox 4 \u2014 Windows", "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"], 247 ["Firefox 4 \u2014 Mac", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"], 248 249 ["iPhone \u2014 iOS 5", "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"], 250 ["iPhone \u2014 iOS 4", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"], 251 ["iPad \u2014 iOS 5", "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"], 252 ["iPad \u2014 iOS 4", "Mozilla/5.0 (iPad; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"], 253 254 ["Android 2.3 \u2014 Nexus S", "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"], 255 [WebInspector.UIString("Other..."), "Other"] 256 ]; 257 258 var fieldsetElement = document.createElement("fieldset"); 259 var selectElement = fieldsetElement.createChild("select"); 260 var otherUserAgentElement = fieldsetElement.createChild("input"); 261 otherUserAgentElement.value = userAgent; 262 otherUserAgentElement.title = userAgent; 263 264 var selectionRestored = false; 265 for (var i = 0; i < userAgents.length; ++i) { 266 var agent = userAgents[i]; 267 selectElement.add(new Option(agent[0], agent[1])); 268 if (userAgent === agent[1]) { 269 selectElement.selectedIndex = i; 270 selectionRestored = true; 271 } 272 } 273 274 if (!selectionRestored) { 275 if (!userAgent) 276 selectElement.selectedIndex = 0; 277 else 278 selectElement.selectedIndex = userAgents.length - 1; 279 } 280 281 selectElement.addEventListener("change", selectionChanged.bind(this), false); 282 283 function selectionChanged() 284 { 285 var value = selectElement.options[selectElement.selectedIndex].value; 286 if (value !== "Other") { 287 WebInspector.settings.userAgent.set(value); 288 otherUserAgentElement.value = value; 289 otherUserAgentElement.title = value; 290 otherUserAgentElement.disabled = true; 291 } else { 292 otherUserAgentElement.disabled = false; 293 otherUserAgentElement.focus(); 294 } 295 } 296 297 fieldsetElement.addEventListener("dblclick", textDoubleClicked.bind(this), false); 298 otherUserAgentElement.addEventListener("blur", textChanged.bind(this), false); 299 300 function textDoubleClicked() 301 { 302 selectElement.selectedIndex = userAgents.length - 1; 303 selectionChanged.call(this); 304 } 305 306 function textChanged() 307 { 308 WebInspector.settings.userAgent.set(otherUserAgentElement.value); 309 } 310 311 selectionChanged.call(this); 312 return fieldsetElement; 203 313 } 204 } ;314 } 205 315 206 316 WebInspector.SettingsScreen.prototype.__proto__ = WebInspector.HelpScreen.prototype; -
trunk/Source/WebCore/inspector/front-end/helpScreen.css
r95942 r99408 131 131 white-space: nowrap; 132 132 vertical-align: top; 133 width: 50%; 133 134 } 134 135 … … 173 174 margin: 0 0 0 6px; 174 175 padding-left: 3px; 176 } 177 178 179 .help-content fieldset label { 180 padding-right: 4px; 175 181 } 176 182 … … 191 197 192 198 .help-content select { 193 margin-left: 1em;194 199 background-color: rgb(64, 64, 64); 195 200 color: white;
Note:
See TracChangeset
for help on using the changeset viewer.