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 24 matching lines...) Expand all Loading... |
35 #include "core/InstrumentingAgents.h" | 35 #include "core/InstrumentingAgents.h" |
36 #include "core/frame/FrameView.h" | 36 #include "core/frame/FrameView.h" |
37 #include "core/frame/LocalFrame.h" | 37 #include "core/frame/LocalFrame.h" |
38 #include "core/frame/Settings.h" | 38 #include "core/frame/Settings.h" |
39 #include "core/inspector/InspectedFrames.h" | 39 #include "core/inspector/InspectedFrames.h" |
40 #include "core/inspector/InspectorAnimationAgent.h" | 40 #include "core/inspector/InspectorAnimationAgent.h" |
41 #include "core/inspector/InspectorApplicationCacheAgent.h" | 41 #include "core/inspector/InspectorApplicationCacheAgent.h" |
42 #include "core/inspector/InspectorCSSAgent.h" | 42 #include "core/inspector/InspectorCSSAgent.h" |
43 #include "core/inspector/InspectorDOMAgent.h" | 43 #include "core/inspector/InspectorDOMAgent.h" |
44 #include "core/inspector/InspectorDOMDebuggerAgent.h" | 44 #include "core/inspector/InspectorDOMDebuggerAgent.h" |
45 #include "core/inspector/InspectorDebuggerAgent.h" | |
46 #include "core/inspector/InspectorHeapProfilerAgent.h" | |
47 #include "core/inspector/InspectorInputAgent.h" | 45 #include "core/inspector/InspectorInputAgent.h" |
48 #include "core/inspector/InspectorInstrumentation.h" | 46 #include "core/inspector/InspectorInstrumentation.h" |
49 #include "core/inspector/InspectorLayerTreeAgent.h" | 47 #include "core/inspector/InspectorLayerTreeAgent.h" |
50 #include "core/inspector/InspectorMemoryAgent.h" | 48 #include "core/inspector/InspectorMemoryAgent.h" |
51 #include "core/inspector/InspectorPageAgent.h" | 49 #include "core/inspector/InspectorPageAgent.h" |
52 #include "core/inspector/InspectorProfilerAgent.h" | |
53 #include "core/inspector/InspectorResourceAgent.h" | 50 #include "core/inspector/InspectorResourceAgent.h" |
54 #include "core/inspector/InspectorResourceContainer.h" | 51 #include "core/inspector/InspectorResourceContainer.h" |
55 #include "core/inspector/InspectorResourceContentLoader.h" | 52 #include "core/inspector/InspectorResourceContentLoader.h" |
56 #include "core/inspector/InspectorRuntimeAgent.h" | |
57 #include "core/inspector/InspectorTaskRunner.h" | 53 #include "core/inspector/InspectorTaskRunner.h" |
58 #include "core/inspector/InspectorTracingAgent.h" | 54 #include "core/inspector/InspectorTracingAgent.h" |
59 #include "core/inspector/InspectorWorkerAgent.h" | 55 #include "core/inspector/InspectorWorkerAgent.h" |
60 #include "core/inspector/LayoutEditor.h" | 56 #include "core/inspector/LayoutEditor.h" |
61 #include "core/inspector/MainThreadDebugger.h" | 57 #include "core/inspector/MainThreadDebugger.h" |
62 #include "core/inspector/PageConsoleAgent.h" | 58 #include "core/inspector/PageConsoleAgent.h" |
63 #include "core/layout/api/LayoutViewItem.h" | 59 #include "core/layout/api/LayoutViewItem.h" |
64 #include "core/page/FocusController.h" | 60 #include "core/page/FocusController.h" |
65 #include "core/page/Page.h" | 61 #include "core/page/Page.h" |
66 #include "modules/accessibility/InspectorAccessibilityAgent.h" | 62 #include "modules/accessibility/InspectorAccessibilityAgent.h" |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 | 176 |
181 m_runningForCreateWindow = true; | 177 m_runningForCreateWindow = true; |
182 if (!m_runningForDebugBreak) | 178 if (!m_runningForDebugBreak) |
183 runLoop(frame); | 179 runLoop(frame); |
184 } | 180 } |
185 | 181 |
186 void runLoop(WebLocalFrameImpl* frame) | 182 void runLoop(WebLocalFrameImpl* frame) |
187 { | 183 { |
188 // 0. Flush pending frontend messages. | 184 // 0. Flush pending frontend messages. |
189 WebDevToolsAgentImpl* agent = frame->devToolsAgentImpl(); | 185 WebDevToolsAgentImpl* agent = frame->devToolsAgentImpl(); |
190 agent->flushPendingProtocolNotifications(); | 186 agent->flushProtocolNotifications(); |
191 | 187 |
192 Vector<WebViewImpl*> views; | 188 Vector<WebViewImpl*> views; |
193 HeapVector<Member<WebFrameWidgetImpl>> widgets; | 189 HeapVector<Member<WebFrameWidgetImpl>> widgets; |
194 | 190 |
195 // 1. Disable input events. | 191 // 1. Disable input events. |
196 const HashSet<WebViewImpl*>& viewImpls = WebViewImpl::allInstances(); | 192 const HashSet<WebViewImpl*>& viewImpls = WebViewImpl::allInstances(); |
197 HashSet<WebViewImpl*>::const_iterator viewImplsEnd = viewImpls.end(); | 193 HashSet<WebViewImpl*>::const_iterator viewImplsEnd = viewImpls.end(); |
198 for (HashSet<WebViewImpl*>::const_iterator it = viewImpls.begin(); it !
= viewImplsEnd; ++it) { | 194 for (HashSet<WebViewImpl*>::const_iterator it = viewImpls.begin(); it !
= viewImplsEnd; ++it) { |
199 WebViewImpl* view = *it; | 195 WebViewImpl* view = *it; |
200 m_frozenViews.add(view); | 196 m_frozenViews.add(view); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 } | 363 } |
368 | 364 |
369 void WebDevToolsAgentImpl::willBeDestroyed() | 365 void WebDevToolsAgentImpl::willBeDestroyed() |
370 { | 366 { |
371 DCHECK(m_webLocalFrameImpl->frame()); | 367 DCHECK(m_webLocalFrameImpl->frame()); |
372 DCHECK(m_inspectedFrames->root()->view()); | 368 DCHECK(m_inspectedFrames->root()->view()); |
373 detach(); | 369 detach(); |
374 m_resourceContentLoader->dispose(); | 370 m_resourceContentLoader->dispose(); |
375 } | 371 } |
376 | 372 |
377 void WebDevToolsAgentImpl::initializeSession(int sessionId, const String& hostId
) | 373 void WebDevToolsAgentImpl::initializeSession(int sessionId, const String& hostId
, String* state) |
378 { | 374 { |
379 m_session = new InspectorSession(this, m_inspectedFrames.get(), m_instrument
ingAgents.get(), sessionId, false /* autoFlush */); | |
380 | |
381 ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client); | 375 ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client); |
382 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance(); | 376 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance(); |
383 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); | 377 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); |
384 m_v8Session = mainThreadDebugger->debugger()->connect(mainThreadDebugger->co
ntextGroupId(m_inspectedFrames->root())); | |
385 | 378 |
386 m_session->append(new InspectorRuntimeAgent(m_v8Session->runtimeAgent())); | 379 m_session = new InspectorSession(this, m_inspectedFrames.get(), m_instrument
ingAgents.get(), sessionId, false /* autoFlush */, mainThreadDebugger->debugger(
), mainThreadDebugger->contextGroupId(m_inspectedFrames->root()), state); |
387 | 380 |
388 InspectorDOMAgent* domAgent = new InspectorDOMAgent(isolate, m_inspectedFram
es.get(), m_v8Session.get(), m_overlay.get()); | 381 InspectorDOMAgent* domAgent = new InspectorDOMAgent(isolate, m_inspectedFram
es.get(), m_session->v8Session(), m_overlay.get()); |
389 m_domAgent = domAgent; | 382 m_domAgent = domAgent; |
390 m_session->append(domAgent); | 383 m_session->append(domAgent); |
391 | 384 |
392 InspectorLayerTreeAgent* layerTreeAgent = InspectorLayerTreeAgent::create(m_
inspectedFrames.get()); | 385 InspectorLayerTreeAgent* layerTreeAgent = InspectorLayerTreeAgent::create(m_
inspectedFrames.get()); |
393 m_layerTreeAgent = layerTreeAgent; | 386 m_layerTreeAgent = layerTreeAgent; |
394 m_session->append(layerTreeAgent); | 387 m_session->append(layerTreeAgent); |
395 | 388 |
396 InspectorResourceAgent* resourceAgent = InspectorResourceAgent::create(m_ins
pectedFrames.get()); | 389 InspectorResourceAgent* resourceAgent = InspectorResourceAgent::create(m_ins
pectedFrames.get()); |
397 m_resourceAgent = resourceAgent; | 390 m_resourceAgent = resourceAgent; |
398 m_session->append(resourceAgent); | 391 m_session->append(resourceAgent); |
399 | 392 |
400 InspectorCSSAgent* cssAgent = InspectorCSSAgent::create(m_domAgent, m_inspec
tedFrames.get(), m_resourceAgent, m_resourceContentLoader.get(), m_resourceConta
iner.get()); | 393 InspectorCSSAgent* cssAgent = InspectorCSSAgent::create(m_domAgent, m_inspec
tedFrames.get(), m_resourceAgent, m_resourceContentLoader.get(), m_resourceConta
iner.get()); |
401 m_session->append(cssAgent); | 394 m_session->append(cssAgent); |
402 | 395 |
403 m_session->append(new InspectorAnimationAgent(m_inspectedFrames.get(), m_dom
Agent, cssAgent, m_v8Session.get())); | 396 m_session->append(new InspectorAnimationAgent(m_inspectedFrames.get(), m_dom
Agent, cssAgent, m_session->v8Session())); |
404 | 397 |
405 m_session->append(InspectorMemoryAgent::create()); | 398 m_session->append(InspectorMemoryAgent::create()); |
406 | 399 |
407 m_session->append(InspectorApplicationCacheAgent::create(m_inspectedFrames.g
et())); | 400 m_session->append(InspectorApplicationCacheAgent::create(m_inspectedFrames.g
et())); |
408 | 401 |
409 m_session->append(InspectorIndexedDBAgent::create(m_inspectedFrames.get())); | 402 m_session->append(InspectorIndexedDBAgent::create(m_inspectedFrames.get())); |
410 | 403 |
411 InspectorDebuggerAgent* debuggerAgent = new InspectorDebuggerAgent(m_v8Sessi
on->debuggerAgent()); | 404 m_session->append(new PageConsoleAgent(m_session->v8Session(), m_domAgent, m
_inspectedFrames.get())); |
412 m_session->append(debuggerAgent); | |
413 | |
414 m_session->append(new PageConsoleAgent(m_v8Session.get(), m_domAgent, m_insp
ectedFrames.get())); | |
415 | 405 |
416 InspectorWorkerAgent* workerAgent = new InspectorWorkerAgent(m_inspectedFram
es.get()); | 406 InspectorWorkerAgent* workerAgent = new InspectorWorkerAgent(m_inspectedFram
es.get()); |
417 m_session->append(workerAgent); | 407 m_session->append(workerAgent); |
418 | 408 |
419 InspectorTracingAgent* tracingAgent = InspectorTracingAgent::create(this, wo
rkerAgent, m_inspectedFrames.get()); | 409 InspectorTracingAgent* tracingAgent = InspectorTracingAgent::create(this, wo
rkerAgent, m_inspectedFrames.get()); |
420 m_tracingAgent = tracingAgent; | 410 m_tracingAgent = tracingAgent; |
421 m_session->append(tracingAgent); | 411 m_session->append(tracingAgent); |
422 | 412 |
423 m_session->append(new InspectorDOMDebuggerAgent(isolate, m_domAgent, m_v8Ses
sion.get())); | 413 m_session->append(new InspectorDOMDebuggerAgent(isolate, m_domAgent, m_sessi
on->v8Session())); |
424 | 414 |
425 m_session->append(InspectorInputAgent::create(m_inspectedFrames.get())); | 415 m_session->append(InspectorInputAgent::create(m_inspectedFrames.get())); |
426 | 416 |
427 m_session->append(new InspectorProfilerAgent(m_v8Session->profilerAgent())); | 417 InspectorPageAgent* pageAgent = InspectorPageAgent::create(m_inspectedFrames
.get(), this, m_resourceContentLoader.get(), m_session->v8Session()); |
428 | |
429 m_session->append(new InspectorHeapProfilerAgent(m_v8Session->heapProfilerAg
ent())); | |
430 | |
431 InspectorPageAgent* pageAgent = InspectorPageAgent::create(m_inspectedFrames
.get(), this, m_resourceContentLoader.get(), m_v8Session.get()); | |
432 m_pageAgent = pageAgent; | 418 m_pageAgent = pageAgent; |
433 m_session->append(pageAgent); | 419 m_session->append(pageAgent); |
434 | 420 |
435 m_tracingAgent->setLayerTreeId(m_layerTreeId); | 421 m_tracingAgent->setLayerTreeId(m_layerTreeId); |
436 m_resourceAgent->setHostId(hostId); | 422 m_resourceAgent->setHostId(hostId); |
437 | 423 |
438 if (m_includeViewAgents) { | 424 if (m_includeViewAgents) { |
439 // TODO(dgozman): we should actually pass the view instead of frame, but
during | 425 // TODO(dgozman): we should actually pass the view instead of frame, but
during |
440 // remote->local transition we cannot access mainFrameImpl() yet, so we
have to store the | 426 // remote->local transition we cannot access mainFrameImpl() yet, so we
have to store the |
441 // frame which will become the main frame later. | 427 // frame which will become the main frame later. |
442 m_session->append(InspectorRenderingAgent::create(m_webLocalFrameImpl, m
_overlay.get())); | 428 m_session->append(InspectorRenderingAgent::create(m_webLocalFrameImpl, m
_overlay.get())); |
443 m_session->append(InspectorEmulationAgent::create(m_webLocalFrameImpl, t
his)); | 429 m_session->append(InspectorEmulationAgent::create(m_webLocalFrameImpl, t
his)); |
444 // TODO(dgozman): migrate each of the following agents to frame once mod
ule is ready. | 430 // TODO(dgozman): migrate each of the following agents to frame once mod
ule is ready. |
445 Page* page = m_webLocalFrameImpl->viewImpl()->page(); | 431 Page* page = m_webLocalFrameImpl->viewImpl()->page(); |
446 m_session->append(InspectorDatabaseAgent::create(page)); | 432 m_session->append(InspectorDatabaseAgent::create(page)); |
447 m_session->append(DeviceOrientationInspectorAgent::create(page)); | 433 m_session->append(DeviceOrientationInspectorAgent::create(page)); |
448 m_session->append(new InspectorAccessibilityAgent(page, m_domAgent)); | 434 m_session->append(new InspectorAccessibilityAgent(page, m_domAgent)); |
449 m_session->append(InspectorDOMStorageAgent::create(page)); | 435 m_session->append(InspectorDOMStorageAgent::create(page)); |
450 m_session->append(InspectorCacheStorageAgent::create()); | 436 m_session->append(InspectorCacheStorageAgent::create()); |
451 } | 437 } |
452 | 438 |
453 if (m_overlay) | 439 if (m_overlay) |
454 m_overlay->init(cssAgent, debuggerAgent, m_domAgent); | 440 m_overlay->init(cssAgent, m_session->v8Session(), m_domAgent); |
455 | 441 |
456 Platform::current()->currentThread()->addTaskObserver(this); | 442 Platform::current()->currentThread()->addTaskObserver(this); |
457 } | 443 } |
458 | 444 |
459 void WebDevToolsAgentImpl::destroySession() | 445 void WebDevToolsAgentImpl::destroySession() |
460 { | 446 { |
461 if (m_overlay) | 447 if (m_overlay) |
462 m_overlay->clear(); | 448 m_overlay->clear(); |
463 | 449 |
464 m_tracingAgent.clear(); | 450 m_tracingAgent.clear(); |
465 m_layerTreeAgent.clear(); | 451 m_layerTreeAgent.clear(); |
466 m_resourceAgent.clear(); | 452 m_resourceAgent.clear(); |
467 m_pageAgent.clear(); | 453 m_pageAgent.clear(); |
468 m_domAgent.clear(); | 454 m_domAgent.clear(); |
469 | 455 |
470 m_session->detach(); | 456 m_session->dispose(); |
471 m_v8Session.clear(); | |
472 m_session.clear(); | 457 m_session.clear(); |
473 | 458 |
474 Platform::current()->currentThread()->removeTaskObserver(this); | 459 Platform::current()->currentThread()->removeTaskObserver(this); |
475 } | 460 } |
476 | 461 |
477 void WebDevToolsAgentImpl::attach(const WebString& hostId, int sessionId) | 462 void WebDevToolsAgentImpl::attach(const WebString& hostId, int sessionId) |
478 { | 463 { |
479 if (attached()) | 464 if (attached()) |
480 return; | 465 return; |
481 initializeSession(sessionId, hostId); | 466 initializeSession(sessionId, hostId, nullptr); |
482 m_session->attach(m_v8Session.get(), nullptr); | |
483 } | 467 } |
484 | 468 |
485 void WebDevToolsAgentImpl::reattach(const WebString& hostId, int sessionId, cons
t WebString& savedState) | 469 void WebDevToolsAgentImpl::reattach(const WebString& hostId, int sessionId, cons
t WebString& savedState) |
486 { | 470 { |
487 if (attached()) | 471 if (attached()) |
488 return; | 472 return; |
489 initializeSession(sessionId, hostId); | |
490 String state = savedState; | 473 String state = savedState; |
491 m_session->attach(m_v8Session.get(), &state); | 474 initializeSession(sessionId, hostId, &state); |
| 475 m_session->restore(); |
492 } | 476 } |
493 | 477 |
494 void WebDevToolsAgentImpl::detach() | 478 void WebDevToolsAgentImpl::detach() |
495 { | 479 { |
496 if (!attached()) | 480 if (!attached()) |
497 return; | 481 return; |
498 destroySession(); | 482 destroySession(); |
499 } | 483 } |
500 | 484 |
501 void WebDevToolsAgentImpl::continueProgram() | 485 void WebDevToolsAgentImpl::continueProgram() |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 m_client->setCPUThrottlingRate(rate); | 534 m_client->setCPUThrottlingRate(rate); |
551 } | 535 } |
552 | 536 |
553 void WebDevToolsAgentImpl::dispatchOnInspectorBackend(int sessionId, int callId,
const WebString& method, const WebString& message) | 537 void WebDevToolsAgentImpl::dispatchOnInspectorBackend(int sessionId, int callId,
const WebString& method, const WebString& message) |
554 { | 538 { |
555 if (!attached()) | 539 if (!attached()) |
556 return; | 540 return; |
557 if (WebDevToolsAgent::shouldInterruptForMethod(method)) | 541 if (WebDevToolsAgent::shouldInterruptForMethod(method)) |
558 MainThreadDebugger::instance()->taskRunner()->runAllTasksDontWait(); | 542 MainThreadDebugger::instance()->taskRunner()->runAllTasksDontWait(); |
559 else | 543 else |
560 dispatchMessageFromFrontend(sessionId, message); | 544 dispatchMessageFromFrontend(sessionId, method, message); |
561 } | 545 } |
562 | 546 |
563 void WebDevToolsAgentImpl::dispatchMessageFromFrontend(int sessionId, const Stri
ng& message) | 547 void WebDevToolsAgentImpl::dispatchMessageFromFrontend(int sessionId, const Stri
ng& method, const String& message) |
564 { | 548 { |
565 if (!attached() || sessionId != m_session->sessionId()) | 549 if (!attached() || sessionId != m_session->sessionId()) |
566 return; | 550 return; |
567 InspectorTaskRunner::IgnoreInterruptsScope scope(MainThreadDebugger::instanc
e()->taskRunner()); | 551 InspectorTaskRunner::IgnoreInterruptsScope scope(MainThreadDebugger::instanc
e()->taskRunner()); |
568 m_session->dispatchProtocolMessage(message); | 552 m_session->dispatchProtocolMessage(method, message); |
569 } | 553 } |
570 | 554 |
571 void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& pointInRootFrame) | 555 void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& pointInRootFrame) |
572 { | 556 { |
573 if (!m_domAgent) | 557 if (!m_domAgent) |
574 return; | 558 return; |
575 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Move | HitTestR
equest::ReadOnly | HitTestRequest::AllowChildFrameContent; | 559 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Move | HitTestR
equest::ReadOnly | HitTestRequest::AllowChildFrameContent; |
576 HitTestRequest request(hitType); | 560 HitTestRequest request(hitType); |
577 WebMouseEvent dummyEvent; | 561 WebMouseEvent dummyEvent; |
578 dummyEvent.type = WebInputEvent::MouseDown; | 562 dummyEvent.type = WebInputEvent::MouseDown; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
640 } | 624 } |
641 | 625 |
642 WebString WebDevToolsAgentImpl::evaluateInWebInspectorOverlay(const WebString& s
cript) | 626 WebString WebDevToolsAgentImpl::evaluateInWebInspectorOverlay(const WebString& s
cript) |
643 { | 627 { |
644 if (!m_overlay) | 628 if (!m_overlay) |
645 return WebString(); | 629 return WebString(); |
646 | 630 |
647 return m_overlay->evaluateInOverlayForTest(script); | 631 return m_overlay->evaluateInOverlayForTest(script); |
648 } | 632 } |
649 | 633 |
650 void WebDevToolsAgentImpl::flushPendingProtocolNotifications() | 634 void WebDevToolsAgentImpl::flushProtocolNotifications() |
651 { | 635 { |
652 if (m_session) | 636 if (m_session) |
653 m_session->flushPendingProtocolNotifications(); | 637 m_session->flushProtocolNotifications(); |
654 } | 638 } |
655 | 639 |
656 void WebDevToolsAgentImpl::willProcessTask() | 640 void WebDevToolsAgentImpl::willProcessTask() |
657 { | 641 { |
658 if (!attached()) | 642 if (!attached()) |
659 return; | 643 return; |
660 ThreadDebugger::idleFinished(V8PerIsolateData::mainThreadIsolate()); | 644 ThreadDebugger::idleFinished(V8PerIsolateData::mainThreadIsolate()); |
661 } | 645 } |
662 | 646 |
663 void WebDevToolsAgentImpl::didProcessTask() | 647 void WebDevToolsAgentImpl::didProcessTask() |
664 { | 648 { |
665 if (!attached()) | 649 if (!attached()) |
666 return; | 650 return; |
667 ThreadDebugger::idleStarted(V8PerIsolateData::mainThreadIsolate()); | 651 ThreadDebugger::idleStarted(V8PerIsolateData::mainThreadIsolate()); |
668 flushPendingProtocolNotifications(); | 652 flushProtocolNotifications(); |
669 } | 653 } |
670 | 654 |
671 void WebDevToolsAgentImpl::runDebuggerTask(int sessionId, PassOwnPtr<WebDevTools
Agent::MessageDescriptor> descriptor) | 655 void WebDevToolsAgentImpl::runDebuggerTask(int sessionId, PassOwnPtr<WebDevTools
Agent::MessageDescriptor> descriptor) |
672 { | 656 { |
673 WebDevToolsAgent* webagent = descriptor->agent(); | 657 WebDevToolsAgent* webagent = descriptor->agent(); |
674 if (!webagent) | 658 if (!webagent) |
675 return; | 659 return; |
676 | 660 |
677 WebDevToolsAgentImpl* agentImpl = static_cast<WebDevToolsAgentImpl*>(webagen
t); | 661 WebDevToolsAgentImpl* agentImpl = static_cast<WebDevToolsAgentImpl*>(webagen
t); |
678 if (agentImpl->attached()) | 662 if (agentImpl->attached()) |
679 agentImpl->dispatchMessageFromFrontend(sessionId, descriptor->message())
; | 663 agentImpl->dispatchMessageFromFrontend(sessionId, descriptor->method(),
descriptor->message()); |
680 } | 664 } |
681 | 665 |
682 void WebDevToolsAgent::interruptAndDispatch(int sessionId, MessageDescriptor* ra
wDescriptor) | 666 void WebDevToolsAgent::interruptAndDispatch(int sessionId, MessageDescriptor* ra
wDescriptor) |
683 { | 667 { |
684 // rawDescriptor can't be a PassOwnPtr because interruptAndDispatch is a Web
Kit API function. | 668 // rawDescriptor can't be a PassOwnPtr because interruptAndDispatch is a Web
Kit API function. |
685 MainThreadDebugger::interruptMainThreadAndRun(threadSafeBind(WebDevToolsAgen
tImpl::runDebuggerTask, sessionId, passed(adoptPtr(rawDescriptor)))); | 669 MainThreadDebugger::interruptMainThreadAndRun(threadSafeBind(WebDevToolsAgen
tImpl::runDebuggerTask, sessionId, passed(adoptPtr(rawDescriptor)))); |
686 } | 670 } |
687 | 671 |
688 bool WebDevToolsAgent::shouldInterruptForMethod(const WebString& method) | 672 bool WebDevToolsAgent::shouldInterruptForMethod(const WebString& method) |
689 { | 673 { |
690 return method == "Debugger.pause" | 674 return method == "Debugger.pause" |
691 || method == "Debugger.setBreakpoint" | 675 || method == "Debugger.setBreakpoint" |
692 || method == "Debugger.setBreakpointByUrl" | 676 || method == "Debugger.setBreakpointByUrl" |
693 || method == "Debugger.removeBreakpoint" | 677 || method == "Debugger.removeBreakpoint" |
694 || method == "Debugger.setBreakpointsActive"; | 678 || method == "Debugger.setBreakpointsActive"; |
695 } | 679 } |
696 | 680 |
697 } // namespace blink | 681 } // namespace blink |
OLD | NEW |