OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 /** |
| 6 * @fileoverview DevTools' implementation of the InspectorController API. |
| 7 */ |
| 8 goog.require('devtools.InspectorController'); |
| 9 |
| 10 goog.provide('devtools.InspectorControllerImpl'); |
| 11 |
| 12 devtools.InspectorControllerImpl = function() { |
| 13 devtools.InspectorController.call(this); |
| 14 this.frame_element_id_ = 1; |
| 15 |
| 16 this.installInspectorControllerDelegate_('clearMessages'); |
| 17 this.installInspectorControllerDelegate_('copyNode'); |
| 18 this.installInspectorControllerDelegate_('deleteCookie'); |
| 19 this.installInspectorControllerDelegate_('disableResourceTracking'); |
| 20 this.installInspectorControllerDelegate_('disableTimeline'); |
| 21 this.installInspectorControllerDelegate_('enableResourceTracking'); |
| 22 this.installInspectorControllerDelegate_('enableTimeline'); |
| 23 this.installInspectorControllerDelegate_('getChildNodes'); |
| 24 this.installInspectorControllerDelegate_('getCookies'); |
| 25 this.installInspectorControllerDelegate_('getDatabaseTableNames'); |
| 26 this.installInspectorControllerDelegate_('getDOMStorageEntries'); |
| 27 this.installInspectorControllerDelegate_('getEventListenersForNode'); |
| 28 this.installInspectorControllerDelegate_('highlightDOMNode'); |
| 29 this.installInspectorControllerDelegate_('hideDOMNodeHighlight'); |
| 30 this.installInspectorControllerDelegate_('releaseWrapperObjectGroup'); |
| 31 this.installInspectorControllerDelegate_('removeAttribute'); |
| 32 this.installInspectorControllerDelegate_('setAttribute'); |
| 33 this.installInspectorControllerDelegate_('setSetting'); |
| 34 this.installInspectorControllerDelegate_('setTextNodeValue'); |
| 35 this.installInspectorControllerDelegate_('setting'); |
| 36 this.installInspectorControllerDelegate_('storeLastActivePanel'); |
| 37 }; |
| 38 goog.inherits(devtools.InspectorControllerImpl, |
| 39 devtools.InspectorController); |
| 40 |
| 41 |
| 42 /** |
| 43 * {@inheritDoc}. |
| 44 */ |
| 45 devtools.InspectorControllerImpl.prototype.platform = function() { |
| 46 return DevToolsHost.getPlatform(); |
| 47 }; |
| 48 |
| 49 |
| 50 /** |
| 51 * {@inheritDoc}. |
| 52 */ |
| 53 devtools.InspectorControllerImpl.prototype.closeWindow = function() { |
| 54 DevToolsHost.closeWindow(); |
| 55 }; |
| 56 |
| 57 |
| 58 /** |
| 59 * {@inheritDoc}. |
| 60 */ |
| 61 devtools.InspectorControllerImpl.prototype.attach = function() { |
| 62 DevToolsHost.dockWindow(); |
| 63 }; |
| 64 |
| 65 |
| 66 /** |
| 67 * {@inheritDoc}. |
| 68 */ |
| 69 devtools.InspectorControllerImpl.prototype.detach = function() { |
| 70 DevToolsHost.undockWindow(); |
| 71 }; |
| 72 |
| 73 |
| 74 /** |
| 75 * {@inheritDoc}. |
| 76 */ |
| 77 devtools.InspectorControllerImpl.prototype.hiddenPanels = function() { |
| 78 return DevToolsHost.hiddenPanels(); |
| 79 }; |
| 80 |
| 81 |
| 82 /** |
| 83 * {@inheritDoc}. |
| 84 */ |
| 85 devtools.InspectorControllerImpl.prototype.search = function(sourceRow, query) { |
| 86 return DevToolsHost.search(sourceRow, query); |
| 87 }; |
| 88 |
| 89 |
| 90 /** |
| 91 * {@inheritDoc}. |
| 92 */ |
| 93 devtools.InspectorControllerImpl.prototype.toggleNodeSearch = function() { |
| 94 devtools.InspectorController.prototype.toggleNodeSearch.call(this); |
| 95 DevToolsHost.toggleInspectElementMode(this.searchingForNode()); |
| 96 }; |
| 97 |
| 98 |
| 99 /** |
| 100 * {@inheritDoc}. |
| 101 */ |
| 102 devtools.InspectorControllerImpl.prototype.localizedStringsURL = |
| 103 function(opt_prefix) { |
| 104 // l10n is turned off in test mode because delayed loading of strings |
| 105 // causes test failures. |
| 106 if (false) { |
| 107 var locale = DevToolsHost.getApplicationLocale(); |
| 108 locale = locale.replace('_', '-'); |
| 109 return 'l10n/localizedStrings_' + locale + '.js'; |
| 110 } else { |
| 111 return undefined; |
| 112 } |
| 113 }; |
| 114 |
| 115 |
| 116 /** |
| 117 * {@inheritDoc}. |
| 118 */ |
| 119 devtools.InspectorControllerImpl.prototype.addSourceToFrame = |
| 120 function(mimeType, source, element) { |
| 121 return DevToolsHost.addSourceToFrame(mimeType, source, element); |
| 122 }; |
| 123 |
| 124 |
| 125 /** |
| 126 * {@inheritDoc}. |
| 127 */ |
| 128 devtools.InspectorControllerImpl.prototype.addResourceSourceToFrame = |
| 129 function(identifier, element) { |
| 130 var resource = WebInspector.resources[identifier]; |
| 131 if (!resource) { |
| 132 return; |
| 133 } |
| 134 |
| 135 // Temporary fix for http://crbug/23260. |
| 136 var mimeType = resource.mimeType; |
| 137 if (!mimeType && resource.url) { |
| 138 if (resource.url.search('\.js$') != -1) { |
| 139 mimeType = 'application/x-javascript'; |
| 140 } else if (resource.url.search('\.html$') != -1) { |
| 141 mimeType = 'text/html'; |
| 142 } |
| 143 } |
| 144 |
| 145 DevToolsHost.addResourceSourceToFrame(identifier, mimeType, element); |
| 146 }; |
| 147 |
| 148 |
| 149 /** |
| 150 * {@inheritDoc}. |
| 151 */ |
| 152 devtools.InspectorControllerImpl.prototype.inspectedWindow = function() { |
| 153 return null; |
| 154 }; |
| 155 |
| 156 |
| 157 /** |
| 158 * @override |
| 159 */ |
| 160 devtools.InspectorControllerImpl.prototype.debuggerEnabled = function() { |
| 161 return true; |
| 162 }; |
| 163 |
| 164 |
| 165 devtools.InspectorControllerImpl.prototype.addBreakpoint = function( |
| 166 sourceID, line, condition) { |
| 167 devtools.tools.getDebuggerAgent().addBreakpoint(sourceID, line, condition); |
| 168 }; |
| 169 |
| 170 |
| 171 devtools.InspectorControllerImpl.prototype.removeBreakpoint = function( |
| 172 sourceID, line) { |
| 173 devtools.tools.getDebuggerAgent().removeBreakpoint(sourceID, line); |
| 174 }; |
| 175 |
| 176 devtools.InspectorControllerImpl.prototype.updateBreakpoint = function( |
| 177 sourceID, line, condition) { |
| 178 devtools.tools.getDebuggerAgent().updateBreakpoint( |
| 179 sourceID, line, condition); |
| 180 }; |
| 181 |
| 182 devtools.InspectorControllerImpl.prototype.pauseInDebugger = function() { |
| 183 devtools.tools.getDebuggerAgent().pauseExecution(); |
| 184 }; |
| 185 |
| 186 |
| 187 devtools.InspectorControllerImpl.prototype.resumeDebugger = function() { |
| 188 devtools.tools.getDebuggerAgent().resumeExecution(); |
| 189 }; |
| 190 |
| 191 |
| 192 devtools.InspectorControllerImpl.prototype.stepIntoStatementInDebugger = |
| 193 function() { |
| 194 devtools.tools.getDebuggerAgent().stepIntoStatement(); |
| 195 }; |
| 196 |
| 197 |
| 198 devtools.InspectorControllerImpl.prototype.stepOutOfFunctionInDebugger = |
| 199 function() { |
| 200 devtools.tools.getDebuggerAgent().stepOutOfFunction(); |
| 201 }; |
| 202 |
| 203 |
| 204 devtools.InspectorControllerImpl.prototype.stepOverStatementInDebugger = |
| 205 function() { |
| 206 devtools.tools.getDebuggerAgent().stepOverStatement(); |
| 207 }; |
| 208 |
| 209 |
| 210 /** |
| 211 * @override |
| 212 */ |
| 213 devtools.InspectorControllerImpl.prototype.pauseOnExceptions = function() { |
| 214 return devtools.tools.getDebuggerAgent().pauseOnExceptions(); |
| 215 }; |
| 216 |
| 217 |
| 218 /** |
| 219 * @override |
| 220 */ |
| 221 devtools.InspectorControllerImpl.prototype.setPauseOnExceptions = function( |
| 222 value) { |
| 223 return devtools.tools.getDebuggerAgent().setPauseOnExceptions(value); |
| 224 }; |
| 225 |
| 226 |
| 227 /** |
| 228 * @override |
| 229 */ |
| 230 devtools.InspectorControllerImpl.prototype.startProfiling = function() { |
| 231 devtools.tools.getDebuggerAgent().startProfiling( |
| 232 devtools.DebuggerAgent.ProfilerModules.PROFILER_MODULE_CPU); |
| 233 }; |
| 234 |
| 235 |
| 236 /** |
| 237 * @override |
| 238 */ |
| 239 devtools.InspectorControllerImpl.prototype.stopProfiling = function() { |
| 240 devtools.tools.getDebuggerAgent().stopProfiling( |
| 241 devtools.DebuggerAgent.ProfilerModules.PROFILER_MODULE_CPU); |
| 242 }; |
| 243 |
| 244 |
| 245 /** |
| 246 * @override |
| 247 */ |
| 248 devtools.InspectorControllerImpl.prototype.takeHeapSnapshot = function() { |
| 249 devtools.tools.getDebuggerAgent().startProfiling( |
| 250 devtools.DebuggerAgent.ProfilerModules.PROFILER_MODULE_HEAP_SNAPSHOT |
| 251 | devtools.DebuggerAgent.ProfilerModules.PROFILER_MODULE_HEAP_STATS |
| 252 | devtools.DebuggerAgent.ProfilerModules.PROFILER_MODULE_JS_CONSTRUCTORS); |
| 253 }; |
| 254 |
| 255 |
| 256 /** |
| 257 * @override |
| 258 */ |
| 259 devtools.InspectorControllerImpl.prototype.dispatchOnInjectedScript = function( |
| 260 callId, methodName, argsString, async) { |
| 261 var callback = function(result, isException) { |
| 262 WebInspector.didDispatchOnInjectedScript(callId, result, isException); |
| 263 }; |
| 264 RemoteToolsAgent.DispatchOnInjectedScript( |
| 265 WebInspector.Callback.wrap(callback), |
| 266 async ? methodName + "_async" : methodName, |
| 267 argsString); |
| 268 }; |
| 269 |
| 270 |
| 271 /** |
| 272 * Installs delegating handler into the inspector controller. |
| 273 * @param {string} methodName Method to install delegating handler for. |
| 274 */ |
| 275 devtools.InspectorControllerImpl.prototype.installInspectorControllerDelegate_ |
| 276 = function(methodName) { |
| 277 this[methodName] = goog.bind(this.callInspectorController_, this, |
| 278 methodName); |
| 279 }; |
| 280 |
| 281 |
| 282 /** |
| 283 * Bound function with the installInjectedScriptDelegate_ actual |
| 284 * implementation. |
| 285 */ |
| 286 devtools.InspectorControllerImpl.prototype.callInspectorController_ = |
| 287 function(methodName, var_arg) { |
| 288 var args = Array.prototype.slice.call(arguments, 1); |
| 289 RemoteToolsAgent.DispatchOnInspectorController( |
| 290 WebInspector.Callback.wrap(function(){}), |
| 291 methodName, |
| 292 JSON.stringify(args)); |
| 293 }; |
| 294 |
| 295 |
| 296 InspectorController = new devtools.InspectorControllerImpl(); |
OLD | NEW |