1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
8 WebInspector.ContentScriptProjectDecorator = function()
10 WebInspector.targetManager.addModelListener(WebInspector.RuntimeModel, WebInspector.RuntimeModel.Events.ExecutionContextCreated, this._onContextCreated, this);
11 WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.ProjectAdded, this._onProjectAdded, this);
15 * @param {!WebInspector.Project} project
16 * @param {!WebInspector.ExecutionContext} context
18 WebInspector.ContentScriptProjectDecorator._updateProjectWithExtensionName = function(project, context)
20 if (project.url().startsWith(context.origin))
21 project.setDisplayName(context.name);
24 WebInspector.ContentScriptProjectDecorator.prototype = {
26 * @param {!WebInspector.Event} event
28 _onContextCreated: function(event)
30 var context = /** @type {!WebInspector.ExecutionContext} */(event.data);
31 if (!context.origin || !context.name)
34 var projects = WebInspector.workspace.projects();
35 projects = projects.filter(contentProjectWithName);
37 for (var i = 0; i < projects.length; ++i)
38 WebInspector.ContentScriptProjectDecorator._updateProjectWithExtensionName(projects[i], context);
41 * @param {!WebInspector.Project} project
44 function contentProjectWithName(project)
46 return !!project.url() && project.type() === WebInspector.projectTypes.ContentScripts;
51 * @param {!WebInspector.Event} event
53 _onProjectAdded: function(event)
55 var project = /** @type {!WebInspector.Project} */(event.data);
56 if (project.type() !== WebInspector.projectTypes.ContentScripts)
59 var targets = WebInspector.targetManager.targets();
61 for (var i = 0; i < targets.length; ++i)
62 contexts = contexts.concat(targets[i].runtimeModel.executionContexts());
63 contexts = contexts.filter(contextWithOriginAndName);
65 for (var i = 0; i < contexts.length; ++i)
66 WebInspector.ContentScriptProjectDecorator._updateProjectWithExtensionName(project, contexts[i]);
69 * @param {!WebInspector.ExecutionContext} context
72 function contextWithOriginAndName(context)
74 return !!context.origin && !!context.name;