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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom) 1118 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom)
1119 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevel, OnSetZoomLevel) 1119 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevel, OnSetZoomLevel)
1120 IPC_MESSAGE_HANDLER(ViewMsg_ZoomFactor, OnZoomFactor) 1120 IPC_MESSAGE_HANDLER(ViewMsg_ZoomFactor, OnZoomFactor)
1121 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL, 1121 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL,
1122 OnSetZoomLevelForLoadingURL) 1122 OnSetZoomLevelForLoadingURL)
1123 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding) 1123 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding)
1124 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault, 1124 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault,
1125 OnResetPageEncodingToDefault) 1125 OnResetPageEncodingToDefault)
1126 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest) 1126 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest)
1127 IPC_MESSAGE_HANDLER(ViewMsg_PostMessageEvent, OnPostMessageEvent) 1127 IPC_MESSAGE_HANDLER(ViewMsg_PostMessageEvent, OnPostMessageEvent)
1128 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest)
1129 IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter) 1128 IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter)
1130 IPC_MESSAGE_HANDLER(DragMsg_TargetDragOver, OnDragTargetDragOver) 1129 IPC_MESSAGE_HANDLER(DragMsg_TargetDragOver, OnDragTargetDragOver)
1131 IPC_MESSAGE_HANDLER(DragMsg_TargetDragLeave, OnDragTargetDragLeave) 1130 IPC_MESSAGE_HANDLER(DragMsg_TargetDragLeave, OnDragTargetDragLeave)
1132 IPC_MESSAGE_HANDLER(DragMsg_TargetDrop, OnDragTargetDrop) 1131 IPC_MESSAGE_HANDLER(DragMsg_TargetDrop, OnDragTargetDrop)
1133 IPC_MESSAGE_HANDLER(DragMsg_SourceEndedOrMoved, OnDragSourceEndedOrMoved) 1132 IPC_MESSAGE_HANDLER(DragMsg_SourceEndedOrMoved, OnDragSourceEndedOrMoved)
1134 IPC_MESSAGE_HANDLER(DragMsg_SourceSystemDragEnded, 1133 IPC_MESSAGE_HANDLER(DragMsg_SourceSystemDragEnded,
1135 OnDragSourceSystemDragEnded) 1134 OnDragSourceSystemDragEnded)
1136 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings) 1135 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings)
1137 IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus) 1136 IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus)
1138 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck) 1137 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck)
(...skipping 2103 matching lines...) Expand 10 before | Expand all | Expand 10 after
3242 3241
3243 return false; 3242 return false;
3244 } 3243 }
3245 3244
3246 void RenderViewImpl::EvaluateScript(const base::string16& frame_xpath, 3245 void RenderViewImpl::EvaluateScript(const base::string16& frame_xpath,
3247 const base::string16& jscript, 3246 const base::string16& jscript,
3248 int id, 3247 int id,
3249 bool notify_result) { 3248 bool notify_result) {
3250 v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); 3249 v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
3251 v8::Handle<v8::Value> result; 3250 v8::Handle<v8::Value> result;
3252 WebFrame* web_frame = GetChildFrame(frame_xpath); 3251
3252 WebFrame* web_frame;
3253 if (frame_xpath.empty()) {
3254 web_frame = webview()->mainFrame();
3255 } else {
3256 // The |frame_xpath| string can represent a frame deep down the tree (across
3257 // multiple frame DOMs).
3258 //
3259 // For example,
3260 // /html/body/table/tbody/tr/td/iframe\n/frameset/frame[0]
3261 // should break into 2 xpaths:
3262 // /html/body/table/tbody/tr/td/iframe
3263 // /frameset/frame[0]
3264 std::vector<base::string16> xpaths;
3265 base::SplitString(frame_xpath, '\n', &xpaths);
3266
3267 WebFrame* frame = webview()->mainFrame();
3268 for (std::vector<base::string16>::const_iterator i = xpaths.begin();
3269 frame && i != xpaths.end(); ++i) {
3270 frame = frame->findChildByExpression(*i);
3271 }
3272
3273 web_frame = frame;
3274 }
3275
3253 if (web_frame) 3276 if (web_frame)
3254 result = web_frame->executeScriptAndReturnValue(WebScriptSource(jscript)); 3277 result = web_frame->executeScriptAndReturnValue(WebScriptSource(jscript));
3255 if (notify_result) { 3278 if (notify_result) {
3256 base::ListValue list; 3279 base::ListValue list;
3257 if (!result.IsEmpty() && web_frame) { 3280 if (!result.IsEmpty() && web_frame) {
3258 v8::Local<v8::Context> context = web_frame->mainWorldScriptContext(); 3281 v8::Local<v8::Context> context = web_frame->mainWorldScriptContext();
3259 v8::Context::Scope context_scope(context); 3282 v8::Context::Scope context_scope(context);
3260 V8ValueConverterImpl converter; 3283 V8ValueConverterImpl converter;
3261 converter.SetDateAllowed(true); 3284 converter.SetDateAllowed(true);
3262 converter.SetRegExpAllowed(true); 3285 converter.SetRegExpAllowed(true);
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
3680 3703
3681 void RenderViewImpl::OnSetPageEncoding(const std::string& encoding_name) { 3704 void RenderViewImpl::OnSetPageEncoding(const std::string& encoding_name) {
3682 webview()->setPageEncoding(WebString::fromUTF8(encoding_name)); 3705 webview()->setPageEncoding(WebString::fromUTF8(encoding_name));
3683 } 3706 }
3684 3707
3685 void RenderViewImpl::OnResetPageEncodingToDefault() { 3708 void RenderViewImpl::OnResetPageEncodingToDefault() {
3686 WebString no_encoding; 3709 WebString no_encoding;
3687 webview()->setPageEncoding(no_encoding); 3710 webview()->setPageEncoding(no_encoding);
3688 } 3711 }
3689 3712
3690 WebFrame* RenderViewImpl::GetChildFrame(const base::string16& xpath) const {
3691 if (xpath.empty())
3692 return webview()->mainFrame();
3693
3694 // xpath string can represent a frame deep down the tree (across multiple
3695 // frame DOMs).
3696 // Example, /html/body/table/tbody/tr/td/iframe\n/frameset/frame[0]
3697 // should break into 2 xpaths
3698 // /html/body/table/tbody/tr/td/iframe & /frameset/frame[0]
3699 std::vector<base::string16> xpaths;
3700 base::SplitString(xpath, '\n', &xpaths);
3701
3702 WebFrame* frame = webview()->mainFrame();
3703 for (std::vector<base::string16>::const_iterator i = xpaths.begin();
3704 frame && i != xpaths.end(); ++i) {
3705 frame = frame->findChildByExpression(*i);
3706 }
3707
3708 return frame;
3709 }
3710
3711 void RenderViewImpl::OnScriptEvalRequest(const base::string16& frame_xpath, 3713 void RenderViewImpl::OnScriptEvalRequest(const base::string16& frame_xpath,
3712 const base::string16& jscript, 3714 const base::string16& jscript,
3713 int id, 3715 int id,
3714 bool notify_result) { 3716 bool notify_result) {
3715 TRACE_EVENT_INSTANT0("test_tracing", "OnScriptEvalRequest", 3717 TRACE_EVENT_INSTANT0("test_tracing", "OnScriptEvalRequest",
3716 TRACE_EVENT_SCOPE_THREAD); 3718 TRACE_EVENT_SCOPE_THREAD);
3717 EvaluateScript(frame_xpath, jscript, id, notify_result); 3719 EvaluateScript(frame_xpath, jscript, id, notify_result);
3718 } 3720 }
3719 3721
3720 void RenderViewImpl::OnPostMessageEvent( 3722 void RenderViewImpl::OnPostMessageEvent(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3755 // We must pass in the target_origin to do the security check on this side, 3757 // We must pass in the target_origin to do the security check on this side,
3756 // since it may have changed since the original postMessage call was made. 3758 // since it may have changed since the original postMessage call was made.
3757 WebSecurityOrigin target_origin; 3759 WebSecurityOrigin target_origin;
3758 if (!params.target_origin.empty()) { 3760 if (!params.target_origin.empty()) {
3759 target_origin = 3761 target_origin =
3760 WebSecurityOrigin::createFromString(WebString(params.target_origin)); 3762 WebSecurityOrigin::createFromString(WebString(params.target_origin));
3761 } 3763 }
3762 frame->dispatchMessageEventWithOriginCheck(target_origin, msg_event); 3764 frame->dispatchMessageEventWithOriginCheck(target_origin, msg_event);
3763 } 3765 }
3764 3766
3765 void RenderViewImpl::OnCSSInsertRequest(const base::string16& frame_xpath,
3766 const std::string& css) {
3767 WebFrame* frame = GetChildFrame(frame_xpath);
3768 if (!frame)
3769 return;
3770
3771 frame->document().insertStyleSheet(WebString::fromUTF8(css));
3772 }
3773
3774 void RenderViewImpl::OnAllowBindings(int enabled_bindings_flags) { 3767 void RenderViewImpl::OnAllowBindings(int enabled_bindings_flags) {
3775 if ((enabled_bindings_flags & BINDINGS_POLICY_WEB_UI) && 3768 if ((enabled_bindings_flags & BINDINGS_POLICY_WEB_UI) &&
3776 !(enabled_bindings_ & BINDINGS_POLICY_WEB_UI)) { 3769 !(enabled_bindings_ & BINDINGS_POLICY_WEB_UI)) {
3777 new WebUIExtensionData(this); 3770 new WebUIExtensionData(this);
3778 } 3771 }
3779 3772
3780 enabled_bindings_ |= enabled_bindings_flags; 3773 enabled_bindings_ |= enabled_bindings_flags;
3781 3774
3782 // Keep track of the total bindings accumulated in this process. 3775 // Keep track of the total bindings accumulated in this process.
3783 RenderProcess::current()->AddBindings(enabled_bindings_flags); 3776 RenderProcess::current()->AddBindings(enabled_bindings_flags);
(...skipping 1439 matching lines...) Expand 10 before | Expand all | Expand 10 after
5223 for (size_t i = 0; i < icon_urls.size(); i++) { 5216 for (size_t i = 0; i < icon_urls.size(); i++) {
5224 WebURL url = icon_urls[i].iconURL(); 5217 WebURL url = icon_urls[i].iconURL();
5225 if (!url.isEmpty()) 5218 if (!url.isEmpty())
5226 urls.push_back(FaviconURL(url, 5219 urls.push_back(FaviconURL(url,
5227 ToFaviconType(icon_urls[i].iconType()))); 5220 ToFaviconType(icon_urls[i].iconType())));
5228 } 5221 }
5229 SendUpdateFaviconURL(urls); 5222 SendUpdateFaviconURL(urls);
5230 } 5223 }
5231 5224
5232 } // namespace content 5225 } // namespace content
OLDNEW
« 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