158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/extensions/devtools_util.h" 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/devtools/devtools_window.h" 81e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "extensions/browser/extension_host.h" 105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/browser/extension_system.h" 111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "extensions/browser/lazy_background_task_queue.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/browser/process_manager.h" 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/extension.h" 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace extensions { 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace devtools_util { 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace { 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Helper to inspect an ExtensionHost after it has been loaded. 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void InspectExtensionHost(ExtensionHost* host) { 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (host) 236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) DevToolsWindow::OpenDevToolsWindow(host->host_contents()); 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void InspectBackgroundPage(const Extension* extension, Profile* profile) { 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DCHECK(extension); 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ExtensionSystem* system = ExtensionSystem::Get(profile); 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ExtensionHost* host = 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) system->process_manager()->GetBackgroundHostForExtension(extension->id()); 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) if (host) { 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InspectExtensionHost(host); 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } else { 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) system->lazy_background_task_queue()->AddPendingTask( 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) profile, 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) extension->id(), 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) base::Bind(&InspectExtensionHost)); 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace devtools_util 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace extensions 45