Add early-injection capability to user scripts.
Review URL: http://codereview.chromium.org/19624
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9822 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index bbe14c43..a8adb2f91 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -1454,15 +1454,9 @@
// Check whether we have new encoding name.
UpdateEncoding(frame, webview->GetMainFrameEncodingName());
- // Inject any user scripts. Do not inject into chrome UI pages, but do inject
- // into any other document.
- const GURL &gurl = frame->GetURL();
- if (g_render_thread && // Will be NULL when testing.
- (gurl.SchemeIs("file") ||
- gurl.SchemeIs("http") ||
- gurl.SchemeIs("https"))) {
- g_render_thread->user_script_slave()->InjectScripts(frame);
- }
+ if (g_render_thread) // Will be NULL during unit tests.
+ g_render_thread->user_script_slave()->InjectScripts(
+ frame, UserScript::DOCUMENT_END);
}
void RenderView::DidHandleOnloadEventsForFrame(WebView* webview,
@@ -1530,6 +1524,12 @@
#endif
}
+void RenderView::DocumentElementAvailable(WebFrame* frame) {
+ if (g_render_thread) // Will be NULL during unit tests.
+ g_render_thread->user_script_slave()->InjectScripts(
+ frame, UserScript::DOCUMENT_START);
+}
+
WindowOpenDisposition RenderView::DispositionForNavigationAction(
WebView* webview,
WebFrame* frame,