Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2571)

Unified Diff: content/renderer/render_view_impl.cc

Issue 188923002: Move RenderViewHost::InsertCSS to RenderFrameHost. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: nasko Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index f4db0f2535b4a2f9056ae5f105d068dfc0eb1868..97d2eddfb1baf679eb6cdff2431f01a323751561 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -1125,7 +1125,6 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
OnResetPageEncodingToDefault)
IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest)
IPC_MESSAGE_HANDLER(ViewMsg_PostMessageEvent, OnPostMessageEvent)
- IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest)
IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter)
IPC_MESSAGE_HANDLER(DragMsg_TargetDragOver, OnDragTargetDragOver)
IPC_MESSAGE_HANDLER(DragMsg_TargetDragLeave, OnDragTargetDragLeave)
@@ -3249,7 +3248,31 @@ void RenderViewImpl::EvaluateScript(const base::string16& frame_xpath,
bool notify_result) {
v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
v8::Handle<v8::Value> result;
- WebFrame* web_frame = GetChildFrame(frame_xpath);
+
+ WebFrame* web_frame;
+ if (frame_xpath.empty()) {
+ web_frame = webview()->mainFrame();
+ } else {
+ // The |frame_xpath| string can represent a frame deep down the tree (across
+ // multiple frame DOMs).
+ //
+ // For example,
+ // /html/body/table/tbody/tr/td/iframe\n/frameset/frame[0]
+ // should break into 2 xpaths:
+ // /html/body/table/tbody/tr/td/iframe
+ // /frameset/frame[0]
+ std::vector<base::string16> xpaths;
+ base::SplitString(frame_xpath, '\n', &xpaths);
+
+ WebFrame* frame = webview()->mainFrame();
+ for (std::vector<base::string16>::const_iterator i = xpaths.begin();
+ frame && i != xpaths.end(); ++i) {
+ frame = frame->findChildByExpression(*i);
+ }
+
+ web_frame = frame;
+ }
+
if (web_frame)
result = web_frame->executeScriptAndReturnValue(WebScriptSource(jscript));
if (notify_result) {
@@ -3687,27 +3710,6 @@ void RenderViewImpl::OnResetPageEncodingToDefault() {
webview()->setPageEncoding(no_encoding);
}
-WebFrame* RenderViewImpl::GetChildFrame(const base::string16& xpath) const {
- if (xpath.empty())
- return webview()->mainFrame();
-
- // xpath string can represent a frame deep down the tree (across multiple
- // frame DOMs).
- // Example, /html/body/table/tbody/tr/td/iframe\n/frameset/frame[0]
- // should break into 2 xpaths
- // /html/body/table/tbody/tr/td/iframe & /frameset/frame[0]
- std::vector<base::string16> xpaths;
- base::SplitString(xpath, '\n', &xpaths);
-
- WebFrame* frame = webview()->mainFrame();
- for (std::vector<base::string16>::const_iterator i = xpaths.begin();
- frame && i != xpaths.end(); ++i) {
- frame = frame->findChildByExpression(*i);
- }
-
- return frame;
-}
-
void RenderViewImpl::OnScriptEvalRequest(const base::string16& frame_xpath,
const base::string16& jscript,
int id,
@@ -3762,15 +3764,6 @@ void RenderViewImpl::OnPostMessageEvent(
frame->dispatchMessageEventWithOriginCheck(target_origin, msg_event);
}
-void RenderViewImpl::OnCSSInsertRequest(const base::string16& frame_xpath,
- const std::string& css) {
- WebFrame* frame = GetChildFrame(frame_xpath);
- if (!frame)
- return;
-
- frame->document().insertStyleSheet(WebString::fromUTF8(css));
-}
-
void RenderViewImpl::OnAllowBindings(int enabled_bindings_flags) {
if ((enabled_bindings_flags & BINDINGS_POLICY_WEB_UI) &&
!(enabled_bindings_ & BINDINGS_POLICY_WEB_UI)) {
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698