Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Side by Side Diff: third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp

Issue 1761663003: Revert of [DevTools] Postpone more agents instantiation until attached. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: manual Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/web/WebDevToolsAgentImpl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 , m_overlay(overlay) 336 , m_overlay(overlay)
337 , m_inspectedFrames(InspectedFrames::create(m_webLocalFrameImpl->frame())) 337 , m_inspectedFrames(InspectedFrames::create(m_webLocalFrameImpl->frame()))
338 , m_inspectorAgent(nullptr) 338 , m_inspectorAgent(nullptr)
339 , m_domAgent(nullptr) 339 , m_domAgent(nullptr)
340 , m_pageAgent(nullptr) 340 , m_pageAgent(nullptr)
341 , m_resourceAgent(nullptr) 341 , m_resourceAgent(nullptr)
342 , m_layerTreeAgent(nullptr) 342 , m_layerTreeAgent(nullptr)
343 , m_tracingAgent(nullptr) 343 , m_tracingAgent(nullptr)
344 , m_pageRuntimeAgent(nullptr) 344 , m_pageRuntimeAgent(nullptr)
345 , m_pageConsoleAgent(nullptr) 345 , m_pageConsoleAgent(nullptr)
346 , m_layerTreeId(0)
347 , m_inspectedFrameDidCommitLoad(false)
348 , m_agents(m_instrumentingAgents.get()) 346 , m_agents(m_instrumentingAgents.get())
349 , m_deferredAgentsInitialized(false) 347 , m_deferredAgentsInitialized(false)
350 , m_sessionId(0) 348 , m_sessionId(0)
351 , m_stateMuted(false) 349 , m_stateMuted(false)
352 { 350 {
353 ASSERT(isMainThread()); 351 ASSERT(isMainThread());
354 ASSERT(m_webLocalFrameImpl->frame()); 352 ASSERT(m_webLocalFrameImpl->frame());
355 353
356 long processId = Platform::current()->getUniqueIdForProcess(); 354 long processId = Platform::current()->getUniqueIdForProcess();
357 ASSERT(processId > 0); 355 ASSERT(processId > 0);
358 IdentifiersFactory::setProcessId(processId); 356 IdentifiersFactory::setProcessId(processId);
359 357
360 ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client); 358 ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client);
359 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance();
361 360
362 OwnPtrWillBeRawPtr<InspectorInspectorAgent> inspectorAgentPtr(InspectorInspe ctorAgent::create()); 361 OwnPtrWillBeRawPtr<InspectorInspectorAgent> inspectorAgentPtr(InspectorInspe ctorAgent::create());
363 m_inspectorAgent = inspectorAgentPtr.get(); 362 m_inspectorAgent = inspectorAgentPtr.get();
364 m_agents.append(inspectorAgentPtr.release()); 363 m_agents.append(inspectorAgentPtr.release());
365 364
366 OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgentPtr = InspectorWorkerAge nt::create(m_inspectedFrames.get()); 365 OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgentPtr(PageRuntimeAgent::c reate(this, mainThreadDebugger->debugger(), m_inspectedFrames.get()));
367 m_workerAgent = workerAgentPtr.get(); 366 m_pageRuntimeAgent = pageRuntimeAgentPtr.get();
367 m_agents.append(pageRuntimeAgentPtr.release());
368
369 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
370 OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create( isolate, m_inspectedFrames.get(), m_pageRuntimeAgent->v8Agent(), m_overlay.get() ));
371 m_domAgent = domAgentPtr.get();
372 m_agents.append(domAgentPtr.release());
373
374 OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgentPtr(InspectorLayer TreeAgent::create(m_inspectedFrames.get()));
375 m_layerTreeAgent = layerTreeAgentPtr.get();
376 m_agents.append(layerTreeAgentPtr.release());
377
378 OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgentPtr = PageConsoleAgent: :create(m_pageRuntimeAgent->v8Agent(), m_domAgent, m_inspectedFrames.get());
379 m_pageConsoleAgent = pageConsoleAgentPtr.get();
380
381 OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgentPtr = InspectorWorkerAge nt::create(m_inspectedFrames.get(), pageConsoleAgentPtr.get());
382
383 OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgentPtr = InspectorTracing Agent::create(this, workerAgentPtr.get(), m_inspectedFrames.get());
384 m_tracingAgent = tracingAgentPtr.get();
385 m_agents.append(tracingAgentPtr.release());
386
368 m_agents.append(workerAgentPtr.release()); 387 m_agents.append(workerAgentPtr.release());
388 m_agents.append(pageConsoleAgentPtr.release());
369 } 389 }
370 390
371 WebDevToolsAgentImpl::~WebDevToolsAgentImpl() 391 WebDevToolsAgentImpl::~WebDevToolsAgentImpl()
372 { 392 {
373 ASSERT(m_hasBeenDisposed); 393 ASSERT(m_hasBeenDisposed);
374 } 394 }
375 395
376 void WebDevToolsAgentImpl::dispose() 396 void WebDevToolsAgentImpl::dispose()
377 { 397 {
378 // Explicitly dispose of the agent before destructing to ensure 398 // Explicitly dispose of the agent before destructing to ensure
(...skipping 24 matching lines...) Expand all
403 visitor->trace(m_instrumentingAgents); 423 visitor->trace(m_instrumentingAgents);
404 visitor->trace(m_resourceContentLoader); 424 visitor->trace(m_resourceContentLoader);
405 visitor->trace(m_overlay); 425 visitor->trace(m_overlay);
406 visitor->trace(m_inspectedFrames); 426 visitor->trace(m_inspectedFrames);
407 visitor->trace(m_inspectorAgent); 427 visitor->trace(m_inspectorAgent);
408 visitor->trace(m_domAgent); 428 visitor->trace(m_domAgent);
409 visitor->trace(m_pageAgent); 429 visitor->trace(m_pageAgent);
410 visitor->trace(m_resourceAgent); 430 visitor->trace(m_resourceAgent);
411 visitor->trace(m_layerTreeAgent); 431 visitor->trace(m_layerTreeAgent);
412 visitor->trace(m_tracingAgent); 432 visitor->trace(m_tracingAgent);
413 visitor->trace(m_workerAgent);
414 visitor->trace(m_pageRuntimeAgent); 433 visitor->trace(m_pageRuntimeAgent);
415 visitor->trace(m_pageConsoleAgent); 434 visitor->trace(m_pageConsoleAgent);
416 visitor->trace(m_agents); 435 visitor->trace(m_agents);
417 } 436 }
418 437
419 void WebDevToolsAgentImpl::willBeDestroyed() 438 void WebDevToolsAgentImpl::willBeDestroyed()
420 { 439 {
421 ASSERT(m_webLocalFrameImpl->frame()); 440 ASSERT(m_webLocalFrameImpl->frame());
422 ASSERT(m_inspectedFrames->root()->view()); 441 ASSERT(m_inspectedFrames->root()->view());
423 442
424 detach(); 443 detach();
425 m_resourceContentLoader->dispose(); 444 m_resourceContentLoader->dispose();
426 m_agents.discardAgents(); 445 m_agents.discardAgents();
427 m_instrumentingAgents->reset(); 446 m_instrumentingAgents->reset();
428 } 447 }
429 448
430 void WebDevToolsAgentImpl::initializeDeferredAgents() 449 void WebDevToolsAgentImpl::initializeDeferredAgents()
431 { 450 {
432 if (m_deferredAgentsInitialized) 451 if (m_deferredAgentsInitialized)
433 return; 452 return;
434 m_deferredAgentsInitialized = true; 453 m_deferredAgentsInitialized = true;
435 454
436 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
437 MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance();
438
439 OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgentPtr(PageRuntimeAgent::c reate(this, mainThreadDebugger->debugger(), m_inspectedFrames.get()));
440 m_pageRuntimeAgent = pageRuntimeAgentPtr.get();
441 m_agents.append(pageRuntimeAgentPtr.release());
442
443 OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgentPtr(InspectorResourc eAgent::create(m_inspectedFrames.get())); 455 OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgentPtr(InspectorResourc eAgent::create(m_inspectedFrames.get()));
444 m_resourceAgent = resourceAgentPtr.get(); 456 m_resourceAgent = resourceAgentPtr.get();
445 m_agents.append(resourceAgentPtr.release()); 457 m_agents.append(resourceAgentPtr.release());
446 458
447 OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create( isolate, m_inspectedFrames.get(), m_pageRuntimeAgent->v8Agent(), m_overlay.get() ));
448 m_domAgent = domAgentPtr.get();
449 m_agents.append(domAgentPtr.release());
450
451 OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgentPtr(InspectorCSSAgent::create( m_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.ge t())); 459 OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgentPtr(InspectorCSSAgent::create( m_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.ge t()));
452 InspectorCSSAgent* cssAgent = cssAgentPtr.get(); 460 InspectorCSSAgent* cssAgent = cssAgentPtr.get();
453 m_agents.append(cssAgentPtr.release()); 461 m_agents.append(cssAgentPtr.release());
454 462
455 m_agents.append(InspectorAnimationAgent::create(m_inspectedFrames.get(), m_d omAgent, cssAgent, m_pageRuntimeAgent->v8Agent())); 463 m_agents.append(InspectorAnimationAgent::create(m_inspectedFrames.get(), m_d omAgent, cssAgent, m_pageRuntimeAgent->v8Agent()));
456 464
457 m_agents.append(InspectorMemoryAgent::create()); 465 m_agents.append(InspectorMemoryAgent::create());
458 466
459 m_agents.append(InspectorApplicationCacheAgent::create(m_inspectedFrames.get ())); 467 m_agents.append(InspectorApplicationCacheAgent::create(m_inspectedFrames.get ()));
460 m_agents.append(InspectorIndexedDBAgent::create(m_inspectedFrames.get())); 468 m_agents.append(InspectorIndexedDBAgent::create(m_inspectedFrames.get()));
461 469
462 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgen t::create(MainThreadDebugger::instance(), m_inspectedFrames.get(), m_pageRuntime Agent->v8Agent())); 470 OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgen t::create(MainThreadDebugger::instance(), m_inspectedFrames.get(), m_pageRuntime Agent->v8Agent()));
463 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); 471 InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get();
464 m_agents.append(debuggerAgentPtr.release()); 472 m_agents.append(debuggerAgentPtr.release());
465 473
474 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
475
466 m_agents.append(InspectorDOMDebuggerAgent::create(isolate, m_domAgent, m_pag eRuntimeAgent->v8Agent(), debuggerAgent->v8Agent())); 476 m_agents.append(InspectorDOMDebuggerAgent::create(isolate, m_domAgent, m_pag eRuntimeAgent->v8Agent(), debuggerAgent->v8Agent()));
467 m_agents.append(InspectorInputAgent::create(m_inspectedFrames.get())); 477 m_agents.append(InspectorInputAgent::create(m_inspectedFrames.get()));
468 m_agents.append(InspectorProfilerAgent::create(MainThreadDebugger::instance( )->debugger(), m_overlay.get())); 478 m_agents.append(InspectorProfilerAgent::create(MainThreadDebugger::instance( )->debugger(), m_overlay.get()));
469 m_agents.append(InspectorHeapProfilerAgent::create(isolate, m_pageRuntimeAge nt->v8Agent())); 479 m_agents.append(InspectorHeapProfilerAgent::create(isolate, m_pageRuntimeAge nt->v8Agent()));
470 480
471 OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgentPtr = InspectorTracing Agent::create(this, m_workerAgent.get(), m_inspectedFrames.get());
472 m_tracingAgent = tracingAgentPtr.get();
473 m_tracingAgent->setLayerTreeId(m_layerTreeId);
474 m_agents.append(tracingAgentPtr.release());
475
476 OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgentPtr(InspectorLayer TreeAgent::create(m_inspectedFrames.get()));
477 m_layerTreeAgent = layerTreeAgentPtr.get();
478 m_agents.append(layerTreeAgentPtr.release());
479
480 OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::crea te(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgent)) ; 481 OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::crea te(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgent)) ;
481 m_pageAgent = pageAgentPtr.get(); 482 m_pageAgent = pageAgentPtr.get();
482 m_agents.append(pageAgentPtr.release()); 483 m_agents.append(pageAgentPtr.release());
483 484
484 OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgentPtr = PageConsoleAgent: :create(m_pageRuntimeAgent->v8Agent(), debuggerAgent->v8Agent(), m_domAgent, m_i nspectedFrames.get()); 485 m_pageConsoleAgent->setDebuggerAgent(debuggerAgent->v8Agent());
485 m_pageConsoleAgent = pageConsoleAgentPtr.get();
486 m_agents.append(pageConsoleAgentPtr.release());
487 486
488 m_workerAgent->setPageConsoleAgent(m_pageConsoleAgent);
489 m_pageRuntimeAgent->v8Agent()->setClearConsoleCallback(bind<>(&InspectorCons oleAgent::clearAllMessages, m_pageConsoleAgent.get())); 487 m_pageRuntimeAgent->v8Agent()->setClearConsoleCallback(bind<>(&InspectorCons oleAgent::clearAllMessages, m_pageConsoleAgent.get()));
490 m_pageRuntimeAgent->v8Agent()->setInspectObjectCallback(bind<PassOwnPtr<prot ocol::Runtime::RemoteObject>, PassOwnPtr<protocol::DictionaryValue>>(&InspectorI nspectorAgent::inspect, m_inspectorAgent.get())); 488 m_pageRuntimeAgent->v8Agent()->setInspectObjectCallback(bind<PassOwnPtr<prot ocol::Runtime::RemoteObject>, PassOwnPtr<protocol::DictionaryValue>>(&InspectorI nspectorAgent::inspect, m_inspectorAgent.get()));
491 489
492 if (m_overlay) 490 if (m_overlay)
493 m_overlay->init(cssAgent, debuggerAgent, m_domAgent.get()); 491 m_overlay->init(cssAgent, debuggerAgent, m_domAgent.get());
494 } 492 }
495 493
496 void WebDevToolsAgentImpl::registerAgent(PassOwnPtrWillBeRawPtr<InspectorAgent> agent) 494 void WebDevToolsAgentImpl::registerAgent(PassOwnPtrWillBeRawPtr<InspectorAgent> agent)
497 { 495 {
498 m_agents.append(agent); 496 m_agents.append(agent);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 m_attached = false; 557 m_attached = false;
560 } 558 }
561 559
562 void WebDevToolsAgentImpl::continueProgram() 560 void WebDevToolsAgentImpl::continueProgram()
563 { 561 {
564 ClientMessageLoopAdapter::continueProgram(); 562 ClientMessageLoopAdapter::continueProgram();
565 } 563 }
566 564
567 void WebDevToolsAgentImpl::didCommitLoadForLocalFrame(LocalFrame* frame) 565 void WebDevToolsAgentImpl::didCommitLoadForLocalFrame(LocalFrame* frame)
568 { 566 {
569 if (frame == m_inspectedFrames->root())
570 m_inspectedFrameDidCommitLoad = true;
571 m_resourceContentLoader->didCommitLoadForLocalFrame(frame); 567 m_resourceContentLoader->didCommitLoadForLocalFrame(frame);
572 m_agents.didCommitLoadForLocalFrame(frame); 568 m_agents.didCommitLoadForLocalFrame(frame);
573 } 569 }
574 570
575 bool WebDevToolsAgentImpl::screencastEnabled() 571 bool WebDevToolsAgentImpl::screencastEnabled()
576 { 572 {
577 return m_pageAgent && m_pageAgent->screencastEnabled(); 573 return m_pageAgent && m_pageAgent->screencastEnabled();
578 } 574 }
579 575
580 void WebDevToolsAgentImpl::willAddPageOverlay(const GraphicsLayer* layer) 576 void WebDevToolsAgentImpl::willAddPageOverlay(const GraphicsLayer* layer)
581 { 577 {
582 if (m_layerTreeAgent) 578 m_layerTreeAgent->willAddPageOverlay(layer);
583 m_layerTreeAgent->willAddPageOverlay(layer);
584 } 579 }
585 580
586 void WebDevToolsAgentImpl::didRemovePageOverlay(const GraphicsLayer* layer) 581 void WebDevToolsAgentImpl::didRemovePageOverlay(const GraphicsLayer* layer)
587 { 582 {
588 if (m_layerTreeAgent) 583 m_layerTreeAgent->didRemovePageOverlay(layer);
589 m_layerTreeAgent->didRemovePageOverlay(layer);
590 } 584 }
591 585
592 void WebDevToolsAgentImpl::layerTreeViewChanged(WebLayerTreeView* layerTreeView) 586 void WebDevToolsAgentImpl::layerTreeViewChanged(WebLayerTreeView* layerTreeView)
593 { 587 {
594 m_layerTreeId = layerTreeView ? layerTreeView->layerTreeId() : 0; 588 m_tracingAgent->setLayerTreeId(layerTreeView ? layerTreeView->layerTreeId() : 0);
595 if (m_tracingAgent)
596 m_tracingAgent->setLayerTreeId(m_layerTreeId);
597 } 589 }
598 590
599 void WebDevToolsAgentImpl::enableTracing(const String& categoryFilter) 591 void WebDevToolsAgentImpl::enableTracing(const String& categoryFilter)
600 { 592 {
601 m_client->enableTracing(categoryFilter); 593 m_client->enableTracing(categoryFilter);
602 } 594 }
603 595
604 void WebDevToolsAgentImpl::disableTracing() 596 void WebDevToolsAgentImpl::disableTracing()
605 { 597 {
606 m_client->disableTracing(); 598 m_client->disableTracing();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 673
682 void WebDevToolsAgentImpl::resumeStartup() 674 void WebDevToolsAgentImpl::resumeStartup()
683 { 675 {
684 // If we've paused for createWindow, handle it ourselves. 676 // If we've paused for createWindow, handle it ourselves.
685 if (ClientMessageLoopAdapter::resumeForCreateWindow()) 677 if (ClientMessageLoopAdapter::resumeForCreateWindow())
686 return; 678 return;
687 // Otherwise, pass to the client (embedded workers do it differently). 679 // Otherwise, pass to the client (embedded workers do it differently).
688 m_client->resumeStartup(); 680 m_client->resumeStartup();
689 } 681 }
690 682
691 bool WebDevToolsAgentImpl::didCommitLoadFired()
692 {
693 return m_inspectedFrameDidCommitLoad;
694 }
695
696 void WebDevToolsAgentImpl::pageLayoutInvalidated(bool resized) 683 void WebDevToolsAgentImpl::pageLayoutInvalidated(bool resized)
697 { 684 {
698 if (m_overlay) 685 if (m_overlay)
699 m_overlay->pageLayoutInvalidated(resized); 686 m_overlay->pageLayoutInvalidated(resized);
700 } 687 }
701 688
702 void WebDevToolsAgentImpl::setPausedInDebuggerMessage(const String& message) 689 void WebDevToolsAgentImpl::setPausedInDebuggerMessage(const String& message)
703 { 690 {
704 if (m_overlay) 691 if (m_overlay)
705 m_overlay->setPausedInDebuggerMessage(message); 692 m_overlay->setPausedInDebuggerMessage(message);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 if (!protocol::Dispatcher::getCommandName(message, &commandName)) 754 if (!protocol::Dispatcher::getCommandName(message, &commandName))
768 return false; 755 return false;
769 return commandName == "Debugger.pause" 756 return commandName == "Debugger.pause"
770 || commandName == "Debugger.setBreakpoint" 757 || commandName == "Debugger.setBreakpoint"
771 || commandName == "Debugger.setBreakpointByUrl" 758 || commandName == "Debugger.setBreakpointByUrl"
772 || commandName == "Debugger.removeBreakpoint" 759 || commandName == "Debugger.removeBreakpoint"
773 || commandName == "Debugger.setBreakpointsActive"; 760 || commandName == "Debugger.setBreakpointsActive";
774 } 761 }
775 762
776 } // namespace blink 763 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebDevToolsAgentImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698