| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 runLoop(frame); | 171 runLoop(frame); |
| 172 } | 172 } |
| 173 | 173 |
| 174 void runLoop(WebLocalFrameImpl* frame) | 174 void runLoop(WebLocalFrameImpl* frame) |
| 175 { | 175 { |
| 176 // 0. Flush pending frontend messages. | 176 // 0. Flush pending frontend messages. |
| 177 WebDevToolsAgentImpl* agent = frame->devToolsAgentImpl(); | 177 WebDevToolsAgentImpl* agent = frame->devToolsAgentImpl(); |
| 178 agent->flushPendingProtocolNotifications(); | 178 agent->flushPendingProtocolNotifications(); |
| 179 | 179 |
| 180 Vector<WebViewImpl*> views; | 180 Vector<WebViewImpl*> views; |
| 181 WillBeHeapVector<RawPtrWillBeMember<WebFrameWidgetImpl>> widgets; | 181 HeapVector<Member<WebFrameWidgetImpl>> widgets; |
| 182 | 182 |
| 183 // 1. Disable input events. | 183 // 1. Disable input events. |
| 184 const HashSet<WebViewImpl*>& viewImpls = WebViewImpl::allInstances(); | 184 const HashSet<WebViewImpl*>& viewImpls = WebViewImpl::allInstances(); |
| 185 HashSet<WebViewImpl*>::const_iterator viewImplsEnd = viewImpls.end(); | 185 HashSet<WebViewImpl*>::const_iterator viewImplsEnd = viewImpls.end(); |
| 186 for (HashSet<WebViewImpl*>::const_iterator it = viewImpls.begin(); it !
= viewImplsEnd; ++it) { | 186 for (HashSet<WebViewImpl*>::const_iterator it = viewImpls.begin(); it !
= viewImplsEnd; ++it) { |
| 187 WebViewImpl* view = *it; | 187 WebViewImpl* view = *it; |
| 188 m_frozenViews.add(view); | 188 m_frozenViews.add(view); |
| 189 views.append(view); | 189 views.append(view); |
| 190 view->setIgnoreInputEvents(true); | 190 view->setIgnoreInputEvents(true); |
| 191 } | 191 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 211 // 5. Resume active objects | 211 // 5. Resume active objects |
| 212 WebView::didExitModalLoop(); | 212 WebView::didExitModalLoop(); |
| 213 | 213 |
| 214 // 6. Resume input events. | 214 // 6. Resume input events. |
| 215 for (Vector<WebViewImpl*>::iterator it = views.begin(); it != views.end(
); ++it) { | 215 for (Vector<WebViewImpl*>::iterator it = views.begin(); it != views.end(
); ++it) { |
| 216 if (m_frozenViews.contains(*it)) { | 216 if (m_frozenViews.contains(*it)) { |
| 217 // The view was not closed during the dispatch. | 217 // The view was not closed during the dispatch. |
| 218 (*it)->setIgnoreInputEvents(false); | 218 (*it)->setIgnoreInputEvents(false); |
| 219 } | 219 } |
| 220 } | 220 } |
| 221 for (WillBeHeapVector<RawPtrWillBeMember<WebFrameWidgetImpl>>::iterator
it = widgets.begin(); it != widgets.end(); ++it) { | 221 for (HeapVector<Member<WebFrameWidgetImpl>>::iterator it = widgets.begin
(); it != widgets.end(); ++it) { |
| 222 if (m_frozenWidgets.contains(*it)) { | 222 if (m_frozenWidgets.contains(*it)) { |
| 223 // The widget was not closed during the dispatch. | 223 // The widget was not closed during the dispatch. |
| 224 (*it)->setIgnoreInputEvents(false); | 224 (*it)->setIgnoreInputEvents(false); |
| 225 } | 225 } |
| 226 } | 226 } |
| 227 | 227 |
| 228 // 7. Notify embedder about resuming. | 228 // 7. Notify embedder about resuming. |
| 229 agent->client()->didExitDebugLoop(); | 229 agent->client()->didExitDebugLoop(); |
| 230 | 230 |
| 231 // 8. All views have been resumed, clear the set. | 231 // 8. All views have been resumed, clear the set. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 258 OwnPtr<WebDevToolsAgentClient::WebKitClientMessageLoop> m_messageLoop; | 258 OwnPtr<WebDevToolsAgentClient::WebKitClientMessageLoop> m_messageLoop; |
| 259 typedef HashSet<WebViewImpl*> FrozenViewsSet; | 259 typedef HashSet<WebViewImpl*> FrozenViewsSet; |
| 260 FrozenViewsSet m_frozenViews; | 260 FrozenViewsSet m_frozenViews; |
| 261 WebFrameWidgetsSet m_frozenWidgets; | 261 WebFrameWidgetsSet m_frozenWidgets; |
| 262 static ClientMessageLoopAdapter* s_instance; | 262 static ClientMessageLoopAdapter* s_instance; |
| 263 }; | 263 }; |
| 264 | 264 |
| 265 ClientMessageLoopAdapter* ClientMessageLoopAdapter::s_instance = nullptr; | 265 ClientMessageLoopAdapter* ClientMessageLoopAdapter::s_instance = nullptr; |
| 266 | 266 |
| 267 // static | 267 // static |
| 268 PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
alFrameImpl* frame, WebDevToolsAgentClient* client) | 268 RawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* fra
me, WebDevToolsAgentClient* client) |
| 269 { | 269 { |
| 270 WebViewImpl* view = frame->viewImpl(); | 270 WebViewImpl* view = frame->viewImpl(); |
| 271 // TODO(dgozman): sometimes view->mainFrameImpl() does return null, even tho
ugh |frame| is meant to be main frame. | 271 // TODO(dgozman): sometimes view->mainFrameImpl() does return null, even tho
ugh |frame| is meant to be main frame. |
| 272 // See http://crbug.com/526162. | 272 // See http://crbug.com/526162. |
| 273 bool isMainFrame = view && !frame->parent(); | 273 bool isMainFrame = view && !frame->parent(); |
| 274 if (!isMainFrame) { | 274 if (!isMainFrame) { |
| 275 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, nu
llptr); | 275 WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, nu
llptr); |
| 276 if (frame->frameWidget()) | 276 if (frame->frameWidget()) |
| 277 agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget(
))->layerTreeView()); | 277 agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget(
))->layerTreeView()); |
| 278 return adoptPtrWillBeNoop(agent); | 278 return adoptPtrWillBeNoop(agent); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 290 agent->m_agents.append(InspectorAccessibilityAgent::create(view->page())); | 290 agent->m_agents.append(InspectorAccessibilityAgent::create(view->page())); |
| 291 agent->m_agents.append(InspectorDOMStorageAgent::create(view->page())); | 291 agent->m_agents.append(InspectorDOMStorageAgent::create(view->page())); |
| 292 agent->m_agents.append(InspectorCacheStorageAgent::create()); | 292 agent->m_agents.append(InspectorCacheStorageAgent::create()); |
| 293 agent->layerTreeViewChanged(view->layerTreeView()); | 293 agent->layerTreeViewChanged(view->layerTreeView()); |
| 294 return adoptPtrWillBeNoop(agent); | 294 return adoptPtrWillBeNoop(agent); |
| 295 } | 295 } |
| 296 | 296 |
| 297 WebDevToolsAgentImpl::WebDevToolsAgentImpl( | 297 WebDevToolsAgentImpl::WebDevToolsAgentImpl( |
| 298 WebLocalFrameImpl* webLocalFrameImpl, | 298 WebLocalFrameImpl* webLocalFrameImpl, |
| 299 WebDevToolsAgentClient* client, | 299 WebDevToolsAgentClient* client, |
| 300 PassOwnPtrWillBeRawPtr<InspectorOverlay> overlay) | 300 RawPtr<InspectorOverlay> overlay) |
| 301 : m_client(client) | 301 : m_client(client) |
| 302 , m_webLocalFrameImpl(webLocalFrameImpl) | 302 , m_webLocalFrameImpl(webLocalFrameImpl) |
| 303 , m_attached(false) | 303 , m_attached(false) |
| 304 #if ENABLE(ASSERT) | 304 #if ENABLE(ASSERT) |
| 305 , m_hasBeenDisposed(false) | 305 , m_hasBeenDisposed(false) |
| 306 #endif | 306 #endif |
| 307 , m_instrumentingAgents(m_webLocalFrameImpl->frame()->instrumentingAgents()) | 307 , m_instrumentingAgents(m_webLocalFrameImpl->frame()->instrumentingAgents()) |
| 308 , m_resourceContentLoader(InspectorResourceContentLoader::create(m_webLocalF
rameImpl->frame())) | 308 , m_resourceContentLoader(InspectorResourceContentLoader::create(m_webLocalF
rameImpl->frame())) |
| 309 , m_overlay(overlay) | 309 , m_overlay(overlay) |
| 310 , m_inspectedFrames(InspectedFrames::create(m_webLocalFrameImpl->frame())) | 310 , m_inspectedFrames(InspectedFrames::create(m_webLocalFrameImpl->frame())) |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 void WebDevToolsAgentImpl::initializeDeferredAgents() | 381 void WebDevToolsAgentImpl::initializeDeferredAgents() |
| 382 { | 382 { |
| 383 if (m_deferredAgentsInitialized) | 383 if (m_deferredAgentsInitialized) |
| 384 return; | 384 return; |
| 385 m_deferredAgentsInitialized = true; | 385 m_deferredAgentsInitialized = true; |
| 386 | 386 |
| 387 ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client); | 387 ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client); |
| 388 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance(); | 388 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance(); |
| 389 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); | 389 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); |
| 390 | 390 |
| 391 OwnPtrWillBeRawPtr<InspectorInspectorAgent> inspectorAgent = InspectorInspec
torAgent::create(); | 391 RawPtr<InspectorInspectorAgent> inspectorAgent = InspectorInspectorAgent::cr
eate(); |
| 392 InspectorInspectorAgent* inspectorAgentPtr = inspectorAgent.get(); | 392 InspectorInspectorAgent* inspectorAgentPtr = inspectorAgent.get(); |
| 393 m_agents.append(inspectorAgent.release()); | 393 m_agents.append(inspectorAgent.release()); |
| 394 | 394 |
| 395 OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgent = PageRuntimeAgent::cr
eate(this, mainThreadDebugger->debugger(), m_inspectedFrames.get(), mainThreadDe
bugger->contextGroupId(m_inspectedFrames->root())); | 395 RawPtr<PageRuntimeAgent> pageRuntimeAgent = PageRuntimeAgent::create(this, m
ainThreadDebugger->debugger(), m_inspectedFrames.get(), mainThreadDebugger->cont
extGroupId(m_inspectedFrames->root())); |
| 396 V8RuntimeAgent* runtimeAgent = pageRuntimeAgent->v8Agent(); | 396 V8RuntimeAgent* runtimeAgent = pageRuntimeAgent->v8Agent(); |
| 397 m_agents.append(pageRuntimeAgent.release()); | 397 m_agents.append(pageRuntimeAgent.release()); |
| 398 | 398 |
| 399 OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgent = InspectorDOMAgent::create(i
solate, m_inspectedFrames.get(), runtimeAgent, m_overlay.get()); | 399 RawPtr<InspectorDOMAgent> domAgent = InspectorDOMAgent::create(isolate, m_in
spectedFrames.get(), runtimeAgent, m_overlay.get()); |
| 400 m_domAgent = domAgent.get(); | 400 m_domAgent = domAgent.get(); |
| 401 m_agents.append(domAgent.release()); | 401 m_agents.append(domAgent.release()); |
| 402 | 402 |
| 403 OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgent = InspectorLayerT
reeAgent::create(m_inspectedFrames.get()); | 403 RawPtr<InspectorLayerTreeAgent> layerTreeAgent = InspectorLayerTreeAgent::cr
eate(m_inspectedFrames.get()); |
| 404 m_layerTreeAgent = layerTreeAgent.get(); | 404 m_layerTreeAgent = layerTreeAgent.get(); |
| 405 m_agents.append(layerTreeAgent.release()); | 405 m_agents.append(layerTreeAgent.release()); |
| 406 | 406 |
| 407 OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgent = InspectorResource
Agent::create(m_inspectedFrames.get()); | 407 RawPtr<InspectorResourceAgent> resourceAgent = InspectorResourceAgent::creat
e(m_inspectedFrames.get()); |
| 408 m_resourceAgent = resourceAgent.get(); | 408 m_resourceAgent = resourceAgent.get(); |
| 409 m_agents.append(resourceAgent.release()); | 409 m_agents.append(resourceAgent.release()); |
| 410 | 410 |
| 411 OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgent = InspectorCSSAgent::create(m
_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.get
()); | 411 RawPtr<InspectorCSSAgent> cssAgent = InspectorCSSAgent::create(m_domAgent, m
_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.get()); |
| 412 InspectorCSSAgent* cssAgentPtr = cssAgent.get(); | 412 InspectorCSSAgent* cssAgentPtr = cssAgent.get(); |
| 413 m_agents.append(cssAgent.release()); | 413 m_agents.append(cssAgent.release()); |
| 414 | 414 |
| 415 m_agents.append(InspectorAnimationAgent::create(m_inspectedFrames.get(), m_d
omAgent, cssAgentPtr, runtimeAgent)); | 415 m_agents.append(InspectorAnimationAgent::create(m_inspectedFrames.get(), m_d
omAgent, cssAgentPtr, runtimeAgent)); |
| 416 | 416 |
| 417 m_agents.append(InspectorMemoryAgent::create()); | 417 m_agents.append(InspectorMemoryAgent::create()); |
| 418 | 418 |
| 419 m_agents.append(InspectorApplicationCacheAgent::create(m_inspectedFrames.get
())); | 419 m_agents.append(InspectorApplicationCacheAgent::create(m_inspectedFrames.get
())); |
| 420 | 420 |
| 421 m_agents.append(InspectorIndexedDBAgent::create(m_inspectedFrames.get())); | 421 m_agents.append(InspectorIndexedDBAgent::create(m_inspectedFrames.get())); |
| 422 | 422 |
| 423 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgent = PageDebuggerAgent
::create(m_inspectedFrames.get(), runtimeAgent); | 423 RawPtr<InspectorDebuggerAgent> debuggerAgent = PageDebuggerAgent::create(m_i
nspectedFrames.get(), runtimeAgent); |
| 424 InspectorDebuggerAgent* debuggerAgentPtr = debuggerAgent.get(); | 424 InspectorDebuggerAgent* debuggerAgentPtr = debuggerAgent.get(); |
| 425 m_agents.append(debuggerAgent.release()); | 425 m_agents.append(debuggerAgent.release()); |
| 426 | 426 |
| 427 OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgent = PageConsoleAgent::cr
eate(runtimeAgent, debuggerAgentPtr->v8Agent(), m_domAgent, m_inspectedFrames.ge
t()); | 427 RawPtr<PageConsoleAgent> pageConsoleAgent = PageConsoleAgent::create(runtime
Agent, debuggerAgentPtr->v8Agent(), m_domAgent, m_inspectedFrames.get()); |
| 428 PageConsoleAgent* pageConsoleAgentPtr = pageConsoleAgent.get(); | 428 PageConsoleAgent* pageConsoleAgentPtr = pageConsoleAgent.get(); |
| 429 m_agents.append(pageConsoleAgent.release()); | 429 m_agents.append(pageConsoleAgent.release()); |
| 430 | 430 |
| 431 OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgent = InspectorWorkerAgent:
:create(m_inspectedFrames.get(), pageConsoleAgentPtr); | 431 RawPtr<InspectorWorkerAgent> workerAgent = InspectorWorkerAgent::create(m_in
spectedFrames.get(), pageConsoleAgentPtr); |
| 432 InspectorWorkerAgent* workerAgentPtr = workerAgent.get(); | 432 InspectorWorkerAgent* workerAgentPtr = workerAgent.get(); |
| 433 m_agents.append(workerAgent.release()); | 433 m_agents.append(workerAgent.release()); |
| 434 | 434 |
| 435 OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgent = InspectorTracingAge
nt::create(this, workerAgentPtr, m_inspectedFrames.get()); | 435 RawPtr<InspectorTracingAgent> tracingAgent = InspectorTracingAgent::create(t
his, workerAgentPtr, m_inspectedFrames.get()); |
| 436 m_tracingAgent = tracingAgent.get(); | 436 m_tracingAgent = tracingAgent.get(); |
| 437 m_agents.append(tracingAgent.release()); | 437 m_agents.append(tracingAgent.release()); |
| 438 | 438 |
| 439 m_agents.append(InspectorDOMDebuggerAgent::create(isolate, m_domAgent, runti
meAgent, debuggerAgentPtr->v8Agent())); | 439 m_agents.append(InspectorDOMDebuggerAgent::create(isolate, m_domAgent, runti
meAgent, debuggerAgentPtr->v8Agent())); |
| 440 | 440 |
| 441 m_agents.append(InspectorInputAgent::create(m_inspectedFrames.get())); | 441 m_agents.append(InspectorInputAgent::create(m_inspectedFrames.get())); |
| 442 | 442 |
| 443 m_agents.append(InspectorProfilerAgent::create(MainThreadDebugger::instance(
)->debugger(), m_overlay.get())); | 443 m_agents.append(InspectorProfilerAgent::create(MainThreadDebugger::instance(
)->debugger(), m_overlay.get())); |
| 444 | 444 |
| 445 m_agents.append(InspectorHeapProfilerAgent::create(isolate, runtimeAgent)); | 445 m_agents.append(InspectorHeapProfilerAgent::create(isolate, runtimeAgent)); |
| 446 | 446 |
| 447 OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgent = InspectorPageAgent::creat
e(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgentPtr
); | 447 RawPtr<InspectorPageAgent> pageAgent = InspectorPageAgent::create(m_inspecte
dFrames.get(), this, m_resourceContentLoader.get(), debuggerAgentPtr); |
| 448 m_pageAgent = pageAgent.get(); | 448 m_pageAgent = pageAgent.get(); |
| 449 m_agents.append(pageAgent.release()); | 449 m_agents.append(pageAgent.release()); |
| 450 | 450 |
| 451 runtimeAgent->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAl
lMessages, pageConsoleAgentPtr)); | 451 runtimeAgent->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAl
lMessages, pageConsoleAgentPtr)); |
| 452 runtimeAgent->setInspectObjectCallback(bind<PassOwnPtr<protocol::Runtime::Re
moteObject>, PassOwnPtr<protocol::DictionaryValue>>(&InspectorInspectorAgent::in
spect, inspectorAgentPtr)); | 452 runtimeAgent->setInspectObjectCallback(bind<PassOwnPtr<protocol::Runtime::Re
moteObject>, PassOwnPtr<protocol::DictionaryValue>>(&InspectorInspectorAgent::in
spect, inspectorAgentPtr)); |
| 453 m_tracingAgent->setLayerTreeId(m_layerTreeId); | 453 m_tracingAgent->setLayerTreeId(m_layerTreeId); |
| 454 if (m_overlay) | 454 if (m_overlay) |
| 455 m_overlay->init(cssAgentPtr, debuggerAgentPtr, m_domAgent); | 455 m_overlay->init(cssAgentPtr, debuggerAgentPtr, m_domAgent); |
| 456 } | 456 } |
| 457 | 457 |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 if (!protocol::Dispatcher::getCommandName(message, &commandName)) | 723 if (!protocol::Dispatcher::getCommandName(message, &commandName)) |
| 724 return false; | 724 return false; |
| 725 return commandName == "Debugger.pause" | 725 return commandName == "Debugger.pause" |
| 726 || commandName == "Debugger.setBreakpoint" | 726 || commandName == "Debugger.setBreakpoint" |
| 727 || commandName == "Debugger.setBreakpointByUrl" | 727 || commandName == "Debugger.setBreakpointByUrl" |
| 728 || commandName == "Debugger.removeBreakpoint" | 728 || commandName == "Debugger.removeBreakpoint" |
| 729 || commandName == "Debugger.setBreakpointsActive"; | 729 || commandName == "Debugger.setBreakpointsActive"; |
| 730 } | 730 } |
| 731 | 731 |
| 732 } // namespace blink | 732 } // namespace blink |
| OLD | NEW |