1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <map> 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <set> 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <string> 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/basictypes.h" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/timer/elapsed_timer.h" 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "extensions/common/user_script.h" 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace blink { 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass WebFrame; 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace extensions { 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// A struct containing information about a script run. 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct ScriptsRunInfo { 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Map of extensions IDs to the executing script paths. 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef std::map<std::string, std::set<std::string> > ExecutingScriptsMap; 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ScriptsRunInfo(); 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ~ScriptsRunInfo(); 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // The number of CSS scripts injected. 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch size_t num_css; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // The number of JS scripts injected. 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch size_t num_js; 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // A map of extension ids to executing script paths. 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ExecutingScriptsMap executing_scripts; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // The elapsed time since the ScriptsRunInfo was constructed. 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::ElapsedTimer timer; 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Log information about a given script run. 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void LogRun(blink::WebFrame* web_frame, UserScript::RunLocation location); 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(ScriptsRunInfo); 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace extensions 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // EXTENSIONS_RENDERER_SCRIPTS_RUN_INFO_H_ 50