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

Side by Side Diff: chrome/browser/renderer_host/render_view_host.cc

Issue 113488: Rename RendererSecurityPolicy and move it to browser\. No code change. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 7 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 | Annotate | Revision Log
OLDNEW
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/browser/renderer_host/render_view_host.h" 5 #include "chrome/browser/renderer_host/render_view_host.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/gfx/native_widget_types.h" 12 #include "base/gfx/native_widget_types.h"
13 #include "base/string_util.h" 13 #include "base/string_util.h"
14 #include "base/time.h" 14 #include "base/time.h"
15 #include "base/waitable_event.h" 15 #include "base/waitable_event.h"
16 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
17 #include "chrome/browser/child_process_security_policy.h"
17 #include "chrome/browser/cross_site_request_manager.h" 18 #include "chrome/browser/cross_site_request_manager.h"
18 #include "chrome/browser/debugger/debugger_wrapper.h" 19 #include "chrome/browser/debugger/debugger_wrapper.h"
19 #include "chrome/browser/debugger/devtools_manager.h" 20 #include "chrome/browser/debugger/devtools_manager.h"
20 #include "chrome/browser/extensions/extension_message_service.h" 21 #include "chrome/browser/extensions/extension_message_service.h"
21 #include "chrome/browser/metrics/user_metrics.h" 22 #include "chrome/browser/metrics/user_metrics.h"
22 #include "chrome/browser/profile.h" 23 #include "chrome/browser/profile.h"
23 #include "chrome/browser/renderer_host/renderer_security_policy.h"
24 #include "chrome/browser/renderer_host/render_process_host.h" 24 #include "chrome/browser/renderer_host/render_process_host.h"
25 #include "chrome/browser/renderer_host/render_view_host_delegate.h" 25 #include "chrome/browser/renderer_host/render_view_host_delegate.h"
26 #include "chrome/browser/renderer_host/render_widget_host.h" 26 #include "chrome/browser/renderer_host/render_widget_host.h"
27 #include "chrome/browser/renderer_host/render_widget_host_view.h" 27 #include "chrome/browser/renderer_host/render_widget_host_view.h"
28 #include "chrome/browser/tab_contents/navigation_entry.h" 28 #include "chrome/browser/tab_contents/navigation_entry.h"
29 #include "chrome/browser/tab_contents/site_instance.h" 29 #include "chrome/browser/tab_contents/site_instance.h"
30 #include "chrome/browser/tab_contents/tab_contents.h" 30 #include "chrome/browser/tab_contents/tab_contents.h"
31 #include "chrome/common/bindings_policy.h" 31 #include "chrome/common/bindings_policy.h"
32 #include "chrome/common/notification_service.h" 32 #include "chrome/common/notification_service.h"
33 #include "chrome/common/notification_type.h" 33 #include "chrome/common/notification_type.h"
34 #include "chrome/common/render_messages.h" 34 #include "chrome/common/render_messages.h"
35 #include "chrome/common/result_codes.h" 35 #include "chrome/common/result_codes.h"
36 #include "chrome/common/chrome_switches.h" 36 #include "chrome/common/chrome_switches.h"
37 #include "chrome/common/thumbnail_score.h" 37 #include "chrome/common/thumbnail_score.h"
38 #include "chrome/common/url_constants.h" 38 #include "chrome/common/url_constants.h"
39 #include "net/base/net_util.h" 39 #include "net/base/net_util.h"
40 #include "third_party/skia/include/core/SkBitmap.h" 40 #include "third_party/skia/include/core/SkBitmap.h"
41 #include "webkit/api/public/WebFindOptions.h" 41 #include "webkit/api/public/WebFindOptions.h"
42 #include "webkit/glue/autofill_form.h" 42 #include "webkit/glue/autofill_form.h"
43 43
44 using base::TimeDelta; 44 using base::TimeDelta;
45 using WebKit::WebConsoleMessage; 45 using WebKit::WebConsoleMessage;
46 using WebKit::WebFindOptions; 46 using WebKit::WebFindOptions;
47 using WebKit::WebInputEvent; 47 using WebKit::WebInputEvent;
48 48
49 namespace { 49 namespace {
50 50
51 void FilterURL(RendererSecurityPolicy* policy, int renderer_id, GURL* url) { 51 void FilterURL(ChildProcessSecurityPolicy* policy, int renderer_id, GURL* url) {
52 if (!url->is_valid()) 52 if (!url->is_valid())
53 return; // We don't need to block invalid URLs. 53 return; // We don't need to block invalid URLs.
54 54
55 if (url->SchemeIs(chrome::kAboutScheme)) { 55 if (url->SchemeIs(chrome::kAboutScheme)) {
56 // The renderer treats all URLs in the about: scheme as being about:blank. 56 // The renderer treats all URLs in the about: scheme as being about:blank.
57 // Canonicalize about: URLs to about:blank. 57 // Canonicalize about: URLs to about:blank.
58 *url = GURL(chrome::kAboutBlankURL); 58 *url = GURL(chrome::kAboutBlankURL);
59 } 59 }
60 60
61 if (!policy->CanRequestURL(renderer_id, *url)) { 61 if (!policy->CanRequestURL(renderer_id, *url)) {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // The process may (if we're sharing a process with another host that already 133 // The process may (if we're sharing a process with another host that already
134 // initialized it) or may not (we have our own process or the old process 134 // initialized it) or may not (we have our own process or the old process
135 // crashed) have been initialized. Calling Init multiple times will be 135 // crashed) have been initialized. Calling Init multiple times will be
136 // ignored, so this is safe. 136 // ignored, so this is safe.
137 if (!process()->Init()) 137 if (!process()->Init())
138 return false; 138 return false;
139 DCHECK(process()->channel()); 139 DCHECK(process()->channel());
140 DCHECK(process()->profile()); 140 DCHECK(process()->profile());
141 141
142 if (enabled_bindings_ & BindingsPolicy::DOM_UI) { 142 if (enabled_bindings_ & BindingsPolicy::DOM_UI) {
143 RendererSecurityPolicy::GetInstance()->GrantDOMUIBindings( 143 ChildProcessSecurityPolicy::GetInstance()->GrantDOMUIBindings(
144 process()->pid()); 144 process()->pid());
145 } 145 }
146 146
147 renderer_initialized_ = true; 147 renderer_initialized_ = true;
148 148
149 #if defined(OS_WIN) 149 #if defined(OS_WIN)
150 HANDLE modal_dialog_event_handle; 150 HANDLE modal_dialog_event_handle;
151 HANDLE renderer_process_handle = process()->process().handle(); 151 HANDLE renderer_process_handle = process()->process().handle();
152 if (renderer_process_handle == NULL) 152 if (renderer_process_handle == NULL)
153 renderer_process_handle = GetCurrentProcess(); 153 renderer_process_handle = GetCurrentProcess();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 189
190 bool RenderViewHost::IsRenderViewLive() const { 190 bool RenderViewHost::IsRenderViewLive() const {
191 return process()->channel() && renderer_initialized_; 191 return process()->channel() && renderer_initialized_;
192 } 192 }
193 193
194 void RenderViewHost::NavigateToEntry(const NavigationEntry& entry, 194 void RenderViewHost::NavigateToEntry(const NavigationEntry& entry,
195 bool is_reload) { 195 bool is_reload) {
196 ViewMsg_Navigate_Params params; 196 ViewMsg_Navigate_Params params;
197 MakeNavigateParams(entry, is_reload, &params); 197 MakeNavigateParams(entry, is_reload, &params);
198 198
199 RendererSecurityPolicy::GetInstance()->GrantRequestURL( 199 ChildProcessSecurityPolicy::GetInstance()->GrantRequestURL(
200 process()->pid(), params.url); 200 process()->pid(), params.url);
201 201
202 DoNavigate(entry.url(), new ViewMsg_Navigate(routing_id(), params)); 202 DoNavigate(entry.url(), new ViewMsg_Navigate(routing_id(), params));
203 } 203 }
204 204
205 void RenderViewHost::NavigateToURL(const GURL& url) { 205 void RenderViewHost::NavigateToURL(const GURL& url) {
206 ViewMsg_Navigate_Params params; 206 ViewMsg_Navigate_Params params;
207 params.page_id = -1; 207 params.page_id = -1;
208 params.url = url; 208 params.url = url;
209 params.transition = PageTransition::LINK; 209 params.transition = PageTransition::LINK;
210 params.reload = false; 210 params.reload = false;
211 211
212 RendererSecurityPolicy::GetInstance()->GrantRequestURL( 212 ChildProcessSecurityPolicy::GetInstance()->GrantRequestURL(
213 process()->pid(), params.url); 213 process()->pid(), params.url);
214 214
215 DoNavigate(url, new ViewMsg_Navigate(routing_id(), params)); 215 DoNavigate(url, new ViewMsg_Navigate(routing_id(), params));
216 } 216 }
217 217
218 void RenderViewHost::DoNavigate(const GURL& url, 218 void RenderViewHost::DoNavigate(const GURL& url,
219 ViewMsg_Navigate* nav_message) { 219 ViewMsg_Navigate* nav_message) {
220 // Only send the message if we aren't suspended at the start of a cross-site 220 // Only send the message if we aren't suspended at the start of a cross-site
221 // request. 221 // request.
222 if (navigations_suspended_) { 222 if (navigations_suspended_) {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 void RenderViewHost::FillPasswordForm( 389 void RenderViewHost::FillPasswordForm(
390 const PasswordFormDomManager::FillData& form_data) { 390 const PasswordFormDomManager::FillData& form_data) {
391 Send(new ViewMsg_FillPasswordForm(routing_id(), form_data)); 391 Send(new ViewMsg_FillPasswordForm(routing_id(), form_data));
392 } 392 }
393 393
394 void RenderViewHost::DragTargetDragEnter( 394 void RenderViewHost::DragTargetDragEnter(
395 const WebDropData& drop_data, 395 const WebDropData& drop_data,
396 const gfx::Point& client_pt, 396 const gfx::Point& client_pt,
397 const gfx::Point& screen_pt) { 397 const gfx::Point& screen_pt) {
398 // Grant the renderer the ability to load the drop_data. 398 // Grant the renderer the ability to load the drop_data.
399 RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance(); 399 ChildProcessSecurityPolicy* policy = ChildProcessSecurityPolicy::GetInstance() ;
400 policy->GrantRequestURL(process()->pid(), drop_data.url); 400 policy->GrantRequestURL(process()->pid(), drop_data.url);
401 for (std::vector<string16>::const_iterator iter(drop_data.filenames.begin()); 401 for (std::vector<string16>::const_iterator iter(drop_data.filenames.begin());
402 iter != drop_data.filenames.end(); ++iter) { 402 iter != drop_data.filenames.end(); ++iter) {
403 FilePath path = FilePath::FromWStringHack(UTF16ToWideHack(*iter)); 403 FilePath path = FilePath::FromWStringHack(UTF16ToWideHack(*iter));
404 policy->GrantRequestURL(process()->pid(), net::FilePathToFileURL(path)); 404 policy->GrantRequestURL(process()->pid(), net::FilePathToFileURL(path));
405 policy->GrantUploadFile(process()->pid(), path); 405 policy->GrantUploadFile(process()->pid(), path);
406 } 406 }
407 Send(new ViewMsg_DragTargetDragEnter(routing_id(), drop_data, client_pt, 407 Send(new ViewMsg_DragTargetDragEnter(routing_id(), drop_data, client_pt,
408 screen_pt)); 408 screen_pt));
409 } 409 }
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 void RenderViewHost::CopyImageAt(int x, int y) { 561 void RenderViewHost::CopyImageAt(int x, int y) {
562 Send(new ViewMsg_CopyImageAt(routing_id(), x, y)); 562 Send(new ViewMsg_CopyImageAt(routing_id(), x, y));
563 } 563 }
564 564
565 void RenderViewHost::InspectElementAt(int x, int y) { 565 void RenderViewHost::InspectElementAt(int x, int y) {
566 if (!CommandLine::ForCurrentProcess()->HasSwitch( 566 if (!CommandLine::ForCurrentProcess()->HasSwitch(
567 switches::kDisableOutOfProcessDevTools)) { 567 switches::kDisableOutOfProcessDevTools)) {
568 DevToolsManager* manager = g_browser_process->devtools_manager(); 568 DevToolsManager* manager = g_browser_process->devtools_manager();
569 manager->InspectElement(this, x, y); 569 manager->InspectElement(this, x, y);
570 } else { 570 } else {
571 RendererSecurityPolicy::GetInstance()-> 571 ChildProcessSecurityPolicy::GetInstance()->
572 GrantInspectElement(process()->pid()); 572 GrantInspectElement(process()->pid());
573 Send(new ViewMsg_InspectElement(routing_id(), x, y)); 573 Send(new ViewMsg_InspectElement(routing_id(), x, y));
574 } 574 }
575 } 575 }
576 576
577 void RenderViewHost::ShowJavaScriptConsole() { 577 void RenderViewHost::ShowJavaScriptConsole() {
578 if (!CommandLine::ForCurrentProcess()->HasSwitch( 578 if (!CommandLine::ForCurrentProcess()->HasSwitch(
579 switches::kDisableOutOfProcessDevTools)) { 579 switches::kDisableOutOfProcessDevTools)) {
580 DevToolsManager* manager = g_browser_process->devtools_manager(); 580 DevToolsManager* manager = g_browser_process->devtools_manager();
581 manager->OpenDevToolsWindow(this); 581 manager->OpenDevToolsWindow(this);
582 } else { 582 } else {
583 RendererSecurityPolicy::GetInstance()-> 583 ChildProcessSecurityPolicy::GetInstance()->
584 GrantInspectElement(process()->pid()); 584 GrantInspectElement(process()->pid());
585 Send(new ViewMsg_ShowJavaScriptConsole(routing_id())); 585 Send(new ViewMsg_ShowJavaScriptConsole(routing_id()));
586 } 586 }
587 } 587 }
588 588
589 void RenderViewHost::DragSourceEndedAt( 589 void RenderViewHost::DragSourceEndedAt(
590 int client_x, int client_y, int screen_x, int screen_y) { 590 int client_x, int client_y, int screen_x, int screen_y) {
591 Send(new ViewMsg_DragSourceEndedOrMoved( 591 Send(new ViewMsg_DragSourceEndedOrMoved(
592 routing_id(), 592 routing_id(),
593 gfx::Point(client_x, client_y), 593 gfx::Point(client_x, client_y),
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 661
662 void RenderViewHost::UpdateWebPreferences(const WebPreferences& prefs) { 662 void RenderViewHost::UpdateWebPreferences(const WebPreferences& prefs) {
663 Send(new ViewMsg_UpdateWebPreferences(routing_id(), prefs)); 663 Send(new ViewMsg_UpdateWebPreferences(routing_id(), prefs));
664 } 664 }
665 665
666 void RenderViewHost::InstallMissingPlugin() { 666 void RenderViewHost::InstallMissingPlugin() {
667 Send(new ViewMsg_InstallMissingPlugin(routing_id())); 667 Send(new ViewMsg_InstallMissingPlugin(routing_id()));
668 } 668 }
669 669
670 void RenderViewHost::FileSelected(const FilePath& path) { 670 void RenderViewHost::FileSelected(const FilePath& path) {
671 RendererSecurityPolicy::GetInstance()->GrantUploadFile(process()->pid(), 671 ChildProcessSecurityPolicy::GetInstance()->GrantUploadFile(process()->pid(),
672 path); 672 path);
673 std::vector<FilePath> files; 673 std::vector<FilePath> files;
674 files.push_back(path); 674 files.push_back(path);
675 Send(new ViewMsg_RunFileChooserResponse(routing_id(), files)); 675 Send(new ViewMsg_RunFileChooserResponse(routing_id(), files));
676 } 676 }
677 677
678 void RenderViewHost::MultiFilesSelected( 678 void RenderViewHost::MultiFilesSelected(
679 const std::vector<FilePath>& files) { 679 const std::vector<FilePath>& files) {
680 for (std::vector<FilePath>::const_iterator file = files.begin(); 680 for (std::vector<FilePath>::const_iterator file = files.begin();
681 file != files.end(); ++file) { 681 file != files.end(); ++file) {
682 RendererSecurityPolicy::GetInstance()->GrantUploadFile( 682 ChildProcessSecurityPolicy::GetInstance()->GrantUploadFile(
683 process()->pid(), *file); 683 process()->pid(), *file);
684 } 684 }
685 Send(new ViewMsg_RunFileChooserResponse(routing_id(), files)); 685 Send(new ViewMsg_RunFileChooserResponse(routing_id(), files));
686 } 686 }
687 687
688 void RenderViewHost::LoadStateChanged(const GURL& url, 688 void RenderViewHost::LoadStateChanged(const GURL& url,
689 net::LoadState load_state) { 689 net::LoadState load_state) {
690 delegate_->LoadStateChanged(url, load_state); 690 delegate_->LoadStateChanged(url, load_state);
691 } 691 }
692 692
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 void RenderViewHost::OnMsgNavigate(const IPC::Message& msg) { 899 void RenderViewHost::OnMsgNavigate(const IPC::Message& msg) {
900 // Read the parameters out of the IPC message directly to avoid making another 900 // Read the parameters out of the IPC message directly to avoid making another
901 // copy when we filter the URLs. 901 // copy when we filter the URLs.
902 void* iter = NULL; 902 void* iter = NULL;
903 ViewHostMsg_FrameNavigate_Params validated_params; 903 ViewHostMsg_FrameNavigate_Params validated_params;
904 if (!IPC::ParamTraits<ViewHostMsg_FrameNavigate_Params>:: 904 if (!IPC::ParamTraits<ViewHostMsg_FrameNavigate_Params>::
905 Read(&msg, &iter, &validated_params)) 905 Read(&msg, &iter, &validated_params))
906 return; 906 return;
907 907
908 const int renderer_id = process()->pid(); 908 const int renderer_id = process()->pid();
909 RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance(); 909 ChildProcessSecurityPolicy* policy = ChildProcessSecurityPolicy::GetInstance() ;
910 // Without this check, an evil renderer can trick the browser into creating 910 // Without this check, an evil renderer can trick the browser into creating
911 // a navigation entry for a banned URL. If the user clicks the back button 911 // a navigation entry for a banned URL. If the user clicks the back button
912 // followed by the forward button (or clicks reload, or round-trips through 912 // followed by the forward button (or clicks reload, or round-trips through
913 // session restore, etc), we'll think that the browser commanded the 913 // session restore, etc), we'll think that the browser commanded the
914 // renderer to load the URL and grant the renderer the privileges to request 914 // renderer to load the URL and grant the renderer the privileges to request
915 // the URL. To prevent this attack, we block the renderer from inserting 915 // the URL. To prevent this attack, we block the renderer from inserting
916 // banned URLs into the navigation controller in the first place. 916 // banned URLs into the navigation controller in the first place.
917 FilterURL(policy, renderer_id, &validated_params.url); 917 FilterURL(policy, renderer_id, &validated_params.url);
918 FilterURL(policy, renderer_id, &validated_params.referrer); 918 FilterURL(policy, renderer_id, &validated_params.referrer);
919 for (std::vector<GURL>::iterator it(validated_params.redirects.begin()); 919 for (std::vector<GURL>::iterator it(validated_params.redirects.begin());
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
995 const std::string& frame_origin, 995 const std::string& frame_origin,
996 const std::string& main_frame_origin, 996 const std::string& main_frame_origin,
997 const std::string& security_info) { 997 const std::string& security_info) {
998 delegate_->DidLoadResourceFromMemoryCache( 998 delegate_->DidLoadResourceFromMemoryCache(
999 url, frame_origin, main_frame_origin, security_info); 999 url, frame_origin, main_frame_origin, security_info);
1000 } 1000 }
1001 1001
1002 void RenderViewHost::OnMsgDidStartProvisionalLoadForFrame(bool is_main_frame, 1002 void RenderViewHost::OnMsgDidStartProvisionalLoadForFrame(bool is_main_frame,
1003 const GURL& url) { 1003 const GURL& url) {
1004 GURL validated_url(url); 1004 GURL validated_url(url);
1005 FilterURL(RendererSecurityPolicy::GetInstance(), 1005 FilterURL(ChildProcessSecurityPolicy::GetInstance(),
1006 process()->pid(), &validated_url); 1006 process()->pid(), &validated_url);
1007 1007
1008 delegate_->DidStartProvisionalLoadForFrame(this, is_main_frame, 1008 delegate_->DidStartProvisionalLoadForFrame(this, is_main_frame,
1009 validated_url); 1009 validated_url);
1010 } 1010 }
1011 1011
1012 void RenderViewHost::OnMsgDidFailProvisionalLoadWithError( 1012 void RenderViewHost::OnMsgDidFailProvisionalLoadWithError(
1013 bool is_main_frame, 1013 bool is_main_frame,
1014 int error_code, 1014 int error_code,
1015 const GURL& url, 1015 const GURL& url,
1016 bool showing_repost_interstitial) { 1016 bool showing_repost_interstitial) {
1017 GURL validated_url(url); 1017 GURL validated_url(url);
1018 FilterURL(RendererSecurityPolicy::GetInstance(), 1018 FilterURL(ChildProcessSecurityPolicy::GetInstance(),
1019 process()->pid(), &validated_url); 1019 process()->pid(), &validated_url);
1020 1020
1021 delegate_->DidFailProvisionalLoadWithError(this, is_main_frame, 1021 delegate_->DidFailProvisionalLoadWithError(this, is_main_frame,
1022 error_code, validated_url, 1022 error_code, validated_url,
1023 showing_repost_interstitial); 1023 showing_repost_interstitial);
1024 } 1024 }
1025 1025
1026 void RenderViewHost::OnMsgFindReply(int request_id, 1026 void RenderViewHost::OnMsgFindReply(int request_id,
1027 int number_of_matches, 1027 int number_of_matches,
1028 const gfx::Rect& selection_rect, 1028 const gfx::Rect& selection_rect,
(...skipping 26 matching lines...) Expand all
1055 1055
1056 void RenderViewHost::OnMsgContextMenu(const ContextMenuParams& params) { 1056 void RenderViewHost::OnMsgContextMenu(const ContextMenuParams& params) {
1057 RenderViewHostDelegate::View* view = delegate_->GetViewDelegate(); 1057 RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
1058 if (!view) 1058 if (!view)
1059 return; 1059 return;
1060 1060
1061 // Validate the URLs in |params|. If the renderer can't request the URLs 1061 // Validate the URLs in |params|. If the renderer can't request the URLs
1062 // directly, don't show them in the context menu. 1062 // directly, don't show them in the context menu.
1063 ContextMenuParams validated_params(params); 1063 ContextMenuParams validated_params(params);
1064 const int renderer_id = process()->pid(); 1064 const int renderer_id = process()->pid();
1065 RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance(); 1065 ChildProcessSecurityPolicy* policy = ChildProcessSecurityPolicy::GetInstance() ;
1066 1066
1067 // We don't validate |unfiltered_link_url| so that this field can be used 1067 // We don't validate |unfiltered_link_url| so that this field can be used
1068 // when users want to copy the original link URL. 1068 // when users want to copy the original link URL.
1069 FilterURL(policy, renderer_id, &validated_params.link_url); 1069 FilterURL(policy, renderer_id, &validated_params.link_url);
1070 FilterURL(policy, renderer_id, &validated_params.image_url); 1070 FilterURL(policy, renderer_id, &validated_params.image_url);
1071 FilterURL(policy, renderer_id, &validated_params.page_url); 1071 FilterURL(policy, renderer_id, &validated_params.page_url);
1072 FilterURL(policy, renderer_id, &validated_params.frame_url); 1072 FilterURL(policy, renderer_id, &validated_params.frame_url);
1073 1073
1074 view->ShowContextMenu(validated_params); 1074 view->ShowContextMenu(validated_params);
1075 } 1075 }
1076 1076
1077 void RenderViewHost::OnMsgOpenURL(const GURL& url, 1077 void RenderViewHost::OnMsgOpenURL(const GURL& url,
1078 const GURL& referrer, 1078 const GURL& referrer,
1079 WindowOpenDisposition disposition) { 1079 WindowOpenDisposition disposition) {
1080 GURL validated_url(url); 1080 GURL validated_url(url);
1081 FilterURL(RendererSecurityPolicy::GetInstance(), 1081 FilterURL(ChildProcessSecurityPolicy::GetInstance(),
1082 process()->pid(), &validated_url); 1082 process()->pid(), &validated_url);
1083 1083
1084 delegate_->RequestOpenURL(validated_url, referrer, disposition); 1084 delegate_->RequestOpenURL(validated_url, referrer, disposition);
1085 } 1085 }
1086 1086
1087 void RenderViewHost::OnMsgDidContentsPreferredWidthChange(int pref_width) { 1087 void RenderViewHost::OnMsgDidContentsPreferredWidthChange(int pref_width) {
1088 RenderViewHostDelegate::View* view = delegate_->GetViewDelegate(); 1088 RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
1089 if (!view) 1089 if (!view)
1090 return; 1090 return;
1091 view->UpdatePreferredWidth(pref_width); 1091 view->UpdatePreferredWidth(pref_width);
1092 } 1092 }
1093 1093
1094 void RenderViewHost::OnMsgDomOperationResponse( 1094 void RenderViewHost::OnMsgDomOperationResponse(
1095 const std::string& json_string, int automation_id) { 1095 const std::string& json_string, int automation_id) {
1096 delegate_->DomOperationResponse(json_string, automation_id); 1096 delegate_->DomOperationResponse(json_string, automation_id);
1097 } 1097 }
1098 1098
1099 void RenderViewHost::OnMsgDOMUISend( 1099 void RenderViewHost::OnMsgDOMUISend(
1100 const std::string& message, const std::string& content) { 1100 const std::string& message, const std::string& content) {
1101 if (!RendererSecurityPolicy::GetInstance()-> 1101 if (!ChildProcessSecurityPolicy::GetInstance()->
1102 HasDOMUIBindings(process()->pid())) { 1102 HasDOMUIBindings(process()->pid())) {
1103 NOTREACHED() << "Blocked unauthorized use of DOMUIBindings."; 1103 NOTREACHED() << "Blocked unauthorized use of DOMUIBindings.";
1104 return; 1104 return;
1105 } 1105 }
1106 delegate_->ProcessDOMUIMessage(message, content); 1106 delegate_->ProcessDOMUIMessage(message, content);
1107 } 1107 }
1108 1108
1109 void RenderViewHost::OnMsgForwardMessageToExternalHost( 1109 void RenderViewHost::OnMsgForwardMessageToExternalHost(
1110 const std::string& message, const std::string& origin, 1110 const std::string& message, const std::string& origin,
1111 const std::string& target) { 1111 const std::string& target) {
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
1405 Send(new ViewMsg_ExtensionResponse(routing_id(), request_id, success, 1405 Send(new ViewMsg_ExtensionResponse(routing_id(), request_id, success,
1406 response, error)); 1406 response, error));
1407 } 1407 }
1408 1408
1409 void RenderViewHost::OnExtensionPostMessage( 1409 void RenderViewHost::OnExtensionPostMessage(
1410 int port_id, const std::string& message) { 1410 int port_id, const std::string& message) {
1411 URLRequestContext* context = process()->profile()->GetRequestContext(); 1411 URLRequestContext* context = process()->profile()->GetRequestContext();
1412 ExtensionMessageService::GetInstance(context)-> 1412 ExtensionMessageService::GetInstance(context)->
1413 PostMessageFromRenderer(port_id, message); 1413 PostMessageFromRenderer(port_id, message);
1414 } 1414 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/browser_render_process_host.cc ('k') | chrome/browser/renderer_host/renderer_security_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698