Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / extensions / renderer / scripts_run_info.h
blob0c087155acd5f2e67c6a531fd94396e1e749dd79
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_
8 #include <map>
9 #include <set>
10 #include <string>
12 #include "base/basictypes.h"
13 #include "base/macros.h"
14 #include "base/timer/elapsed_timer.h"
15 #include "extensions/common/user_script.h"
17 namespace content {
18 class RenderFrame;
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);
30 ~ScriptsRunInfo();
32 // The number of CSS scripts injected.
33 size_t num_css;
34 // The number of JS scripts injected.
35 size_t num_js;
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.
44 void LogRun();
46 private:
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
49 // directly.
50 int routing_id_;
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.
56 GURL frame_url_;
58 DISALLOW_COPY_AND_ASSIGN(ScriptsRunInfo);
61 } // namespace extensions
63 #endif // EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_