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. 4 5 #ifndef EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_ 6 #define EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_ 7 8 #include <map> 9 #include <set> 10 #include <string> 11 12 #include "base/basictypes.h" 13 #include "base/macros.h" 14 #include "base/timer/elapsed_timer.h" 15 #include "extensions/common/user_script.h" 16 17 namespace blink { 18 class WebFrame; 19 } 20 21 namespace extensions { 22 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; 27 28 ScriptsRunInfo(); 29 ~ScriptsRunInfo(); 30 31 // The number of CSS scripts injected. 32 size_t num_css; 33 // The number of JS scripts injected. 34 size_t num_js; 35 // A map of extension ids to executing script paths. 36 ExecutingScriptsMap executing_scripts; 37 // The elapsed time since the ScriptsRunInfo was constructed. 38 base::ElapsedTimer timer; 39 40 // Log information about a given script run. 41 void LogRun(blink::WebFrame* web_frame, UserScript::RunLocation location); 42 43 private: 44 DISALLOW_COPY_AND_ASSIGN(ScriptsRunInfo); 45 }; 46 47 } // namespace extensions 48 49 #endif // EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_ 50