diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-29 12:41:28 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-29 12:41:28 +0000 |
commit | 6787d0c8ea33ceb8094db48d1b5bc24208bad433 (patch) | |
tree | 075db87129cb882dcb5117aaa7cb7684cd5882ef /chrome/renderer/render_view.cc | |
parent | 8b6c5a26007dae63d32e0fcaec9bd687a2e3e8b7 (diff) | |
download | chromium_src-6787d0c8ea33ceb8094db48d1b5bc24208bad433.zip chromium_src-6787d0c8ea33ceb8094db48d1b5bc24208bad433.tar.gz chromium_src-6787d0c8ea33ceb8094db48d1b5bc24208bad433.tar.bz2 |
Implement HostContentSettingsMap
This map stores whether a given host may load images or use plugins and javascript. And makes this information available to the render view
BUG=32782
TEST=none
Review URL: http://codereview.chromium.org/551149
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37508 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index a27792f4..c101235 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -494,6 +494,8 @@ void RenderView::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_ExecuteEditCommand, OnExecuteEditCommand) IPC_MESSAGE_HANDLER(ViewMsg_Find, OnFind) IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom) + IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForLoadingHost, + OnSetContentSettingsForLoadingHost) IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingHost, OnSetZoomLevelForLoadingHost) IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding) @@ -3136,6 +3138,18 @@ void RenderView::OnZoom(PageZoom::Function function) { Send(new ViewHostMsg_DidZoomHost(host, new_zoom_level)); } +void RenderView::OnSetContentSettingsForLoadingHost(std::string host, + int content_settings) { + WebFrame* main_frame = webview()->mainFrame(); + DCHECK(main_frame); + WebDataSource* ds = main_frame->provisionalDataSource(); + DCHECK(ds); + NavigationState* navigation_state = NavigationState::FromDataSource(ds); + DCHECK(navigation_state); + navigation_state->set_content_permissions( + ContentPermissions::FromInteger(content_settings)); +} + void RenderView::OnSetZoomLevelForLoadingHost(std::string host, int zoom_level) { host_zoom_levels_[host] = zoom_level; |