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.
5 #ifndef EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_
6 #define EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_
12 #include "base/basictypes.h"
13 #include "base/macros.h"
14 #include "base/timer/elapsed_timer.h"
15 #include "extensions/common/user_script.h"
21 namespace extensions
{
23 // A struct containing information about a script run.
24 struct ScriptsRunInfo
{
25 // Map of extensions IDs to the executing script paths.
26 typedef std::map
<std::string
, std::set
<std::string
> > ExecutingScriptsMap
;
28 ScriptsRunInfo(content::RenderFrame
* render_frame
,
29 UserScript::RunLocation location
);
32 // The number of CSS scripts injected.
34 // The number of JS scripts injected.
36 // The number of blocked JS scripts injected.
37 size_t num_blocking_js
;
38 // A map of extension ids to executing script paths.
39 ExecutingScriptsMap executing_scripts
;
40 // The elapsed time since the ScriptsRunInfo was constructed.
41 base::ElapsedTimer timer
;
43 // Log information about a given script run.
47 // The routinig id to use to notify the browser of any injections. Since the
48 // frame may be deleted in injection, we don't hold on to a reference to it
52 // The run location at which injection is happening.
53 UserScript::RunLocation run_location_
;
55 // The url of the frame, preserved for the same reason as the routing id.
58 DISALLOW_COPY_AND_ASSIGN(ScriptsRunInfo
);
61 } // namespace extensions
63 #endif // EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_