| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/user_script_slave.h" | 5 #include "chrome/renderer/user_script_slave.h" |
| 6 | 6 |
| 7 #include "app/resource_bundle.h" | 7 #include "app/resource_bundle.h" |
| 8 #include "base/histogram.h" | 8 #include "base/histogram.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/perftimer.h" | 10 #include "base/perftimer.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 if (frame_url.host() == GURL(Extension::kGalleryBrowseUrl).host()) | 134 if (frame_url.host() == GURL(Extension::kGalleryBrowseUrl).host()) |
| 135 return true; | 135 return true; |
| 136 | 136 |
| 137 PerfTimer timer; | 137 PerfTimer timer; |
| 138 int num_css = 0; | 138 int num_css = 0; |
| 139 int num_scripts = 0; | 139 int num_scripts = 0; |
| 140 | 140 |
| 141 for (size_t i = 0; i < scripts_.size(); ++i) { | 141 for (size_t i = 0; i < scripts_.size(); ++i) { |
| 142 std::vector<WebScriptSource> sources; | 142 std::vector<WebScriptSource> sources; |
| 143 UserScript* script = scripts_[i]; | 143 UserScript* script = scripts_[i]; |
| 144 |
| 145 if (frame->parent() && !script->match_all_frames()) |
| 146 continue; // Only match subframes if the script declared it wanted to. |
| 147 |
| 144 if (!script->MatchesUrl(frame->url())) | 148 if (!script->MatchesUrl(frame->url())) |
| 145 continue; // This frame doesn't match the script url pattern, skip it. | 149 continue; // This frame doesn't match the script url pattern, skip it. |
| 146 | 150 |
| 147 // CSS files are always injected on document start before js scripts. | 151 // CSS files are always injected on document start before js scripts. |
| 148 if (location == UserScript::DOCUMENT_START) { | 152 if (location == UserScript::DOCUMENT_START) { |
| 149 num_css += script->css_scripts().size(); | 153 num_css += script->css_scripts().size(); |
| 150 for (size_t j = 0; j < script->css_scripts().size(); ++j) { | 154 for (size_t j = 0; j < script->css_scripts().size(); ++j) { |
| 151 PerfTimer insert_timer; | 155 PerfTimer insert_timer; |
| 152 UserScript::File& file = script->css_scripts()[j]; | 156 UserScript::File& file = script->css_scripts()[j]; |
| 153 frame->insertStyleText( | 157 frame->insertStyleText( |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 if (num_scripts) | 216 if (num_scripts) |
| 213 UMA_HISTOGRAM_TIMES("Extensions.InjectIdle_Time", timer.Elapsed()); | 217 UMA_HISTOGRAM_TIMES("Extensions.InjectIdle_Time", timer.Elapsed()); |
| 214 } else { | 218 } else { |
| 215 NOTREACHED(); | 219 NOTREACHED(); |
| 216 } | 220 } |
| 217 | 221 |
| 218 LOG(INFO) << "Injected " << num_scripts << " scripts and " << num_css << | 222 LOG(INFO) << "Injected " << num_scripts << " scripts and " << num_css << |
| 219 "css files into " << frame->url().spec().data(); | 223 "css files into " << frame->url().spec().data(); |
| 220 return true; | 224 return true; |
| 221 } | 225 } |
| OLD | NEW |