<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[51528] trunk/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/51528">51528</a></dd>
<dt>Author</dt> <dd>pfeldman@chromium.org</dd>
<dt>Date</dt> <dd>2009-12-01 00:07:16 -0800 (Tue, 01 Dec 2009)</dd>
</dl>

<h3>Log Message</h3>
<pre>2009-11-27  Pavel Feldman  &lt;pfeldman@dhcp-172-28-174-220.spb.corp.google.com&gt;

        Reviewed by Timothy Hatcher.

        Web Inspector: Split InspectorBackend into three parts: backend,
        injected script host and frontend host.
        
        https://bugs.webkit.org/show_bug.cgi?id=31888

        * DerivedSources.make:
        * GNUmakefile.am:
        * WebCore.gypi:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSInspectorBackendCustom.cpp: Removed.
        * bindings/js/JSInspectorFrontendHostCustom.cpp: Added.
        (WebCore::JSInspectorFrontendHost::search):
        (WebCore::JSInspectorFrontendHost::setting):
        (WebCore::JSInspectorFrontendHost::setSetting):
        * bindings/js/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::set):
        * bindings/js/ScriptObject.h:
        * bindings/v8/DOMObjectsInclude.h:
        * bindings/v8/DerivedSourcesAllInOne.cpp:
        * bindings/v8/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::set):
        * bindings/v8/ScriptObject.h:
        * bindings/v8/V8Index.cpp:
        * bindings/v8/V8Index.h:
        * bindings/v8/custom/V8CustomBinding.h:
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: Added.
        (WebCore::CALLBACK_FUNC_DECL):
        * bindings/v8/custom/V8InspectorBackendCustom.cpp: Removed.
        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp: Added.
        (WebCore::CALLBACK_FUNC_DECL):
        * inspector/InjectedScriptHost.cpp: Added.
        (WebCore::InjectedScriptHost::InjectedScriptHost):
        (WebCore::InjectedScriptHost::~InjectedScriptHost):
        (WebCore::InjectedScriptHost::copyText):
        (WebCore::InjectedScriptHost::nodeForId):
        (WebCore::InjectedScriptHost::wrapObject):
        (WebCore::InjectedScriptHost::unwrapObject):
        (WebCore::InjectedScriptHost::pushNodePathToFrontend):
        (WebCore::InjectedScriptHost::addNodesToSearchResult):
        (WebCore::InjectedScriptHost::currentCallFrame):
        (WebCore::InjectedScriptHost::databaseForId):
        (WebCore::InjectedScriptHost::selectDatabase):
        (WebCore::InjectedScriptHost::selectDOMStorage):
        (WebCore::InjectedScriptHost::reportDidDispatchOnInjectedScript):
        (WebCore::InjectedScriptHost::inspectorDOMAgent):
        (WebCore::InjectedScriptHost::inspectorFrontend):
        * inspector/InjectedScriptHost.h: Added.
        (WebCore::InjectedScriptHost::create):
        (WebCore::InjectedScriptHost::inspectorController):
        (WebCore::InjectedScriptHost::disconnectController):
        * inspector/InjectedScriptHost.idl: Added.
        * inspector/InspectorBackend.cpp:
        (WebCore::InspectorBackend::InspectorBackend):
        (WebCore::InspectorBackend::storeLastActivePanel):
        (WebCore::InspectorBackend::toggleNodeSearch):
        (WebCore::InspectorBackend::resourceTrackingEnabled):
        (WebCore::InspectorBackend::debuggerEnabled):
        (WebCore::InspectorBackend::enableDebugger):
        (WebCore::InspectorBackend::disableDebugger):
        (WebCore::InspectorBackend::addBreakpoint):
        (WebCore::InspectorBackend::updateBreakpoint):
        (WebCore::InspectorBackend::removeBreakpoint):
        (WebCore::InspectorBackend::pauseInDebugger):
        (WebCore::InspectorBackend::resumeDebugger):
        (WebCore::InspectorBackend::stepOverStatementInDebugger):
        (WebCore::InspectorBackend::stepIntoStatementInDebugger):
        (WebCore::InspectorBackend::stepOutOfFunctionInDebugger):
        (WebCore::InspectorBackend::pauseOnExceptions):
        (WebCore::InspectorBackend::setPauseOnExceptions):
        (WebCore::InspectorBackend::profilerEnabled):
        (WebCore::InspectorBackend::enableProfiler):
        (WebCore::InspectorBackend::disableProfiler):
        (WebCore::InspectorBackend::startProfiling):
        (WebCore::InspectorBackend::stopProfiling):
        (WebCore::InspectorBackend::getProfileHeaders):
        (WebCore::InspectorBackend::getProfile):
        (WebCore::InspectorBackend::currentCallFrame):
        (WebCore::InspectorBackend::highlightDOMNode):
        (WebCore::InspectorBackend::hideDOMNodeHighlight):
        (WebCore::InspectorBackend::getCookies):
        (WebCore::InspectorBackend::deleteCookie):
        (WebCore::InspectorBackend::didEvaluateForTestInFrontend):
        (WebCore::InspectorBackend::nodeForId):
        * inspector/InspectorBackend.h:
        (WebCore::InspectorBackend::create):
        * inspector/InspectorBackend.idl:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::~InspectorController):
        (WebCore::InspectorController::inspectedPageDestroyed):
        (WebCore::InspectorController::windowScriptObjectAvailable):
        * inspector/InspectorController.h:
        (WebCore::InspectorController::inspectorFrontendHost):
        (WebCore::InspectorController::injectedScriptHost):
        * inspector/InspectorFrontendHost.cpp: Added.
        (WebCore::InspectorFrontendHost::InspectorFrontendHost):
        (WebCore::InspectorFrontendHost::~InspectorFrontendHost):
        (WebCore::InspectorFrontendHost::loaded):
        (WebCore::InspectorFrontendHost::attach):
        (WebCore::InspectorFrontendHost::detach):
        (WebCore::InspectorFrontendHost::closeWindow):
        (WebCore::InspectorFrontendHost::windowUnloading):
        (WebCore::InspectorFrontendHost::setAttachedWindowHeight):
        (WebCore::InspectorFrontendHost::moveWindowBy):
        (WebCore::InspectorFrontendHost::localizedStringsURL):
        (WebCore::InspectorFrontendHost::hiddenPanels):
        (WebCore::InspectorFrontendHost::platform):
        (WebCore::InspectorFrontendHost::port):
        (WebCore::InspectorFrontendHost::addResourceSourceToFrame):
        (WebCore::InspectorFrontendHost::addSourceToFrame):
        * inspector/InspectorFrontendHost.h: Added.
        (WebCore::InspectorFrontendHost::create):
        (WebCore::InspectorFrontendHost::inspectorController):
        (WebCore::InspectorFrontendHost::disconnectController):
        * inspector/InspectorFrontendHost.idl: Added.
        * inspector/front-end/Breakpoint.js:
        (WebInspector.Breakpoint.prototype.set condition):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
        (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
        (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype.clearMessages):
        * inspector/front-end/CookieItemsView.js:
        (WebInspector.CookieItemsView.prototype._deleteCookieCallback):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype.getChildNodesAsync):
        (WebInspector.DOMAgent.prototype.setAttributeAsync):
        (WebInspector.DOMAgent.prototype.removeAttributeAsync):
        (WebInspector.DOMAgent.prototype.setTextNodeValueAsync):
        (WebInspector.Cookies.getCookiesAsync):
        (WebInspector.EventListeners.getEventListenersForNodeAsync):
        * inspector/front-end/DOMStorage.js:
        (WebInspector.DOMStorage.prototype.getEntries):
        (WebInspector.DOMStorage.prototype.setItem):
        (WebInspector.DOMStorage.prototype.removeItem):
        * inspector/front-end/Database.js:
        (WebInspector.Database.prototype.getTableNames):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
        (WebInspector.ElementsPanel.prototype.hide):
        (WebInspector.ElementsPanel.prototype.reset):
        (WebInspector.ElementsPanel.prototype.handleCopyEvent):
        (WebInspector.ElementsPanel.prototype._nodeSearchButtonClicked):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode.restoreHighlightToHoveredNode):
        (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode):
        ():
        * inspector/front-end/EventListenersSidebarPane.js:
        (WebInspector.EventListenersSidebarPane.prototype):
        * inspector/front-end/InjectedScript.js:
        (InjectedScript._evaluateAndWrap):
        (InjectedScript.performSearch.addNodesToResults):
        (InjectedScript.getCallFrames):
        (InjectedScript._callFrameForId):
        (InjectedScript._clearConsoleMessages):
        (InjectedScript._inspectObject):
        (InjectedScript._copy):
        (InjectedScript._ensureCommandLineAPIInstalled):
        (InjectedScript._window):
        (InjectedScript._nodeForId):
        (InjectedScript._objectForId):
        (InjectedScript.pushNodeToFrontend):
        (InjectedScript.executeSql):
        (InjectedScript.executeSql.errorCallback):
        (InjectedScript.executeSql.queryTransaction):
        * inspector/front-end/InjectedScriptAccess.js:
        (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
        (InjectedScriptAccess._installHandler):
        * inspector/front-end/InspectorBackendStub.js: Added.
        (.WebInspector.InspectorBackendStub):
        (.WebInspector.InspectorBackendStub.prototype.wrapCallback):
        (.WebInspector.InspectorBackendStub.prototype.platform):
        (.WebInspector.InspectorBackendStub.prototype.port):
        (.WebInspector.InspectorBackendStub.prototype.closeWindow):
        (.WebInspector.InspectorBackendStub.prototype.attach):
        (.WebInspector.InspectorBackendStub.prototype.detach):
        (.WebInspector.InspectorBackendStub.prototype.storeLastActivePanel):
        (.WebInspector.InspectorBackendStub.prototype.clearMessages):
        (.WebInspector.InspectorBackendStub.prototype.searchingForNode):
        (.WebInspector.InspectorBackendStub.prototype.search):
        (.WebInspector.InspectorBackendStub.prototype.toggleNodeSearch):
        (.WebInspector.InspectorBackendStub.prototype.setAttachedWindowHeight):
        (.WebInspector.InspectorBackendStub.prototype.moveByUnrestricted):
        (.WebInspector.InspectorBackendStub.prototype.addResourceSourceToFrame):
        (.WebInspector.InspectorBackendStub.prototype.addSourceToFrame):
        (.WebInspector.InspectorBackendStub.prototype.getResourceDocumentNode):
        (.WebInspector.InspectorBackendStub.prototype.highlightDOMNode):
        (.WebInspector.InspectorBackendStub.prototype.hideDOMNodeHighlight):
        (.WebInspector.InspectorBackendStub.prototype.inspectedWindow):
        (.WebInspector.InspectorBackendStub.prototype.loaded):
        (.WebInspector.InspectorBackendStub.prototype.localizedStringsURL):
        (.WebInspector.InspectorBackendStub.prototype.windowUnloading):
        (.WebInspector.InspectorBackendStub.prototype.hiddenPanels):
        (.WebInspector.InspectorBackendStub.prototype.debuggerEnabled):
        (.WebInspector.InspectorBackendStub.prototype.enableResourceTracking):
        (.WebInspector.InspectorBackendStub.prototype.disableResourceTracking):
        (.WebInspector.InspectorBackendStub.prototype.resourceTrackingEnabled):
        (.WebInspector.InspectorBackendStub.prototype.enableDebugger):
        (.WebInspector.InspectorBackendStub.prototype.disableDebugger):
        (.WebInspector.InspectorBackendStub.prototype.addBreakpoint):
        (.WebInspector.InspectorBackendStub.prototype.removeBreakpoint):
        (.WebInspector.InspectorBackendStub.prototype.updateBreakpoint):
        (.WebInspector.InspectorBackendStub.prototype.pauseInDebugger):
        (.WebInspector.InspectorBackendStub.prototype.pauseOnExceptions):
        (.WebInspector.InspectorBackendStub.prototype.setPauseOnExceptions):
        (.WebInspector.InspectorBackendStub.prototype.resumeDebugger):
        (.WebInspector.InspectorBackendStub.prototype.profilerEnabled):
        (.WebInspector.InspectorBackendStub.prototype.enableProfiler):
        (.WebInspector.InspectorBackendStub.prototype.disableProfiler):
        (.WebInspector.InspectorBackendStub.prototype.startProfiling):
        (.WebInspector.InspectorBackendStub.prototype.stopProfiling):
        (.WebInspector.InspectorBackendStub.prototype.getProfileHeaders):
        (.WebInspector.InspectorBackendStub.prototype.getProfile):
        (.WebInspector.InspectorBackendStub.prototype.takeHeapSnapshot):
        (.WebInspector.InspectorBackendStub.prototype.databaseTableNames):
        (.WebInspector.InspectorBackendStub.prototype.stepIntoStatementInDebugger):
        (.WebInspector.InspectorBackendStub.prototype.stepOutOfFunctionInDebugger):
        (.WebInspector.InspectorBackendStub.prototype.stepOverStatementInDebugger):
        (.WebInspector.InspectorBackendStub.prototype.setSetting):
        (.WebInspector.InspectorBackendStub.prototype.dispatchOnInjectedScript):
        (.WebInspector.InspectorBackendStub.prototype.releaseWrapperObjectGroup):
        (.WebInspector.InspectorBackendStub.prototype.setting):
        * inspector/front-end/InspectorControllerStub.js:
        * inspector/front-end/InspectorFrontendHostStub.js: Added.
        (.WebInspector.InspectorFrontendHostStub):
        (.WebInspector.InspectorFrontendHostStub.prototype.platform):
        (.WebInspector.InspectorFrontendHostStub.prototype.port):
        (.WebInspector.InspectorFrontendHostStub.prototype.closeWindow):
        (.WebInspector.InspectorFrontendHostStub.prototype.attach):
        (.WebInspector.InspectorFrontendHostStub.prototype.detach):
        (.WebInspector.InspectorFrontendHostStub.prototype.search):
        (.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowHeight):
        (.WebInspector.InspectorFrontendHostStub.prototype.moveWindowBy):
        (.WebInspector.InspectorFrontendHostStub.prototype.addResourceSourceToFrame):
        (.WebInspector.InspectorFrontendHostStub.prototype.addSourceToFrame):
        (.WebInspector.InspectorFrontendHostStub.prototype.loaded):
        (.WebInspector.InspectorFrontendHostStub.prototype.localizedStringsURL):
        (.WebInspector.InspectorFrontendHostStub.prototype.hiddenPanels):
        (.WebInspector.InspectorFrontendHostStub.prototype.setSetting):
        (.WebInspector.InspectorFrontendHostStub.prototype.setting):
        * inspector/front-end/ProfileView.js:
        (WebInspector.CPUProfileView):
        (WebInspector.CPUProfileType.prototype.buttonClicked):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._updateInterface):
        (WebInspector.ProfilesPanel.prototype._enableProfiling):
        (WebInspector.ProfilesPanel.prototype._toggleProfiling):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype.reset):
        (WebInspector.ResourcesPanel.prototype._toggleLargerResources):
        (WebInspector.ResourcesPanel.prototype._enableResourceTracking):
        (WebInspector.ResourcesPanel.prototype._toggleResourceTracking):
        * inspector/front-end/ScriptView.js:
        (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.show):
        (WebInspector.ScriptsPanel.prototype.addScript):
        (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown):
        (WebInspector.ScriptsPanel.prototype.reset):
        (WebInspector.ScriptsPanel.prototype.canShowResource):
        (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
        (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
        (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
        (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
        (WebInspector.ScriptsPanel.prototype._enableDebugging):
        (WebInspector.ScriptsPanel.prototype._toggleDebugging):
        (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions):
        (WebInspector.ScriptsPanel.prototype._togglePause):
        (WebInspector.ScriptsPanel.prototype._stepOverClicked):
        (WebInspector.ScriptsPanel.prototype._stepIntoClicked):
        (WebInspector.ScriptsPanel.prototype._stepOutClicked):
        * inspector/front-end/SourceView.js:
        (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded):
        (WebInspector.SourceView.prototype.performSearch.findSearchMatches):
        (WebInspector.SourceView.prototype.performSearch):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._changeColorFormat):
        * inspector/front-end/TestController.js:
        (WebInspector.TestController.prototype.notifyDone):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSection.prototype.update):
        (WebInspector.WatchExpressionsSection.prototype.loadSavedExpressions):
        (WebInspector.WatchExpressionsSection.prototype.saveExpressions):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:
        (WebInspector.pendingDispatches.0.get platform):
        (WebInspector.get port):
        (WebInspector.set currentPanel):
        (WebInspector._createPanels):
        (WebInspector._loadPreferences):
        (WebInspector.set attached):
        (WebInspector._updateHoverHighlight):
        (WebInspector.loaded):
        (windowLoaded):
        (WebInspector.windowUnload):
        (WebInspector.close):
        (WebInspector.toolbarDrag):
        (WebInspector.UIString):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCoreDerivedSourcesmake">trunk/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkWebCoreGNUmakefileam">trunk/WebCore/GNUmakefile.am</a></li>
<li><a href="#trunkWebCoreWebCoregypi">trunk/WebCore/WebCore.gypi</a></li>
<li><a href="#trunkWebCoreWebCorepro">trunk/WebCore/WebCore.pro</a></li>
<li><a href="#trunkWebCoreWebCorevcprojWebCorevcproj">trunk/WebCore/WebCore.vcproj/WebCore.vcproj</a></li>
<li><a href="#trunkWebCoreWebCorexcodeprojprojectpbxproj">trunk/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkWebCoreWebCoreSourcesbkl">trunk/WebCore/WebCoreSources.bkl</a></li>
<li><a href="#trunkWebCorebindingsjsJSBindingsAllInOnecpp">trunk/WebCore/bindings/js/JSBindingsAllInOne.cpp</a></li>
<li><a href="#trunkWebCorebindingsjsScriptObjectcpp">trunk/WebCore/bindings/js/ScriptObject.cpp</a></li>
<li><a href="#trunkWebCorebindingsjsScriptObjecth">trunk/WebCore/bindings/js/ScriptObject.h</a></li>
<li><a href="#trunkWebCorebindingsv8DOMObjectsIncludeh">trunk/WebCore/bindings/v8/DOMObjectsInclude.h</a></li>
<li><a href="#trunkWebCorebindingsv8DerivedSourcesAllInOnecpp">trunk/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp</a></li>
<li><a href="#trunkWebCorebindingsv8ScriptObjectcpp">trunk/WebCore/bindings/v8/ScriptObject.cpp</a></li>
<li><a href="#trunkWebCorebindingsv8ScriptObjecth">trunk/WebCore/bindings/v8/ScriptObject.h</a></li>
<li><a href="#trunkWebCorebindingsv8V8Indexcpp">trunk/WebCore/bindings/v8/V8Index.cpp</a></li>
<li><a href="#trunkWebCorebindingsv8V8Indexh">trunk/WebCore/bindings/v8/V8Index.h</a></li>
<li><a href="#trunkWebCorebindingsv8customV8CustomBindingh">trunk/WebCore/bindings/v8/custom/V8CustomBinding.h</a></li>
<li><a href="#trunkWebCoreinspectorInspectorBackendcpp">trunk/WebCore/inspector/InspectorBackend.cpp</a></li>
<li><a href="#trunkWebCoreinspectorInspectorBackendh">trunk/WebCore/inspector/InspectorBackend.h</a></li>
<li><a href="#trunkWebCoreinspectorInspectorBackendidl">trunk/WebCore/inspector/InspectorBackend.idl</a></li>
<li><a href="#trunkWebCoreinspectorInspectorControllercpp">trunk/WebCore/inspector/InspectorController.cpp</a></li>
<li><a href="#trunkWebCoreinspectorInspectorControllerh">trunk/WebCore/inspector/InspectorController.h</a></li>
<li><a href="#trunkWebCoreinspectorfrontendBreakpointjs">trunk/WebCore/inspector/front-end/Breakpoint.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendBreakpointsSidebarPanejs">trunk/WebCore/inspector/front-end/BreakpointsSidebarPane.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendConsoleViewjs">trunk/WebCore/inspector/front-end/ConsoleView.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendCookieItemsViewjs">trunk/WebCore/inspector/front-end/CookieItemsView.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendDOMAgentjs">trunk/WebCore/inspector/front-end/DOMAgent.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendDOMStoragejs">trunk/WebCore/inspector/front-end/DOMStorage.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendDatabasejs">trunk/WebCore/inspector/front-end/Database.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendElementsPaneljs">trunk/WebCore/inspector/front-end/ElementsPanel.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendElementsTreeOutlinejs">trunk/WebCore/inspector/front-end/ElementsTreeOutline.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendEventListenersSidebarPanejs">trunk/WebCore/inspector/front-end/EventListenersSidebarPane.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendInjectedScriptjs">trunk/WebCore/inspector/front-end/InjectedScript.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendInjectedScriptAccessjs">trunk/WebCore/inspector/front-end/InjectedScriptAccess.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendInspectorControllerStubjs">trunk/WebCore/inspector/front-end/InspectorControllerStub.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendProfileViewjs">trunk/WebCore/inspector/front-end/ProfileView.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendProfilesPaneljs">trunk/WebCore/inspector/front-end/ProfilesPanel.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendResourcesPaneljs">trunk/WebCore/inspector/front-end/ResourcesPanel.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendScriptViewjs">trunk/WebCore/inspector/front-end/ScriptView.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendScriptsPaneljs">trunk/WebCore/inspector/front-end/ScriptsPanel.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendSourceViewjs">trunk/WebCore/inspector/front-end/SourceView.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendStylesSidebarPanejs">trunk/WebCore/inspector/front-end/StylesSidebarPane.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendTestControllerjs">trunk/WebCore/inspector/front-end/TestController.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendTimelinePaneljs">trunk/WebCore/inspector/front-end/TimelinePanel.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendWatchExpressionsSidebarPanejs">trunk/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendWebKitqrc">trunk/WebCore/inspector/front-end/WebKit.qrc</a></li>
<li><a href="#trunkWebCoreinspectorfrontendinspectorhtml">trunk/WebCore/inspector/front-end/inspector.html</a></li>
<li><a href="#trunkWebCoreinspectorfrontendinspectorjs">trunk/WebCore/inspector/front-end/inspector.js</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkWebCorebindingsjsJSInjectedScriptHostCustomcpp">trunk/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp</a></li>
<li><a href="#trunkWebCorebindingsjsJSInspectorFrontendHostCustomcpp">trunk/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp</a></li>
<li><a href="#trunkWebCorebindingsv8customV8InjectedScriptHostCustomcpp">trunk/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp</a></li>
<li><a href="#trunkWebCorebindingsv8customV8InspectorFrontendHostCustomcpp">trunk/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp</a></li>
<li><a href="#trunkWebCoreinspectorInjectedScriptHostcpp">trunk/WebCore/inspector/InjectedScriptHost.cpp</a></li>
<li><a href="#trunkWebCoreinspectorInjectedScriptHosth">trunk/WebCore/inspector/InjectedScriptHost.h</a></li>
<li><a href="#trunkWebCoreinspectorInjectedScriptHostidl">trunk/WebCore/inspector/InjectedScriptHost.idl</a></li>
<li><a href="#trunkWebCoreinspectorInspectorFrontendHostcpp">trunk/WebCore/inspector/InspectorFrontendHost.cpp</a></li>
<li><a href="#trunkWebCoreinspectorInspectorFrontendHosth">trunk/WebCore/inspector/InspectorFrontendHost.h</a></li>
<li><a href="#trunkWebCoreinspectorInspectorFrontendHostidl">trunk/WebCore/inspector/InspectorFrontendHost.idl</a></li>
<li><a href="#trunkWebCoreinspectorfrontendInspectorBackendStubjs">trunk/WebCore/inspector/front-end/InspectorBackendStub.js</a></li>
<li><a href="#trunkWebCoreinspectorfrontendInspectorFrontendHostStubjs">trunk/WebCore/inspector/front-end/InspectorFrontendHostStub.js</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkWebCorebindingsjsJSInspectorBackendCustomcpp">trunk/WebCore/bindings/js/JSInspectorBackendCustom.cpp</a></li>
<li><a href="#trunkWebCorebindingsv8customV8InspectorBackendCustomcpp">trunk/WebCore/bindings/v8/custom/V8InspectorBackendCustom.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/ChangeLog        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -1,3 +1,314 @@
</span><ins>+2009-11-27  Pavel Feldman  &lt;pfeldman@dhcp-172-28-174-220.spb.corp.google.com&gt;
+
+        Reviewed by Timothy Hatcher.
+
+        Web Inspector: Split InspectorBackend into three parts: backend,
+        injected script host and frontend host.
+        
+        https://bugs.webkit.org/show_bug.cgi?id=31888
+
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * WebCore.gypi:
+        * WebCore.pro:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * WebCoreSources.bkl:
+        * bindings/js/JSBindingsAllInOne.cpp:
+        * bindings/js/JSInspectorBackendCustom.cpp: Removed.
+        * bindings/js/JSInspectorFrontendHostCustom.cpp: Added.
+        (WebCore::JSInspectorFrontendHost::search):
+        (WebCore::JSInspectorFrontendHost::setting):
+        (WebCore::JSInspectorFrontendHost::setSetting):
+        * bindings/js/ScriptObject.cpp:
+        (WebCore::ScriptGlobalObject::set):
+        * bindings/js/ScriptObject.h:
+        * bindings/v8/DOMObjectsInclude.h:
+        * bindings/v8/DerivedSourcesAllInOne.cpp:
+        * bindings/v8/ScriptObject.cpp:
+        (WebCore::ScriptGlobalObject::set):
+        * bindings/v8/ScriptObject.h:
+        * bindings/v8/V8Index.cpp:
+        * bindings/v8/V8Index.h:
+        * bindings/v8/custom/V8CustomBinding.h:
+        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: Added.
+        (WebCore::CALLBACK_FUNC_DECL):
+        * bindings/v8/custom/V8InspectorBackendCustom.cpp: Removed.
+        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp: Added.
+        (WebCore::CALLBACK_FUNC_DECL):
+        * inspector/InjectedScriptHost.cpp: Added.
+        (WebCore::InjectedScriptHost::InjectedScriptHost):
+        (WebCore::InjectedScriptHost::~InjectedScriptHost):
+        (WebCore::InjectedScriptHost::copyText):
+        (WebCore::InjectedScriptHost::nodeForId):
+        (WebCore::InjectedScriptHost::wrapObject):
+        (WebCore::InjectedScriptHost::unwrapObject):
+        (WebCore::InjectedScriptHost::pushNodePathToFrontend):
+        (WebCore::InjectedScriptHost::addNodesToSearchResult):
+        (WebCore::InjectedScriptHost::currentCallFrame):
+        (WebCore::InjectedScriptHost::databaseForId):
+        (WebCore::InjectedScriptHost::selectDatabase):
+        (WebCore::InjectedScriptHost::selectDOMStorage):
+        (WebCore::InjectedScriptHost::reportDidDispatchOnInjectedScript):
+        (WebCore::InjectedScriptHost::inspectorDOMAgent):
+        (WebCore::InjectedScriptHost::inspectorFrontend):
+        * inspector/InjectedScriptHost.h: Added.
+        (WebCore::InjectedScriptHost::create):
+        (WebCore::InjectedScriptHost::inspectorController):
+        (WebCore::InjectedScriptHost::disconnectController):
+        * inspector/InjectedScriptHost.idl: Added.
+        * inspector/InspectorBackend.cpp:
+        (WebCore::InspectorBackend::InspectorBackend):
+        (WebCore::InspectorBackend::storeLastActivePanel):
+        (WebCore::InspectorBackend::toggleNodeSearch):
+        (WebCore::InspectorBackend::resourceTrackingEnabled):
+        (WebCore::InspectorBackend::debuggerEnabled):
+        (WebCore::InspectorBackend::enableDebugger):
+        (WebCore::InspectorBackend::disableDebugger):
+        (WebCore::InspectorBackend::addBreakpoint):
+        (WebCore::InspectorBackend::updateBreakpoint):
+        (WebCore::InspectorBackend::removeBreakpoint):
+        (WebCore::InspectorBackend::pauseInDebugger):
+        (WebCore::InspectorBackend::resumeDebugger):
+        (WebCore::InspectorBackend::stepOverStatementInDebugger):
+        (WebCore::InspectorBackend::stepIntoStatementInDebugger):
+        (WebCore::InspectorBackend::stepOutOfFunctionInDebugger):
+        (WebCore::InspectorBackend::pauseOnExceptions):
+        (WebCore::InspectorBackend::setPauseOnExceptions):
+        (WebCore::InspectorBackend::profilerEnabled):
+        (WebCore::InspectorBackend::enableProfiler):
+        (WebCore::InspectorBackend::disableProfiler):
+        (WebCore::InspectorBackend::startProfiling):
+        (WebCore::InspectorBackend::stopProfiling):
+        (WebCore::InspectorBackend::getProfileHeaders):
+        (WebCore::InspectorBackend::getProfile):
+        (WebCore::InspectorBackend::currentCallFrame):
+        (WebCore::InspectorBackend::highlightDOMNode):
+        (WebCore::InspectorBackend::hideDOMNodeHighlight):
+        (WebCore::InspectorBackend::getCookies):
+        (WebCore::InspectorBackend::deleteCookie):
+        (WebCore::InspectorBackend::didEvaluateForTestInFrontend):
+        (WebCore::InspectorBackend::nodeForId):
+        * inspector/InspectorBackend.h:
+        (WebCore::InspectorBackend::create):
+        * inspector/InspectorBackend.idl:
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::InspectorController):
+        (WebCore::InspectorController::~InspectorController):
+        (WebCore::InspectorController::inspectedPageDestroyed):
+        (WebCore::InspectorController::windowScriptObjectAvailable):
+        * inspector/InspectorController.h:
+        (WebCore::InspectorController::inspectorFrontendHost):
+        (WebCore::InspectorController::injectedScriptHost):
+        * inspector/InspectorFrontendHost.cpp: Added.
+        (WebCore::InspectorFrontendHost::InspectorFrontendHost):
+        (WebCore::InspectorFrontendHost::~InspectorFrontendHost):
+        (WebCore::InspectorFrontendHost::loaded):
+        (WebCore::InspectorFrontendHost::attach):
+        (WebCore::InspectorFrontendHost::detach):
+        (WebCore::InspectorFrontendHost::closeWindow):
+        (WebCore::InspectorFrontendHost::windowUnloading):
+        (WebCore::InspectorFrontendHost::setAttachedWindowHeight):
+        (WebCore::InspectorFrontendHost::moveWindowBy):
+        (WebCore::InspectorFrontendHost::localizedStringsURL):
+        (WebCore::InspectorFrontendHost::hiddenPanels):
+        (WebCore::InspectorFrontendHost::platform):
+        (WebCore::InspectorFrontendHost::port):
+        (WebCore::InspectorFrontendHost::addResourceSourceToFrame):
+        (WebCore::InspectorFrontendHost::addSourceToFrame):
+        * inspector/InspectorFrontendHost.h: Added.
+        (WebCore::InspectorFrontendHost::create):
+        (WebCore::InspectorFrontendHost::inspectorController):
+        (WebCore::InspectorFrontendHost::disconnectController):
+        * inspector/InspectorFrontendHost.idl: Added.
+        * inspector/front-end/Breakpoint.js:
+        (WebInspector.Breakpoint.prototype.set condition):
+        * inspector/front-end/BreakpointsSidebarPane.js:
+        (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
+        (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
+        (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
+        * inspector/front-end/ConsoleView.js:
+        (WebInspector.ConsoleView.prototype.clearMessages):
+        * inspector/front-end/CookieItemsView.js:
+        (WebInspector.CookieItemsView.prototype._deleteCookieCallback):
+        * inspector/front-end/DOMAgent.js:
+        (WebInspector.DOMAgent.prototype.getChildNodesAsync):
+        (WebInspector.DOMAgent.prototype.setAttributeAsync):
+        (WebInspector.DOMAgent.prototype.removeAttributeAsync):
+        (WebInspector.DOMAgent.prototype.setTextNodeValueAsync):
+        (WebInspector.Cookies.getCookiesAsync):
+        (WebInspector.EventListeners.getEventListenersForNodeAsync):
+        * inspector/front-end/DOMStorage.js:
+        (WebInspector.DOMStorage.prototype.getEntries):
+        (WebInspector.DOMStorage.prototype.setItem):
+        (WebInspector.DOMStorage.prototype.removeItem):
+        * inspector/front-end/Database.js:
+        (WebInspector.Database.prototype.getTableNames):
+        * inspector/front-end/ElementsPanel.js:
+        (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
+        (WebInspector.ElementsPanel.prototype.hide):
+        (WebInspector.ElementsPanel.prototype.reset):
+        (WebInspector.ElementsPanel.prototype.handleCopyEvent):
+        (WebInspector.ElementsPanel.prototype._nodeSearchButtonClicked):
+        * inspector/front-end/ElementsTreeOutline.js:
+        (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode.restoreHighlightToHoveredNode):
+        (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode):
+        ():
+        * inspector/front-end/EventListenersSidebarPane.js:
+        (WebInspector.EventListenersSidebarPane.prototype):
+        * inspector/front-end/InjectedScript.js:
+        (InjectedScript._evaluateAndWrap):
+        (InjectedScript.performSearch.addNodesToResults):
+        (InjectedScript.getCallFrames):
+        (InjectedScript._callFrameForId):
+        (InjectedScript._clearConsoleMessages):
+        (InjectedScript._inspectObject):
+        (InjectedScript._copy):
+        (InjectedScript._ensureCommandLineAPIInstalled):
+        (InjectedScript._window):
+        (InjectedScript._nodeForId):
+        (InjectedScript._objectForId):
+        (InjectedScript.pushNodeToFrontend):
+        (InjectedScript.executeSql):
+        (InjectedScript.executeSql.errorCallback):
+        (InjectedScript.executeSql.queryTransaction):
+        * inspector/front-end/InjectedScriptAccess.js:
+        (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
+        (InjectedScriptAccess._installHandler):
+        * inspector/front-end/InspectorBackendStub.js: Added.
+        (.WebInspector.InspectorBackendStub):
+        (.WebInspector.InspectorBackendStub.prototype.wrapCallback):
+        (.WebInspector.InspectorBackendStub.prototype.platform):
+        (.WebInspector.InspectorBackendStub.prototype.port):
+        (.WebInspector.InspectorBackendStub.prototype.closeWindow):
+        (.WebInspector.InspectorBackendStub.prototype.attach):
+        (.WebInspector.InspectorBackendStub.prototype.detach):
+        (.WebInspector.InspectorBackendStub.prototype.storeLastActivePanel):
+        (.WebInspector.InspectorBackendStub.prototype.clearMessages):
+        (.WebInspector.InspectorBackendStub.prototype.searchingForNode):
+        (.WebInspector.InspectorBackendStub.prototype.search):
+        (.WebInspector.InspectorBackendStub.prototype.toggleNodeSearch):
+        (.WebInspector.InspectorBackendStub.prototype.setAttachedWindowHeight):
+        (.WebInspector.InspectorBackendStub.prototype.moveByUnrestricted):
+        (.WebInspector.InspectorBackendStub.prototype.addResourceSourceToFrame):
+        (.WebInspector.InspectorBackendStub.prototype.addSourceToFrame):
+        (.WebInspector.InspectorBackendStub.prototype.getResourceDocumentNode):
+        (.WebInspector.InspectorBackendStub.prototype.highlightDOMNode):
+        (.WebInspector.InspectorBackendStub.prototype.hideDOMNodeHighlight):
+        (.WebInspector.InspectorBackendStub.prototype.inspectedWindow):
+        (.WebInspector.InspectorBackendStub.prototype.loaded):
+        (.WebInspector.InspectorBackendStub.prototype.localizedStringsURL):
+        (.WebInspector.InspectorBackendStub.prototype.windowUnloading):
+        (.WebInspector.InspectorBackendStub.prototype.hiddenPanels):
+        (.WebInspector.InspectorBackendStub.prototype.debuggerEnabled):
+        (.WebInspector.InspectorBackendStub.prototype.enableResourceTracking):
+        (.WebInspector.InspectorBackendStub.prototype.disableResourceTracking):
+        (.WebInspector.InspectorBackendStub.prototype.resourceTrackingEnabled):
+        (.WebInspector.InspectorBackendStub.prototype.enableDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.disableDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.addBreakpoint):
+        (.WebInspector.InspectorBackendStub.prototype.removeBreakpoint):
+        (.WebInspector.InspectorBackendStub.prototype.updateBreakpoint):
+        (.WebInspector.InspectorBackendStub.prototype.pauseInDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.pauseOnExceptions):
+        (.WebInspector.InspectorBackendStub.prototype.setPauseOnExceptions):
+        (.WebInspector.InspectorBackendStub.prototype.resumeDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.profilerEnabled):
+        (.WebInspector.InspectorBackendStub.prototype.enableProfiler):
+        (.WebInspector.InspectorBackendStub.prototype.disableProfiler):
+        (.WebInspector.InspectorBackendStub.prototype.startProfiling):
+        (.WebInspector.InspectorBackendStub.prototype.stopProfiling):
+        (.WebInspector.InspectorBackendStub.prototype.getProfileHeaders):
+        (.WebInspector.InspectorBackendStub.prototype.getProfile):
+        (.WebInspector.InspectorBackendStub.prototype.takeHeapSnapshot):
+        (.WebInspector.InspectorBackendStub.prototype.databaseTableNames):
+        (.WebInspector.InspectorBackendStub.prototype.stepIntoStatementInDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.stepOutOfFunctionInDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.stepOverStatementInDebugger):
+        (.WebInspector.InspectorBackendStub.prototype.setSetting):
+        (.WebInspector.InspectorBackendStub.prototype.dispatchOnInjectedScript):
+        (.WebInspector.InspectorBackendStub.prototype.releaseWrapperObjectGroup):
+        (.WebInspector.InspectorBackendStub.prototype.setting):
+        * inspector/front-end/InspectorControllerStub.js:
+        * inspector/front-end/InspectorFrontendHostStub.js: Added.
+        (.WebInspector.InspectorFrontendHostStub):
+        (.WebInspector.InspectorFrontendHostStub.prototype.platform):
+        (.WebInspector.InspectorFrontendHostStub.prototype.port):
+        (.WebInspector.InspectorFrontendHostStub.prototype.closeWindow):
+        (.WebInspector.InspectorFrontendHostStub.prototype.attach):
+        (.WebInspector.InspectorFrontendHostStub.prototype.detach):
+        (.WebInspector.InspectorFrontendHostStub.prototype.search):
+        (.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowHeight):
+        (.WebInspector.InspectorFrontendHostStub.prototype.moveWindowBy):
+        (.WebInspector.InspectorFrontendHostStub.prototype.addResourceSourceToFrame):
+        (.WebInspector.InspectorFrontendHostStub.prototype.addSourceToFrame):
+        (.WebInspector.InspectorFrontendHostStub.prototype.loaded):
+        (.WebInspector.InspectorFrontendHostStub.prototype.localizedStringsURL):
+        (.WebInspector.InspectorFrontendHostStub.prototype.hiddenPanels):
+        (.WebInspector.InspectorFrontendHostStub.prototype.setSetting):
+        (.WebInspector.InspectorFrontendHostStub.prototype.setting):
+        * inspector/front-end/ProfileView.js:
+        (WebInspector.CPUProfileView):
+        (WebInspector.CPUProfileType.prototype.buttonClicked):
+        * inspector/front-end/ProfilesPanel.js:
+        (WebInspector.ProfilesPanel.prototype._updateInterface):
+        (WebInspector.ProfilesPanel.prototype._enableProfiling):
+        (WebInspector.ProfilesPanel.prototype._toggleProfiling):
+        * inspector/front-end/ResourcesPanel.js:
+        (WebInspector.ResourcesPanel.prototype.reset):
+        (WebInspector.ResourcesPanel.prototype._toggleLargerResources):
+        (WebInspector.ResourcesPanel.prototype._enableResourceTracking):
+        (WebInspector.ResourcesPanel.prototype._toggleResourceTracking):
+        * inspector/front-end/ScriptView.js:
+        (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded):
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel.prototype.show):
+        (WebInspector.ScriptsPanel.prototype.addScript):
+        (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown):
+        (WebInspector.ScriptsPanel.prototype.reset):
+        (WebInspector.ScriptsPanel.prototype.canShowResource):
+        (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
+        (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
+        (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
+        (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
+        (WebInspector.ScriptsPanel.prototype._enableDebugging):
+        (WebInspector.ScriptsPanel.prototype._toggleDebugging):
+        (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions):
+        (WebInspector.ScriptsPanel.prototype._togglePause):
+        (WebInspector.ScriptsPanel.prototype._stepOverClicked):
+        (WebInspector.ScriptsPanel.prototype._stepIntoClicked):
+        (WebInspector.ScriptsPanel.prototype._stepOutClicked):
+        * inspector/front-end/SourceView.js:
+        (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded):
+        (WebInspector.SourceView.prototype.performSearch.findSearchMatches):
+        (WebInspector.SourceView.prototype.performSearch):
+        * inspector/front-end/StylesSidebarPane.js:
+        (WebInspector.StylesSidebarPane.prototype._changeColorFormat):
+        * inspector/front-end/TestController.js:
+        (WebInspector.TestController.prototype.notifyDone):
+        * inspector/front-end/TimelinePanel.js:
+        (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
+        * inspector/front-end/WatchExpressionsSidebarPane.js:
+        (WebInspector.WatchExpressionsSection.prototype.update):
+        (WebInspector.WatchExpressionsSection.prototype.loadSavedExpressions):
+        (WebInspector.WatchExpressionsSection.prototype.saveExpressions):
+        * inspector/front-end/WebKit.qrc:
+        * inspector/front-end/inspector.html:
+        * inspector/front-end/inspector.js:
+        (WebInspector.pendingDispatches.0.get platform):
+        (WebInspector.get port):
+        (WebInspector.set currentPanel):
+        (WebInspector._createPanels):
+        (WebInspector._loadPreferences):
+        (WebInspector.set attached):
+        (WebInspector._updateHoverHighlight):
+        (WebInspector.loaded):
+        (windowLoaded):
+        (WebInspector.windowUnload):
+        (WebInspector.close):
+        (WebInspector.toolbarDrag):
+        (WebInspector.UIString):
+
</ins><span class="cx"> 2009-11-30  Shinichiro Hamaji  &lt;hamaji@chromium.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Dan Bernstein.
</span></span></pre></div>
<a id="trunkWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/DerivedSources.make (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/DerivedSources.make        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/DerivedSources.make        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -200,7 +200,9 @@
</span><span class="cx">     HTMLVideoElement \
</span><span class="cx">     History \
</span><span class="cx">     ImageData \
</span><ins>+    InjectedScriptHost \
</ins><span class="cx">     InspectorBackend \
</span><ins>+    InspectorFrontendHost \
</ins><span class="cx">     KeyboardEvent \
</span><span class="cx">     Location \
</span><span class="cx">     Media \
</span></span></pre></div>
<a id="trunkWebCoreGNUmakefileam"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/GNUmakefile.am (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/GNUmakefile.am        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/GNUmakefile.am        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -246,7 +246,9 @@
</span><span class="cx">         WebCore/html/ValidityState.idl \
</span><span class="cx">         WebCore/html/VoidCallback.idl \
</span><span class="cx">         WebCore/inspector/JavaScriptCallFrame.idl \
</span><ins>+        WebCore/inspector/InjectedScriptHost.idl \
</ins><span class="cx">         WebCore/inspector/InspectorBackend.idl \
</span><ins>+        WebCore/inspector/InspectorFrontendHost.idl \
</ins><span class="cx">         WebCore/notifications/Notification.idl \
</span><span class="cx">         WebCore/notifications/NotificationCenter.idl \
</span><span class="cx">         WebCore/page/BarInfo.idl \
</span><span class="lines">@@ -398,7 +400,8 @@
</span><span class="cx">         WebCore/bindings/js/JSImageConstructor.cpp \
</span><span class="cx">         WebCore/bindings/js/JSImageConstructor.h \
</span><span class="cx">         WebCore/bindings/js/JSImageDataCustom.cpp \
</span><del>-        WebCore/bindings/js/JSInspectorBackendCustom.cpp \
</del><ins>+        WebCore/bindings/js/JSInjectedScriptHostCustom.cpp \
+        WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp \
</ins><span class="cx">         WebCore/bindings/js/JSInspectedObjectWrapper.cpp \
</span><span class="cx">         WebCore/bindings/js/JSInspectedObjectWrapper.h \
</span><span class="cx">         WebCore/bindings/js/JSInspectorCallbackWrapper.cpp \
</span><span class="lines">@@ -1169,6 +1172,8 @@
</span><span class="cx">         WebCore/icu/unicode/uversion.h \
</span><span class="cx">         WebCore/inspector/ConsoleMessage.cpp \
</span><span class="cx">         WebCore/inspector/ConsoleMessage.h \
</span><ins>+        WebCore/inspector/InjectedScriptHost.cpp \
+        WebCore/inspector/InjectedScriptHost.h \
</ins><span class="cx">         WebCore/inspector/InspectorBackend.cpp \
</span><span class="cx">         WebCore/inspector/InspectorBackend.h \
</span><span class="cx">         WebCore/inspector/InspectorDatabaseResource.cpp \
</span><span class="lines">@@ -1182,6 +1187,8 @@
</span><span class="cx">         WebCore/inspector/InspectorController.h \
</span><span class="cx">         WebCore/inspector/InspectorFrontend.cpp \
</span><span class="cx">         WebCore/inspector/InspectorFrontend.h \
</span><ins>+        WebCore/inspector/InspectorFrontendHost.cpp \
+        WebCore/inspector/InspectorFrontendHost.h \
</ins><span class="cx">         WebCore/inspector/InspectorResource.cpp \
</span><span class="cx">         WebCore/inspector/InspectorResource.h \
</span><span class="cx">         WebCore/inspector/InspectorTimelineAgent.cpp \
</span></span></pre></div>
<a id="trunkWebCoreWebCoregypi"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.gypi (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.gypi        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/WebCore.gypi        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -179,7 +179,9 @@
</span><span class="cx">             'html/TimeRanges.idl',
</span><span class="cx">             'html/ValidityState.idl',
</span><span class="cx">             'html/VoidCallback.idl',
</span><ins>+            'inspector/InjectedScriptHost.idl',
</ins><span class="cx">             'inspector/InspectorBackend.idl',
</span><ins>+            'inspector/InspectorFrontendHost.idl',
</ins><span class="cx">             'inspector/JavaScriptCallFrame.idl',
</span><span class="cx">             'loader/appcache/DOMApplicationCache.idl',
</span><span class="cx">             'notifications/Notification.idl',
</span><span class="lines">@@ -522,7 +524,8 @@
</span><span class="cx">             'bindings/js/JSInspectedObjectWrapper.h',
</span><span class="cx">             'bindings/js/JSInspectorCallbackWrapper.cpp',
</span><span class="cx">             'bindings/js/JSInspectorCallbackWrapper.h',
</span><del>-            'bindings/js/JSInspectorBackendCustom.cpp',
</del><ins>+            'bindings/js/JSInjectedScriptHostCustom.cpp',
+            'bindings/js/JSInspectorFrontendHostCustom.cpp',
</ins><span class="cx">             'bindings/js/JSJavaScriptCallFrameCustom.cpp',
</span><span class="cx">             'bindings/js/JSLazyEventListener.cpp',
</span><span class="cx">             'bindings/js/JSLazyEventListener.h',
</span><span class="lines">@@ -698,7 +701,8 @@
</span><span class="cx">             'bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp',
</span><span class="cx">             'bindings/v8/custom/V8HTMLSelectElementCustom.cpp',
</span><span class="cx">             'bindings/v8/custom/V8HTMLSelectElementCustom.h',
</span><del>-            'bindings/v8/custom/V8InspectorBackendCustom.cpp',
</del><ins>+            'bindings/v8/custom/V8InjectedScriptHostCustom.cpp',
+            'bindings/v8/custom/V8InspectorFrontendHostCustom.cpp',
</ins><span class="cx">             'bindings/v8/custom/V8LocationCustom.cpp',
</span><span class="cx">             'bindings/v8/custom/V8MessageChannelConstructor.cpp',
</span><span class="cx">             'bindings/v8/custom/V8MessageEventCustom.cpp',
</span><span class="lines">@@ -1520,6 +1524,8 @@
</span><span class="cx">             'inspector/InspectorClient.h',
</span><span class="cx">             'inspector/ConsoleMessage.cpp',
</span><span class="cx">             'inspector/ConsoleMessage.h',
</span><ins>+            'inspector/InjectedScriptHost.cpp',
+            'inspector/InjectedScriptHost.h',
</ins><span class="cx">             'inspector/InspectorBackend.cpp',
</span><span class="cx">             'inspector/InspectorBackend.h',
</span><span class="cx">             'inspector/InspectorController.cpp',
</span><span class="lines">@@ -1532,6 +1538,8 @@
</span><span class="cx">             'inspector/InspectorDOMStorageResource.h',
</span><span class="cx">             'inspector/InspectorFrontend.cpp',
</span><span class="cx">             'inspector/InspectorFrontend.h',
</span><ins>+            'inspector/InspectorFrontendHost.cpp',
+            'inspector/InspectorFrontendHost.h',
</ins><span class="cx">             'inspector/InspectorResource.cpp',
</span><span class="cx">             'inspector/InspectorResource.h',
</span><span class="cx">             'inspector/InspectorTimelineAgent.cpp',
</span><span class="lines">@@ -3634,7 +3642,8 @@
</span><span class="cx">             'inspector/front-end/EventListenersSidebarPane.js',
</span><span class="cx">             'inspector/front-end/FontView.js',
</span><span class="cx">             'inspector/front-end/ImageView.js',
</span><del>-            'inspector/front-end/InspectorControllerStub.js',
</del><ins>+            'inspector/front-end/InspectorBackendStub.js',
+            'inspector/front-end/InspectorFrontendHostStub.js',
</ins><span class="cx">             'inspector/front-end/InjectedScript.js',
</span><span class="cx">             'inspector/front-end/InjectedScriptAccess.js',
</span><span class="cx">             'inspector/front-end/inspector.js',
</span></span></pre></div>
<a id="trunkWebCoreWebCorepro"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.pro (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.pro        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/WebCore.pro        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -466,7 +466,9 @@
</span><span class="cx">     html/TimeRanges.idl \
</span><span class="cx">     html/ValidityState.idl \
</span><span class="cx">     html/VoidCallback.idl \
</span><ins>+    inspector/InjectedScriptHost.idl \
</ins><span class="cx">     inspector/InspectorBackend.idl \
</span><ins>+    inspector/InspectorFrontendHost.idl \
</ins><span class="cx">     inspector/JavaScriptCallFrame.idl \
</span><span class="cx">     loader/appcache/DOMApplicationCache.idl \
</span><span class="cx">     page/BarInfo.idl \
</span><span class="lines">@@ -719,8 +721,9 @@
</span><span class="cx">     bindings/js/JSHTMLSelectElementCustom.cpp \
</span><span class="cx">     bindings/js/JSImageConstructor.cpp \
</span><span class="cx">     bindings/js/JSImageDataCustom.cpp \
</span><ins>+    bindings/js/JSInjectedScriptHostCustom.cpp \
</ins><span class="cx">     bindings/js/JSInspectedObjectWrapper.cpp \
</span><del>-    bindings/js/JSInspectorBackendCustom.cpp \
</del><ins>+    bindings/js/JSInspectorFrontendHostCustom.cpp \
</ins><span class="cx">     bindings/js/JSInspectorCallbackWrapper.cpp \
</span><span class="cx">     bindings/js/JSLocationCustom.cpp \
</span><span class="cx">     bindings/js/JSNamedNodeMapCustom.cpp \
</span><span class="lines">@@ -1075,12 +1078,14 @@
</span><span class="cx">     html/PreloadScanner.cpp \
</span><span class="cx">     html/ValidityState.cpp \
</span><span class="cx">     inspector/ConsoleMessage.cpp \
</span><ins>+    inspector/InjectedScriptHost.cpp \
</ins><span class="cx">     inspector/InspectorBackend.cpp \
</span><span class="cx">     inspector/InspectorController.cpp \
</span><span class="cx">     inspector/InspectorDatabaseResource.cpp \
</span><span class="cx">     inspector/InspectorDOMAgent.cpp \
</span><span class="cx">     inspector/InspectorDOMStorageResource.cpp \
</span><span class="cx">     inspector/InspectorFrontend.cpp \
</span><ins>+    inspector/InspectorFrontendHost.cpp \
</ins><span class="cx">     inspector/InspectorResource.cpp \
</span><span class="cx">     inspector/InspectorTimelineAgent.cpp \
</span><span class="cx">     inspector/TimelineRecordFactory.cpp \
</span><span class="lines">@@ -1757,11 +1762,13 @@
</span><span class="cx">     html/TimeRanges.h \
</span><span class="cx">     html/ValidityState.h \
</span><span class="cx">     inspector/ConsoleMessage.h \
</span><ins>+    inspector/InjectedScriptHost.h \
</ins><span class="cx">     inspector/InspectorBackend.h \
</span><span class="cx">     inspector/InspectorController.h \
</span><span class="cx">     inspector/InspectorDatabaseResource.h \
</span><span class="cx">     inspector/InspectorDOMStorageResource.h \
</span><span class="cx">     inspector/InspectorFrontend.h \
</span><ins>+    inspector/InspectorFrontendHost.h \
</ins><span class="cx">     inspector/InspectorResource.h \
</span><span class="cx">     inspector/InspectorTimelineAgent.h \
</span><span class="cx">     inspector/JavaScriptCallFrame.h \
</span></span></pre></div>
<a id="trunkWebCoreWebCorevcprojWebCorevcproj"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.vcproj/WebCore.vcproj (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.vcproj/WebCore.vcproj        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/WebCore.vcproj/WebCore.vcproj        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -7731,7 +7731,7 @@
</span><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="cx">                         &lt;File
</span><del>-                                RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSInspectorBackend.cpp&quot;
</del><ins>+                                RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSInjectedScriptHost.cpp&quot;
</ins><span class="cx">                                 &gt;
</span><span class="cx">                                 &lt;FileConfiguration
</span><span class="cx">                                         Name=&quot;Debug|Win32&quot;
</span><span class="lines">@@ -7783,7 +7783,7 @@
</span><span class="cx">                                 &lt;/FileConfiguration&gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="cx">                         &lt;File
</span><del>-                                RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSInspectorBackend.cpp&quot;
</del><ins>+                                RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSInjectedScriptHost.h&quot;
</ins><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="cx">                         &lt;File
</span><span class="lines">@@ -7843,6 +7843,62 @@
</span><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="cx">                         &lt;File
</span><ins>+                                RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSInspectorFrontendHost.cpp&quot;
+                                &gt;
+                                &lt;FileConfiguration
+                                        Name=&quot;Debug|Win32&quot;
+                                        ExcludedFromBuild=&quot;true&quot;
+                                        &gt;
+                                        &lt;Tool
+                                                Name=&quot;VCCLCompilerTool&quot;
+                                        /&gt;
+                                &lt;/FileConfiguration&gt;
+                                &lt;FileConfiguration
+                                        Name=&quot;Release|Win32&quot;
+                                        ExcludedFromBuild=&quot;true&quot;
+                                        &gt;
+                                        &lt;Tool
+                                                Name=&quot;VCCLCompilerTool&quot;
+                                        /&gt;
+                                &lt;/FileConfiguration&gt;
+                                &lt;FileConfiguration
+                                        Name=&quot;Debug_Internal|Win32&quot;
+                                        ExcludedFromBuild=&quot;true&quot;
+                                        &gt;
+                                        &lt;Tool
+                                                Name=&quot;VCCLCompilerTool&quot;
+                                        /&gt;
+                                &lt;/FileConfiguration&gt;
+                                &lt;FileConfiguration
+                                        Name=&quot;Debug_Cairo|Win32&quot;
+                                        ExcludedFromBuild=&quot;true&quot;
+                                        &gt;
+                                        &lt;Tool
+                                                Name=&quot;VCCLCompilerTool&quot;
+                                        /&gt;
+                                &lt;/FileConfiguration&gt;
+                                &lt;FileConfiguration
+                                        Name=&quot;Release_Cairo|Win32&quot;
+                                        ExcludedFromBuild=&quot;true&quot;
+                                        &gt;
+                                        &lt;Tool
+                                                Name=&quot;VCCLCompilerTool&quot;
+                                        /&gt;
+                                &lt;/FileConfiguration&gt;
+                                &lt;FileConfiguration
+                                        Name=&quot;Debug_All|Win32&quot;
+                                        ExcludedFromBuild=&quot;true&quot;
+                                        &gt;
+                                        &lt;Tool
+                                                Name=&quot;VCCLCompilerTool&quot;
+                                        /&gt;
+                                &lt;/FileConfiguration&gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSInspectorFrontendHost.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
</ins><span class="cx">                                 RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSJavaScriptCallFrame.cpp&quot;
</span><span class="cx">                                 &gt;
</span><span class="cx">                                 &lt;FileConfiguration
</span><span class="lines">@@ -37298,7 +37354,7 @@
</span><span class="cx">                                         &gt;
</span><span class="cx">                                 &lt;/File&gt;
</span><span class="cx">                                 &lt;File
</span><del>-                                        RelativePath=&quot;..\bindings\js\JSInspectorBackendCustom.cpp&quot;
</del><ins>+                                        RelativePath=&quot;..\bindings\js\JSInjectedScriptHostCustom.cpp&quot;
</ins><span class="cx">                                         &gt;
</span><span class="cx">                                         &lt;FileConfiguration
</span><span class="cx">                                                 Name=&quot;Debug|Win32&quot;
</span><span class="lines">@@ -37350,6 +37406,58 @@
</span><span class="cx">                                         &lt;/FileConfiguration&gt;
</span><span class="cx">                                 &lt;/File&gt;
</span><span class="cx">                                 &lt;File
</span><ins>+                                        RelativePath=&quot;..\bindings\js\JSInspectorFrontendHostCustom.cpp&quot;
+                                        &gt;
+                                        &lt;FileConfiguration
+                                                Name=&quot;Debug|Win32&quot;
+                                                ExcludedFromBuild=&quot;true&quot;
+                                                &gt;
+                                                &lt;Tool
+                                                        Name=&quot;VCCLCompilerTool&quot;
+                                                /&gt;
+                                        &lt;/FileConfiguration&gt;
+                                        &lt;FileConfiguration
+                                                Name=&quot;Release|Win32&quot;
+                                                ExcludedFromBuild=&quot;true&quot;
+                                                &gt;
+                                                &lt;Tool
+                                                        Name=&quot;VCCLCompilerTool&quot;
+                                                /&gt;
+                                        &lt;/FileConfiguration&gt;
+                                        &lt;FileConfiguration
+                                                Name=&quot;Debug_Internal|Win32&quot;
+                                                ExcludedFromBuild=&quot;true&quot;
+                                                &gt;
+                                                &lt;Tool
+                                                        Name=&quot;VCCLCompilerTool&quot;
+                                                /&gt;
+                                        &lt;/FileConfiguration&gt;
+                                        &lt;FileConfiguration
+                                                Name=&quot;Debug_Cairo|Win32&quot;
+                                                ExcludedFromBuild=&quot;true&quot;
+                                                &gt;
+                                                &lt;Tool
+                                                        Name=&quot;VCCLCompilerTool&quot;
+                                                /&gt;
+                                        &lt;/FileConfiguration&gt;
+                                        &lt;FileConfiguration
+                                                Name=&quot;Release_Cairo|Win32&quot;
+                                                ExcludedFromBuild=&quot;true&quot;
+                                                &gt;
+                                                &lt;Tool
+                                                        Name=&quot;VCCLCompilerTool&quot;
+                                                /&gt;
+                                        &lt;/FileConfiguration&gt;
+                                        &lt;FileConfiguration
+                                                Name=&quot;Debug_All|Win32&quot;
+                                                ExcludedFromBuild=&quot;true&quot;
+                                                &gt;
+                                                &lt;Tool
+                                                        Name=&quot;VCCLCompilerTool&quot;
+                                                /&gt;
+                                        &lt;/FileConfiguration&gt;
+                                &lt;/File&gt;
+                                &lt;File
</ins><span class="cx">                                         RelativePath=&quot;..\bindings\js\JSInspectorCallbackWrapper.cpp&quot;
</span><span class="cx">                                         &gt;
</span><span class="cx">                                 &lt;/File&gt;
</span><span class="lines">@@ -42319,6 +42427,13 @@
</span><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="cx">                         &lt;File
</span><ins>+                                RelativePath=&quot;..\inspector\InjectedScriptHost.cpp&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\inspector\InjectedScriptHost.h&quot;
+                                &gt;
+                        &lt;File
</ins><span class="cx">                                 RelativePath=&quot;..\inspector\InspectorBackend.cpp&quot;
</span><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="lines">@@ -42371,6 +42486,14 @@
</span><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span><span class="cx">                         &lt;File
</span><ins>+                                RelativePath=&quot;..\inspector\InspectorFrontendHost.cpp&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\inspector\InspectorFrontendHost.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
</ins><span class="cx">                                 RelativePath=&quot;..\inspector\InspectorResource.cpp&quot;
</span><span class="cx">                                 &gt;
</span><span class="cx">                         &lt;/File&gt;
</span></span></pre></div>
<a id="trunkWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.xcodeproj/project.pbxproj (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.xcodeproj/project.pbxproj        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/WebCore.xcodeproj/project.pbxproj        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -1229,6 +1229,17 @@
</span><span class="cx">                 79AC9219109945C80021266E /* JSCompositionEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 79AC9217109945C80021266E /* JSCompositionEvent.h */; };
</span><span class="cx">                 79F2F5A11091939A000D87CB /* CompositionEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 79F2F59E1091939A000D87CB /* CompositionEvent.cpp */; };
</span><span class="cx">                 79F2F5A21091939A000D87CB /* CompositionEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F2F59F1091939A000D87CB /* CompositionEvent.h */; };
</span><ins>+                7A0E76D510BF050700A0276E /* JSInjectedScriptHostCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E76D410BF050700A0276E /* JSInjectedScriptHostCustom.cpp */; };
+                7A0E76DA10BF059800A0276E /* JSInjectedScriptHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E76D810BF059800A0276E /* JSInjectedScriptHost.cpp */; };
+                7A0E76DB10BF059800A0276E /* JSInjectedScriptHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E76D910BF059800A0276E /* JSInjectedScriptHost.h */; };
+                7A0E76F910BF08ED00A0276E /* InjectedScriptHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E76F610BF08ED00A0276E /* InjectedScriptHost.cpp */; };
+                7A0E76FA10BF08ED00A0276E /* InjectedScriptHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E76F710BF08ED00A0276E /* InjectedScriptHost.h */; };
+                7A0E76FB10BF08ED00A0276E /* InjectedScriptHost.idl in Resources */ = {isa = PBXBuildFile; fileRef = 7A0E76F810BF08ED00A0276E /* InjectedScriptHost.idl */; };
+                7A0E770E10C00A8800A0276E /* InspectorFrontendHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E770B10C00A8800A0276E /* InspectorFrontendHost.cpp */; };
+                7A0E770F10C00A8800A0276E /* InspectorFrontendHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E770C10C00A8800A0276E /* InspectorFrontendHost.h */; };
+                7A0E771010C00A8800A0276E /* InspectorFrontendHost.idl in Resources */ = {isa = PBXBuildFile; fileRef = 7A0E770D10C00A8800A0276E /* InspectorFrontendHost.idl */; };
+                7A0E771E10C00DB100A0276E /* JSInspectorFrontendHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */; };
+                7A0E771F10C00DB100A0276E /* JSInspectorFrontendHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */; };
</ins><span class="cx">                 7A1E88F5101CC384000C4DF5 /* ScriptArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A1E88F3101CC384000C4DF5 /* ScriptArray.cpp */; };
</span><span class="cx">                 7A1E88F6101CC384000C4DF5 /* ScriptArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A1E88F4101CC384000C4DF5 /* ScriptArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 7A24587B1021EAF4000A00AA /* InspectorDOMAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */; };
</span><span class="lines">@@ -1237,7 +1248,7 @@
</span><span class="cx">                 7A674BDC0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */; };
</span><span class="cx">                 7A74ECBA101839A600BF939E /* InspectorBackend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECB8101839A500BF939E /* InspectorBackend.cpp */; };
</span><span class="cx">                 7A74ECBB101839A600BF939E /* InspectorBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A74ECB9101839A600BF939E /* InspectorBackend.h */; };
</span><del>-                7A74ECBD101839DA00BF939E /* JSInspectorBackendCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECBC101839DA00BF939E /* JSInspectorBackendCustom.cpp */; };
</del><ins>+                7A74ECBD101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */; };
</ins><span class="cx">                 7AED3E050FBB1EAA00D2B03C /* InspectorFrontend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AED3E030FBB1EAA00D2B03C /* InspectorFrontend.cpp */; };
</span><span class="cx">                 7AED3E060FBB1EAA00D2B03C /* InspectorFrontend.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AED3E040FBB1EAA00D2B03C /* InspectorFrontend.h */; };
</span><span class="cx">                 84224183107E77F400766A87 /* JSSVGFEMorphologyElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84224181107E77F400766A87 /* JSSVGFEMorphologyElement.cpp */; };
</span><span class="lines">@@ -6550,6 +6561,17 @@
</span><span class="cx">                 79F2F59E1091939A000D87CB /* CompositionEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompositionEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 79F2F59F1091939A000D87CB /* CompositionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompositionEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 79F2F5A01091939A000D87CB /* CompositionEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CompositionEvent.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                7A0E76D410BF050700A0276E /* JSInjectedScriptHostCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInjectedScriptHostCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E76D810BF059800A0276E /* JSInjectedScriptHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSInjectedScriptHost.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E76D910BF059800A0276E /* JSInjectedScriptHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSInjectedScriptHost.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E76F610BF08ED00A0276E /* InjectedScriptHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptHost.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E76F710BF08ED00A0276E /* InjectedScriptHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptHost.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E76F810BF08ED00A0276E /* InjectedScriptHost.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InjectedScriptHost.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E770B10C00A8800A0276E /* InspectorFrontendHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorFrontendHost.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E770C10C00A8800A0276E /* InspectorFrontendHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontendHost.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E770D10C00A8800A0276E /* InspectorFrontendHost.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InspectorFrontendHost.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSInspectorFrontendHost.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSInspectorFrontendHost.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 7A1E88F3101CC384000C4DF5 /* ScriptArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptArray.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7A1E88F4101CC384000C4DF5 /* ScriptArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptArray.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDOMAgent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -6559,7 +6581,7 @@
</span><span class="cx">                 7A74ECB61018399A00BF939E /* InspectorBackend.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InspectorBackend.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7A74ECB8101839A500BF939E /* InspectorBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBackend.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7A74ECB9101839A600BF939E /* InspectorBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorBackend.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                7A74ECBC101839DA00BF939E /* JSInspectorBackendCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInspectorBackendCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><ins>+                7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInspectorFrontendHostCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 7AED3E030FBB1EAA00D2B03C /* InspectorFrontend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorFrontend.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7AED3E040FBB1EAA00D2B03C /* InspectorFrontend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontend.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 84224181107E77F400766A87 /* JSSVGFEMorphologyElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGFEMorphologyElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -10420,8 +10442,12 @@
</span><span class="cx">                 1C5FAECA0DCFD8C900D58F78 /* Inspector */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                7A0E76D810BF059800A0276E /* JSInjectedScriptHost.cpp */,
+                                7A0E76D910BF059800A0276E /* JSInjectedScriptHost.h */,
</ins><span class="cx">                                 41F060CB0F5EEB2B00A07EAC /* JSInspectorBackend.cpp */,
</span><span class="cx">                                 41F060CC0F5EEB2B00A07EAC /* JSInspectorBackend.h */,
</span><ins>+                                7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */,
+                                7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */,
</ins><span class="cx">                                 1C5FAECF0DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp */,
</span><span class="cx">                                 1C5FAED00DCFD90100D58F78 /* JSJavaScriptCallFrame.h */,
</span><span class="cx">                         );
</span><span class="lines">@@ -10434,6 +10460,9 @@
</span><span class="cx">                                 1C81B9590E97330800266E07 /* front-end */,
</span><span class="cx">                                 41F0618D0F5F069800A07EAC /* ConsoleMessage.cpp */,
</span><span class="cx">                                 41F0618C0F5F069800A07EAC /* ConsoleMessage.h */,
</span><ins>+                                7A0E76F610BF08ED00A0276E /* InjectedScriptHost.cpp */,
+                                7A0E76F710BF08ED00A0276E /* InjectedScriptHost.h */,
+                                7A0E76F810BF08ED00A0276E /* InjectedScriptHost.idl */,
</ins><span class="cx">                                 7A74ECB8101839A500BF939E /* InspectorBackend.cpp */,
</span><span class="cx">                                 7A74ECB9101839A600BF939E /* InspectorBackend.h */,
</span><span class="cx">                                 7A74ECB61018399A00BF939E /* InspectorBackend.idl */,
</span><span class="lines">@@ -10448,6 +10477,9 @@
</span><span class="cx">                                 41F061720F5F00AC00A07EAC /* InspectorDOMStorageResource.h */,
</span><span class="cx">                                 7AED3E030FBB1EAA00D2B03C /* InspectorFrontend.cpp */,
</span><span class="cx">                                 7AED3E040FBB1EAA00D2B03C /* InspectorFrontend.h */,
</span><ins>+                                7A0E770B10C00A8800A0276E /* InspectorFrontendHost.cpp */,
+                                7A0E770C10C00A8800A0276E /* InspectorFrontendHost.h */,
+                                7A0E770D10C00A8800A0276E /* InspectorFrontendHost.idl */,
</ins><span class="cx">                                 41F062000F5F0B6600A07EAC /* InspectorResource.cpp */,
</span><span class="cx">                                 41F061FF0F5F0B6600A07EAC /* InspectorResource.h */,
</span><span class="cx">                                 754133A9102E00F400075D00 /* InspectorTimelineAgent.cpp */,
</span><span class="lines">@@ -14530,7 +14562,8 @@
</span><span class="cx">                                 BC17F9650B64EBB8004A65CB /* JSHTMLSelectElementCustom.cpp */,
</span><span class="cx">                                 AB4CB4EA0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h */,
</span><span class="cx">                                 A7D0318D0E93540300E24ACD /* JSImageDataCustom.cpp */,
</span><del>-                                7A74ECBC101839DA00BF939E /* JSInspectorBackendCustom.cpp */,
</del><ins>+                                7A0E76D410BF050700A0276E /* JSInjectedScriptHostCustom.cpp */,
+                                7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */,
</ins><span class="cx">                                 1C5FAEE60DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp */,
</span><span class="cx">                                 BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */,
</span><span class="cx">                                 E1A5F99A0E7EAA2500AF85EA /* JSMessageChannelCustom.cpp */,
</span><span class="lines">@@ -18179,6 +18212,10 @@
</span><span class="cx">                                 9382DF5810A8D5C900925652 /* ColorSpace.h in Headers */,
</span><span class="cx">                                 AB31C91E10AE1B8E000C7B92 /* LineClampValue.h in Headers */,
</span><span class="cx">                                 6E47E66110B7944B00B186C8 /* WebGLGetInfo.h in Headers */,
</span><ins>+                                7A0E76DB10BF059800A0276E /* JSInjectedScriptHost.h in Headers */,
+                                7A0E76FA10BF08ED00A0276E /* InjectedScriptHost.h in Headers */,
+                                7A0E770F10C00A8800A0276E /* InspectorFrontendHost.h in Headers */,
+                                7A0E771F10C00DB100A0276E /* JSInspectorFrontendHost.h in Headers */,
</ins><span class="cx">                         );
</span><span class="cx">                         runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">                 };
</span><span class="lines">@@ -18282,6 +18319,8 @@
</span><span class="cx">                                 1AB1AE7B0C051FDE00139F4F /* zoomOutCursor.png in Resources */,
</span><span class="cx">                                 18C5FCA710A3991F0048438D /* WebKitSharedScript.idl in Resources */,
</span><span class="cx">                                 18C5FCB910A3C6F20048438D /* SharedScriptContext.idl in Resources */,
</span><ins>+                                7A0E76FB10BF08ED00A0276E /* InjectedScriptHost.idl in Resources */,
+                                7A0E771010C00A8800A0276E /* InspectorFrontendHost.idl in Resources */,
</ins><span class="cx">                         );
</span><span class="cx">                         runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">                 };
</span><span class="lines">@@ -19379,7 +19418,7 @@
</span><span class="cx">                                 A7D0318E0E93540300E24ACD /* JSImageDataCustom.cpp in Sources */,
</span><span class="cx">                                 C091588A0DB4209200E55AF4 /* JSInspectedObjectWrapper.cpp in Sources */,
</span><span class="cx">                                 41F060CD0F5EEB2B00A07EAC /* JSInspectorBackend.cpp in Sources */,
</span><del>-                                7A74ECBD101839DA00BF939E /* JSInspectorBackendCustom.cpp in Sources */,
</del><ins>+                                7A74ECBD101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp in Sources */,
</ins><span class="cx">                                 C091588C0DB4209200E55AF4 /* JSInspectorCallbackWrapper.cpp in Sources */,
</span><span class="cx">                                 1C5FAED10DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp in Sources */,
</span><span class="cx">                                 1C5FAEE70DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp in Sources */,
</span><span class="lines">@@ -20329,6 +20368,11 @@
</span><span class="cx">                                 18C5FCB710A3C6F20048438D /* SharedScriptContext.cpp in Sources */,
</span><span class="cx">                                 E1B4CD2510B322E200BFFD7E /* CredentialStorageMac.mm in Sources */,
</span><span class="cx">                                 6E47E66010B7944B00B186C8 /* WebGLGetInfo.cpp in Sources */,
</span><ins>+                                7A0E76D510BF050700A0276E /* JSInjectedScriptHostCustom.cpp in Sources */,
+                                7A0E76DA10BF059800A0276E /* JSInjectedScriptHost.cpp in Sources */,
+                                7A0E76F910BF08ED00A0276E /* InjectedScriptHost.cpp in Sources */,
+                                7A0E770E10C00A8800A0276E /* InspectorFrontendHost.cpp in Sources */,
+                                7A0E771E10C00DB100A0276E /* JSInspectorFrontendHost.cpp in Sources */,
</ins><span class="cx">                         );
</span><span class="cx">                         runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">                 };
</span></span></pre></div>
<a id="trunkWebCoreWebCoreSourcesbkl"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCoreSources.bkl (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCoreSources.bkl        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/WebCoreSources.bkl        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -111,8 +111,9 @@
</span><span class="cx">         bindings/js/JSHTMLSelectElementCustom.cpp
</span><span class="cx">         bindings/js/JSImageConstructor.cpp
</span><span class="cx">         bindings/js/JSImageDataCustom.cpp
</span><ins>+        bindings/js/JSInjectedScriptHostCustom.cpp
</ins><span class="cx">         bindings/js/JSInspectedObjectWrapper.cpp
</span><del>-        bindings/js/JSInspectorBackendCustom.cpp
</del><ins>+        bindings/js/JSInspectorFrontendHostCustom.cpp
</ins><span class="cx">         bindings/js/JSInspectorCallbackWrapper.cpp
</span><span class="cx">         bindings/js/JSJavaScriptCallFrameCustom.cpp
</span><span class="cx">         bindings/js/JSLocationCustom.cpp
</span><span class="lines">@@ -366,7 +367,9 @@
</span><span class="cx">         DerivedSources/WebCore/JSHTMLUListElement.cpp
</span><span class="cx">         DerivedSources/WebCore/JSHistory.cpp
</span><span class="cx">         DerivedSources/WebCore/JSImageData.cpp
</span><ins>+        DerivedSources/WebCore/JSInjectedScriptHost.cpp
</ins><span class="cx">         DerivedSources/WebCore/JSInspectorBackend.cpp
</span><ins>+        DerivedSources/WebCore/JSInspectorFrontendHost.cpp
</ins><span class="cx">         DerivedSources/WebCore/JSJavaScriptCallFrame.cpp
</span><span class="cx">         DerivedSources/WebCore/JSKeyboardEvent.cpp
</span><span class="cx">         DerivedSources/WebCore/JSLocation.cpp
</span><span class="lines">@@ -682,7 +685,9 @@
</span><span class="cx"> 
</span><span class="cx">     &lt;set append=&quot;1&quot; var=&quot;WEBCORE_SOURCES_INSPECTOR&quot;&gt;
</span><span class="cx">         inspector/ConsoleMessage.cpp
</span><ins>+        inspector/InjectedScriptHost.cpp
</ins><span class="cx">         inspector/InspectorBackend.cpp
</span><ins>+        inspector/InspectorFrontendHost.cpp
</ins><span class="cx">         inspector/InspectorDatabaseResource.cpp
</span><span class="cx">         inspector/InspectorDOMAgent.cpp
</span><span class="cx">         inspector/InspectorDOMStorageResource.cpp
</span></span></pre></div>
<a id="trunkWebCorebindingsjsJSBindingsAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/js/JSBindingsAllInOne.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/JSBindingsAllInOne.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/js/JSBindingsAllInOne.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -85,8 +85,9 @@
</span><span class="cx"> #include &quot;JSHistoryCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSImageConstructor.cpp&quot;
</span><span class="cx"> #include &quot;JSImageDataCustom.cpp&quot;
</span><ins>+#include &quot;JSInjectedScriptHostCustom.cpp&quot;
</ins><span class="cx"> #include &quot;JSInspectedObjectWrapper.cpp&quot;
</span><del>-#include &quot;JSInspectorBackendCustom.cpp&quot;
</del><ins>+#include &quot;JSInspectorFrontendHostCustom.cpp&quot;
</ins><span class="cx"> #include &quot;JSJavaScriptCallFrameCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSLazyEventListener.cpp&quot;
</span><span class="cx"> #include &quot;JSLocationCustom.cpp&quot;
</span></span></pre></div>
<a id="trunkWebCorebindingsjsJSInjectedScriptHostCustomcpp"></a>
<div class="addfile"><h4>Added: trunk/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp                                (rev 0)
+++ trunk/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,219 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSInjectedScriptHost.h&quot;
+
+#if ENABLE(INSPECTOR)
+
+#include &quot;Console.h&quot;
+#if ENABLE(DATABASE)
+#include &quot;Database.h&quot;
+#include &quot;JSDatabase.h&quot;
+#endif
+#include &quot;ExceptionCode.h&quot;
+#include &quot;Frame.h&quot;
+#include &quot;FrameLoader.h&quot;
+#include &quot;InjectedScriptHost.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;InspectorResource.h&quot;
+#include &quot;JSDOMWindow.h&quot;
+#include &quot;JSInspectedObjectWrapper.h&quot;
+#include &quot;JSInspectorCallbackWrapper.h&quot;
+#include &quot;JSNode.h&quot;
+#include &quot;JSRange.h&quot;
+#include &quot;Node.h&quot;
+#include &quot;Page.h&quot;
+#if ENABLE(DOM_STORAGE)
+#include &quot;Storage.h&quot;
+#include &quot;JSStorage.h&quot;
+#endif
+#include &quot;TextIterator.h&quot;
+#include &quot;VisiblePosition.h&quot;
+#include &lt;runtime/JSArray.h&gt;
+#include &lt;runtime/JSLock.h&gt;
+#include &lt;wtf/Vector.h&gt;
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+#include &quot;JavaScriptCallFrame.h&quot;
+#include &quot;JavaScriptDebugServer.h&quot;
+#include &quot;JSJavaScriptCallFrame.h&quot;
+#endif
+
+using namespace JSC;
+
+namespace WebCore {
+
+#if ENABLE(DATABASE)
+JSValue JSInjectedScriptHost::databaseForId(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+
+    InspectorController* ic = impl()-&gt;inspectorController();
+    if (!ic)
+        return jsUndefined();
+
+    Database* database = impl()-&gt;databaseForId(args.at(0).toInt32(exec));
+    if (!database)
+        return jsUndefined();
+    // Could use currentWorld(exec) ... but which exec!  The following mixed use of exec &amp; inspectedWindow-&gt;globalExec() scares me!
+    JSDOMWindow* inspectedWindow = toJSDOMWindow(ic-&gt;inspectedPage()-&gt;mainFrame(), debuggerWorld());
+    return JSInspectedObjectWrapper::wrap(inspectedWindow-&gt;globalExec(), toJS(exec, database));
+}
+#endif
+
+JSValue JSInjectedScriptHost::inspectedWindow(ExecState*, const ArgList&amp;)
+{
+    InspectorController* ic = impl()-&gt;inspectorController();
+    if (!ic)
+        return jsUndefined();
+    JSDOMWindow* inspectedWindow = toJSDOMWindow(ic-&gt;inspectedPage()-&gt;mainFrame(), debuggerWorld());
+    return JSInspectedObjectWrapper::wrap(inspectedWindow-&gt;globalExec(), inspectedWindow);
+}
+
+JSValue JSInjectedScriptHost::wrapCallback(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+
+    return JSInspectorCallbackWrapper::wrap(exec, args.at(0));
+}
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+
+JSValue JSInjectedScriptHost::currentCallFrame(ExecState* exec, const ArgList&amp;)
+{
+    JavaScriptCallFrame* callFrame = impl()-&gt;currentCallFrame();
+    if (!callFrame || !callFrame-&gt;isValid())
+        return jsUndefined();
+
+    // FIXME: I am not sure if this is actually needed. Can we just use exec?
+    ExecState* globalExec = callFrame-&gt;scopeChain()-&gt;globalObject-&gt;globalExec();
+
+    JSLock lock(SilenceAssertionsOnly);
+    return JSInspectedObjectWrapper::wrap(globalExec, toJS(exec, callFrame));
+}
+
+#endif
+
+JSValue JSInjectedScriptHost::nodeForId(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+
+    Node* node = impl()-&gt;nodeForId(args.at(0).toInt32(exec));
+    if (!node)
+        return jsUndefined();
+
+    InspectorController* ic = impl()-&gt;inspectorController();
+    if (!ic)
+        return jsUndefined();
+
+    JSLock lock(SilenceAssertionsOnly);
+    JSDOMWindow* inspectedWindow = toJSDOMWindow(ic-&gt;inspectedPage()-&gt;mainFrame(), debuggerWorld());
+    return JSInspectedObjectWrapper::wrap(inspectedWindow-&gt;globalExec(), toJS(exec, deprecatedGlobalObjectForPrototype(inspectedWindow-&gt;globalExec()), node));
+}
+
+JSValue JSInjectedScriptHost::wrapObject(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 2)
+        return jsUndefined();
+
+    return impl()-&gt;wrapObject(ScriptValue(args.at(0)), args.at(1).toString(exec)).jsValue();
+}
+
+JSValue JSInjectedScriptHost::unwrapObject(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+
+    return impl()-&gt;unwrapObject(args.at(0).toString(exec)).jsValue();
+}
+
+JSValue JSInjectedScriptHost::pushNodePathToFrontend(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 2)
+        return jsUndefined();
+
+    JSQuarantinedObjectWrapper* wrapper = JSQuarantinedObjectWrapper::asWrapper(args.at(0));
+    if (!wrapper)
+        return jsUndefined();
+
+    Node* node = toNode(wrapper-&gt;unwrappedObject());
+    if (!node)
+        return jsUndefined();
+
+    bool selectInUI = args.at(1).toBoolean(exec);
+    return jsNumber(exec, impl()-&gt;pushNodePathToFrontend(node, selectInUI));
+}
+
+#if ENABLE(DATABASE)
+JSValue JSInjectedScriptHost::selectDatabase(ExecState*, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+
+    JSQuarantinedObjectWrapper* wrapper = JSQuarantinedObjectWrapper::asWrapper(args.at(0));
+    if (!wrapper)
+        return jsUndefined();
+
+    Database* database = toDatabase(wrapper-&gt;unwrappedObject());
+    if (database)
+        impl()-&gt;selectDatabase(database);
+    return jsUndefined();
+}
+#endif
+
+#if ENABLE(DOM_STORAGE)
+JSValue JSInjectedScriptHost::selectDOMStorage(ExecState*, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+    InspectorController* ic = impl()-&gt;inspectorController();
+    if (!ic)
+        return jsUndefined();
+
+    JSQuarantinedObjectWrapper* wrapper = JSQuarantinedObjectWrapper::asWrapper(args.at(0));
+    if (!wrapper)
+        return jsUndefined();
+
+    Storage* storage = toStorage(wrapper-&gt;unwrappedObject());
+    if (storage)
+        impl()-&gt;selectDOMStorage(storage);
+    return jsUndefined();
+}
+#endif
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
</ins><span class="cx">Property changes on: trunk/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCorebindingsjsJSInspectorBackendCustomcpp"></a>
<div class="delfile"><h4>Deleted: trunk/WebCore/bindings/js/JSInspectorBackendCustom.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/JSInspectorBackendCustom.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/js/JSInspectorBackendCustom.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -1,346 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;JSInspectorBackend.h&quot;
-
-#if ENABLE(INSPECTOR)
-
-#include &quot;Console.h&quot;
-#if ENABLE(DATABASE)
-#include &quot;Database.h&quot;
-#include &quot;JSDatabase.h&quot;
-#endif
-#include &quot;ExceptionCode.h&quot;
-#include &quot;Frame.h&quot;
-#include &quot;FrameLoader.h&quot;
-#include &quot;InspectorBackend.h&quot;
-#include &quot;InspectorController.h&quot;
-#include &quot;InspectorResource.h&quot;
-#include &quot;JSDOMWindow.h&quot;
-#include &quot;JSInspectedObjectWrapper.h&quot;
-#include &quot;JSInspectorCallbackWrapper.h&quot;
-#include &quot;JSNode.h&quot;
-#include &quot;JSRange.h&quot;
-#include &quot;Node.h&quot;
-#include &quot;Page.h&quot;
-#if ENABLE(DOM_STORAGE)
-#include &quot;Storage.h&quot;
-#include &quot;JSStorage.h&quot;
-#endif
-#include &quot;TextIterator.h&quot;
-#include &quot;VisiblePosition.h&quot;
-#include &lt;runtime/JSArray.h&gt;
-#include &lt;runtime/JSLock.h&gt;
-#include &lt;wtf/Vector.h&gt;
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include &quot;JavaScriptCallFrame.h&quot;
-#include &quot;JavaScriptDebugServer.h&quot;
-#include &quot;JSJavaScriptCallFrame.h&quot;
-#endif
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSInspectorBackend::highlightDOMNode(JSC::ExecState* exec, const JSC::ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    impl()-&gt;highlight(args.at(0).toInt32(exec));
-    return jsUndefined();
-}
-
-JSValue JSInspectorBackend::search(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 2)
-        return jsUndefined();
-
-    Node* node = toNode(args.at(0));
-    if (!node)
-        return jsUndefined();
-
-    String target = args.at(1).toString(exec);
-    if (exec-&gt;hadException())
-        return jsUndefined();
-
-    MarkedArgumentBuffer result;
-    RefPtr&lt;Range&gt; searchRange(rangeOfContents(node));
-
-    ExceptionCode ec = 0;
-    do {
-        RefPtr&lt;Range&gt; resultRange(findPlainText(searchRange.get(), target, true, false));
-        if (resultRange-&gt;collapsed(ec))
-            break;
-
-        // A non-collapsed result range can in some funky whitespace cases still not
-        // advance the range's start position (4509328). Break to avoid infinite loop.
-        VisiblePosition newStart = endVisiblePosition(resultRange.get(), DOWNSTREAM);
-        if (newStart == startVisiblePosition(searchRange.get(), DOWNSTREAM))
-            break;
-
-        result.append(toJS(exec, resultRange.get()));
-
-        setStart(searchRange.get(), newStart);
-    } while (true);
-
-    return constructArray(exec, result);
-}
-
-#if ENABLE(DATABASE)
-JSValue JSInspectorBackend::databaseForId(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    InspectorController* ic = impl()-&gt;inspectorController();
-    if (!ic)
-        return jsUndefined();
-
-    Database* database = impl()-&gt;databaseForId(args.at(0).toInt32(exec));
-    if (!database)
-        return jsUndefined();
-    // Could use currentWorld(exec) ... but which exec!  The following mixed use of exec &amp; inspectedWindow-&gt;globalExec() scares me!
-    JSDOMWindow* inspectedWindow = toJSDOMWindow(ic-&gt;inspectedPage()-&gt;mainFrame(), debuggerWorld());
-    return JSInspectedObjectWrapper::wrap(inspectedWindow-&gt;globalExec(), toJS(exec, database));
-}
-#endif
-
-JSValue JSInspectorBackend::inspectedWindow(ExecState*, const ArgList&amp;)
-{
-    InspectorController* ic = impl()-&gt;inspectorController();
-    if (!ic)
-        return jsUndefined();
-    JSDOMWindow* inspectedWindow = toJSDOMWindow(ic-&gt;inspectedPage()-&gt;mainFrame(), debuggerWorld());
-    return JSInspectedObjectWrapper::wrap(inspectedWindow-&gt;globalExec(), inspectedWindow);
-}
-
-JSValue JSInspectorBackend::setting(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    String key = args.at(0).toString(exec);
-    if (exec-&gt;hadException())
-        return jsUndefined();
-
-    InspectorController* ic = impl()-&gt;inspectorController();
-    if (!ic)
-        return jsUndefined();
-    const InspectorController::Setting&amp; setting = ic-&gt;setting(key);
-
-    switch (setting.type()) {
-        default:
-        case InspectorController::Setting::NoType:
-            return jsUndefined();
-        case InspectorController::Setting::StringType:
-            return jsString(exec, setting.string());
-        case InspectorController::Setting::DoubleType:
-            return jsNumber(exec, setting.doubleValue());
-        case InspectorController::Setting::IntegerType:
-            return jsNumber(exec, setting.integerValue());
-        case InspectorController::Setting::BooleanType:
-            return jsBoolean(setting.booleanValue());
-        case InspectorController::Setting::StringVectorType: {
-            MarkedArgumentBuffer stringsArray;
-            const Vector&lt;String&gt;&amp; strings = setting.stringVector();
-            const unsigned length = strings.size();
-            for (unsigned i = 0; i &lt; length; ++i)
-                stringsArray.append(jsString(exec, strings[i]));
-            return constructArray(exec, stringsArray);
-        }
-    }
-}
-
-JSValue JSInspectorBackend::setSetting(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 2)
-        return jsUndefined();
-
-    String key = args.at(0).toString(exec);
-    if (exec-&gt;hadException())
-        return jsUndefined();
-
-    InspectorController::Setting setting;
-
-    JSValue value = args.at(1);
-    if (value.isUndefined() || value.isNull()) {
-        // Do nothing. The setting is already NoType.
-        ASSERT(setting.type() == InspectorController::Setting::NoType);
-    } else if (value.isString())
-        setting.set(value.toString(exec));
-    else if (value.isNumber())
-        setting.set(value.toNumber(exec));
-    else if (value.isBoolean())
-        setting.set(value.toBoolean(exec));
-    else {
-        JSArray* jsArray = asArray(value);
-        if (!jsArray)
-            return jsUndefined();
-        Vector&lt;String&gt; strings;
-        for (unsigned i = 0; i &lt; jsArray-&gt;length(); ++i) {
-            String item = jsArray-&gt;get(exec, i).toString(exec);
-            if (exec-&gt;hadException())
-                return jsUndefined();
-            strings.append(item);
-        }
-        setting.set(strings);
-    }
-
-    if (exec-&gt;hadException())
-        return jsUndefined();
-
-    InspectorController* ic = impl()-&gt;inspectorController();
-    if (ic)
-        ic-&gt;setSetting(key, setting);
-
-    return jsUndefined();
-}
-
-JSValue JSInspectorBackend::wrapCallback(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    return JSInspectorCallbackWrapper::wrap(exec, args.at(0));
-}
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
-JSValue JSInspectorBackend::currentCallFrame(ExecState* exec, const ArgList&amp;)
-{
-    JavaScriptCallFrame* callFrame = impl()-&gt;currentCallFrame();
-    if (!callFrame || !callFrame-&gt;isValid())
-        return jsUndefined();
-
-    // FIXME: I am not sure if this is actually needed. Can we just use exec?
-    ExecState* globalExec = callFrame-&gt;scopeChain()-&gt;globalObject-&gt;globalExec();
-
-    JSLock lock(SilenceAssertionsOnly);
-    return JSInspectedObjectWrapper::wrap(globalExec, toJS(exec, callFrame));
-}
-
-#endif
-
-JSValue JSInspectorBackend::nodeForId(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    Node* node = impl()-&gt;nodeForId(args.at(0).toInt32(exec));
-    if (!node)
-        return jsUndefined();
-
-    InspectorController* ic = impl()-&gt;inspectorController();
-    if (!ic)
-        return jsUndefined();
-
-    JSLock lock(SilenceAssertionsOnly);
-    JSDOMWindow* inspectedWindow = toJSDOMWindow(ic-&gt;inspectedPage()-&gt;mainFrame(), debuggerWorld());
-    return JSInspectedObjectWrapper::wrap(inspectedWindow-&gt;globalExec(), toJS(exec, deprecatedGlobalObjectForPrototype(inspectedWindow-&gt;globalExec()), node));
-}
-
-JSValue JSInspectorBackend::wrapObject(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 2)
-        return jsUndefined();
-
-    return impl()-&gt;wrapObject(ScriptValue(args.at(0)), args.at(1).toString(exec)).jsValue();
-}
-
-JSValue JSInspectorBackend::unwrapObject(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    return impl()-&gt;unwrapObject(args.at(0).toString(exec)).jsValue();
-}
-
-JSValue JSInspectorBackend::pushNodePathToFrontend(ExecState* exec, const ArgList&amp; args)
-{
-    if (args.size() &lt; 2)
-        return jsUndefined();
-
-    JSQuarantinedObjectWrapper* wrapper = JSQuarantinedObjectWrapper::asWrapper(args.at(0));
-    if (!wrapper)
-        return jsUndefined();
-
-    Node* node = toNode(wrapper-&gt;unwrappedObject());
-    if (!node)
-        return jsUndefined();
-
-    bool selectInUI = args.at(1).toBoolean(exec);
-    return jsNumber(exec, impl()-&gt;pushNodePathToFrontend(node, selectInUI));
-}
-
-#if ENABLE(DATABASE)
-JSValue JSInspectorBackend::selectDatabase(ExecState*, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-
-    JSQuarantinedObjectWrapper* wrapper = JSQuarantinedObjectWrapper::asWrapper(args.at(0));
-    if (!wrapper)
-        return jsUndefined();
-
-    Database* database = toDatabase(wrapper-&gt;unwrappedObject());
-    if (database)
-        impl()-&gt;selectDatabase(database);
-    return jsUndefined();
-}
-#endif
-
-#if ENABLE(DOM_STORAGE)
-JSValue JSInspectorBackend::selectDOMStorage(ExecState*, const ArgList&amp; args)
-{
-    if (args.size() &lt; 1)
-        return jsUndefined();
-    InspectorController* ic = impl()-&gt;inspectorController();
-    if (!ic)
-        return jsUndefined();
-
-    JSQuarantinedObjectWrapper* wrapper = JSQuarantinedObjectWrapper::asWrapper(args.at(0));
-    if (!wrapper)
-        return jsUndefined();
-
-    Storage* storage = toStorage(wrapper-&gt;unwrappedObject());
-    if (storage)
-        impl()-&gt;selectDOMStorage(storage);
-    return jsUndefined();
-}
-#endif
-
-} // namespace WebCore
-
-#endif // ENABLE(INSPECTOR)
</del></span></pre></div>
<a id="trunkWebCorebindingsjsJSInspectorFrontendHostCustomcpp"></a>
<div class="addfile"><h4>Added: trunk/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp                                (rev 0)
+++ trunk/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,176 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSInspectorFrontendHost.h&quot;
+
+#if ENABLE(INSPECTOR)
+
+#include &quot;ExceptionCode.h&quot;
+#include &quot;Frame.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;InspectorFrontendHost.h&quot;
+#include &quot;JSNode.h&quot;
+#include &quot;JSRange.h&quot;
+#include &quot;Node.h&quot;
+#include &quot;Page.h&quot;
+#include &quot;TextIterator.h&quot;
+#include &quot;VisiblePosition.h&quot;
+#include &lt;runtime/JSArray.h&gt;
+#include &lt;runtime/JSLock.h&gt;
+#include &lt;wtf/Vector.h&gt;
+
+using namespace JSC;
+
+namespace WebCore {
+
+JSValue JSInspectorFrontendHost::search(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 2)
+        return jsUndefined();
+
+    Node* node = toNode(args.at(0));
+    if (!node)
+        return jsUndefined();
+
+    String target = args.at(1).toString(exec);
+    if (exec-&gt;hadException())
+        return jsUndefined();
+
+    MarkedArgumentBuffer result;
+    RefPtr&lt;Range&gt; searchRange(rangeOfContents(node));
+
+    ExceptionCode ec = 0;
+    do {
+        RefPtr&lt;Range&gt; resultRange(findPlainText(searchRange.get(), target, true, false));
+        if (resultRange-&gt;collapsed(ec))
+            break;
+
+        // A non-collapsed result range can in some funky whitespace cases still not
+        // advance the range's start position (4509328). Break to avoid infinite loop.
+        VisiblePosition newStart = endVisiblePosition(resultRange.get(), DOWNSTREAM);
+        if (newStart == startVisiblePosition(searchRange.get(), DOWNSTREAM))
+            break;
+
+        result.append(toJS(exec, resultRange.get()));
+
+        setStart(searchRange.get(), newStart);
+    } while (true);
+
+    return constructArray(exec, result);
+}
+
+JSValue JSInspectorFrontendHost::setting(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 1)
+        return jsUndefined();
+
+    String key = args.at(0).toString(exec);
+    if (exec-&gt;hadException())
+        return jsUndefined();
+
+    InspectorController* ic = impl()-&gt;inspectorController();
+    if (!ic)
+        return jsUndefined();
+    const InspectorController::Setting&amp; setting = ic-&gt;setting(key);
+
+    switch (setting.type()) {
+        default:
+        case InspectorController::Setting::NoType:
+            return jsUndefined();
+        case InspectorController::Setting::StringType:
+            return jsString(exec, setting.string());
+        case InspectorController::Setting::DoubleType:
+            return jsNumber(exec, setting.doubleValue());
+        case InspectorController::Setting::IntegerType:
+            return jsNumber(exec, setting.integerValue());
+        case InspectorController::Setting::BooleanType:
+            return jsBoolean(setting.booleanValue());
+        case InspectorController::Setting::StringVectorType: {
+            MarkedArgumentBuffer stringsArray;
+            const Vector&lt;String&gt;&amp; strings = setting.stringVector();
+            const unsigned length = strings.size();
+            for (unsigned i = 0; i &lt; length; ++i)
+                stringsArray.append(jsString(exec, strings[i]));
+            return constructArray(exec, stringsArray);
+        }
+    }
+}
+
+JSValue JSInspectorFrontendHost::setSetting(ExecState* exec, const ArgList&amp; args)
+{
+    if (args.size() &lt; 2)
+        return jsUndefined();
+
+    String key = args.at(0).toString(exec);
+    if (exec-&gt;hadException())
+        return jsUndefined();
+
+    InspectorController::Setting setting;
+
+    JSValue value = args.at(1);
+    if (value.isUndefined() || value.isNull()) {
+        // Do nothing. The setting is already NoType.
+        ASSERT(setting.type() == InspectorController::Setting::NoType);
+    } else if (value.isString())
+        setting.set(value.toString(exec));
+    else if (value.isNumber())
+        setting.set(value.toNumber(exec));
+    else if (value.isBoolean())
+        setting.set(value.toBoolean(exec));
+    else {
+        JSArray* jsArray = asArray(value);
+        if (!jsArray)
+            return jsUndefined();
+        Vector&lt;String&gt; strings;
+        for (unsigned i = 0; i &lt; jsArray-&gt;length(); ++i) {
+            String item = jsArray-&gt;get(exec, i).toString(exec);
+            if (exec-&gt;hadException())
+                return jsUndefined();
+            strings.append(item);
+        }
+        setting.set(strings);
+    }
+
+    if (exec-&gt;hadException())
+        return jsUndefined();
+
+    InspectorController* ic = impl()-&gt;inspectorController();
+    if (ic)
+        ic-&gt;setSetting(key, setting);
+
+    return jsUndefined();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
</ins><span class="cx">Property changes on: trunk/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCorebindingsjsScriptObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/js/ScriptObject.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/ScriptObject.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/js/ScriptObject.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -36,7 +36,9 @@
</span><span class="cx"> #include &lt;runtime/JSLock.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><ins>+#include &quot;JSInjectedScriptHost.h&quot;
</ins><span class="cx"> #include &quot;JSInspectorBackend.h&quot;
</span><ins>+#include &quot;JSInspectorFrontendHost.h&quot;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="lines">@@ -159,6 +161,22 @@
</span><span class="cx">     globalObject-&gt;putDirect(Identifier(scriptState, name), toJS(scriptState, globalObject, value));
</span><span class="cx">     return handleException(scriptState);
</span><span class="cx"> }
</span><ins>+
+bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, InspectorFrontendHost* value)
+{
+    JSLock lock(SilenceAssertionsOnly);
+    JSDOMGlobalObject* globalObject = static_cast&lt;JSDOMGlobalObject*&gt;(scriptState-&gt;lexicalGlobalObject());
+    globalObject-&gt;putDirect(Identifier(scriptState, name), toJS(scriptState, globalObject, value));
+    return handleException(scriptState);
+}
+
+bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, InjectedScriptHost* value)
+{
+    JSLock lock(SilenceAssertionsOnly);
+    JSDOMGlobalObject* globalObject = static_cast&lt;JSDOMGlobalObject*&gt;(scriptState-&gt;lexicalGlobalObject());
+    globalObject-&gt;putDirect(Identifier(scriptState, name), toJS(scriptState, globalObject, value));
+    return handleException(scriptState);
+}
</ins><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="cx"> 
</span><span class="cx"> bool ScriptGlobalObject::get(ScriptState* scriptState, const char* name, ScriptObject&amp; value)
</span></span></pre></div>
<a id="trunkWebCorebindingsjsScriptObjecth"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/js/ScriptObject.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/js/ScriptObject.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/js/ScriptObject.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -38,7 +38,9 @@
</span><span class="cx"> #include &lt;runtime/Protect.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><ins>+    class InjectedScriptHost;
</ins><span class="cx">     class InspectorBackend;
</span><ins>+    class InspectorFrontendHost;
</ins><span class="cx"> 
</span><span class="cx">     class ScriptObject : public ScriptValue {
</span><span class="cx">     public:
</span><span class="lines">@@ -68,6 +70,8 @@
</span><span class="cx">         static bool set(ScriptState*, const char* name, const ScriptObject&amp;);
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">         static bool set(ScriptState*, const char* name, InspectorBackend*);
</span><ins>+        static bool set(ScriptState*, const char* name, InspectorFrontendHost*);
+        static bool set(ScriptState*, const char* name, InjectedScriptHost*);
</ins><span class="cx"> #endif
</span><span class="cx">         static bool get(ScriptState*, const char* name, ScriptObject&amp;);
</span><span class="cx">         static bool remove(ScriptState*, const char* name);
</span></span></pre></div>
<a id="trunkWebCorebindingsv8DOMObjectsIncludeh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/DOMObjectsInclude.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/DOMObjectsInclude.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/DOMObjectsInclude.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -257,7 +257,9 @@
</span><span class="cx"> #endif // XSLT
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><ins>+#include &quot;InjectedScriptHost.h&quot;
</ins><span class="cx"> #include &quot;InspectorBackend.h&quot;
</span><ins>+#include &quot;InspectorFrontendHost.h&quot;
</ins><span class="cx"> #endif // INSPECTOR
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkWebCorebindingsv8DerivedSourcesAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -387,5 +387,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><ins>+#include &quot;bindings/V8InjectedScriptHost.cpp&quot;
</ins><span class="cx"> #include &quot;bindings/V8InspectorBackend.cpp&quot;
</span><ins>+#include &quot;bindings/V8InspectorFrontendHost.cpp&quot;
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkWebCorebindingsv8ScriptObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/ScriptObject.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/ScriptObject.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/ScriptObject.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -36,6 +36,8 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><ins>+#include &quot;InspectorBackend.h&quot;
+#include &quot;InspectorFrontendHost.h&quot;
</ins><span class="cx"> #include &quot;V8Binding.h&quot;
</span><span class="cx"> #include &quot;V8Proxy.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -145,6 +147,20 @@
</span><span class="cx">     return scope.success();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, InspectorFrontendHost* value)
+{
+    ScriptScope scope(scriptState);
+    scope.global()-&gt;Set(v8::String::New(name), V8DOMWrapper::convertToV8Object(V8ClassIndex::INSPECTORFRONTENDHOST, value));
+    return scope.success();
+}
+
+bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, InjectedScriptHost* value)
+{
+    ScriptScope scope(scriptState);
+    scope.global()-&gt;Set(v8::String::New(name), V8DOMWrapper::convertToV8Object(V8ClassIndex::INJECTEDSCRIPTHOST, value));
+    return scope.success();
+}
+
</ins><span class="cx"> bool ScriptGlobalObject::get(ScriptState* scriptState, const char* name, ScriptObject&amp; value)
</span><span class="cx"> {
</span><span class="cx">     ScriptScope scope(scriptState);
</span></span></pre></div>
<a id="trunkWebCorebindingsv8ScriptObjecth"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/ScriptObject.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/ScriptObject.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/ScriptObject.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -36,7 +36,9 @@
</span><span class="cx"> #include &lt;v8.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><ins>+    class InjectedScriptHost;
</ins><span class="cx">     class InspectorBackend;
</span><ins>+    class InspectorFrontendHost;
</ins><span class="cx">     class ScriptState;
</span><span class="cx"> 
</span><span class="cx">     class ScriptObject : public ScriptValue {
</span><span class="lines">@@ -67,6 +69,8 @@
</span><span class="cx">     public:
</span><span class="cx">         static bool set(ScriptState*, const char* name, const ScriptObject&amp;);
</span><span class="cx">         static bool set(ScriptState*, const char* name, InspectorBackend*);
</span><ins>+        static bool set(ScriptState*, const char* name, InspectorFrontendHost*);
+        static bool set(ScriptState*, const char* name, InjectedScriptHost*);
</ins><span class="cx">         static bool get(ScriptState*, const char* name, ScriptObject&amp;);
</span><span class="cx">         static bool remove(ScriptState*, const char* name);
</span><span class="cx">     private:
</span></span></pre></div>
<a id="trunkWebCorebindingsv8V8Indexcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/V8Index.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/V8Index.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/V8Index.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -433,7 +433,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><ins>+#include &quot;V8InjectedScriptHost.h&quot;
</ins><span class="cx"> #include &quot;V8InspectorBackend.h&quot;
</span><ins>+#include &quot;V8InspectorFrontendHost.h&quot;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkWebCorebindingsv8V8Indexh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/V8Index.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/V8Index.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/V8Index.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -487,7 +487,9 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx"> #define DOM_OBJECT_INSPECTOR_TYPES(V)                                   \
</span><del>-    V(INSPECTORBACKEND, InspectorBackend)
</del><ins>+    V(INSPECTORBACKEND, InspectorBackend)                               \
+    V(INSPECTORFRONTENDHOST, InspectorFrontendHost)                     \
+    V(INJECTEDSCRIPTHOST, InjectedScriptHost)
</ins><span class="cx"> #else
</span><span class="cx"> #define DOM_OBJECT_INSPECTOR_TYPES(V)
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkWebCorebindingsv8customV8CustomBindingh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/v8/custom/V8CustomBinding.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/custom/V8CustomBinding.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/custom/V8CustomBinding.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -477,30 +477,24 @@
</span><span class="cx">         DECLARE_CALLBACK(TreeWalkerNextSibling);
</span><span class="cx">         DECLARE_CALLBACK(TreeWalkerPreviousSibling);
</span><span class="cx"> 
</span><del>-        DECLARE_CALLBACK(InspectorBackendHighlightDOMNode);
-        DECLARE_CALLBACK(InspectorBackendAddResourceSourceToFrame);
-        DECLARE_CALLBACK(InspectorBackendAddSourceToFrame);
-        DECLARE_CALLBACK(InspectorBackendSearch);
-        DECLARE_CALLBACK(InspectorBackendSetting);
-        DECLARE_CALLBACK(InspectorBackendDatabaseForId);
-        DECLARE_CALLBACK(InspectorBackendInspectedWindow);
-        DECLARE_CALLBACK(InspectorBackendSetSetting);
-        DECLARE_CALLBACK(InspectorBackendCurrentCallFrame);
-        DECLARE_CALLBACK(InspectorBackendDebuggerEnabled);
-        DECLARE_CALLBACK(InspectorBackendPauseOnExceptions);
-        DECLARE_CALLBACK(InspectorBackendProfilerEnabled);
-        DECLARE_CALLBACK(InspectorBackendNodeForId);
-        DECLARE_CALLBACK(InspectorBackendWrapObject);
-        DECLARE_CALLBACK(InspectorBackendUnwrapObject);
-        DECLARE_CALLBACK(InspectorBackendPushNodePathToFrontend);
</del><ins>+        DECLARE_CALLBACK(InjectedScriptHostInspectedWindow);
+        DECLARE_CALLBACK(InjectedScriptHostNodeForId);
+        DECLARE_CALLBACK(InjectedScriptHostWrapObject);
+        DECLARE_CALLBACK(InjectedScriptHostUnwrapObject);
+        DECLARE_CALLBACK(InjectedScriptHostPushNodePathToFrontend);
+        DECLARE_CALLBACK(InjectedScriptHostWrapCallback);
</ins><span class="cx"> #if ENABLE(DATABASE)
</span><del>-        DECLARE_CALLBACK(InspectorBackendSelectDatabase);
</del><ins>+        DECLARE_CALLBACK(InjectedScriptHostSelectDatabase);
+        DECLARE_CALLBACK(InjectedScriptHostDatabaseForId);
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><del>-        DECLARE_CALLBACK(InspectorBackendSelectDOMStorage);
</del><ins>+        DECLARE_CALLBACK(InjectedScriptHostSelectDOMStorage);
</ins><span class="cx"> #endif
</span><del>-        DECLARE_CALLBACK(InspectorBackendWrapCallback);
</del><span class="cx"> 
</span><ins>+        DECLARE_CALLBACK(InspectorFrontendHostSearch);
+        DECLARE_CALLBACK(InspectorFrontendHostSetting);
+        DECLARE_CALLBACK(InspectorFrontendHostSetSetting);
+
</ins><span class="cx">         DECLARE_CALLBACK(ConsoleProfile);
</span><span class="cx">         DECLARE_CALLBACK(ConsoleProfileEnd);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorebindingsv8customV8InjectedScriptHostCustomcpp"></a>
<div class="addfile"><h4>Added: trunk/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp                                (rev 0)
+++ trunk/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,163 @@
</span><ins>+/*
+ * Copyright (C) 2007-2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;InjectedScriptHost.h&quot;
+
+#include &quot;Database.h&quot;
+#include &quot;DOMWindow.h&quot;
+#include &quot;Frame.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;Node.h&quot;
+#include &quot;Page.h&quot;
+
+#include &quot;V8Binding.h&quot;
+#include &quot;V8CustomBinding.h&quot;
+#include &quot;V8Proxy.h&quot;
+
+namespace WebCore {
+
+CALLBACK_FUNC_DECL(InjectedScriptHostInspectedWindow)
+{
+    INC_STATS(&quot;InjectedScriptHost.inspectedWindow()&quot;);
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    InspectorController* ic = host-&gt;inspectorController();
+    if (!ic)
+        return v8::Undefined();
+    return V8DOMWrapper::convertToV8Object&lt;DOMWindow&gt;(V8ClassIndex::DOMWINDOW, ic-&gt;inspectedPage()-&gt;mainFrame()-&gt;domWindow());
+}
+
+CALLBACK_FUNC_DECL(InjectedScriptHostWrapCallback)
+{
+    INC_STATS(&quot;InjectedScriptHost.wrapCallback()&quot;);
+    return args[0];
+}
+
+CALLBACK_FUNC_DECL(InjectedScriptHostNodeForId)
+{
+    INC_STATS(&quot;InjectedScriptHost.nodeForId()&quot;);
+    if (args.Length() &lt; 1)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    
+    Node* node = host-&gt;nodeForId(args[0]-&gt;ToInt32()-&gt;Value());
+    if (!node)
+        return v8::Undefined();
+
+    InspectorController* ic = host-&gt;inspectorController();
+    if (!ic)
+        return v8::Undefined();
+
+    return V8DOMWrapper::convertToV8Object(V8ClassIndex::NODE, node);
+}
+
+CALLBACK_FUNC_DECL(InjectedScriptHostWrapObject)
+{
+    INC_STATS(&quot;InjectedScriptHost.wrapObject()&quot;);
+    if (args.Length() &lt; 2)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    return host-&gt;wrapObject(ScriptValue(args[0]), toWebCoreStringWithNullCheck(args[1])).v8Value();
+}
+
+CALLBACK_FUNC_DECL(InjectedScriptHostUnwrapObject)
+{
+    INC_STATS(&quot;InjectedScriptHost.unwrapObject()&quot;);
+    if (args.Length() &lt; 1)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    return host-&gt;unwrapObject(toWebCoreStringWithNullCheck(args[0])).v8Value();
+}
+
+CALLBACK_FUNC_DECL(InjectedScriptHostPushNodePathToFrontend)
+{
+    INC_STATS(&quot;InjectedScriptHost.pushNodePathToFrontend()&quot;);
+    if (args.Length() &lt; 2)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    Node* node = V8DOMWrapper::convertDOMWrapperToNode&lt;Node&gt;(v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
+    bool selectInUI = args[1]-&gt;ToBoolean()-&gt;Value();
+    if (node)
+        return v8::Number::New(host-&gt;pushNodePathToFrontend(node, selectInUI));
+
+    return v8::Undefined();
+}
+
+#if ENABLE(DATABASE)
+CALLBACK_FUNC_DECL(InjectedScriptHostDatabaseForId)
+{
+    INC_STATS(&quot;InjectedScriptHost.databaseForId()&quot;);
+    if (args.Length() &lt; 1)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    Database* database = host-&gt;databaseForId(args[0]-&gt;ToInt32()-&gt;Value());
+    if (!database)
+        return v8::Undefined();
+    return V8DOMWrapper::convertToV8Object&lt;Database&gt;(V8ClassIndex::DATABASE, database);
+}
+
+CALLBACK_FUNC_DECL(InjectedScriptHostSelectDatabase)
+{
+    INC_STATS(&quot;InjectedScriptHost.selectDatabase()&quot;);
+    if (args.Length() &lt; 1)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    Database* database = V8DOMWrapper::convertToNativeObject&lt;Database&gt;(V8ClassIndex::DATABASE, v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
+    if (database)
+        host-&gt;selectDatabase(database);
+
+    return v8::Undefined();
+}
+#endif
+
+#if ENABLE(DOM_STORAGE)
+CALLBACK_FUNC_DECL(InjectedScriptHostSelectDOMStorage)
+{
+    INC_STATS(&quot;InjectedScriptHost.selectDOMStorage()&quot;);
+    if (args.Length() &lt; 1)
+        return v8::Undefined();
+
+    InjectedScriptHost* host = V8DOMWrapper::convertToNativeObject&lt;InjectedScriptHost&gt;(V8ClassIndex::INJECTEDSCRIPTHOST, args.Holder());
+    Storage* storage = V8DOMWrapper::convertToNativeObject&lt;Storage&gt;(V8ClassIndex::STORAGE, v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
+    if (storage)
+        host-&gt;selectDOMStorage(storage);
+
+    return v8::Undefined();
+}
+#endif
+
+} // namespace WebCore
</ins><span class="cx">Property changes on: trunk/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCorebindingsv8customV8InspectorBackendCustomcpp"></a>
<div class="delfile"><h4>Deleted: trunk/WebCore/bindings/v8/custom/V8InspectorBackendCustom.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/custom/V8InspectorBackendCustom.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/bindings/v8/custom/V8InspectorBackendCustom.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -1,306 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007-2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;InspectorBackend.h&quot;
-
-#include &quot;Database.h&quot;
-#include &quot;DOMWindow.h&quot;
-#include &quot;Frame.h&quot;
-#include &quot;FrameLoader.h&quot;
-#include &quot;ExceptionCode.h&quot;
-#include &quot;InspectorController.h&quot;
-#include &quot;InspectorResource.h&quot;
-#include &quot;NotImplemented.h&quot;
-#include &quot;Node.h&quot;
-#include &quot;Range.h&quot;
-#include &quot;Page.h&quot;
-#include &quot;TextIterator.h&quot;
-#include &quot;VisiblePosition.h&quot;
-
-#include &quot;V8Binding.h&quot;
-#include &quot;V8CustomBinding.h&quot;
-#include &quot;V8Proxy.h&quot;
-
-namespace WebCore {
-
-CALLBACK_FUNC_DECL(InspectorBackendHighlightDOMNode)
-{
-    INC_STATS(&quot;InspectorBackend.highlightDOMNode()&quot;);
-
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    inspectorBackend-&gt;highlight(args[0]-&gt;ToInt32()-&gt;Value());
-    return v8::Undefined();
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendSearch)
-{
-    INC_STATS(&quot;InspectorBackend.search()&quot;);
-
-    if (args.Length() &lt; 2)
-        return v8::Undefined();
-
-    Node* node = V8DOMWrapper::convertDOMWrapperToNode&lt;Node&gt;(v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
-    if (!node)
-        return v8::Undefined();
-
-    String target = toWebCoreStringWithNullCheck(args[1]);
-    if (target.isEmpty())
-        return v8::Undefined();
-
-    v8::Local&lt;v8::Array&gt; result = v8::Array::New();
-    RefPtr&lt;Range&gt; searchRange(rangeOfContents(node));
-
-    ExceptionCode ec = 0;
-    int index = 0;
-    do {
-        RefPtr&lt;Range&gt; resultRange(findPlainText(searchRange.get(), target, true, false));
-        if (resultRange-&gt;collapsed(ec))
-            break;
-
-        // A non-collapsed result range can in some funky whitespace cases still not
-        // advance the range's start position (4509328). Break to avoid infinite loop.
-        VisiblePosition newStart = endVisiblePosition(resultRange.get(), DOWNSTREAM);
-        if (newStart == startVisiblePosition(searchRange.get(), DOWNSTREAM))
-            break;
-
-        result-&gt;Set(v8::Number::New(index++), V8DOMWrapper::convertToV8Object(V8ClassIndex::RANGE, resultRange.release()));
-
-        setStart(searchRange.get(), newStart);
-    } while (true);
-
-    return result;
-}
-
-#if ENABLE(DATABASE)
-CALLBACK_FUNC_DECL(InspectorBackendDatabaseForId)
-{
-    INC_STATS(&quot;InspectorBackend.databaseForId()&quot;);
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    Database* database = inspectorBackend-&gt;databaseForId(args[0]-&gt;ToInt32()-&gt;Value());
-    if (!database)
-        return v8::Undefined();
-    return V8DOMWrapper::convertToV8Object&lt;Database&gt;(V8ClassIndex::DATABASE, database);
-}
-#endif
-
-CALLBACK_FUNC_DECL(InspectorBackendInspectedWindow)
-{
-    INC_STATS(&quot;InspectorBackend.inspectedWindow()&quot;);
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    InspectorController* ic = inspectorBackend-&gt;inspectorController();
-    if (!ic)
-        return v8::Undefined();
-    return V8DOMWrapper::convertToV8Object&lt;DOMWindow&gt;(V8ClassIndex::DOMWINDOW, ic-&gt;inspectedPage()-&gt;mainFrame()-&gt;domWindow());
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendSetting)
-{
-    INC_STATS(&quot;InspectorBackend.setting()&quot;);
-
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    String key = toWebCoreStringWithNullCheck(args[0]);
-    if (key.isEmpty())
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    InspectorController* ic = inspectorBackend-&gt;inspectorController();
-    if (!ic)
-        return v8::Undefined();
-    const InspectorController::Setting&amp; setting = ic-&gt;setting(key);
-
-    switch (setting.type()) {
-        default:
-        case InspectorController::Setting::NoType:
-            return v8::Undefined();
-        case InspectorController::Setting::StringType:
-            return v8String(setting.string());
-        case InspectorController::Setting::DoubleType:
-            return v8::Number::New(setting.doubleValue());
-        case InspectorController::Setting::IntegerType:
-            return v8::Number::New(setting.integerValue());
-        case InspectorController::Setting::BooleanType:
-            return v8Boolean(setting.booleanValue());
-        case InspectorController::Setting::StringVectorType: {
-            const Vector&lt;String&gt;&amp; strings = setting.stringVector();
-            v8::Local&lt;v8::Array&gt; stringsArray = v8::Array::New(strings.size());
-            const unsigned length = strings.size();
-            for (unsigned i = 0; i &lt; length; ++i)
-                stringsArray-&gt;Set(v8::Number::New(i), v8String(strings[i]));
-            return stringsArray;
-        }
-    }
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendSetSetting)
-{
-    INC_STATS(&quot;InspectorBackend.setSetting()&quot;);
-    if (args.Length() &lt; 2)
-        return v8::Undefined();
-
-    String key = toWebCoreStringWithNullCheck(args[0]);
-    if (key.isEmpty())
-        return v8::Undefined();
-
-    InspectorController::Setting setting;
-
-    v8::Local&lt;v8::Value&gt; value = args[1];
-    if (value-&gt;IsUndefined() || value-&gt;IsNull()) {
-        // Do nothing. The setting is already NoType.
-        ASSERT(setting.type() == InspectorController::Setting::NoType);
-    } else if (value-&gt;IsString())
-        setting.set(toWebCoreStringWithNullCheck(value));
-    else if (value-&gt;IsNumber())
-        setting.set(value-&gt;NumberValue());
-    else if (value-&gt;IsBoolean())
-        setting.set(value-&gt;BooleanValue());
-    else if (value-&gt;IsArray()) {
-        v8::Local&lt;v8::Array&gt; v8Array = v8::Local&lt;v8::Array&gt;::Cast(value);
-        Vector&lt;String&gt; strings;
-        for (unsigned i = 0; i &lt; v8Array-&gt;Length(); ++i) {
-            String item = toWebCoreString(v8Array-&gt;Get(v8::Integer::New(i)));
-            if (item.isEmpty())
-                return v8::Undefined();
-            strings.append(item);
-        }
-        setting.set(strings);
-    } else
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    InspectorController* ic = inspectorBackend-&gt;inspectorController();
-    if (ic)
-        inspectorBackend-&gt;inspectorController()-&gt;setSetting(key, setting);
-
-    return v8::Undefined();
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendWrapCallback)
-{
-    INC_STATS(&quot;InspectorBackend.wrapCallback()&quot;);
-    return args[0];
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendNodeForId)
-{
-    INC_STATS(&quot;InspectorBackend.nodeForId()&quot;);
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    
-    Node* node = inspectorBackend-&gt;nodeForId(args[0]-&gt;ToInt32()-&gt;Value());
-    if (!node)
-        return v8::Undefined();
-
-    InspectorController* ic = inspectorBackend-&gt;inspectorController();
-    if (!ic)
-        return v8::Undefined();
-
-    return V8DOMWrapper::convertToV8Object(V8ClassIndex::NODE, node);
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendWrapObject)
-{
-    INC_STATS(&quot;InspectorBackend.wrapObject()&quot;);
-    if (args.Length() &lt; 2)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    return inspectorBackend-&gt;wrapObject(ScriptValue(args[0]), toWebCoreStringWithNullCheck(args[1])).v8Value();
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendUnwrapObject)
-{
-    INC_STATS(&quot;InspectorBackend.unwrapObject()&quot;);
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    return inspectorBackend-&gt;unwrapObject(toWebCoreStringWithNullCheck(args[0])).v8Value();
-}
-
-CALLBACK_FUNC_DECL(InspectorBackendPushNodePathToFrontend)
-{
-    INC_STATS(&quot;InspectorBackend.pushNodePathToFrontend()&quot;);
-    if (args.Length() &lt; 2)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    Node* node = V8DOMWrapper::convertDOMWrapperToNode&lt;Node&gt;(v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
-    bool selectInUI = args[1]-&gt;ToBoolean()-&gt;Value();
-    if (node)
-        return v8::Number::New(inspectorBackend-&gt;pushNodePathToFrontend(node, selectInUI));
-
-    return v8::Undefined();
-}
-
-#if ENABLE(DATABASE)
-CALLBACK_FUNC_DECL(InspectorBackendSelectDatabase)
-{
-    INC_STATS(&quot;InspectorBackend.selectDatabase()&quot;);
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    Database* database = V8DOMWrapper::convertToNativeObject&lt;Database&gt;(V8ClassIndex::DATABASE, v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
-    if (database)
-        inspectorBackend-&gt;selectDatabase(database);
-
-    return v8::Undefined();
-}
-#endif
-
-#if ENABLE(DOM_STORAGE)
-CALLBACK_FUNC_DECL(InspectorBackendSelectDOMStorage)
-{
-    INC_STATS(&quot;InspectorBackend.selectDOMStorage()&quot;);
-    if (args.Length() &lt; 1)
-        return v8::Undefined();
-
-    InspectorBackend* inspectorBackend = V8DOMWrapper::convertToNativeObject&lt;InspectorBackend&gt;(V8ClassIndex::INSPECTORBACKEND, args.Holder());
-    Storage* storage = V8DOMWrapper::convertToNativeObject&lt;Storage&gt;(V8ClassIndex::STORAGE, v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
-    if (storage)
-        inspectorBackend-&gt;selectDOMStorage(storage);
-
-    return v8::Undefined();
-}
-#endif
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkWebCorebindingsv8customV8InspectorFrontendHostCustomcpp"></a>
<div class="addfile"><h4>Added: trunk/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp                                (rev 0)
+++ trunk/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,170 @@
</span><ins>+/*
+ * Copyright (C) 2007-2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;InspectorFrontendHost.h&quot;
+
+#include &quot;ExceptionCode.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;Node.h&quot;
+#include &quot;Range.h&quot;
+#include &quot;Page.h&quot;
+#include &quot;TextIterator.h&quot;
+#include &quot;VisiblePosition.h&quot;
+
+#include &quot;V8Binding.h&quot;
+#include &quot;V8CustomBinding.h&quot;
+#include &quot;V8Proxy.h&quot;
+
+namespace WebCore {
+
+CALLBACK_FUNC_DECL(InspectorFrontendHostSearch)
+{
+    INC_STATS(&quot;InspectorFrontendHost.search()&quot;);
+
+    if (args.Length() &lt; 2)
+        return v8::Undefined();
+
+    Node* node = V8DOMWrapper::convertDOMWrapperToNode&lt;Node&gt;(v8::Handle&lt;v8::Object&gt;::Cast(args[0]));
+    if (!node)
+        return v8::Undefined();
+
+    String target = toWebCoreStringWithNullCheck(args[1]);
+    if (target.isEmpty())
+        return v8::Undefined();
+
+    v8::Local&lt;v8::Array&gt; result = v8::Array::New();
+    RefPtr&lt;Range&gt; searchRange(rangeOfContents(node));
+
+    ExceptionCode ec = 0;
+    int index = 0;
+    do {
+        RefPtr&lt;Range&gt; resultRange(findPlainText(searchRange.get(), target, true, false));
+        if (resultRange-&gt;collapsed(ec))
+            break;
+
+        // A non-collapsed result range can in some funky whitespace cases still not
+        // advance the range's start position (4509328). Break to avoid infinite loop.
+        VisiblePosition newStart = endVisiblePosition(resultRange.get(), DOWNSTREAM);
+        if (newStart == startVisiblePosition(searchRange.get(), DOWNSTREAM))
+            break;
+
+        result-&gt;Set(v8::Number::New(index++), V8DOMWrapper::convertToV8Object(V8ClassIndex::RANGE, resultRange.release()));
+
+        setStart(searchRange.get(), newStart);
+    } while (true);
+
+    return result;
+}
+
+CALLBACK_FUNC_DECL(InspectorFrontendHostSetting)
+{
+    INC_STATS(&quot;InspectorFrontendHost.setting()&quot;);
+
+    if (args.Length() &lt; 1)
+        return v8::Undefined();
+
+    String key = toWebCoreStringWithNullCheck(args[0]);
+    if (key.isEmpty())
+        return v8::Undefined();
+
+    InspectorFrontendHost* inspectorHost = V8DOMWrapper::convertToNativeObject&lt;InspectorFrontendHost&gt;(V8ClassIndex::INSPECTORFRONTENDHOST, args.Holder());
+    InspectorController* ic = inspectorHost-&gt;inspectorController();
+    if (!ic)
+        return v8::Undefined();
+    const InspectorController::Setting&amp; setting = ic-&gt;setting(key);
+
+    switch (setting.type()) {
+        default:
+        case InspectorController::Setting::NoType:
+            return v8::Undefined();
+        case InspectorController::Setting::StringType:
+            return v8String(setting.string());
+        case InspectorController::Setting::DoubleType:
+            return v8::Number::New(setting.doubleValue());
+        case InspectorController::Setting::IntegerType:
+            return v8::Number::New(setting.integerValue());
+        case InspectorController::Setting::BooleanType:
+            return v8Boolean(setting.booleanValue());
+        case InspectorController::Setting::StringVectorType: {
+            const Vector&lt;String&gt;&amp; strings = setting.stringVector();
+            v8::Local&lt;v8::Array&gt; stringsArray = v8::Array::New(strings.size());
+            const unsigned length = strings.size();
+            for (unsigned i = 0; i &lt; length; ++i)
+                stringsArray-&gt;Set(v8::Number::New(i), v8String(strings[i]));
+            return stringsArray;
+        }
+    }
+}
+
+CALLBACK_FUNC_DECL(InspectorFrontendHostSetSetting)
+{
+    INC_STATS(&quot;InspectorFrontendHost.setSetting()&quot;);
+    if (args.Length() &lt; 2)
+        return v8::Undefined();
+
+    String key = toWebCoreStringWithNullCheck(args[0]);
+    if (key.isEmpty())
+        return v8::Undefined();
+
+    InspectorController::Setting setting;
+
+    v8::Local&lt;v8::Value&gt; value = args[1];
+    if (value-&gt;IsUndefined() || value-&gt;IsNull()) {
+        // Do nothing. The setting is already NoType.
+        ASSERT(setting.type() == InspectorController::Setting::NoType);
+    } else if (value-&gt;IsString())
+        setting.set(toWebCoreStringWithNullCheck(value));
+    else if (value-&gt;IsNumber())
+        setting.set(value-&gt;NumberValue());
+    else if (value-&gt;IsBoolean())
+        setting.set(value-&gt;BooleanValue());
+    else if (value-&gt;IsArray()) {
+        v8::Local&lt;v8::Array&gt; v8Array = v8::Local&lt;v8::Array&gt;::Cast(value);
+        Vector&lt;String&gt; strings;
+        for (unsigned i = 0; i &lt; v8Array-&gt;Length(); ++i) {
+            String item = toWebCoreString(v8Array-&gt;Get(v8::Integer::New(i)));
+            if (item.isEmpty())
+                return v8::Undefined();
+            strings.append(item);
+        }
+        setting.set(strings);
+    } else
+        return v8::Undefined();
+
+    InspectorFrontendHost* inspectorHost = V8DOMWrapper::convertToNativeObject&lt;InspectorFrontendHost&gt;(V8ClassIndex::INSPECTORFRONTENDHOST, args.Holder());
+    InspectorController* ic = inspectorHost-&gt;inspectorController();
+    if (ic)
+        inspectorHost-&gt;inspectorController()-&gt;setSetting(key, setting);
+
+    return v8::Undefined();
+}
+
+} // namespace WebCore
</ins><span class="cx">Property changes on: trunk/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCoreinspectorInjectedScriptHostcpp"></a>
<div class="addfile"><h4>Added: trunk/WebCore/inspector/InjectedScriptHost.cpp (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InjectedScriptHost.cpp                                (rev 0)
+++ trunk/WebCore/inspector/InjectedScriptHost.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,178 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;InjectedScriptHost.h&quot;
+
+#if ENABLE(INSPECTOR)
+
+
+#include &quot;Element.h&quot;
+#include &quot;Frame.h&quot;
+#include &quot;FrameLoader.h&quot;
+#include &quot;HTMLFrameOwnerElement.h&quot;
+#include &quot;InspectorClient.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;InspectorDOMAgent.h&quot;
+#include &quot;InspectorFrontend.h&quot;
+#include &quot;InspectorResource.h&quot;
+#include &quot;Pasteboard.h&quot;
+#include &quot;ScriptArray.h&quot;
+#include &quot;ScriptFunctionCall.h&quot;
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+#include &quot;JavaScriptCallFrame.h&quot;
+#include &quot;JavaScriptDebugServer.h&quot;
+using namespace JSC;
+#endif
+
+#if ENABLE(DATABASE)
+#include &quot;Database.h&quot;
+#endif
+
+#if ENABLE(DOM_STORAGE)
+#include &quot;Storage.h&quot;
+#endif
+
+#include &quot;markup.h&quot;
+
+#include &lt;wtf/RefPtr.h&gt;
+#include &lt;wtf/StdLibExtras.h&gt;
+
+using namespace std;
+
+namespace WebCore {
+
+InjectedScriptHost::InjectedScriptHost(InspectorController* inspectorController)
+    : m_inspectorController(inspectorController)
+{
+}
+
+InjectedScriptHost::~InjectedScriptHost()
+{
+}
+
+void InjectedScriptHost::copyText(const String&amp; text)
+{
+    Pasteboard::generalPasteboard()-&gt;writePlainText(text);
+}
+
+Node* InjectedScriptHost::nodeForId(long nodeId)
+{
+    if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
+        return domAgent-&gt;nodeForId(nodeId);
+    return 0;
+}
+
+ScriptValue InjectedScriptHost::wrapObject(const ScriptValue&amp; object, const String&amp; objectGroup)
+{
+    if (m_inspectorController)
+        return m_inspectorController-&gt;wrapObject(object, objectGroup);
+    return ScriptValue();
+}
+
+ScriptValue InjectedScriptHost::unwrapObject(const String&amp; objectId)
+{
+    if (m_inspectorController)
+        return m_inspectorController-&gt;unwrapObject(objectId);
+    return ScriptValue();
+}
+
+long InjectedScriptHost::pushNodePathToFrontend(Node* node, bool selectInUI)
+{
+    InspectorFrontend* frontend = inspectorFrontend();
+    InspectorDOMAgent* domAgent = inspectorDOMAgent();
+    if (!domAgent || !frontend)
+        return 0;
+    long id = domAgent-&gt;pushNodePathToFrontend(node);
+    if (selectInUI)
+        frontend-&gt;updateFocusedNode(id);
+    return id;
+}
+
+void InjectedScriptHost::addNodesToSearchResult(const String&amp; nodeIds)
+{
+    if (InspectorFrontend* frontend = inspectorFrontend())
+        frontend-&gt;addNodesToSearchResult(nodeIds);
+}
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+JavaScriptCallFrame* InjectedScriptHost::currentCallFrame() const
+{
+    return JavaScriptDebugServer::shared().currentCallFrame();
+}
+#endif
+
+#if ENABLE(DATABASE)
+Database* InjectedScriptHost::databaseForId(long databaseId)
+{
+    if (m_inspectorController)
+        return m_inspectorController-&gt;databaseForId(databaseId);
+    return 0;
+}
+
+void InjectedScriptHost::selectDatabase(Database* database)
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;selectDatabase(database);
+}
+#endif
+
+#if ENABLE(DOM_STORAGE)
+void InjectedScriptHost::selectDOMStorage(Storage* storage)
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;selectDOMStorage(storage);
+}
+#endif
+
+void InjectedScriptHost::reportDidDispatchOnInjectedScript(long callId, const String&amp; result, bool isException)
+{
+    if (InspectorFrontend* frontend = inspectorFrontend())
+        frontend-&gt;didDispatchOnInjectedScript(callId, result, isException);
+}
+
+InspectorDOMAgent* InjectedScriptHost::inspectorDOMAgent()
+{
+    if (!m_inspectorController)
+        return 0;
+    return m_inspectorController-&gt;domAgent();
+}
+
+InspectorFrontend* InjectedScriptHost::inspectorFrontend()
+{
+    if (!m_inspectorController)
+        return 0;
+    return m_inspectorController-&gt;m_frontend.get();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
</ins><span class="cx">Property changes on: trunk/WebCore/inspector/InjectedScriptHost.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCoreinspectorInjectedScriptHosth"></a>
<div class="addfile"><h4>Added: trunk/WebCore/inspector/InjectedScriptHost.h (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InjectedScriptHost.h                                (rev 0)
+++ trunk/WebCore/inspector/InjectedScriptHost.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,89 @@
</span><ins>+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef InjectedScriptHost_h
+#define InjectedScriptHost_h
+
+#include &quot;Console.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;PlatformString.h&quot;
+
+#include &lt;wtf/RefCounted.h&gt;
+
+namespace WebCore {
+
+class Database;
+class InspectorDOMAgent;
+class InspectorFrontend;
+class JavaScriptCallFrame;
+class Node;
+class Storage;
+
+class InjectedScriptHost : public RefCounted&lt;InjectedScriptHost&gt;
+{
+public:
+    static PassRefPtr&lt;InjectedScriptHost&gt; create(InspectorController* inspectorController)
+    {
+        return adoptRef(new InjectedScriptHost(inspectorController));
+    }
+
+    ~InjectedScriptHost();
+
+    InspectorController* inspectorController() { return m_inspectorController; }
+    void disconnectController() { m_inspectorController = 0; }
+
+    void copyText(const String&amp; text);
+    Node* nodeForId(long nodeId);
+    ScriptValue wrapObject(const ScriptValue&amp; object, const String&amp; objectGroup);
+    ScriptValue unwrapObject(const String&amp; objectId);
+    long pushNodePathToFrontend(Node* node, bool selectInUI);
+    void addNodesToSearchResult(const String&amp; nodeIds);
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+    JavaScriptCallFrame* currentCallFrame() const;
+#endif
+#if ENABLE(DATABASE)
+    Database* databaseForId(long databaseId);
+    void selectDatabase(Database* database);
+#endif
+#if ENABLE(DOM_STORAGE)
+    void selectDOMStorage(Storage* storage);
+#endif
+    void reportDidDispatchOnInjectedScript(long callId, const String&amp; result, bool isException);
+
+private:
+    InjectedScriptHost(InspectorController* inspectorController);
+    InspectorDOMAgent* inspectorDOMAgent();
+    InspectorFrontend* inspectorFrontend();
+
+    InspectorController* m_inspectorController;
+};
+
+} // namespace WebCore
+
+#endif // !defined(InjectedScriptHost_h)
</ins><span class="cx">Property changes on: trunk/WebCore/inspector/InjectedScriptHost.h
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCoreinspectorInjectedScriptHostidlfromrev51527trunkWebCoreinspectorfrontendTestControllerjs"></a>
<div class="copfile"><h4>Copied: trunk/WebCore/inspector/InjectedScriptHost.idl (from rev 51527, trunk/WebCore/inspector/front-end/TestController.js) (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InjectedScriptHost.idl                                (rev 0)
+++ trunk/WebCore/inspector/InjectedScriptHost.idl        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module core {
+    interface [
+        GenerateConstructor
+    ] InjectedScriptHost {
+        [Custom] DOMWindow inspectedWindow();
+        [Custom] DOMObject wrapCallback(in DOMObject callback);
+        void copyText(in DOMString text);
+        [Custom] DOMObject nodeForId(in long nodeId);
+        [Custom] long wrapObject(in DOMObject object, in DOMString objectGroup);
+        [Custom] DOMObject unwrapObject(in long objectId);
+        [Custom] int pushNodePathToFrontend(in DOMObject node, in boolean selectInUI);
+        void addNodesToSearchResult(in DOMString nodeIds);
+
+#if defined(ENABLE_JAVASCRIPT_DEBUGGER) &amp;&amp; ENABLE_JAVASCRIPT_DEBUGGER
+        [Custom] DOMObject currentCallFrame();
+#endif
+
+#if defined(ENABLE_DATABASE) &amp;&amp; ENABLE_DATABASE
+        [Custom] DOMObject databaseForId(in long databaseId);
+        [Custom] void selectDatabase(in DOMObject database);
+#endif
+
+#if defined(ENABLE_DOM_STORAGE) &amp;&amp; ENABLE_DOM_STORAGE
+        [Custom] void selectDOMStorage(in DOMObject storage);
+#endif
+
+        void reportDidDispatchOnInjectedScript(in long callId, in DOMString result, in boolean isException);
+    };
+}
</ins></span></pre></div>
<a id="trunkWebCoreinspectorInspectorBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/InspectorBackend.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorBackend.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/InspectorBackend.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -68,9 +68,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-InspectorBackend::InspectorBackend(InspectorController* inspectorController, InspectorClient* client)
</del><ins>+InspectorBackend::InspectorBackend(InspectorController* inspectorController)
</ins><span class="cx">     : m_inspectorController(inspectorController)
</span><del>-    , m_client(client)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -78,119 +77,24 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::hideDOMNodeHighlight()
</del><ins>+void InspectorBackend::clearMessages(bool clearUI)
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;hideHighlight();
</del><ins>+        m_inspectorController-&gt;clearConsoleMessages(clearUI);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String InspectorBackend::localizedStringsURL()
</del><ins>+void InspectorBackend::storeLastActivePanel(const String&amp; panelName)
</ins><span class="cx"> {
</span><del>-    return m_client-&gt;localizedStringsURL();
-}
-
-String InspectorBackend::hiddenPanels()
-{
-    return m_client-&gt;hiddenPanels();
-}
-
-void InspectorBackend::windowUnloading()
-{
</del><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;close();
</del><ins>+        m_inspectorController-&gt;storeLastActivePanel(panelName);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorBackend::isWindowVisible()
-{
-    if (m_inspectorController)
-        return m_inspectorController-&gt;windowVisible();
-    return false;
-}
-
-void InspectorBackend::addResourceSourceToFrame(long identifier, Node* frame)
-{
-    if (!m_inspectorController)
-        return;
-    RefPtr&lt;InspectorResource&gt; resource = m_inspectorController-&gt;resources().get(identifier);
-    if (resource) {
-        String sourceString = resource-&gt;sourceString();
-        if (!sourceString.isEmpty())
-            addSourceToFrame(resource-&gt;mimeType(), sourceString, frame);
-    }
-}
-
-bool InspectorBackend::addSourceToFrame(const String&amp; mimeType, const String&amp; source, Node* frameNode)
-{
-    ASSERT_ARG(frameNode, frameNode);
-
-    if (!frameNode)
-        return false;
-
-    if (!frameNode-&gt;attached()) {
-        ASSERT_NOT_REACHED();
-        return false;
-    }
-
-    ASSERT(frameNode-&gt;isElementNode());
-    if (!frameNode-&gt;isElementNode())
-        return false;
-
-    Element* element = static_cast&lt;Element*&gt;(frameNode);
-    ASSERT(element-&gt;isFrameOwnerElement());
-    if (!element-&gt;isFrameOwnerElement())
-        return false;
-
-    HTMLFrameOwnerElement* frameOwner = static_cast&lt;HTMLFrameOwnerElement*&gt;(element);
-    ASSERT(frameOwner-&gt;contentFrame());
-    if (!frameOwner-&gt;contentFrame())
-        return false;
-
-    FrameLoader* loader = frameOwner-&gt;contentFrame()-&gt;loader();
-
-    loader-&gt;setResponseMIMEType(mimeType);
-    loader-&gt;begin();
-    loader-&gt;write(source);
-    loader-&gt;end();
-
-    return true;
-}
-
-void InspectorBackend::clearMessages(bool clearUI)
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;clearConsoleMessages(clearUI);
-}
-
</del><span class="cx"> void InspectorBackend::toggleNodeSearch()
</span><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><span class="cx">         m_inspectorController-&gt;toggleSearchForNodeInPage();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::attach()
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;attachWindow();
-}
-
-void InspectorBackend::detach()
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;detachWindow();
-}
-
-void InspectorBackend::setAttachedWindowHeight(unsigned height)
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;setAttachedWindowHeight(height);
-}
-
-void InspectorBackend::storeLastActivePanel(const String&amp; panelName)
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;storeLastActivePanel(panelName);
-}
-
</del><span class="cx"> bool InspectorBackend::searchingForNode()
</span><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><span class="lines">@@ -198,10 +102,11 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::loaded()
</del><ins>+bool InspectorBackend::resourceTrackingEnabled() const
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;scriptObjectReady();
</del><ins>+        return m_inspectorController-&gt;resourceTrackingEnabled();
+    return false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorBackend::enableResourceTracking(bool always)
</span><span class="lines">@@ -216,58 +121,6 @@
</span><span class="cx">         m_inspectorController-&gt;disableResourceTracking(always);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorBackend::resourceTrackingEnabled() const
-{
-    if (m_inspectorController)
-        return m_inspectorController-&gt;resourceTrackingEnabled();
-    return false;
-}
-
-void InspectorBackend::moveWindowBy(float x, float y) const
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;moveWindowBy(x, y);
-}
-
-void InspectorBackend::closeWindow()
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;closeWindow();
-}
-
-const String&amp; InspectorBackend::platform() const
-{
-#if PLATFORM(MAC)
-#ifdef BUILDING_ON_TIGER
-    DEFINE_STATIC_LOCAL(const String, platform, (&quot;mac-tiger&quot;));
-#else
-    DEFINE_STATIC_LOCAL(const String, platform, (&quot;mac-leopard&quot;));
-#endif
-#elif PLATFORM(WIN_OS)
-    DEFINE_STATIC_LOCAL(const String, platform, (&quot;windows&quot;));
-#else
-    DEFINE_STATIC_LOCAL(const String, platform, (&quot;unknown&quot;));
-#endif
-
-    return platform;
-}
-
-
-const String&amp; InspectorBackend::port() const
-{
-#if PLATFORM(QT)
-    DEFINE_STATIC_LOCAL(const String, port, (&quot;qt&quot;));
-#elif PLATFORM(GTK)
-    DEFINE_STATIC_LOCAL(const String, port, (&quot;gtk&quot;));
-#elif PLATFORM(WX)
-    DEFINE_STATIC_LOCAL(const String, port, (&quot;wx&quot;));
-#else
-    DEFINE_STATIC_LOCAL(const String, port, (&quot;unknown&quot;));
-#endif
-
-    return port;
-}
-
</del><span class="cx"> void InspectorBackend::startTimelineProfiler()
</span><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><span class="lines">@@ -281,127 +134,126 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(JAVASCRIPT_DEBUGGER)
</span><del>-void InspectorBackend::startProfiling()
</del><ins>+bool InspectorBackend::debuggerEnabled() const
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;startUserInitiatedProfiling();
</del><ins>+        return m_inspectorController-&gt;debuggerEnabled();
+    return false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::stopProfiling()
</del><ins>+void InspectorBackend::enableDebugger(bool always)
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;stopUserInitiatedProfiling();
</del><ins>+        m_inspectorController-&gt;enableDebuggerFromFrontend(always);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::enableProfiler(bool always)
</del><ins>+void InspectorBackend::disableDebugger(bool always)
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;enableProfiler(always);
</del><ins>+        m_inspectorController-&gt;disableDebugger(always);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::disableProfiler(bool always)
</del><ins>+void InspectorBackend::addBreakpoint(const String&amp; sourceID, unsigned lineNumber, const String&amp; condition)
</ins><span class="cx"> {
</span><del>-    if (m_inspectorController)
-        m_inspectorController-&gt;disableProfiler(always);
</del><ins>+    intptr_t sourceIDValue = sourceID.toIntPtr();
+    JavaScriptDebugServer::shared().addBreakpoint(sourceIDValue, lineNumber, condition);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorBackend::profilerEnabled()
</del><ins>+void InspectorBackend::updateBreakpoint(const String&amp; sourceID, unsigned lineNumber, const String&amp; condition)
</ins><span class="cx"> {
</span><del>-    if (m_inspectorController)
-        return m_inspectorController-&gt;profilerEnabled();
-    return false;
</del><ins>+    intptr_t sourceIDValue = sourceID.toIntPtr();
+    JavaScriptDebugServer::shared().updateBreakpoint(sourceIDValue, lineNumber, condition);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::getProfileHeaders(long callId)
</del><ins>+void InspectorBackend::removeBreakpoint(const String&amp; sourceID, unsigned lineNumber)
</ins><span class="cx"> {
</span><del>-    if (m_inspectorController)
-        m_inspectorController-&gt;getProfileHeaders(callId);
</del><ins>+    intptr_t sourceIDValue = sourceID.toIntPtr();
+    JavaScriptDebugServer::shared().removeBreakpoint(sourceIDValue, lineNumber);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::getProfile(long callId, unsigned uid)
</del><ins>+void InspectorBackend::pauseInDebugger()
</ins><span class="cx"> {
</span><del>-    if (m_inspectorController)
-        m_inspectorController-&gt;getProfile(callId, uid);
</del><ins>+    JavaScriptDebugServer::shared().pauseProgram();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::enableDebugger(bool always)
</del><ins>+void InspectorBackend::resumeDebugger()
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;enableDebuggerFromFrontend(always);
</del><ins>+        m_inspectorController-&gt;resumeDebugger();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::disableDebugger(bool always)
</del><ins>+void InspectorBackend::stepOverStatementInDebugger()
</ins><span class="cx"> {
</span><del>-    if (m_inspectorController)
-        m_inspectorController-&gt;disableDebugger(always);
</del><ins>+    JavaScriptDebugServer::shared().stepOverStatement();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorBackend::debuggerEnabled() const
</del><ins>+void InspectorBackend::stepIntoStatementInDebugger()
</ins><span class="cx"> {
</span><del>-    if (m_inspectorController)
-        return m_inspectorController-&gt;debuggerEnabled();
-    return false;
</del><ins>+    JavaScriptDebugServer::shared().stepIntoStatement();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-JavaScriptCallFrame* InspectorBackend::currentCallFrame() const
</del><ins>+void InspectorBackend::stepOutOfFunctionInDebugger()
</ins><span class="cx"> {
</span><del>-    return JavaScriptDebugServer::shared().currentCallFrame();
</del><ins>+    JavaScriptDebugServer::shared().stepOutOfFunction();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::addBreakpoint(const String&amp; sourceID, unsigned lineNumber, const String&amp; condition)
</del><ins>+bool InspectorBackend::pauseOnExceptions()
</ins><span class="cx"> {
</span><del>-    intptr_t sourceIDValue = sourceID.toIntPtr();
-    JavaScriptDebugServer::shared().addBreakpoint(sourceIDValue, lineNumber, condition);
</del><ins>+    return JavaScriptDebugServer::shared().pauseOnExceptions();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::updateBreakpoint(const String&amp; sourceID, unsigned lineNumber, const String&amp; condition)
</del><ins>+void InspectorBackend::setPauseOnExceptions(bool pause)
</ins><span class="cx"> {
</span><del>-    intptr_t sourceIDValue = sourceID.toIntPtr();
-    JavaScriptDebugServer::shared().updateBreakpoint(sourceIDValue, lineNumber, condition);
</del><ins>+    JavaScriptDebugServer::shared().setPauseOnExceptions(pause);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::removeBreakpoint(const String&amp; sourceID, unsigned lineNumber)
</del><ins>+bool InspectorBackend::profilerEnabled()
</ins><span class="cx"> {
</span><del>-    intptr_t sourceIDValue = sourceID.toIntPtr();
-    JavaScriptDebugServer::shared().removeBreakpoint(sourceIDValue, lineNumber);
</del><ins>+    if (m_inspectorController)
+        return m_inspectorController-&gt;profilerEnabled();
+    return false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InspectorBackend::pauseOnExceptions()
</del><ins>+void InspectorBackend::enableProfiler(bool always)
</ins><span class="cx"> {
</span><del>-    return JavaScriptDebugServer::shared().pauseOnExceptions();
</del><ins>+    if (m_inspectorController)
+        m_inspectorController-&gt;enableProfiler(always);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::setPauseOnExceptions(bool pause)
</del><ins>+void InspectorBackend::disableProfiler(bool always)
</ins><span class="cx"> {
</span><del>-    JavaScriptDebugServer::shared().setPauseOnExceptions(pause);
</del><ins>+    if (m_inspectorController)
+        m_inspectorController-&gt;disableProfiler(always);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::pauseInDebugger()
</del><ins>+void InspectorBackend::startProfiling()
</ins><span class="cx"> {
</span><del>-    JavaScriptDebugServer::shared().pauseProgram();
</del><ins>+    if (m_inspectorController)
+        m_inspectorController-&gt;startUserInitiatedProfiling();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::resumeDebugger()
</del><ins>+void InspectorBackend::stopProfiling()
</ins><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><del>-        m_inspectorController-&gt;resumeDebugger();
</del><ins>+        m_inspectorController-&gt;stopUserInitiatedProfiling();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::stepOverStatementInDebugger()
</del><ins>+void InspectorBackend::getProfileHeaders(long callId)
</ins><span class="cx"> {
</span><del>-    JavaScriptDebugServer::shared().stepOverStatement();
</del><ins>+    if (m_inspectorController)
+        m_inspectorController-&gt;getProfileHeaders(callId);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::stepIntoStatementInDebugger()
</del><ins>+void InspectorBackend::getProfile(long callId, unsigned uid)
</ins><span class="cx"> {
</span><del>-    JavaScriptDebugServer::shared().stepIntoStatement();
</del><ins>+    if (m_inspectorController)
+        m_inspectorController-&gt;getProfile(callId, uid);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::stepOutOfFunctionInDebugger()
</del><ins>+JavaScriptCallFrame* InspectorBackend::currentCallFrame() const
</ins><span class="cx"> {
</span><del>-    JavaScriptDebugServer::shared().stepOutOfFunction();
</del><ins>+    return JavaScriptDebugServer::shared().currentCallFrame();
</ins><span class="cx"> }
</span><del>-
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void InspectorBackend::dispatchOnInjectedScript(long callId, const String&amp; methodName, const String&amp; arguments, bool async)
</span><span class="lines">@@ -493,6 +345,18 @@
</span><span class="cx">     frontend-&gt;didRemoveNode(callId, nodeId);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void InspectorBackend::highlightDOMNode(long nodeId)
+{
+    if (Node* node = nodeForId(nodeId))
+        m_inspectorController-&gt;highlight(node);
+}
+
+void InspectorBackend::hideDOMNodeHighlight()
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;hideHighlight();
+}
+
</ins><span class="cx"> void InspectorBackend::getCookies(long callId, const String&amp; domain)
</span><span class="cx"> {
</span><span class="cx">     if (!m_inspectorController)
</span><span class="lines">@@ -507,76 +371,19 @@
</span><span class="cx">     m_inspectorController-&gt;deleteCookie(cookieName, domain);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::copyText(const String&amp; text)
-{
-    Pasteboard::generalPasteboard()-&gt;writePlainText(text);
-}
-
-void InspectorBackend::highlight(long nodeId)
-{
-    if (Node* node = nodeForId(nodeId))
-        m_inspectorController-&gt;highlight(node);
-}
-
-Node* InspectorBackend::nodeForId(long nodeId)
-{
-    if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
-        return domAgent-&gt;nodeForId(nodeId);
-    return 0;
-}
-
-ScriptValue InspectorBackend::wrapObject(const ScriptValue&amp; object, const String&amp; objectGroup)
-{
-    if (m_inspectorController)
-        return m_inspectorController-&gt;wrapObject(object, objectGroup);
-    return ScriptValue();
-}
-
-ScriptValue InspectorBackend::unwrapObject(const String&amp; objectId)
-{
-    if (m_inspectorController)
-        return m_inspectorController-&gt;unwrapObject(objectId);
-    return ScriptValue();
-}
-
</del><span class="cx"> void InspectorBackend::releaseWrapperObjectGroup(const String&amp; objectGroup)
</span><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><span class="cx">         m_inspectorController-&gt;releaseWrapperObjectGroup(objectGroup);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-long InspectorBackend::pushNodePathToFrontend(Node* node, bool selectInUI)
</del><ins>+void InspectorBackend::didEvaluateForTestInFrontend(long callId, const String&amp; jsonResult)
</ins><span class="cx"> {
</span><del>-    InspectorFrontend* frontend = inspectorFrontend();
-    InspectorDOMAgent* domAgent = inspectorDOMAgent();
-    if (!domAgent || !frontend)
-        return 0;
-    long id = domAgent-&gt;pushNodePathToFrontend(node);
-    if (selectInUI)
-        frontend-&gt;updateFocusedNode(id);
-    return id;
-}
-
-void InspectorBackend::addNodesToSearchResult(const String&amp; nodeIds)
-{
-    if (InspectorFrontend* frontend = inspectorFrontend())
-        frontend-&gt;addNodesToSearchResult(nodeIds);
-}
-
-#if ENABLE(DATABASE)
-Database* InspectorBackend::databaseForId(long databaseId)
-{
</del><span class="cx">     if (m_inspectorController)
</span><del>-        return m_inspectorController-&gt;databaseForId(databaseId);
-    return 0;
</del><ins>+        m_inspectorController-&gt;didEvaluateForTestInFrontend(callId, jsonResult);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InspectorBackend::selectDatabase(Database* database)
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;selectDatabase(database);
-}
-
</del><ins>+#if ENABLE(DATABASE)
</ins><span class="cx"> void InspectorBackend::getDatabaseTableNames(long callId, long databaseId)
</span><span class="cx"> {
</span><span class="cx">     if (InspectorFrontend* frontend = inspectorFrontend()) {
</span><span class="lines">@@ -594,12 +401,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><del>-void InspectorBackend::selectDOMStorage(Storage* storage)
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;selectDOMStorage(storage);
-}
-
</del><span class="cx"> void InspectorBackend::getDOMStorageEntries(long callId, long storageId)
</span><span class="cx"> {
</span><span class="cx">     if (m_inspectorController)
</span><span class="lines">@@ -619,18 +420,6 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void InspectorBackend::didEvaluateForTestInFrontend(long callId, const String&amp; jsonResult)
-{
-    if (m_inspectorController)
-        m_inspectorController-&gt;didEvaluateForTestInFrontend(callId, jsonResult);
-}
-
-void InspectorBackend::reportDidDispatchOnInjectedScript(long callId, const String&amp; result, bool isException)
-{
-    if (InspectorFrontend* frontend = inspectorFrontend())
-        frontend-&gt;didDispatchOnInjectedScript(callId, result, isException);
-}
-
</del><span class="cx"> InspectorDOMAgent* InspectorBackend::inspectorDOMAgent()
</span><span class="cx"> {
</span><span class="cx">     if (!m_inspectorController)
</span><span class="lines">@@ -645,6 +434,13 @@
</span><span class="cx">     return m_inspectorController-&gt;m_frontend.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+Node* InspectorBackend::nodeForId(long nodeId)
+{
+    if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
+        return domAgent-&gt;nodeForId(nodeId);
+    return 0;
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span></span></pre></div>
<a id="trunkWebCoreinspectorInspectorBackendh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/InspectorBackend.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorBackend.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/InspectorBackend.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -39,8 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> class CachedResource;
</span><span class="cx"> class Database;
</span><del>-class InspectorClient;
</del><span class="cx"> class InspectorDOMAgent;
</span><ins>+class InspectorFrontend;
</ins><span class="cx"> class JavaScriptCallFrame;
</span><span class="cx"> class Node;
</span><span class="cx"> class Storage;
</span><span class="lines">@@ -48,87 +48,59 @@
</span><span class="cx"> class InspectorBackend : public RefCounted&lt;InspectorBackend&gt;
</span><span class="cx"> {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;InspectorBackend&gt; create(InspectorController* inspectorController, InspectorClient* client)
</del><ins>+    static PassRefPtr&lt;InspectorBackend&gt; create(InspectorController* inspectorController)
</ins><span class="cx">     {
</span><del>-        return adoptRef(new InspectorBackend(inspectorController, client));
</del><ins>+        return adoptRef(new InspectorBackend(inspectorController));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ~InspectorBackend();
</span><span class="cx"> 
</span><span class="cx">     InspectorController* inspectorController() { return m_inspectorController; }
</span><del>-    
</del><span class="cx">     void disconnectController() { m_inspectorController = 0; }
</span><span class="cx"> 
</span><del>-    void hideDOMNodeHighlight();
-
-    String localizedStringsURL();
-    String hiddenPanels();
-
-    void windowUnloading();
-
-    bool isWindowVisible();
-
-    void addResourceSourceToFrame(long identifier, Node* frame);
-    bool addSourceToFrame(const String&amp; mimeType, const String&amp; source, Node* frame);
-
</del><span class="cx">     void clearMessages(bool clearUI);
</span><del>-
-    void toggleNodeSearch();
-
-    void attach();
-    void detach();
-
-    void setAttachedWindowHeight(unsigned height);
-
</del><span class="cx">     void storeLastActivePanel(const String&amp; panelName);
</span><span class="cx"> 
</span><ins>+    void toggleNodeSearch();
</ins><span class="cx">     bool searchingForNode();
</span><span class="cx"> 
</span><del>-    void loaded();
-
</del><span class="cx">     void enableResourceTracking(bool always);
</span><span class="cx">     void disableResourceTracking(bool always);
</span><span class="cx">     bool resourceTrackingEnabled() const;
</span><span class="cx"> 
</span><del>-    void moveWindowBy(float x, float y) const;
-    void closeWindow();
-
-    const String&amp; platform() const;
-    const String&amp; port() const;
-
</del><span class="cx">     void startTimelineProfiler();
</span><span class="cx">     void stopTimelineProfiler();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(JAVASCRIPT_DEBUGGER)
</span><del>-    void startProfiling();
-    void stopProfiling();
-
-    void enableProfiler(bool always);
-    void disableProfiler(bool always);
-    bool profilerEnabled();
-
-    void getProfileHeaders(long callId);
-    void getProfile(long callId, unsigned uid);
-
</del><ins>+    bool debuggerEnabled() const;
</ins><span class="cx">     void enableDebugger(bool always);
</span><span class="cx">     void disableDebugger(bool always);
</span><del>-    bool debuggerEnabled() const;
</del><span class="cx"> 
</span><del>-    JavaScriptCallFrame* currentCallFrame() const;
-
</del><span class="cx">     void addBreakpoint(const String&amp; sourceID, unsigned lineNumber, const String&amp; condition);
</span><span class="cx">     void updateBreakpoint(const String&amp; sourceID, unsigned lineNumber, const String&amp; condition);
</span><span class="cx">     void removeBreakpoint(const String&amp; sourceID, unsigned lineNumber);
</span><span class="cx"> 
</span><del>-    bool pauseOnExceptions();
-    void setPauseOnExceptions(bool pause);
-
</del><span class="cx">     void pauseInDebugger();
</span><span class="cx">     void resumeDebugger();
</span><span class="cx"> 
</span><ins>+    bool pauseOnExceptions();
+    void setPauseOnExceptions(bool pause);
+
</ins><span class="cx">     void stepOverStatementInDebugger();
</span><span class="cx">     void stepIntoStatementInDebugger();
</span><span class="cx">     void stepOutOfFunctionInDebugger();
</span><ins>+
+    bool profilerEnabled();
+    void enableProfiler(bool always);
+    void disableProfiler(bool always);
+
+    void startProfiling();
+    void stopProfiling();
+
+    void getProfileHeaders(long callId);
+    void getProfile(long callId, unsigned uid);
+
+    JavaScriptCallFrame* currentCallFrame() const;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void dispatchOnInjectedScript(long callId, const String&amp; methodName, const String&amp; arguments, bool async);
</span><span class="lines">@@ -139,41 +111,33 @@
</span><span class="cx">     void getEventListenersForNode(long callId, long nodeId);
</span><span class="cx">     void copyNode(long nodeId);
</span><span class="cx">     void removeNode(long callId, long nodeId);
</span><ins>+    void highlightDOMNode(long nodeId);
+    void hideDOMNodeHighlight();
</ins><span class="cx"> 
</span><span class="cx">     void getCookies(long callId, const String&amp; domain);
</span><span class="cx">     void deleteCookie(const String&amp; cookieName, const String&amp; domain);
</span><span class="cx"> 
</span><del>-    void copyText(const String&amp; text);
-
</del><span class="cx">     // Generic code called from custom implementations.
</span><del>-    void highlight(long nodeId);
-    Node* nodeForId(long nodeId);
-    ScriptValue wrapObject(const ScriptValue&amp; object, const String&amp; objectGroup);
-    ScriptValue unwrapObject(const String&amp; objectId);
</del><span class="cx">     void releaseWrapperObjectGroup(const String&amp; objectGroup);
</span><del>-    long pushNodePathToFrontend(Node* node, bool selectInUI);
-    void addNodesToSearchResult(const String&amp; nodeIds);
</del><ins>+    void didEvaluateForTestInFrontend(long callId, const String&amp; jsonResult);
+
</ins><span class="cx"> #if ENABLE(DATABASE)
</span><del>-    Database* databaseForId(long databaseId);
-    void selectDatabase(Database* database);
</del><span class="cx">     void getDatabaseTableNames(long callId, long databaseId);
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(DOM_STORAGE)
</span><del>-    void selectDOMStorage(Storage* storage);
</del><span class="cx">     void getDOMStorageEntries(long callId, long storageId);
</span><span class="cx">     void setDOMStorageItem(long callId, long storageId, const String&amp; key, const String&amp; value);
</span><span class="cx">     void removeDOMStorageItem(long callId, long storageId, const String&amp; key);
</span><span class="cx"> #endif
</span><del>-    void reportDidDispatchOnInjectedScript(long callId, const String&amp; result, bool isException);
-    void didEvaluateForTestInFrontend(long callId, const String&amp; jsonResult);
</del><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    InspectorBackend(InspectorController* inspectorController, InspectorClient* client);
</del><ins>+    InspectorBackend(InspectorController* inspectorController);
</ins><span class="cx">     InspectorDOMAgent* inspectorDOMAgent();
</span><span class="cx">     InspectorFrontend* inspectorFrontend();
</span><ins>+    Node* nodeForId(long nodeId);
</ins><span class="cx"> 
</span><span class="cx">     InspectorController* m_inspectorController;
</span><del>-    InspectorClient* m_client;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkWebCoreinspectorInspectorBackendidl"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/InspectorBackend.idl (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorBackend.idl        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/InspectorBackend.idl        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -34,44 +34,19 @@
</span><span class="cx">     interface [
</span><span class="cx">         GenerateConstructor
</span><span class="cx">     ] InspectorBackend {
</span><del>-        void hideDOMNodeHighlight();
-        [Custom] void highlightDOMNode(in long nodeId);
-        void loaded();
-        void windowUnloading();
-        void attach();
-        void detach();
-
-        void closeWindow();
</del><span class="cx">         void clearMessages(in boolean clearUI);
</span><del>-        void toggleNodeSearch();
</del><ins>+        void storeLastActivePanel(in DOMString panelName);
</ins><span class="cx"> 
</span><del>-        boolean isWindowVisible();
</del><ins>+        void toggleNodeSearch();
</ins><span class="cx">         boolean searchingForNode();
</span><span class="cx"> 
</span><del>-        void addResourceSourceToFrame(in long identifier, in Node frame);
-        boolean addSourceToFrame(in DOMString mimeType, in DOMString sourceValue, in Node frame);
-        [Custom] void search(in Node node, in DOMString query);
-#if defined(ENABLE_DATABASE) &amp;&amp; ENABLE_DATABASE
-        void getDatabaseTableNames(in long callId, in long databaseId);
-#endif
-
-        [Custom] DOMObject setting(in DOMString key);
-        [Custom] void setSetting(in DOMString key, in DOMObject  value);
-        [Custom] DOMWindow inspectedWindow();
-        DOMString localizedStringsURL();
-        DOMString hiddenPanels();
-        DOMString platform();
-        DOMString port();
-        void startTimelineProfiler();
-        void stopTimelineProfiler();
-        [ImplementationFunction=moveWindowBy] void moveByUnrestricted(in float x, in float y);
-        void setAttachedWindowHeight(in unsigned long height);
-        [Custom] DOMObject wrapCallback(in DOMObject callback);
</del><span class="cx">         boolean resourceTrackingEnabled();
</span><span class="cx">         void enableResourceTracking(in boolean always);
</span><span class="cx">         void disableResourceTracking(in boolean always);
</span><del>-        void storeLastActivePanel(in DOMString panelName);
</del><span class="cx"> 
</span><ins>+        void startTimelineProfiler();
+        void stopTimelineProfiler();
+
</ins><span class="cx"> #if defined(ENABLE_JAVASCRIPT_DEBUGGER) &amp;&amp; ENABLE_JAVASCRIPT_DEBUGGER
</span><span class="cx">         boolean debuggerEnabled();
</span><span class="cx">         void enableDebugger(in boolean always);
</span><span class="lines">@@ -88,8 +63,6 @@
</span><span class="cx">         void stepIntoStatementInDebugger();
</span><span class="cx">         void stepOutOfFunctionInDebugger();
</span><span class="cx"> 
</span><del>-        [Custom] DOMObject currentCallFrame();
-
</del><span class="cx">         boolean pauseOnExceptions();
</span><span class="cx">         void setPauseOnExceptions(in boolean pauseOnExceptions);
</span><span class="cx"> 
</span><span class="lines">@@ -111,30 +84,23 @@
</span><span class="cx">         void getEventListenersForNode(in long callId, in long nodeId);
</span><span class="cx">         void copyNode(in long nodeId);
</span><span class="cx">         void removeNode(in long callId, in long nodeId);
</span><ins>+        void highlightDOMNode(in long nodeId);
+        void hideDOMNodeHighlight();
</ins><span class="cx"> 
</span><span class="cx">         void getCookies(in long callId, in DOMString domain);
</span><span class="cx">         void deleteCookie(in DOMString cookieName, in DOMString domain);
</span><span class="cx"> 
</span><del>-        // Called from InjectedScript.
-        // TODO: extract into a separate IDL.
-        void copyText(in DOMString text);
-        [Custom] DOMObject nodeForId(in long nodeId);
-        [Custom] long wrapObject(in DOMObject object, in DOMString objectGroup);
-        [Custom] DOMObject unwrapObject(in long objectId);
</del><span class="cx">         void releaseWrapperObjectGroup(in DOMString objectGroup);
</span><del>-        [Custom] int pushNodePathToFrontend(in DOMObject node, in boolean selectInUI);
-        void addNodesToSearchResult(in DOMString nodeIds);
</del><ins>+        void didEvaluateForTestInFrontend(in long callId, in DOMString jsonResult);
+
</ins><span class="cx"> #if defined(ENABLE_DATABASE) &amp;&amp; ENABLE_DATABASE
</span><del>-        [Custom] void selectDatabase(in DOMObject database);
-        [Custom] DOMObject databaseForId(in long databaseId);
</del><ins>+        void getDatabaseTableNames(in long callId, in long databaseId);
</ins><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if defined(ENABLE_DOM_STORAGE) &amp;&amp; ENABLE_DOM_STORAGE
</span><del>-        [Custom] void selectDOMStorage(in DOMObject storage);
</del><span class="cx">         void getDOMStorageEntries(in long callId, in long storageId);
</span><span class="cx">         void setDOMStorageItem(in long callId, in long storageId, in DOMString key, in DOMString value);
</span><span class="cx">         void removeDOMStorageItem(in long callId, in long storageId, in DOMString key);
</span><span class="cx"> #endif
</span><del>-        void reportDidDispatchOnInjectedScript(in long callId, in DOMString result, in boolean isException);
-        void didEvaluateForTestInFrontend(in long callId, in DOMString jsonResult);
</del><span class="cx">     };
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkWebCoreinspectorInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/InspectorController.cpp (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorController.cpp        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/InspectorController.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -53,8 +53,10 @@
</span><span class="cx"> #include &quot;HTMLFrameOwnerElement.h&quot;
</span><span class="cx"> #include &quot;HitTestResult.h&quot;
</span><span class="cx"> #include &quot;InspectorBackend.h&quot;
</span><ins>+#include &quot;InjectedScriptHost.h&quot;
</ins><span class="cx"> #include &quot;InspectorClient.h&quot;
</span><span class="cx"> #include &quot;InspectorFrontend.h&quot;
</span><ins>+#include &quot;InspectorFrontendHost.h&quot;
</ins><span class="cx"> #include &quot;InspectorDatabaseResource.h&quot;
</span><span class="cx"> #include &quot;InspectorDOMAgent.h&quot;
</span><span class="cx"> #include &quot;InspectorDOMStorageResource.h&quot;
</span><span class="lines">@@ -134,7 +136,9 @@
</span><span class="cx">     , m_previousMessage(0)
</span><span class="cx">     , m_resourceTrackingEnabled(false)
</span><span class="cx">     , m_resourceTrackingSettingsLoaded(false)
</span><del>-    , m_inspectorBackend(InspectorBackend::create(this, client))
</del><ins>+    , m_inspectorBackend(InspectorBackend::create(this))
+    , m_inspectorFrontendHost(InspectorFrontendHost::create(this, client))
+    , m_injectedScriptHost(InjectedScriptHost::create(this))
</ins><span class="cx">     , m_lastBoundObjectId(1)
</span><span class="cx"> #if ENABLE(JAVASCRIPT_DEBUGGER)
</span><span class="cx">     , m_debuggerEnabled(false)
</span><span class="lines">@@ -174,15 +178,19 @@
</span><span class="cx">     releaseDOMAgent();
</span><span class="cx"> 
</span><span class="cx">     m_inspectorBackend-&gt;disconnectController();
</span><ins>+    m_inspectorFrontendHost-&gt;disconnectController();
+    m_injectedScriptHost-&gt;disconnectController();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorController::inspectedPageDestroyed()
</span><span class="cx"> {
</span><span class="cx">     close();
</span><span class="cx"> 
</span><del>-    if (m_scriptState)
-        ScriptGlobalObject::remove(m_scriptState, &quot;InspectorController&quot;);
-
</del><ins>+    if (m_scriptState) {
+        ScriptGlobalObject::remove(m_scriptState, &quot;InspectorBackend&quot;);
+        ScriptGlobalObject::remove(m_scriptState, &quot;InspectorFrontendHost&quot;);
+        ScriptGlobalObject::remove(m_scriptState, &quot;InjectedScriptHost&quot;);
+    }
</ins><span class="cx">     ASSERT(m_inspectedPage);
</span><span class="cx">     m_inspectedPage = 0;
</span><span class="cx"> 
</span><span class="lines">@@ -522,7 +530,9 @@
</span><span class="cx">     // Grant the inspector the ability to script the inspected page.
</span><span class="cx">     m_page-&gt;mainFrame()-&gt;document()-&gt;securityOrigin()-&gt;grantUniversalAccess();
</span><span class="cx">     m_scriptState = scriptStateFromPage(debuggerWorld(), m_page);
</span><del>-    ScriptGlobalObject::set(m_scriptState, &quot;InspectorController&quot;, m_inspectorBackend.get());
</del><ins>+    ScriptGlobalObject::set(m_scriptState, &quot;InspectorBackend&quot;, m_inspectorBackend.get());
+    ScriptGlobalObject::set(m_scriptState, &quot;InspectorFrontendHost&quot;, m_inspectorFrontendHost.get());
+    ScriptGlobalObject::set(m_scriptState, &quot;InjectedScriptHost&quot;, m_injectedScriptHost.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorController::scriptObjectReady()
</span></span></pre></div>
<a id="trunkWebCoreinspectorInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/InspectorController.h (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorController.h        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/InspectorController.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -62,10 +62,12 @@
</span><span class="cx"> class DocumentLoader;
</span><span class="cx"> class GraphicsContext;
</span><span class="cx"> class HitTestResult;
</span><ins>+class InjectedScriptHost;
</ins><span class="cx"> class InspectorBackend;
</span><span class="cx"> class InspectorClient;
</span><span class="cx"> class InspectorDOMAgent;
</span><span class="cx"> class InspectorFrontend;
</span><ins>+class InspectorFrontendHost;
</ins><span class="cx"> class InspectorTimelineAgent;
</span><span class="cx"> class JavaScriptCallFrame;
</span><span class="cx"> class KURL;
</span><span class="lines">@@ -166,6 +168,8 @@
</span><span class="cx">     ~InspectorController();
</span><span class="cx"> 
</span><span class="cx">     InspectorBackend* inspectorBackend() { return m_inspectorBackend.get(); }
</span><ins>+    InspectorFrontendHost* inspectorFrontendHost() { return m_inspectorFrontendHost.get(); }
+    InjectedScriptHost* injectedScriptHost() { return m_injectedScriptHost.get(); }
</ins><span class="cx"> 
</span><span class="cx">     void inspectedPageDestroyed();
</span><span class="cx">     void pageDestroyed() { m_page = 0; }
</span><span class="lines">@@ -294,6 +298,8 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     friend class InspectorBackend;
</span><ins>+    friend class InspectorFrontendHost;
+    friend class InjectedScriptHost;
</ins><span class="cx">     // Following are used from InspectorBackend and internally.
</span><span class="cx">     void scriptObjectReady();
</span><span class="cx">     void moveWindowBy(float x, float y) const;
</span><span class="lines">@@ -387,6 +393,8 @@
</span><span class="cx">     bool m_resourceTrackingEnabled;
</span><span class="cx">     bool m_resourceTrackingSettingsLoaded;
</span><span class="cx">     RefPtr&lt;InspectorBackend&gt; m_inspectorBackend;
</span><ins>+    RefPtr&lt;InspectorFrontendHost&gt; m_inspectorFrontendHost;
+    RefPtr&lt;InjectedScriptHost&gt; m_injectedScriptHost;
</ins><span class="cx">     HashMap&lt;String, ScriptValue&gt; m_idToWrappedObject;
</span><span class="cx">     ObjectGroupsMap m_objectGroups;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorInspectorFrontendHostcpp"></a>
<div class="addfile"><h4>Added: trunk/WebCore/inspector/InspectorFrontendHost.cpp (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorFrontendHost.cpp                                (rev 0)
+++ trunk/WebCore/inspector/InspectorFrontendHost.cpp        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,192 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;InspectorFrontendHost.h&quot;
+
+#if ENABLE(INSPECTOR)
+
+#include &quot;Element.h&quot;
+#include &quot;Frame.h&quot;
+#include &quot;FrameLoader.h&quot;
+#include &quot;HTMLFrameOwnerElement.h&quot;
+#include &quot;InspectorClient.h&quot;
+#include &quot;InspectorResource.h&quot;
+
+#include &lt;wtf/RefPtr.h&gt;
+
+using namespace std;
+
+namespace WebCore {
+
+InspectorFrontendHost::InspectorFrontendHost(InspectorController* inspectorController, InspectorClient* client)
+    : m_inspectorController(inspectorController)
+    , m_client(client)
+{
+}
+
+InspectorFrontendHost::~InspectorFrontendHost()
+{
+}
+
+void InspectorFrontendHost::loaded()
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;scriptObjectReady();
+}
+
+void InspectorFrontendHost::attach()
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;attachWindow();
+}
+
+void InspectorFrontendHost::detach()
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;detachWindow();
+}
+
+void InspectorFrontendHost::closeWindow()
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;closeWindow();
+}
+
+void InspectorFrontendHost::windowUnloading()
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;close();
+}
+
+void InspectorFrontendHost::setAttachedWindowHeight(unsigned height)
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;setAttachedWindowHeight(height);
+}
+
+void InspectorFrontendHost::moveWindowBy(float x, float y) const
+{
+    if (m_inspectorController)
+        m_inspectorController-&gt;moveWindowBy(x, y);
+}
+
+String InspectorFrontendHost::localizedStringsURL()
+{
+    return m_client-&gt;localizedStringsURL();
+}
+
+String InspectorFrontendHost::hiddenPanels()
+{
+    return m_client-&gt;hiddenPanels();
+}
+
+const String&amp; InspectorFrontendHost::platform() const
+{
+#if PLATFORM(MAC)
+#ifdef BUILDING_ON_TIGER
+    DEFINE_STATIC_LOCAL(const String, platform, (&quot;mac-tiger&quot;));
+#else
+    DEFINE_STATIC_LOCAL(const String, platform, (&quot;mac-leopard&quot;));
+#endif
+#elif PLATFORM(WIN_OS)
+    DEFINE_STATIC_LOCAL(const String, platform, (&quot;windows&quot;));
+#else
+    DEFINE_STATIC_LOCAL(const String, platform, (&quot;unknown&quot;));
+#endif
+    return platform;
+}
+
+
+const String&amp; InspectorFrontendHost::port() const
+{
+#if PLATFORM(QT)
+    DEFINE_STATIC_LOCAL(const String, port, (&quot;qt&quot;));
+#elif PLATFORM(GTK)
+    DEFINE_STATIC_LOCAL(const String, port, (&quot;gtk&quot;));
+#elif PLATFORM(WX)
+    DEFINE_STATIC_LOCAL(const String, port, (&quot;wx&quot;));
+#else
+    DEFINE_STATIC_LOCAL(const String, port, (&quot;unknown&quot;));
+#endif
+
+    return port;
+}
+
+void InspectorFrontendHost::addResourceSourceToFrame(long identifier, Node* frame)
+{
+    if (!m_inspectorController)
+        return;
+    RefPtr&lt;InspectorResource&gt; resource = m_inspectorController-&gt;resources().get(identifier);
+    if (resource) {
+        String sourceString = resource-&gt;sourceString();
+        if (!sourceString.isEmpty())
+            addSourceToFrame(resource-&gt;mimeType(), sourceString, frame);
+    }
+}
+
+bool InspectorFrontendHost::addSourceToFrame(const String&amp; mimeType, const String&amp; source, Node* frameNode)
+{
+    ASSERT_ARG(frameNode, frameNode);
+
+    if (!frameNode)
+        return false;
+
+    if (!frameNode-&gt;attached()) {
+        ASSERT_NOT_REACHED();
+        return false;
+    }
+
+    ASSERT(frameNode-&gt;isElementNode());
+    if (!frameNode-&gt;isElementNode())
+        return false;
+
+    Element* element = static_cast&lt;Element*&gt;(frameNode);
+    ASSERT(element-&gt;isFrameOwnerElement());
+    if (!element-&gt;isFrameOwnerElement())
+        return false;
+
+    HTMLFrameOwnerElement* frameOwner = static_cast&lt;HTMLFrameOwnerElement*&gt;(element);
+    ASSERT(frameOwner-&gt;contentFrame());
+    if (!frameOwner-&gt;contentFrame())
+        return false;
+
+    FrameLoader* loader = frameOwner-&gt;contentFrame()-&gt;loader();
+
+    loader-&gt;setResponseMIMEType(mimeType);
+    loader-&gt;begin();
+    loader-&gt;write(source);
+    loader-&gt;end();
+
+    return true;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
</ins><span class="cx">Property changes on: trunk/WebCore/inspector/InspectorFrontendHost.cpp
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkWebCoreinspectorInspectorFrontendHosthfromrev51527trunkWebCoreinspectorfrontendDatabasejs"></a>
<div class="copfile"><h4>Copied: trunk/WebCore/inspector/InspectorFrontendHost.h (from rev 51527, trunk/WebCore/inspector/front-end/Database.js) (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorFrontendHost.h                                (rev 0)
+++ trunk/WebCore/inspector/InspectorFrontendHost.h        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer. 
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution. 
+ * 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef InspectorFrontendHost_h
+#define InspectorFrontendHost_h
+
+#include &quot;Console.h&quot;
+#include &quot;InspectorController.h&quot;
+#include &quot;PlatformString.h&quot;
+
+#include &lt;wtf/RefCounted.h&gt;
+
+namespace WebCore {
+
+class InspectorClient;
+class Node;
+
+class InspectorFrontendHost : public RefCounted&lt;InspectorFrontendHost&gt;
+{
+public:
+    static PassRefPtr&lt;InspectorFrontendHost&gt; create(InspectorController* inspectorController, InspectorClient* client)
+    {
+        return adoptRef(new InspectorFrontendHost(inspectorController, client));
+    }
+
+    ~InspectorFrontendHost();
+
+    InspectorController* inspectorController() { return m_inspectorController; }
+    void disconnectController() { m_inspectorController = 0; }
+
+    void loaded();
+    void attach();
+    void detach();
+    void closeWindow();
+    void windowUnloading();
+
+    void setAttachedWindowHeight(unsigned height);
+    void moveWindowBy(float x, float y) const;
+
+    String localizedStringsURL();
+    String hiddenPanels();
+    const String&amp; platform() const;
+    const String&amp; port() const;
+
+    void addResourceSourceToFrame(long identifier, Node* frame);
+    bool addSourceToFrame(const String&amp; mimeType, const String&amp; source, Node* frame);
+
+private:
+    InspectorFrontendHost(InspectorController* inspectorController, InspectorClient* client);
+
+    InspectorController* m_inspectorController;
+    InspectorClient* m_client;
+};
+
+} // namespace WebCore
+
+#endif // !defined(InspectorFrontendHost_h)
</ins></span></pre></div>
<a id="trunkWebCoreinspectorInspectorFrontendHostidlfromrev51527trunkWebCoreinspectorfrontendTestControllerjs"></a>
<div class="copfile"><h4>Copied: trunk/WebCore/inspector/InspectorFrontendHost.idl (from rev 51527, trunk/WebCore/inspector/front-end/TestController.js) (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/InspectorFrontendHost.idl                                (rev 0)
+++ trunk/WebCore/inspector/InspectorFrontendHost.idl        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek &lt;webkit@mattlilek.com&gt;
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module core {
+    interface [
+        GenerateConstructor
+    ] InspectorFrontendHost {
+        void loaded();
+        void attach();
+        void detach();
+        void closeWindow();
+        void windowUnloading();
+
+        void setAttachedWindowHeight(in unsigned long height);
+        void moveWindowBy(in float x, in float y);
+
+        DOMString localizedStringsURL();
+        DOMString hiddenPanels();
+        DOMString platform();
+        DOMString port();
+
+        void addResourceSourceToFrame(in long identifier, in Node frame);
+        boolean addSourceToFrame(in DOMString mimeType, in DOMString sourceValue, in Node frame);
+
+        [Custom] void search(in Node node, in DOMString query);
+        [Custom] DOMObject setting(in DOMString key);
+        [Custom] void setSetting(in DOMString key, in DOMObject  value);
+    };
+}
</ins></span></pre></div>
<a id="trunkWebCoreinspectorfrontendBreakpointjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/Breakpoint.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/Breakpoint.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/Breakpoint.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">         this.dispatchEventToListeners(&quot;condition-changed&quot;);
</span><span class="cx"> 
</span><span class="cx">         if (this.enabled)
</span><del>-            InspectorController.updateBreakpoint(this.sourceID, this.line, c);
</del><ins>+            InspectorBackend.updateBreakpoint(this.sourceID, this.line, c);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendBreakpointsSidebarPanejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/BreakpointsSidebarPane.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/BreakpointsSidebarPane.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/BreakpointsSidebarPane.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -58,11 +58,11 @@
</span><span class="cx">             this.bodyElement.appendChild(this.listElement);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!InspectorController.debuggerEnabled() || !breakpoint.sourceID)
</del><ins>+        if (!InspectorBackend.debuggerEnabled() || !breakpoint.sourceID)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         if (breakpoint.enabled)
</span><del>-            InspectorController.addBreakpoint(breakpoint.sourceID, breakpoint.line, breakpoint.condition);
</del><ins>+            InspectorBackend.addBreakpoint(breakpoint.sourceID, breakpoint.line, breakpoint.condition);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _appendBreakpointElement: function(breakpoint)
</span><span class="lines">@@ -135,10 +135,10 @@
</span><span class="cx">             this.bodyElement.appendChild(this.emptyElement);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!InspectorController.debuggerEnabled() || !breakpoint.sourceID)
</del><ins>+        if (!InspectorBackend.debuggerEnabled() || !breakpoint.sourceID)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        InspectorController.removeBreakpoint(breakpoint.sourceID, breakpoint.line);
</del><ins>+        InspectorBackend.removeBreakpoint(breakpoint.sourceID, breakpoint.line);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _breakpointEnableChanged: function(event)
</span><span class="lines">@@ -148,13 +148,13 @@
</span><span class="cx">         var checkbox = breakpoint._breakpointListElement.firstChild;
</span><span class="cx">         checkbox.checked = breakpoint.enabled;
</span><span class="cx"> 
</span><del>-        if (!InspectorController.debuggerEnabled() || !breakpoint.sourceID)
</del><ins>+        if (!InspectorBackend.debuggerEnabled() || !breakpoint.sourceID)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         if (breakpoint.enabled)
</span><del>-            InspectorController.addBreakpoint(breakpoint.sourceID, breakpoint.line, breakpoint.condition);
</del><ins>+            InspectorBackend.addBreakpoint(breakpoint.sourceID, breakpoint.line, breakpoint.condition);
</ins><span class="cx">         else
</span><del>-            InspectorController.removeBreakpoint(breakpoint.sourceID, breakpoint.line);
</del><ins>+            InspectorBackend.removeBreakpoint(breakpoint.sourceID, breakpoint.line);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _breakpointTextChanged: function(event)
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendConsoleViewjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ConsoleView.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ConsoleView.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ConsoleView.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -285,7 +285,7 @@
</span><span class="cx">     clearMessages: function(clearInspectorController)
</span><span class="cx">     {
</span><span class="cx">         if (clearInspectorController)
</span><del>-            InspectorController.clearMessages(false);
</del><ins>+            InspectorBackend.clearMessages(false);
</ins><span class="cx">         if (WebInspector.panels.resources)
</span><span class="cx">             WebInspector.panels.resources.clearMessages();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendCookieItemsViewjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/CookieItemsView.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/CookieItemsView.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/CookieItemsView.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx">     _deleteCookieCallback: function(node)
</span><span class="cx">     {
</span><span class="cx">         var cookie = node.cookie;
</span><del>-        InspectorController.deleteCookie(cookie.name, this._cookieDomain);
</del><ins>+        InspectorBackend.deleteCookie(cookie.name, this._cookieDomain);
</ins><span class="cx">         this.update();
</span><span class="cx">     },
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendDOMAgentjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/DOMAgent.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/DOMAgent.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/DOMAgent.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -327,25 +327,25 @@
</span><span class="cx">             callback(parent.children);
</span><span class="cx">         }
</span><span class="cx">         var callId = WebInspector.Callback.wrap(mycallback);
</span><del>-        InspectorController.getChildNodes(callId, parent.id);
</del><ins>+        InspectorBackend.getChildNodes(callId, parent.id);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     setAttributeAsync: function(node, name, value, callback)
</span><span class="cx">     {
</span><span class="cx">         var mycallback = this._didApplyDomChange.bind(this, node, callback);
</span><del>-        InspectorController.setAttribute(WebInspector.Callback.wrap(mycallback), node.id, name, value);
</del><ins>+        InspectorBackend.setAttribute(WebInspector.Callback.wrap(mycallback), node.id, name, value);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     removeAttributeAsync: function(node, name, callback)
</span><span class="cx">     {
</span><span class="cx">         var mycallback = this._didApplyDomChange.bind(this, node, callback);
</span><del>-        InspectorController.removeAttribute(WebInspector.Callback.wrap(mycallback), node.id, name);
</del><ins>+        InspectorBackend.removeAttribute(WebInspector.Callback.wrap(mycallback), node.id, name);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     setTextNodeValueAsync: function(node, text, callback)
</span><span class="cx">     {
</span><span class="cx">         var mycallback = this._didApplyDomChange.bind(this, node, callback);
</span><del>-        InspectorController.setTextNodeValue(WebInspector.Callback.wrap(mycallback), node.id, text);
</del><ins>+        InspectorBackend.setTextNodeValue(WebInspector.Callback.wrap(mycallback), node.id, text);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _didApplyDomChange: function(node, callback, success)
</span><span class="lines">@@ -447,7 +447,7 @@
</span><span class="cx">             callback(cookies, true);
</span><span class="cx">     }
</span><span class="cx">     var callId = WebInspector.Callback.wrap(mycallback);
</span><del>-    InspectorController.getCookies(callId, cookieDomain);
</del><ins>+    InspectorBackend.getCookies(callId, cookieDomain);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebInspector.Cookies.buildCookiesFromString = function(rawCookieString)
</span><span class="lines">@@ -477,7 +477,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     var callId = WebInspector.Callback.wrap(callback);
</span><del>-    InspectorController.getEventListenersForNode(callId, node.id);
</del><ins>+    InspectorBackend.getEventListenersForNode(callId, node.id);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebInspector.CSSStyleDeclaration = function(payload)
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendDOMStoragejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/DOMStorage.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/DOMStorage.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/DOMStorage.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -57,19 +57,19 @@
</span><span class="cx">     getEntries: function(callback)
</span><span class="cx">     {
</span><span class="cx">         var callId = WebInspector.Callback.wrap(callback);
</span><del>-        InspectorController.getDOMStorageEntries(callId, this._id);
</del><ins>+        InspectorBackend.getDOMStorageEntries(callId, this._id);
</ins><span class="cx">     },
</span><span class="cx">     
</span><span class="cx">     setItem: function(key, value, callback)
</span><span class="cx">     {
</span><span class="cx">         var callId = WebInspector.Callback.wrap(callback);
</span><del>-        InspectorController.setDOMStorageItem(callId, this._id, key, value);
</del><ins>+        InspectorBackend.setDOMStorageItem(callId, this._id, key, value);
</ins><span class="cx">     },
</span><span class="cx">     
</span><span class="cx">     removeItem: function(key, callback)
</span><span class="cx">     {
</span><span class="cx">         var callId = WebInspector.Callback.wrap(callback);
</span><del>-        InspectorController.removeDOMStorageItem(callId, this._id, key);
</del><ins>+        InspectorBackend.removeDOMStorageItem(callId, this._id, key);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendDatabasejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/Database.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/Database.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/Database.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">             callback(names.sort());
</span><span class="cx">         }
</span><span class="cx">         var callId = WebInspector.Callback.wrap(sortingCallback);
</span><del>-        InspectorController.getDatabaseTableNames(callId, this._id);
</del><ins>+        InspectorBackend.getDatabaseTableNames(callId, this._id);
</ins><span class="cx">     },
</span><span class="cx">     
</span><span class="cx">     executeSql: function(query, onSuccess, onError)
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendElementsPaneljs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ElementsPanel.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ElementsPanel.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ElementsPanel.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -58,8 +58,8 @@
</span><span class="cx">         this.panel.updateProperties();
</span><span class="cx">         this.panel.updateEventListeners();
</span><span class="cx"> 
</span><del>-        if (InspectorController.searchingForNode()) {
-            InspectorController.toggleNodeSearch();
</del><ins>+        if (InspectorBackend.searchingForNode()) {
+            InspectorBackend.toggleNodeSearch();
</ins><span class="cx">             this.panel.nodeSearchButton.toggled = false;
</span><span class="cx">         }
</span><span class="cx">         if (this._focusedDOMNode)
</span><span class="lines">@@ -150,8 +150,8 @@
</span><span class="cx"> 
</span><span class="cx">         WebInspector.hoveredDOMNode = null;
</span><span class="cx"> 
</span><del>-        if (InspectorController.searchingForNode()) {
-            InspectorController.toggleNodeSearch();
</del><ins>+        if (InspectorBackend.searchingForNode()) {
+            InspectorBackend.toggleNodeSearch();
</ins><span class="cx">             this.nodeSearchButton.toggled = false;
</span><span class="cx">         }
</span><span class="cx">     },
</span><span class="lines">@@ -169,8 +169,8 @@
</span><span class="cx"> 
</span><span class="cx">         WebInspector.hoveredDOMNode = null;
</span><span class="cx"> 
</span><del>-        if (InspectorController.searchingForNode()) {
-            InspectorController.toggleNodeSearch();
</del><ins>+        if (InspectorBackend.searchingForNode()) {
+            InspectorBackend.toggleNodeSearch();
</ins><span class="cx">             this.nodeSearchButton.toggled = false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -183,11 +183,6 @@
</span><span class="cx">         if (!domWindow || !domWindow.document || !domWindow.document.firstChild)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        // If the window isn't visible, return early so the DOM tree isn't built
-        // and mutation event listeners are not added.
-        if (!InspectorController.isWindowVisible())
-            return;
-
</del><span class="cx">         var inspectedRootDocument = domWindow.document;
</span><span class="cx">         inspectedRootDocument.addEventListener(&quot;DOMNodeInserted&quot;, this._nodeInserted.bind(this));
</span><span class="cx">         inspectedRootDocument.addEventListener(&quot;DOMNodeRemoved&quot;, this._nodeRemoved.bind(this));
</span><span class="lines">@@ -1023,7 +1018,7 @@
</span><span class="cx">             return;
</span><span class="cx">         event.clipboardData.clearData();
</span><span class="cx">         event.preventDefault();
</span><del>-        InspectorController.copyNode(this.focusedDOMNode.id);
</del><ins>+        InspectorBackend.copyNode(this.focusedDOMNode.id);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     rightSidebarResizerDragStart: function(event)
</span><span class="lines">@@ -1052,9 +1047,9 @@
</span><span class="cx"> 
</span><span class="cx">     _nodeSearchButtonClicked: function(event)
</span><span class="cx">     {
</span><del>-        InspectorController.toggleNodeSearch();
</del><ins>+        InspectorBackend.toggleNodeSearch();
</ins><span class="cx"> 
</span><del>-        this.nodeSearchButton.toggled = InspectorController.searchingForNode();
</del><ins>+        this.nodeSearchButton.toggled = InspectorBackend.searchingForNode();
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendElementsTreeOutlinejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ElementsTreeOutline.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ElementsTreeOutline.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ElementsTreeOutline.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">             this.focusedNodeChanged();
</span><span class="cx"> 
</span><span class="cx">             if (x &amp;&amp; !this.suppressSelectHighlight) {
</span><del>-                InspectorController.highlightDOMNode(x.id);
</del><ins>+                InspectorBackend.highlightDOMNode(x.id);
</ins><span class="cx"> 
</span><span class="cx">                 if (&quot;_restorePreviousHighlightNodeTimeout&quot; in this)
</span><span class="cx">                     clearTimeout(this._restorePreviousHighlightNodeTimeout);
</span><span class="lines">@@ -92,9 +92,9 @@
</span><span class="cx">                 {
</span><span class="cx">                     var hoveredNode = WebInspector.hoveredDOMNode;
</span><span class="cx">                     if (hoveredNode)
</span><del>-                        InspectorController.highlightDOMNode(hoveredNode.id);
</del><ins>+                        InspectorBackend.highlightDOMNode(hoveredNode.id);
</ins><span class="cx">                     else
</span><del>-                        InspectorController.hideDOMNodeHighlight();
</del><ins>+                        InspectorBackend.hideDOMNodeHighlight();
</ins><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 this._restorePreviousHighlightNodeTimeout = setTimeout(restoreHighlightToHoveredNode, 2000);
</span><span class="lines">@@ -945,7 +945,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         var callId = WebInspector.Callback.wrap(removeNodeCallback);
</span><del>-        InspectorController.removeNode(callId, this.representedObject.id);
</del><ins>+        InspectorBackend.removeNode(callId, this.representedObject.id);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendEventListenersSidebarPanejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/EventListenersSidebarPane.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/EventListenersSidebarPane.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/EventListenersSidebarPane.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">         var selectedOption = this.settingsSelectElement[this.settingsSelectElement.selectedIndex];
</span><span class="cx">         Preferences.eventListenersFilter = selectedOption.value;
</span><span class="cx"> 
</span><del>-        InspectorController.setSetting(&quot;event-listeners-filter&quot;, Preferences.eventListenersFilter);
</del><ins>+        InspectorFrontendHost.setSetting(&quot;event-listeners-filter&quot;, Preferences.eventListenersFilter);
</ins><span class="cx"> 
</span><span class="cx">         for (var i = 0; i &lt; this.sections.length; ++i)
</span><span class="cx">             this.sections[i].update();
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendInjectedScriptjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/InjectedScript.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/InjectedScript.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/InjectedScript.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -561,7 +561,7 @@
</span><span class="cx"> {
</span><span class="cx">     var result = {};
</span><span class="cx">     try {
</span><del>-        result.value = InspectorController.wrapObject(InjectedScript._evaluateOn(evalFunction, object, expression), objectGroup);
</del><ins>+        result.value = InjectedScriptHost.wrapObject(InjectedScript._evaluateOn(evalFunction, object, expression), objectGroup);
</ins><span class="cx">         // Handle error that might have happened while describing result.
</span><span class="cx">         if (result.value.errorText) {
</span><span class="cx">             result.value = result.value.errorText;
</span><span class="lines">@@ -646,10 +646,10 @@
</span><span class="cx"> 
</span><span class="cx">             node[searchResultsProperty] = true;
</span><span class="cx">             InjectedScript._searchResults.push(node);
</span><del>-            var nodeId = InspectorController.pushNodePathToFrontend(node, false);
</del><ins>+            var nodeId = InjectedScriptHost.pushNodePathToFrontend(node, false);
</ins><span class="cx">             nodeIds.push(nodeId);
</span><span class="cx">         }
</span><del>-        InspectorController.addNodesToSearchResult(nodeIds.join(&quot;,&quot;));
</del><ins>+        InjectedScriptHost.addNodesToSearchResult(nodeIds.join(&quot;,&quot;));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     function matchExactItems(doc)
</span><span class="lines">@@ -848,7 +848,7 @@
</span><span class="cx"> 
</span><span class="cx"> InjectedScript.getCallFrames = function()
</span><span class="cx"> {
</span><del>-    var callFrame = InspectorController.currentCallFrame();
</del><ins>+    var callFrame = InjectedScriptHost.currentCallFrame();
</ins><span class="cx">     if (!callFrame)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -871,7 +871,7 @@
</span><span class="cx"> 
</span><span class="cx"> InjectedScript._callFrameForId = function(id)
</span><span class="cx"> {
</span><del>-    var callFrame = InspectorController.currentCallFrame();
</del><ins>+    var callFrame = InjectedScriptHost.currentCallFrame();
</ins><span class="cx">     while (--id &gt;= 0 &amp;&amp; callFrame)
</span><span class="cx">         callFrame = callFrame.caller;
</span><span class="cx">     return callFrame;
</span><span class="lines">@@ -879,7 +879,7 @@
</span><span class="cx"> 
</span><span class="cx"> InjectedScript._clearConsoleMessages = function()
</span><span class="cx"> {
</span><del>-    InspectorController.clearMessages(true);
</del><ins>+    InjectedScriptHost.clearMessages(true);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InjectedScript._inspectObject = function(o)
</span><span class="lines">@@ -890,14 +890,14 @@
</span><span class="cx">     var inspectedWindow = InjectedScript._window();
</span><span class="cx">     inspectedWindow.console.log(o);
</span><span class="cx">     if (Object.type(o) === &quot;node&quot;) {
</span><del>-        InspectorController.pushNodePathToFrontend(o, true);
</del><ins>+        InjectedScriptHost.pushNodePathToFrontend(o, true);
</ins><span class="cx">     } else {
</span><span class="cx">         switch (Object.describe(o)) {
</span><span class="cx">             case &quot;Database&quot;:
</span><del>-                InspectorController.selectDatabase(o);
</del><ins>+                InjectedScriptHost.selectDatabase(o);
</ins><span class="cx">                 break;
</span><span class="cx">             case &quot;Storage&quot;:
</span><del>-                InspectorController.selectDOMStorage(o);
</del><ins>+                InjectedScriptHost.selectDOMStorage(o);
</ins><span class="cx">                 break;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -906,10 +906,10 @@
</span><span class="cx"> InjectedScript._copy = function(o)
</span><span class="cx"> {
</span><span class="cx">     if (Object.type(o) === &quot;node&quot;) {
</span><del>-        var nodeId = InspectorController.pushNodePathToFrontend(o, false);
-        InspectorController.copyNode(nodeId);
</del><ins>+        var nodeId = InjectedScriptHost.pushNodePathToFrontend(o, false);
+        InjectedScriptHost.copyNode(nodeId);
</ins><span class="cx">     } else {
</span><del>-        InspectorController.copyText(o);
</del><ins>+        InjectedScriptHost.copyText(o);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -986,9 +986,9 @@
</span><span class="cx">         get $4() { return console._inspectorCommandLineAPI._inspectedNodes[4] }, \n\
</span><span class="cx">     };&quot;);
</span><span class="cx"> 
</span><del>-    inspectorCommandLineAPI.clear = InspectorController.wrapCallback(InjectedScript._clearConsoleMessages);
-    inspectorCommandLineAPI.inspect = InspectorController.wrapCallback(InjectedScript._inspectObject);
-    inspectorCommandLineAPI.copy = InspectorController.wrapCallback(InjectedScript._copy);
</del><ins>+    inspectorCommandLineAPI.clear = InjectedScriptHost.wrapCallback(InjectedScript._clearConsoleMessages);
+    inspectorCommandLineAPI.inspect = InjectedScriptHost.wrapCallback(InjectedScript._inspectObject);
+    inspectorCommandLineAPI.copy = InjectedScriptHost.wrapCallback(InjectedScript._copy);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InjectedScript._resolveObject = function(objectProxy)
</span><span class="lines">@@ -1012,14 +1012,14 @@
</span><span class="cx"> {
</span><span class="cx">     // TODO: replace with 'return window;' once this script is injected into
</span><span class="cx">     // the page's context.
</span><del>-    return InspectorController.inspectedWindow();
</del><ins>+    return InjectedScriptHost.inspectedWindow();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InjectedScript._nodeForId = function(nodeId)
</span><span class="cx"> {
</span><span class="cx">     if (!nodeId)
</span><span class="cx">         return null;
</span><del>-    return InspectorController.nodeForId(nodeId);
</del><ins>+    return InjectedScriptHost.nodeForId(nodeId);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InjectedScript._objectForId = function(objectId)
</span><span class="lines">@@ -1031,7 +1031,7 @@
</span><span class="cx">     if (typeof objectId === &quot;number&quot;) {
</span><span class="cx">         return InjectedScript._nodeForId(objectId);
</span><span class="cx">     } else if (typeof objectId === &quot;string&quot;) {
</span><del>-        return InspectorController.unwrapObject(objectId);
</del><ins>+        return InjectedScriptHost.unwrapObject(objectId);
</ins><span class="cx">     } else if (typeof objectId === &quot;object&quot;) {
</span><span class="cx">         var callFrame = InjectedScript._callFrameForId(objectId.callFrame);
</span><span class="cx">         if (objectId.thisObject)
</span><span class="lines">@@ -1047,7 +1047,7 @@
</span><span class="cx">     var object = InjectedScript._resolveObject(objectProxy);
</span><span class="cx">     if (!object || Object.type(object) !== &quot;node&quot;)
</span><span class="cx">         return false;
</span><del>-    return InspectorController.pushNodePathToFrontend(object, false);
</del><ins>+    return InjectedScriptHost.pushNodePathToFrontend(object, false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Called from within InspectorController on the 'inspected page' side.
</span><span class="lines">@@ -1130,23 +1130,23 @@
</span><span class="cx">                 data[columnIdentifier] = String(text);
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        InspectorController.reportDidDispatchOnInjectedScript(callId, JSON.stringify(result), false);
</del><ins>+        InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, JSON.stringify(result), false);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     function errorCallback(tx, error)
</span><span class="cx">     {
</span><del>-        InspectorController.reportDidDispatchOnInjectedScript(callId, JSON.stringify(error), false);
</del><ins>+        InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, JSON.stringify(error), false);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     function queryTransaction(tx)
</span><span class="cx">     {
</span><del>-        tx.executeSql(query, null, InspectorController.wrapCallback(successCallback), InspectorController.wrapCallback(errorCallback));
</del><ins>+        tx.executeSql(query, null, InjectedScriptHost.wrapCallback(successCallback), InjectedScriptHost.wrapCallback(errorCallback));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    var database = InspectorController.databaseForId(databaseId);
</del><ins>+    var database = InjectedScriptHost.databaseForId(databaseId);
</ins><span class="cx">     if (!database)
</span><span class="cx">         errorCallback(null, { code : 2 });  // Return as unexpected version.
</span><del>-    database.transaction(InspectorController.wrapCallback(queryTransaction), InspectorController.wrapCallback(errorCallback));
</del><ins>+    database.transaction(InjectedScriptHost.wrapCallback(queryTransaction), InjectedScriptHost.wrapCallback(errorCallback));
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendInjectedScriptAccessjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/InjectedScriptAccess.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/InjectedScriptAccess.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/InjectedScriptAccess.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">                 WebInspector.console.addMessage(new WebInspector.ConsoleTextMessage(&quot;Error dispatching: &quot; + methodName));
</span><span class="cx">         }
</span><span class="cx">         var callId = WebInspector.Callback.wrap(myCallback);
</span><del>-        InspectorController.dispatchOnInjectedScript(callId, methodName, argsString, !!async);
</del><ins>+        InspectorBackend.dispatchOnInjectedScript(callId, methodName, argsString, !!async);
</ins><span class="cx">     };
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendInspectorBackendStubjsfromrev51527trunkWebCoreinspectorfrontendInspectorControllerStubjs"></a>
<div class="copfile"><h4>Copied: trunk/WebCore/inspector/front-end/InspectorBackendStub.js (from rev 51527, trunk/WebCore/inspector/front-end/InspectorControllerStub.js) (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/InspectorBackendStub.js                                (rev 0)
+++ trunk/WebCore/inspector/front-end/InspectorBackendStub.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,290 @@
</span><ins>+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+if (!window.InspectorBackend) {
+
+WebInspector.InspectorBackendStub = function()
+{
+    this._searchingForNode = false;
+    this._attachedWindowHeight = 0;
+    this._debuggerEnabled = true;
+    this._profilerEnabled = true;
+    this._resourceTrackingEnabled = false;
+    this._timelineEnabled = false;
+    this._settings = {};
+}
+
+WebInspector.InspectorBackendStub.prototype = {
+    wrapCallback: function(func)
+    {
+        return func;
+    },
+
+    platform: function()
+    {
+        return &quot;mac-leopard&quot;;
+    },
+
+    port: function()
+    {
+        return &quot;unknown&quot;;
+    },
+
+
+    closeWindow: function()
+    {
+        this._windowVisible = false;
+    },
+
+    attach: function()
+    {
+    },
+
+    detach: function()
+    {
+    },
+
+    storeLastActivePanel: function(panel)
+    {
+    },
+
+    clearMessages: function()
+    {
+    },
+
+    searchingForNode: function()
+    {
+        return this._searchingForNode;
+    },
+
+    search: function(sourceRow, query)
+    {
+    },
+
+    toggleNodeSearch: function()
+    {
+        this._searchingForNode = !this._searchingForNode;
+    },
+
+    setAttachedWindowHeight: function(height)
+    {
+    },
+
+    moveByUnrestricted: function(x, y)
+    {
+    },
+
+
+    addResourceSourceToFrame: function(identifier, element)
+    {
+    },
+
+    addSourceToFrame: function(mimeType, source, element)
+    {
+        return false;
+    },
+
+    getResourceDocumentNode: function(identifier)
+    {
+        return undefined;
+    },
+
+    highlightDOMNode: function(node)
+    {
+    },
+
+    hideDOMNodeHighlight: function()
+    {
+    },
+
+    inspectedWindow: function()
+    {
+        return window;
+    },
+
+    loaded: function()
+    {
+    },
+
+    localizedStringsURL: function()
+    {
+        return undefined;
+    },
+
+    windowUnloading: function()
+    {
+        return false;
+    },
+
+    hiddenPanels: function()
+    {
+        return &quot;&quot;;
+    },
+
+    debuggerEnabled: function()
+    {
+        return this._debuggerEnabled;
+    },
+
+    enableResourceTracking: function()
+    {
+        this._resourceTrackingEnabled = true;
+        WebInspector.resourceTrackingWasEnabled();
+    },
+
+    disableResourceTracking: function()
+    {
+        this._resourceTrackingEnabled = false;
+        WebInspector.resourceTrackingWasDisabled();
+    },
+
+    resourceTrackingEnabled: function()
+    {
+        return this._resourceTrackingEnabled;
+    },
+
+    enableDebugger: function()
+    {
+        this._debuggerEnabled = true;
+    },
+
+    disableDebugger: function()
+    {
+        this._debuggerEnabled = false;
+    },
+
+    addBreakpoint: function(sourceID, line, condition)
+    {
+    },
+
+    removeBreakpoint: function(sourceID, line)
+    {
+    },
+
+    updateBreakpoint: function(sourceID, line, condition)
+    {
+    },
+
+    pauseInDebugger: function()
+    {
+    },
+
+    pauseOnExceptions: function()
+    {
+        return false;
+    },
+
+    setPauseOnExceptions: function(value)
+    {
+    },
+
+    resumeDebugger: function()
+    {
+    },
+
+    profilerEnabled: function()
+    {
+        return true;
+    },
+
+    enableProfiler: function()
+    {
+        this._profilerEnabled = true;
+    },
+
+    disableProfiler: function()
+    {
+        this._profilerEnabled = false;
+    },
+
+    startProfiling: function()
+    {
+    },
+
+    stopProfiling: function()
+    {
+    },
+
+    getProfileHeaders: function(callId)
+    {
+        WebInspector.didGetProfileHeaders(callId, []);
+    },
+
+    getProfile: function(callId, uid)
+    {
+        if (WebInspector.__fullProfiles &amp;&amp; (uid in WebInspector.__fullProfiles))
+        {
+            WebInspector.didGetProfile(callId, WebInspector.__fullProfiles[uid]);
+        }
+    },
+
+    takeHeapSnapshot: function()
+    {
+    },
+
+    databaseTableNames: function(database)
+    {
+        return [];
+    },
+
+    stepIntoStatementInDebugger: function()
+    {
+    },
+
+    stepOutOfFunctionInDebugger: function()
+    {
+    },
+
+    stepOverStatementInDebugger: function()
+    {
+    },
+
+    setSetting: function(setting, value)
+    {
+        this._settings[setting] = value;
+    },
+
+    dispatchOnInjectedScript: function()
+    {
+    },
+
+    releaseWrapperObjectGroup: function()
+    {
+    },
+
+    setting: function(setting)
+    {
+        return this._settings[setting];
+    }
+}
+
+InspectorBackend = new WebInspector.InspectorBackendStub();
+
+}
</ins></span></pre></div>
<a id="trunkWebCoreinspectorfrontendInspectorControllerStubjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/InspectorControllerStub.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/InspectorControllerStub.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/InspectorControllerStub.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -1,296 +0,0 @@
</span><del>-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-if (!window.InspectorController) {
-
-WebInspector.InspectorControllerStub = function()
-{
-    this._searchingForNode = false;
-    this._windowVisible = true;
-    this._attachedWindowHeight = 0;
-    this._debuggerEnabled = true;
-    this._profilerEnabled = true;
-    this._resourceTrackingEnabled = false;
-    this._timelineEnabled = false;
-    this._settings = {};
-}
-
-WebInspector.InspectorControllerStub.prototype = {
-    wrapCallback: function(func)
-    {
-        return func;
-    },
-
-    isWindowVisible: function()
-    {
-        return this._windowVisible;
-    },
-
-    platform: function()
-    {
-        return &quot;mac-leopard&quot;;
-    },
-
-    port: function()
-    {
-        return &quot;unknown&quot;;
-    },
-
-
-    closeWindow: function()
-    {
-        this._windowVisible = false;
-    },
-
-    attach: function()
-    {
-    },
-
-    detach: function()
-    {
-    },
-
-    storeLastActivePanel: function(panel)
-    {
-    },
-
-    clearMessages: function()
-    {
-    },
-
-    searchingForNode: function()
-    {
-        return this._searchingForNode;
-    },
-
-    search: function(sourceRow, query)
-    {
-    },
-
-    toggleNodeSearch: function()
-    {
-        this._searchingForNode = !this._searchingForNode;
-    },
-
-    setAttachedWindowHeight: function(height)
-    {
-    },
-
-    moveByUnrestricted: function(x, y)
-    {
-    },
-
-
-    addResourceSourceToFrame: function(identifier, element)
-    {
-    },
-
-    addSourceToFrame: function(mimeType, source, element)
-    {
-        return false;
-    },
-
-    getResourceDocumentNode: function(identifier)
-    {
-        return undefined;
-    },
-
-    highlightDOMNode: function(node)
-    {
-    },
-
-    hideDOMNodeHighlight: function()
-    {
-    },
-
-    inspectedWindow: function()
-    {
-        return window;
-    },
-
-    loaded: function()
-    {
-    },
-
-    localizedStringsURL: function()
-    {
-        return undefined;
-    },
-
-    windowUnloading: function()
-    {
-        return false;
-    },
-
-    hiddenPanels: function()
-    {
-        return &quot;&quot;;
-    },
-
-    debuggerEnabled: function()
-    {
-        return this._debuggerEnabled;
-    },
-
-    enableResourceTracking: function()
-    {
-        this._resourceTrackingEnabled = true;
-        WebInspector.resourceTrackingWasEnabled();
-    },
-
-    disableResourceTracking: function()
-    {
-        this._resourceTrackingEnabled = false;
-        WebInspector.resourceTrackingWasDisabled();
-    },
-
-    resourceTrackingEnabled: function()
-    {
-        return this._resourceTrackingEnabled;
-    },
-
-    enableDebugger: function()
-    {
-        this._debuggerEnabled = true;
-    },
-
-    disableDebugger: function()
-    {
-        this._debuggerEnabled = false;
-    },
-
-    addBreakpoint: function(sourceID, line, condition)
-    {
-    },
-
-    removeBreakpoint: function(sourceID, line)
-    {
-    },
-
-    updateBreakpoint: function(sourceID, line, condition)
-    {
-    },
-
-    pauseInDebugger: function()
-    {
-    },
-
-    pauseOnExceptions: function()
-    {
-        return false;
-    },
-
-    setPauseOnExceptions: function(value)
-    {
-    },
-
-    resumeDebugger: function()
-    {
-    },
-
-    profilerEnabled: function()
-    {
-        return true;
-    },
-
-    enableProfiler: function()
-    {
-        this._profilerEnabled = true;
-    },
-
-    disableProfiler: function()
-    {
-        this._profilerEnabled = false;
-    },
-
-    startProfiling: function()
-    {
-    },
-
-    stopProfiling: function()
-    {
-    },
-
-    getProfileHeaders: function(callId)
-    {
-        WebInspector.didGetProfileHeaders(callId, []);
-    },
-
-    getProfile: function(callId, uid)
-    {
-        if (WebInspector.__fullProfiles &amp;&amp; (uid in WebInspector.__fullProfiles))
-        {
-            WebInspector.didGetProfile(callId, WebInspector.__fullProfiles[uid]);
-        }
-    },
-
-    takeHeapSnapshot: function()
-    {
-    },
-
-    databaseTableNames: function(database)
-    {
-        return [];
-    },
-
-    stepIntoStatementInDebugger: function()
-    {
-    },
-
-    stepOutOfFunctionInDebugger: function()
-    {
-    },
-
-    stepOverStatementInDebugger: function()
-    {
-    },
-
-    setSetting: function(setting, value)
-    {
-        this._settings[setting] = value;
-    },
-
-    dispatchOnInjectedScript: function()
-    {
-    },
-
-    releaseWrapperObjectGroup: function()
-    {
-    },
-
-    setting: function(setting)
-    {
-        return this._settings[setting];
-    }
-}
-
-window.InspectorController = new WebInspector.InspectorControllerStub();
-
-}
</del></span></pre></div>
<a id="trunkWebCoreinspectorfrontendInspectorFrontendHostStubjsfromrev51527trunkWebCoreinspectorfrontendTestControllerjs"></a>
<div class="copfile"><h4>Copied: trunk/WebCore/inspector/front-end/InspectorFrontendHostStub.js (from rev 51527, trunk/WebCore/inspector/front-end/TestController.js) (0 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/InspectorFrontendHostStub.js                                (rev 0)
+++ trunk/WebCore/inspector/front-end/InspectorFrontendHostStub.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -0,0 +1,111 @@
</span><ins>+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+if (!window.InspectorFrontendHost) {
+
+WebInspector.InspectorFrontendHostStub = function()
+{
+    this._attachedWindowHeight = 0;
+    this._settings = {};
+}
+
+WebInspector.InspectorFrontendHostStub.prototype = {
+    platform: function()
+    {
+        return &quot;mac-leopard&quot;;
+    },
+
+    port: function()
+    {
+        return &quot;unknown&quot;;
+    },
+
+    closeWindow: function()
+    {
+        this._windowVisible = false;
+    },
+
+    attach: function()
+    {
+    },
+
+    detach: function()
+    {
+    },
+
+    search: function(sourceRow, query)
+    {
+    },
+
+    setAttachedWindowHeight: function(height)
+    {
+    },
+
+    moveWindowBy: function(x, y)
+    {
+    },
+
+    addResourceSourceToFrame: function(identifier, element)
+    {
+    },
+
+    addSourceToFrame: function(mimeType, source, element)
+    {
+        return false;
+    },
+
+    loaded: function()
+    {
+    },
+
+    localizedStringsURL: function()
+    {
+        return undefined;
+    },
+
+    hiddenPanels: function()
+    {
+        return &quot;&quot;;
+    },
+
+    setSetting: function(setting, value)
+    {
+        this._settings[setting] = value;
+    },
+
+    setting: function(setting)
+    {
+        return this._settings[setting];
+    }
+}
+
+InspectorFrontendHost = new WebInspector.InspectorFrontendHostStub();
+
+}
</ins></span></pre></div>
<a id="trunkWebCoreinspectorfrontendProfileViewjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ProfileView.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ProfileView.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ProfileView.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var callId = WebInspector.Callback.wrap(profileCallback);
</span><del>-    InspectorController.getProfile(callId, this.profile.uid);
</del><ins>+    InspectorBackend.getProfile(callId, this.profile.uid);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebInspector.CPUProfileView.prototype = {
</span><span class="lines">@@ -594,9 +594,9 @@
</span><span class="cx">         this._recording = !this._recording;
</span><span class="cx"> 
</span><span class="cx">         if (this._recording)
</span><del>-            InspectorController.startProfiling();
</del><ins>+            InspectorBackend.startProfiling();
</ins><span class="cx">         else
</span><del>-            InspectorController.stopProfiling();
</del><ins>+            InspectorBackend.stopProfiling();
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     setRecordingProfile: function(isProfiling)
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendProfilesPaneljs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ProfilesPanel.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ProfilesPanel.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ProfilesPanel.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -400,7 +400,7 @@
</span><span class="cx">     _updateInterface: function()
</span><span class="cx">     {
</span><span class="cx">         // FIXME: Replace ProfileType-specific button visibility changes by a single ProfileType-agnostic &quot;combo-button&quot; visibility change.
</span><del>-        if (InspectorController.profilerEnabled()) {
</del><ins>+        if (InspectorBackend.profilerEnabled()) {
</ins><span class="cx">             this.enableToggleButton.title = WebInspector.UIString(&quot;Profiling enabled. Click to disable.&quot;);
</span><span class="cx">             this.enableToggleButton.toggled = true;
</span><span class="cx">             for (var typeId in this._profileTypeButtonsByIdMap)
</span><span class="lines">@@ -419,17 +419,17 @@
</span><span class="cx"> 
</span><span class="cx">     _enableProfiling: function()
</span><span class="cx">     {
</span><del>-        if (InspectorController.profilerEnabled())
</del><ins>+        if (InspectorBackend.profilerEnabled())
</ins><span class="cx">             return;
</span><span class="cx">         this._toggleProfiling(this.panelEnablerView.alwaysEnabled);
</span><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _toggleProfiling: function(optionalAlways)
</span><span class="cx">     {
</span><del>-        if (InspectorController.profilerEnabled())
-            InspectorController.disableProfiler(true);
</del><ins>+        if (InspectorBackend.profilerEnabled())
+            InspectorBackend.disableProfiler(true);
</ins><span class="cx">         else
</span><del>-            InspectorController.enableProfiler(!!optionalAlways);
</del><ins>+            InspectorBackend.enableProfiler(!!optionalAlways);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _populateProfiles: function()
</span><span class="lines">@@ -449,7 +449,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         var callId = WebInspector.Callback.wrap(populateCallback);
</span><del>-        InspectorController.getProfileHeaders(callId);
</del><ins>+        InspectorBackend.getProfileHeaders(callId);
</ins><span class="cx"> 
</span><span class="cx">         delete this._shouldPopulateProfiles;
</span><span class="cx">     },
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendResourcesPaneljs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ResourcesPanel.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ResourcesPanel.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ResourcesPanel.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx"> 
</span><span class="cx">         this.summaryBar.reset();
</span><span class="cx"> 
</span><del>-        if (InspectorController.resourceTrackingEnabled()) {
</del><ins>+        if (InspectorBackend.resourceTrackingEnabled()) {
</ins><span class="cx">             this.enableToggleButton.title = WebInspector.UIString(&quot;Resource tracking enabled. Click to disable.&quot;);
</span><span class="cx">             this.enableToggleButton.toggled = true;
</span><span class="cx">             this.largerResourcesButton.visible = true;
</span><span class="lines">@@ -616,7 +616,7 @@
</span><span class="cx"> 
</span><span class="cx">         this.itemsTreeElement.smallChildren = !this.itemsTreeElement.smallChildren;
</span><span class="cx">         Preferences.resourcesLargeRows = !Preferences.resourcesLargeRows;
</span><del>-        InspectorController.setSetting(&quot;resources-large-rows&quot;, Preferences.resourcesLargeRows);
</del><ins>+        InspectorFrontendHost.setSetting(&quot;resources-large-rows&quot;, Preferences.resourcesLargeRows);
</ins><span class="cx"> 
</span><span class="cx">         if (this.itemsTreeElement.smallChildren) {
</span><span class="cx">             this.itemsGraphsElement.addStyleClass(&quot;small&quot;);
</span><span class="lines">@@ -675,21 +675,21 @@
</span><span class="cx"> 
</span><span class="cx">     _enableResourceTracking: function()
</span><span class="cx">     {
</span><del>-        if (InspectorController.resourceTrackingEnabled())
</del><ins>+        if (InspectorBackend.resourceTrackingEnabled())
</ins><span class="cx">             return;
</span><span class="cx">         this._toggleResourceTracking(this.panelEnablerView.alwaysEnabled);
</span><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _toggleResourceTracking: function(optionalAlways)
</span><span class="cx">     {
</span><del>-        if (InspectorController.resourceTrackingEnabled()) {
</del><ins>+        if (InspectorBackend.resourceTrackingEnabled()) {
</ins><span class="cx">             this.largerResourcesButton.visible = false;
</span><span class="cx">             this.sortingSelectElement.visible = false;
</span><del>-            InspectorController.disableResourceTracking(true);
</del><ins>+            InspectorBackend.disableResourceTracking(true);
</ins><span class="cx">         } else {
</span><span class="cx">             this.largerResourcesButton.visible = true;
</span><span class="cx">             this.sortingSelectElement.visible = true;
</span><del>-            InspectorController.enableResourceTracking(!!optionalAlways);
</del><ins>+            InspectorBackend.enableResourceTracking(!!optionalAlways);
</ins><span class="cx">         }
</span><span class="cx">     },
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendScriptViewjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ScriptView.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ScriptView.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ScriptView.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx">         this.attach();
</span><span class="cx"> 
</span><del>-        if (!InspectorController.addSourceToFrame(&quot;text/javascript&quot;, this.script.source, this.sourceFrame.element))
</del><ins>+        if (!InspectorFrontendHost.addSourceToFrame(&quot;text/javascript&quot;, this.script.source, this.sourceFrame.element))
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         delete this._frameNeedsSetup;
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendScriptsPaneljs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/ScriptsPanel.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/ScriptsPanel.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/ScriptsPanel.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -235,7 +235,7 @@
</span><span class="cx">             view.visible = false;
</span><span class="cx">         }
</span><span class="cx">         if (this._attachDebuggerWhenShown) {
</span><del>-            InspectorController.enableDebugger(false);
</del><ins>+            InspectorBackend.enableDebugger(false);
</ins><span class="cx">             delete this._attachDebuggerWhenShown;
</span><span class="cx">         }
</span><span class="cx">     },
</span><span class="lines">@@ -293,7 +293,7 @@
</span><span class="cx">                     this.addBreakpoint(breakpoint);
</span><span class="cx">                     
</span><span class="cx">                     if (breakpoint.enabled)
</span><del>-                        InspectorController.addBreakpoint(breakpoint.sourceID, breakpoint.line, breakpoint.condition);
</del><ins>+                        InspectorBackend.addBreakpoint(breakpoint.sourceID, breakpoint.line, breakpoint.condition);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx">     attachDebuggerWhenShown: function()
</span><span class="cx">     {
</span><span class="cx">         if (this.element.parentElement) {
</span><del>-            InspectorController.enableDebugger(false);
</del><ins>+            InspectorBackend.enableDebugger(false);
</ins><span class="cx">         } else {
</span><span class="cx">             this._attachDebuggerWhenShown = true;
</span><span class="cx">         }
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx">         delete this.currentQuery;
</span><span class="cx">         this.searchCanceled();
</span><span class="cx"> 
</span><del>-        if (!InspectorController.debuggerEnabled()) {
</del><ins>+        if (!InspectorBackend.debuggerEnabled()) {
</ins><span class="cx">             this._paused = false;
</span><span class="cx">             this._waitingToPause = false;
</span><span class="cx">             this._stepping = false;
</span><span class="lines">@@ -495,7 +495,7 @@
</span><span class="cx"> 
</span><span class="cx">     canShowResource: function(resource)
</span><span class="cx">     {
</span><del>-        return resource &amp;&amp; resource.scripts.length &amp;&amp; InspectorController.debuggerEnabled();
</del><ins>+        return resource &amp;&amp; resource.scripts.length &amp;&amp; InspectorBackend.debuggerEnabled();
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     showScript: function(script, line)
</span><span class="lines">@@ -606,7 +606,7 @@
</span><span class="cx"> 
</span><span class="cx">         var url = scriptOrResource.url || scriptOrResource.sourceURL;
</span><span class="cx">         if (url &amp;&amp; !options.initialLoad)
</span><del>-            InspectorController.setSetting(&quot;LastViewedScriptFile&quot;, url);
</del><ins>+            InspectorFrontendHost.setSetting(&quot;LastViewedScriptFile&quot;, url);
</ins><span class="cx"> 
</span><span class="cx">         if (!options.fromBackForwardAction) {
</span><span class="cx">             var oldIndex = this._currentBackForwardIndex;
</span><span class="lines">@@ -709,7 +709,7 @@
</span><span class="cx">         else {
</span><span class="cx">             // if not first item, check to see if this was the last viewed
</span><span class="cx">             var url = option.representedObject.url || option.representedObject.sourceURL;
</span><del>-            var lastURL = InspectorController.setting(&quot;LastViewedScriptFile&quot;);
</del><ins>+            var lastURL = InspectorFrontendHost.setting(&quot;LastViewedScriptFile&quot;);
</ins><span class="cx">             if (url &amp;&amp; url === lastURL)
</span><span class="cx">                 this._showScriptOrResource(option.representedObject, {initialLoad: true});
</span><span class="cx">         }
</span><span class="lines">@@ -781,7 +781,7 @@
</span><span class="cx"> 
</span><span class="cx">     _updatePauseOnExceptionsButton: function()
</span><span class="cx">     {
</span><del>-        if (InspectorController.pauseOnExceptions()) {
</del><ins>+        if (InspectorBackend.pauseOnExceptions()) {
</ins><span class="cx">             this.pauseOnExceptionButton.title = WebInspector.UIString(&quot;Don't pause on exceptions.&quot;);
</span><span class="cx">             this.pauseOnExceptionButton.toggled = true;
</span><span class="cx">         } else {
</span><span class="lines">@@ -792,7 +792,7 @@
</span><span class="cx"> 
</span><span class="cx">     _updateDebuggerButtons: function()
</span><span class="cx">     {
</span><del>-        if (InspectorController.debuggerEnabled()) {
</del><ins>+        if (InspectorBackend.debuggerEnabled()) {
</ins><span class="cx">             this.enableToggleButton.title = WebInspector.UIString(&quot;Debugging enabled. Click to disable.&quot;);
</span><span class="cx">             this.enableToggleButton.toggled = true;
</span><span class="cx">             this.pauseOnExceptionButton.visible = true;
</span><span class="lines">@@ -871,7 +871,7 @@
</span><span class="cx"> 
</span><span class="cx">     _enableDebugging: function()
</span><span class="cx">     {
</span><del>-        if (InspectorController.debuggerEnabled())
</del><ins>+        if (InspectorBackend.debuggerEnabled())
</ins><span class="cx">             return;
</span><span class="cx">         this._toggleDebugging(this.panelEnablerView.alwaysEnabled);
</span><span class="cx">     },
</span><span class="lines">@@ -882,15 +882,15 @@
</span><span class="cx">         this._waitingToPause = false;
</span><span class="cx">         this._stepping = false;
</span><span class="cx"> 
</span><del>-        if (InspectorController.debuggerEnabled())
-            InspectorController.disableDebugger(true);
</del><ins>+        if (InspectorBackend.debuggerEnabled())
+            InspectorBackend.disableDebugger(true);
</ins><span class="cx">         else
</span><del>-            InspectorController.enableDebugger(!!optionalAlways);
</del><ins>+            InspectorBackend.enableDebugger(!!optionalAlways);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _togglePauseOnExceptions: function()
</span><span class="cx">     {
</span><del>-        InspectorController.setPauseOnExceptions(!InspectorController.pauseOnExceptions());
</del><ins>+        InspectorBackend.setPauseOnExceptions(!InspectorBackend.pauseOnExceptions());
</ins><span class="cx">         this._updatePauseOnExceptionsButton();
</span><span class="cx">     },
</span><span class="cx"> 
</span><span class="lines">@@ -899,11 +899,11 @@
</span><span class="cx">         if (this._paused) {
</span><span class="cx">             this._paused = false;
</span><span class="cx">             this._waitingToPause = false;
</span><del>-            InspectorController.resumeDebugger();
</del><ins>+            InspectorBackend.resumeDebugger();
</ins><span class="cx">         } else {
</span><span class="cx">             this._stepping = false;
</span><span class="cx">             this._waitingToPause = true;
</span><del>-            InspectorController.pauseInDebugger();
</del><ins>+            InspectorBackend.pauseInDebugger();
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         this._clearInterface();
</span><span class="lines">@@ -916,7 +916,7 @@
</span><span class="cx"> 
</span><span class="cx">         this._clearInterface();
</span><span class="cx"> 
</span><del>-        InspectorController.stepOverStatementInDebugger();
</del><ins>+        InspectorBackend.stepOverStatementInDebugger();
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _stepIntoClicked: function()
</span><span class="lines">@@ -926,7 +926,7 @@
</span><span class="cx"> 
</span><span class="cx">         this._clearInterface();
</span><span class="cx"> 
</span><del>-        InspectorController.stepIntoStatementInDebugger();
</del><ins>+        InspectorBackend.stepIntoStatementInDebugger();
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _stepOutClicked: function()
</span><span class="lines">@@ -936,7 +936,7 @@
</span><span class="cx"> 
</span><span class="cx">         this._clearInterface();
</span><span class="cx"> 
</span><del>-        InspectorController.stepOutOfFunctionInDebugger();
</del><ins>+        InspectorBackend.stepOutOfFunctionInDebugger();
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendSourceViewjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/SourceView.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/SourceView.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/SourceView.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx">         delete this._frameNeedsSetup;
</span><span class="cx">         this.sourceFrame.addEventListener(&quot;content loaded&quot;, this._contentLoaded, this);
</span><del>-        InspectorController.addResourceSourceToFrame(this.resource.identifier, this.sourceFrame.element);
</del><ins>+        InspectorFrontendHost.addResourceSourceToFrame(this.resource.identifier, this.sourceFrame.element);
</ins><span class="cx">     },
</span><span class="cx">     
</span><span class="cx">     _contentLoaded: function()
</span><span class="lines">@@ -180,13 +180,13 @@
</span><span class="cx">         {
</span><span class="cx">             if (isNaN(lineToSearch)) {
</span><span class="cx">                 // Search the whole document since there was no line to search.
</span><del>-                this._searchResults = (InspectorController.search(this.sourceFrame.element.contentDocument, query) || []);
</del><ins>+                this._searchResults = (InspectorFrontendHost.search(this.sourceFrame.element.contentDocument, query) || []);
</ins><span class="cx">             } else {
</span><span class="cx">                 var sourceRow = this.sourceFrame.sourceRow(lineToSearch);
</span><span class="cx">                 if (sourceRow) {
</span><span class="cx">                     if (filterlessQuery) {
</span><span class="cx">                         // There is still a query string, so search for that string in the line.
</span><del>-                        this._searchResults = (InspectorController.search(sourceRow, filterlessQuery) || []);
</del><ins>+                        this._searchResults = (InspectorFrontendHost.search(sourceRow, filterlessQuery) || []);
</ins><span class="cx">                     } else {
</span><span class="cx">                         // Match the whole line, since there was no remaining query string to match.
</span><span class="cx">                         var rowRange = this.sourceFrame.element.contentDocument.createRange();
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 // Attempt to search for the whole query, just incase it matches a color like &quot;#333&quot;.
</span><del>-                var wholeQueryMatches = InspectorController.search(this.sourceFrame.element.contentDocument, query);
</del><ins>+                var wholeQueryMatches = InspectorFrontendHost.search(this.sourceFrame.element.contentDocument, query);
</ins><span class="cx">                 if (wholeQueryMatches)
</span><span class="cx">                     this._searchResults = this._searchResults.concat(wholeQueryMatches);
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendStylesSidebarPanejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/StylesSidebarPane.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/StylesSidebarPane.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/StylesSidebarPane.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx">         var selectedOption = this.settingsSelectElement[this.settingsSelectElement.selectedIndex];
</span><span class="cx">         Preferences.colorFormat = selectedOption.value;
</span><span class="cx"> 
</span><del>-        InspectorController.setSetting(&quot;color-format&quot;, Preferences.colorFormat);
</del><ins>+        InspectorFrontendHost.setSetting(&quot;color-format&quot;, Preferences.colorFormat);
</ins><span class="cx"> 
</span><span class="cx">         for (var i = 0; i &lt; this.sections.length; ++i)
</span><span class="cx">             this.sections[i].update(true);
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendTestControllerjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/TestController.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/TestController.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/TestController.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     notifyDone: function(result)
</span><span class="cx">     {
</span><span class="cx">         var message = typeof result === &quot;undefined&quot; ? &quot;\&quot;&lt;undefined&gt;\&quot;&quot; : JSON.stringify(result);
</span><del>-        InspectorController.didEvaluateForTestInFrontend(this._callId, message);
</del><ins>+        InspectorBackend.didEvaluateForTestInFrontend(this._callId, message);
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     runAfterPendingDispatches: function(callback)
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendTimelinePaneljs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/TimelinePanel.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/TimelinePanel.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/TimelinePanel.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -119,9 +119,9 @@
</span><span class="cx">     _toggleTimelineButtonClicked: function()
</span><span class="cx">     {
</span><span class="cx">         if (this.toggleTimelineButton.toggled)
</span><del>-            InspectorController.stopTimelineProfiler();
</del><ins>+            InspectorBackend.stopTimelineProfiler();
</ins><span class="cx">         else
</span><del>-            InspectorController.startTimelineProfiler();
</del><ins>+            InspectorBackend.startTimelineProfiler();
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     timelineWasStarted: function()
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendWatchExpressionsSidebarPanejs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        InspectorController.releaseWrapperObjectGroup(this._watchObjectGroupId)
</del><ins>+        InspectorBackend.releaseWrapperObjectGroup(this._watchObjectGroupId)
</ins><span class="cx">         var properties = [];
</span><span class="cx"> 
</span><span class="cx">         // Count the properties, so we known when to call this.updateProperties()
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx"> 
</span><span class="cx">     loadSavedExpressions: function()
</span><span class="cx">     {
</span><del>-        var json = InspectorController.setting(&quot;watchExpressions&quot;);
</del><ins>+        var json = InspectorFrontendHost.setting(&quot;watchExpressions&quot;);
</ins><span class="cx">         if (!json)
</span><span class="cx">             return [];
</span><span class="cx"> 
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx">                 toSave.push(this.watchExpressions[i]);
</span><span class="cx"> 
</span><span class="cx">         var json = JSON.stringify({expressions: toSave});
</span><del>-        InspectorController.setSetting(&quot;watchExpressions&quot;, json);
</del><ins>+        InspectorFrontendHost.setSetting(&quot;watchExpressions&quot;, json);
</ins><span class="cx"> 
</span><span class="cx">         return toSave.length;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendWebKitqrc"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/WebKit.qrc (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/WebKit.qrc        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/WebKit.qrc        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -28,7 +28,8 @@
</span><span class="cx">     &lt;file&gt;InjectedScript.js&lt;/file&gt;
</span><span class="cx">     &lt;file&gt;InjectedScriptAccess.js&lt;/file&gt;
</span><span class="cx">     &lt;file&gt;inspector.js&lt;/file&gt;
</span><del>-    &lt;file&gt;InspectorControllerStub.js&lt;/file&gt;
</del><ins>+    &lt;file&gt;InspectorBackendStub.js&lt;/file&gt;
+    &lt;file&gt;InspectorFrontendHostStub.js&lt;/file&gt;
</ins><span class="cx">     &lt;file&gt;KeyboardShortcut.js&lt;/file&gt;
</span><span class="cx">     &lt;file&gt;MetricsSidebarPane.js&lt;/file&gt;
</span><span class="cx">     &lt;file&gt;Object.js&lt;/file&gt;
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendinspectorhtml"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/inspector.html (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/inspector.html        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/inspector.html        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -34,7 +34,8 @@
</span><span class="cx">     &lt;script type=&quot;text/javascript&quot; src=&quot;utilities.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script type=&quot;text/javascript&quot; src=&quot;treeoutline.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script type=&quot;text/javascript&quot; src=&quot;inspector.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;script type=&quot;text/javascript&quot; src=&quot;InspectorControllerStub.js&quot;&gt;&lt;/script&gt;
</del><ins>+    &lt;script type=&quot;text/javascript&quot; src=&quot;InspectorBackendStub.js&quot;&gt;&lt;/script&gt;
+    &lt;script type=&quot;text/javascript&quot; src=&quot;InspectorFrontendHostStub.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx">     &lt;script type=&quot;text/javascript&quot; src=&quot;Object.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script type=&quot;text/javascript&quot; src=&quot;KeyboardShortcut.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script type=&quot;text/javascript&quot; src=&quot;TextPrompt.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkWebCoreinspectorfrontendinspectorjs"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/inspector/front-end/inspector.js (51527 => 51528)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/inspector/front-end/inspector.js        2009-12-01 07:37:14 UTC (rev 51527)
+++ trunk/WebCore/inspector/front-end/inspector.js        2009-12-01 08:07:16 UTC (rev 51528)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     get platform()
</span><span class="cx">     {
</span><span class="cx">         if (!(&quot;_platform&quot; in this))
</span><del>-            this._platform = InspectorController.platform();
</del><ins>+            this._platform = InspectorFrontendHost.platform();
</ins><span class="cx"> 
</span><span class="cx">         return this._platform;
</span><span class="cx">     },
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">     get port()
</span><span class="cx">     {
</span><span class="cx">         if (!(&quot;_port&quot; in this))
</span><del>-            this._port = InspectorController.port();
</del><ins>+            this._port = InspectorFrontendHost.port();
</ins><span class="cx"> 
</span><span class="cx">         return this._port;
</span><span class="cx">     },
</span><span class="lines">@@ -165,13 +165,13 @@
</span><span class="cx"> 
</span><span class="cx">         for (var panelName in WebInspector.panels) {
</span><span class="cx">             if (WebInspector.panels[panelName] == x)
</span><del>-                InspectorController.storeLastActivePanel(panelName);
</del><ins>+                InspectorBackend.storeLastActivePanel(panelName);
</ins><span class="cx">         }
</span><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _createPanels: function()
</span><span class="cx">     {
</span><del>-        var hiddenPanels = (InspectorController.hiddenPanels() || &quot;&quot;).split(',');
</del><ins>+        var hiddenPanels = (InspectorFrontendHost.hiddenPanels() || &quot;&quot;).split(',');
</ins><span class="cx">         if (hiddenPanels.indexOf(&quot;elements&quot;) === -1)
</span><span class="cx">             this.panels.elements = new WebInspector.ElementsPanel();
</span><span class="cx">         if (hiddenPanels.indexOf(&quot;resources&quot;) === -1)
</span><span class="lines">@@ -193,15 +193,15 @@
</span><span class="cx"> 
</span><span class="cx">     _loadPreferences: function()
</span><span class="cx">     {
</span><del>-        var colorFormat = InspectorController.setting(&quot;color-format&quot;);
</del><ins>+        var colorFormat = InspectorFrontendHost.setting(&quot;color-format&quot;);
</ins><span class="cx">         if (colorFormat)
</span><span class="cx">             Preferences.colorFormat = colorFormat;
</span><span class="cx"> 
</span><del>-        var eventListenersFilter = InspectorController.setting(&quot;event-listeners-filter&quot;);
</del><ins>+        var eventListenersFilter = InspectorFrontendHost.setting(&quot;event-listeners-filter&quot;);
</ins><span class="cx">         if (eventListenersFilter)
</span><span class="cx">             Preferences.eventListenersFilter = eventListenersFilter;
</span><span class="cx"> 
</span><del>-        var resourcesLargeRows = InspectorController.setting(&quot;resources-large-rows&quot;);
</del><ins>+        var resourcesLargeRows = InspectorFrontendHost.setting(&quot;resources-large-rows&quot;);
</ins><span class="cx">         if (typeof resourcesLargeRows !== &quot;undefined&quot;)
</span><span class="cx">             Preferences.resourcesLargeRows = resourcesLargeRows;
</span><span class="cx">     },
</span><span class="lines">@@ -224,12 +224,12 @@
</span><span class="cx">         var body = document.body;
</span><span class="cx"> 
</span><span class="cx">         if (x) {
</span><del>-            InspectorController.attach();
</del><ins>+            InspectorFrontendHost.attach();
</ins><span class="cx">             body.removeStyleClass(&quot;detached&quot;);
</span><span class="cx">             body.addStyleClass(&quot;attached&quot;);
</span><span class="cx">             dockToggleButton.title = WebInspector.UIString(&quot;Undock into separate window.&quot;);
</span><span class="cx">         } else {
</span><del>-            InspectorController.detach();
</del><ins>+            InspectorFrontendHost.detach();
</ins><span class="cx">             body.removeStyleClass(&quot;attached&quot;);
</span><span class="cx">             body.addStyleClass(&quot;detached&quot;);
</span><span class="cx">             dockToggleButton.title = WebInspector.UIString(&quot;Dock to main window.&quot;);
</span><span class="lines">@@ -398,10 +398,10 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (this._hoveredDOMNode) {
</span><del>-            InspectorController.highlightDOMNode(this._hoveredDOMNode.id);
</del><ins>+            InspectorBackend.highlightDOMNode(this._hoveredDOMNode.id);
</ins><span class="cx">             this.showingDOMNodeHighlight = true;
</span><span class="cx">         } else {
</span><del>-            InspectorController.hideDOMNodeHighlight();
</del><ins>+            InspectorBackend.hideDOMNodeHighlight();
</ins><span class="cx">             this.showingDOMNodeHighlight = false;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -508,12 +508,12 @@
</span><span class="cx">     document.getElementById(&quot;close-button-left&quot;).addEventListener(&quot;click&quot;, this.close, true);
</span><span class="cx">     document.getElementById(&quot;close-button-right&quot;).addEventListener(&quot;click&quot;, this.close, true);
</span><span class="cx"> 
</span><del>-    InspectorController.loaded();
</del><ins>+    InspectorFrontendHost.loaded();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> var windowLoaded = function()
</span><span class="cx"> {
</span><del>-    var localizedStringsURL = InspectorController.localizedStringsURL();
</del><ins>+    var localizedStringsURL = InspectorFrontendHost.localizedStringsURL();
</ins><span class="cx">     if (localizedStringsURL) {
</span><span class="cx">         var localizedStringsScriptElement = document.createElement(&quot;script&quot;);
</span><span class="cx">         localizedStringsScriptElement.addEventListener(&quot;load&quot;, WebInspector.loaded.bind(WebInspector), false);
</span><span class="lines">@@ -546,7 +546,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebInspector.windowUnload = function(event)
</span><span class="cx"> {
</span><del>-    InspectorController.windowUnloading();
</del><ins>+    InspectorFrontendHost.windowUnloading();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebInspector.windowResize = function(event)
</span><span class="lines">@@ -586,7 +586,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebInspector.close = function(event)
</span><span class="cx"> {
</span><del>-    InspectorController.closeWindow();
</del><ins>+    InspectorFrontendHost.closeWindow();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebInspector.documentClick = function(event)
</span><span class="lines">@@ -909,14 +909,14 @@
</span><span class="cx">     if (WebInspector.attached) {
</span><span class="cx">         var height = window.innerHeight - (event.screenY - toolbar.lastScreenY);
</span><span class="cx"> 
</span><del>-        InspectorController.setAttachedWindowHeight(height);
</del><ins>+        InspectorFrontendHost.setAttachedWindowHeight(height);
</ins><span class="cx">     } else {
</span><span class="cx">         var x = event.screenX - toolbar.lastScreenX;
</span><span class="cx">         var y = event.screenY - toolbar.lastScreenY;
</span><span class="cx"> 
</span><span class="cx">         // We cannot call window.moveBy here because it restricts the movement
</span><span class="cx">         // of the window at the edges.
</span><del>-        InspectorController.moveByUnrestricted(x, y);
</del><ins>+        InspectorFrontendHost.moveWindowBy(x, y);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     toolbar.lastScreenX = event.screenX;
</span><span class="lines">@@ -1640,7 +1640,7 @@
</span><span class="cx">         string = window.localizedStrings[string];
</span><span class="cx">     else {
</span><span class="cx">         if (!(string in this.missingLocalizedStrings)) {
</span><del>-            if (!WebInspector.InspectorControllerStub)
</del><ins>+            if (!WebInspector.InspectorBackendStub)
</ins><span class="cx">                 console.error(&quot;Localized string \&quot;&quot; + string + &quot;\&quot; not found.&quot;);
</span><span class="cx">             this.missingLocalizedStrings[string] = true;
</span><span class="cx">         }
</span></span></pre>
</div>
</div>

</body>
</html>