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

Side by Side Diff: content/renderer/render_view.cc

Issue 6873040: Move the content settings code out of RenderView, since it belongs in the Chrome layer. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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.h" 5 #include "content/renderer/render_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 static const char kBackForwardNavigationScheme[] = "history"; 254 static const char kBackForwardNavigationScheme[] = "history";
255 255
256 static void GetRedirectChain(WebDataSource* ds, std::vector<GURL>* result) { 256 static void GetRedirectChain(WebDataSource* ds, std::vector<GURL>* result) {
257 WebVector<WebURL> urls; 257 WebVector<WebURL> urls;
258 ds->redirectChain(urls); 258 ds->redirectChain(urls);
259 result->reserve(urls.size()); 259 result->reserve(urls.size());
260 for (size_t i = 0; i < urls.size(); ++i) 260 for (size_t i = 0; i < urls.size(); ++i)
261 result->push_back(urls[i]); 261 result->push_back(urls[i]);
262 } 262 }
263 263
264 // True if |frame| contains content that is white-listed for content settings.
265 static bool IsWhitelistedForContentSettings(WebFrame* frame) {
266 WebSecurityOrigin origin = frame->securityOrigin();
267 if (origin.isEmpty())
268 return false; // Uninitialized document?
269
270 if (EqualsASCII(origin.protocol(), chrome::kChromeUIScheme))
271 return true; // Browser UI elements should still work.
272
273 // If the scheme is ftp: or file:, an empty file name indicates a directory
274 // listing, which requires JavaScript to function properly.
275 GURL frame_url = frame->url();
276 const char* kDirProtocols[] = { "ftp", "file" };
277 for (size_t i = 0; i < arraysize(kDirProtocols); ++i) {
278 if (EqualsASCII(origin.protocol(), kDirProtocols[i])) {
279 return frame_url.SchemeIs(kDirProtocols[i]) &&
280 frame_url.ExtractFileName().empty();
281 }
282 }
283
284 return false;
285 }
286
287 static bool WebAccessibilityNotificationToViewHostMsg( 264 static bool WebAccessibilityNotificationToViewHostMsg(
288 WebAccessibilityNotification notification, 265 WebAccessibilityNotification notification,
289 ViewHostMsg_AccessibilityNotification_Type::Value* type) { 266 ViewHostMsg_AccessibilityNotification_Type::Value* type) {
290 switch (notification) { 267 switch (notification) {
291 case WebKit::WebAccessibilityNotificationCheckedStateChanged: 268 case WebKit::WebAccessibilityNotificationCheckedStateChanged:
292 *type = ViewHostMsg_AccessibilityNotification_Type:: 269 *type = ViewHostMsg_AccessibilityNotification_Type::
293 NOTIFICATION_TYPE_CHECK_STATE_CHANGED; 270 NOTIFICATION_TYPE_CHECK_STATE_CHANGED;
294 break; 271 break;
295 case WebKit::WebAccessibilityNotificationChildrenChanged: 272 case WebKit::WebAccessibilityNotificationChildrenChanged:
296 *type = ViewHostMsg_AccessibilityNotification_Type:: 273 *type = ViewHostMsg_AccessibilityNotification_Type::
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 target_url_status_(TARGET_NONE), 370 target_url_status_(TARGET_NONE),
394 ALLOW_THIS_IN_INITIALIZER_LIST(pepper_delegate_(this)), 371 ALLOW_THIS_IN_INITIALIZER_LIST(pepper_delegate_(this)),
395 ALLOW_THIS_IN_INITIALIZER_LIST(accessibility_method_factory_(this)), 372 ALLOW_THIS_IN_INITIALIZER_LIST(accessibility_method_factory_(this)),
396 ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)), 373 ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)),
397 geolocation_dispatcher_(NULL), 374 geolocation_dispatcher_(NULL),
398 speech_input_dispatcher_(NULL), 375 speech_input_dispatcher_(NULL),
399 device_orientation_dispatcher_(NULL), 376 device_orientation_dispatcher_(NULL),
400 accessibility_ack_pending_(false), 377 accessibility_ack_pending_(false),
401 p2p_socket_dispatcher_(NULL), 378 p2p_socket_dispatcher_(NULL),
402 session_storage_namespace_id_(session_storage_namespace_id) { 379 session_storage_namespace_id_(session_storage_namespace_id) {
403
404 ClearBlockedContentSettings();
405
406 routing_id_ = routing_id; 380 routing_id_ = routing_id;
407 if (opener_id != MSG_ROUTING_NONE) 381 if (opener_id != MSG_ROUTING_NONE)
408 opener_id_ = opener_id; 382 opener_id_ = opener_id;
409 383
410 webwidget_ = WebView::create(this); 384 webwidget_ = WebView::create(this);
411 385
412 if (counter) { 386 if (counter) {
413 shared_popup_counter_ = counter; 387 shared_popup_counter_ = counter;
414 shared_popup_counter_->data++; 388 shared_popup_counter_->data++;
415 decrement_shared_popup_at_destruction_ = true; 389 decrement_shared_popup_at_destruction_ = true;
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste) 622 IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste)
649 IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace) 623 IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace)
650 IPC_MESSAGE_HANDLER(ViewMsg_Delete, OnDelete) 624 IPC_MESSAGE_HANDLER(ViewMsg_Delete, OnDelete)
651 IPC_MESSAGE_HANDLER(ViewMsg_SelectAll, OnSelectAll) 625 IPC_MESSAGE_HANDLER(ViewMsg_SelectAll, OnSelectAll)
652 IPC_MESSAGE_HANDLER(ViewMsg_CopyImageAt, OnCopyImageAt) 626 IPC_MESSAGE_HANDLER(ViewMsg_CopyImageAt, OnCopyImageAt)
653 IPC_MESSAGE_HANDLER(ViewMsg_ExecuteEditCommand, OnExecuteEditCommand) 627 IPC_MESSAGE_HANDLER(ViewMsg_ExecuteEditCommand, OnExecuteEditCommand)
654 IPC_MESSAGE_HANDLER(ViewMsg_Find, OnFind) 628 IPC_MESSAGE_HANDLER(ViewMsg_Find, OnFind)
655 IPC_MESSAGE_HANDLER(ViewMsg_StopFinding, OnStopFinding) 629 IPC_MESSAGE_HANDLER(ViewMsg_StopFinding, OnStopFinding)
656 IPC_MESSAGE_HANDLER(ViewMsg_FindReplyACK, OnFindReplyAck) 630 IPC_MESSAGE_HANDLER(ViewMsg_FindReplyACK, OnFindReplyAck)
657 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom) 631 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom)
658 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForLoadingURL,
659 OnSetContentSettingsForLoadingURL)
660 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevel, OnSetZoomLevel) 632 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevel, OnSetZoomLevel)
661 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL, 633 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL,
662 OnSetZoomLevelForLoadingURL) 634 OnSetZoomLevelForLoadingURL)
663 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding) 635 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding)
664 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault, 636 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault,
665 OnResetPageEncodingToDefault) 637 OnResetPageEncodingToDefault)
666 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest) 638 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest)
667 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest) 639 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest)
668 IPC_MESSAGE_HANDLER(ViewMsg_ReservePageIDRange, OnReservePageIDRange) 640 IPC_MESSAGE_HANDLER(ViewMsg_ReservePageIDRange, OnReservePageIDRange)
669 IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter) 641 IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter)
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 if (!node.isNull()) { 936 if (!node.isNull()) {
965 if (IsEditableNode(node)) 937 if (IsEditableNode(node))
966 // TODO(varunjain): Change webkit API to scroll a particular node into 938 // TODO(varunjain): Change webkit API to scroll a particular node into
967 // view and use that API here instead. 939 // view and use that API here instead.
968 webview()->scrollFocusedNodeIntoView(); 940 webview()->scrollFocusedNodeIntoView();
969 } 941 }
970 } 942 }
971 943
972 /////////////////////////////////////////////////////////////////////////////// 944 ///////////////////////////////////////////////////////////////////////////////
973 945
974 void RenderView::SetContentSettings(const ContentSettings& settings) {
975 current_content_settings_ = settings;
976 }
977
978 // Tell the embedding application that the URL of the active page has changed 946 // Tell the embedding application that the URL of the active page has changed
979 void RenderView::UpdateURL(WebFrame* frame) { 947 void RenderView::UpdateURL(WebFrame* frame) {
980 WebDataSource* ds = frame->dataSource(); 948 WebDataSource* ds = frame->dataSource();
981 DCHECK(ds); 949 DCHECK(ds);
982 950
983 const WebURLRequest& request = ds->request(); 951 const WebURLRequest& request = ds->request();
984 const WebURLRequest& original_request = ds->originalRequest(); 952 const WebURLRequest& original_request = ds->originalRequest();
985 const WebURLResponse& response = ds->response(); 953 const WebURLResponse& response = ds->response();
986 954
987 NavigationState* navigation_state = NavigationState::FromDataSource(ds); 955 NavigationState* navigation_state = NavigationState::FromDataSource(ds);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 const WebHistoryItem& item = frame->currentHistoryItem(); 1003 const WebHistoryItem& item = frame->currentHistoryItem();
1036 if (!item.isNull()) { 1004 if (!item.isNull()) {
1037 params.content_state = webkit_glue::HistoryItemToString(item); 1005 params.content_state = webkit_glue::HistoryItemToString(item);
1038 } else { 1006 } else {
1039 params.content_state = 1007 params.content_state =
1040 webkit_glue::CreateHistoryStateForURL(GURL(request.url())); 1008 webkit_glue::CreateHistoryStateForURL(GURL(request.url()));
1041 } 1009 }
1042 1010
1043 if (!frame->parent()) { 1011 if (!frame->parent()) {
1044 // Top-level navigation. 1012 // Top-level navigation.
1045
1046 // Clear "block" flags for the new page. This needs to happen before any of
1047 // allowScripts(), allowImages(), allowPlugins() is called for the new page
1048 // so that these functions can correctly detect that a piece of content
1049 // flipped from "not blocked" to "blocked".
1050 ClearBlockedContentSettings();
1051
1052 // Set content settings. Default them from the parent window if one exists.
1053 // This makes sure about:blank windows work as expected.
1054 HostContentSettings::iterator host_content_settings =
1055 host_content_settings_.find(GURL(request.url()));
1056 if (host_content_settings != host_content_settings_.end()) {
1057 SetContentSettings(host_content_settings->second);
1058
1059 // These content settings were merely recorded transiently for this load.
1060 // We can erase them now. If at some point we reload this page, the
1061 // browser will send us new, up-to-date content settings.
1062 host_content_settings_.erase(host_content_settings);
1063 } else if (frame->opener()) {
1064 // The opener's view is not guaranteed to be non-null (it could be
1065 // detached from its page but not yet destructed).
1066 if (WebView* opener_view = frame->opener()->view()) {
1067 RenderView* opener = FromWebView(opener_view);
1068 SetContentSettings(opener->current_content_settings_);
1069 }
1070 }
1071
1072 // Set zoom level, but don't do it for full-page plugin since they don't use 1013 // Set zoom level, but don't do it for full-page plugin since they don't use
1073 // the same zoom settings. 1014 // the same zoom settings.
1074 HostZoomLevels::iterator host_zoom = 1015 HostZoomLevels::iterator host_zoom =
1075 host_zoom_levels_.find(GURL(request.url())); 1016 host_zoom_levels_.find(GURL(request.url()));
1076 if (webview()->mainFrame()->document().isPluginDocument()) { 1017 if (webview()->mainFrame()->document().isPluginDocument()) {
1077 // Reset the zoom levels for plugins. 1018 // Reset the zoom levels for plugins.
1078 webview()->setZoomLevel(false, 0); 1019 webview()->setZoomLevel(false, 0);
1079 } else { 1020 } else {
1080 if (host_zoom != host_zoom_levels_.end()) 1021 if (host_zoom != host_zoom_levels_.end())
1081 webview()->setZoomLevel(false, host_zoom->second); 1022 webview()->setZoomLevel(false, host_zoom->second);
(...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after
1985 } 1926 }
1986 1927
1987 void RenderView::frameDetached(WebFrame* frame) { 1928 void RenderView::frameDetached(WebFrame* frame) {
1988 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameDetached(frame)); 1929 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameDetached(frame));
1989 } 1930 }
1990 1931
1991 void RenderView::willClose(WebFrame* frame) { 1932 void RenderView::willClose(WebFrame* frame) {
1992 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameWillClose(frame)); 1933 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameWillClose(frame));
1993 } 1934 }
1994 1935
1995 bool RenderView::allowImages(WebFrame* frame, bool enabled_per_settings) {
1996 if (enabled_per_settings &&
1997 AllowContentType(CONTENT_SETTINGS_TYPE_IMAGES))
1998 return true;
1999
2000 if (IsWhitelistedForContentSettings(frame))
2001 return true;
2002
2003 DidBlockContentType(CONTENT_SETTINGS_TYPE_IMAGES, std::string());
2004 return false; // Other protocols fall through here.
2005 }
2006
2007 bool RenderView::allowPlugins(WebFrame* frame, bool enabled_per_settings) {
2008 return WebFrameClient::allowPlugins(frame, enabled_per_settings);
2009 }
2010
2011 void RenderView::loadURLExternally( 1936 void RenderView::loadURLExternally(
2012 WebFrame* frame, const WebURLRequest& request, 1937 WebFrame* frame, const WebURLRequest& request,
2013 WebNavigationPolicy policy) { 1938 WebNavigationPolicy policy) {
2014 GURL referrer(request.httpHeaderField(WebString::fromUTF8("Referer"))); 1939 GURL referrer(request.httpHeaderField(WebString::fromUTF8("Referer")));
2015 if (policy == WebKit::WebNavigationPolicyDownload) { 1940 if (policy == WebKit::WebNavigationPolicyDownload) {
2016 Send(new ViewHostMsg_DownloadUrl(routing_id_, request.url(), referrer)); 1941 Send(new ViewHostMsg_DownloadUrl(routing_id_, request.url(), referrer));
2017 } else { 1942 } else {
2018 OpenURL(request.url(), referrer, policy); 1943 OpenURL(request.url(), referrer, policy);
2019 } 1944 }
2020 } 1945 }
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
2742 } 2667 }
2743 2668
2744 void RenderView::didRunInsecureContent( 2669 void RenderView::didRunInsecureContent(
2745 WebFrame* frame, const WebSecurityOrigin& origin, const WebURL& target) { 2670 WebFrame* frame, const WebSecurityOrigin& origin, const WebURL& target) {
2746 Send(new ViewHostMsg_DidRunInsecureContent( 2671 Send(new ViewHostMsg_DidRunInsecureContent(
2747 routing_id_, 2672 routing_id_,
2748 origin.toString().utf8(), 2673 origin.toString().utf8(),
2749 target)); 2674 target));
2750 } 2675 }
2751 2676
2677 bool RenderView::allowImages(WebFrame* frame, bool enabled_per_settings) {
2678 ObserverListBase<RenderViewObserver>::Iterator it(observers_);
2679 RenderViewObserver* observer;
2680 while ((observer = it.GetNext()) != NULL)
2681 if (!observer->AllowImages(frame, enabled_per_settings))
2682 return false;
2683
2684 return true;
2685 }
2686
2687 bool RenderView::allowPlugins(WebFrame* frame, bool enabled_per_settings) {
2688 ObserverListBase<RenderViewObserver>::Iterator it(observers_);
2689 RenderViewObserver* observer;
2690 while ((observer = it.GetNext()) != NULL)
2691 if (!observer->AllowPlugins(frame, enabled_per_settings))
2692 return false;
2693
2694 return true;
2695 }
2696
2752 bool RenderView::allowScript(WebFrame* frame, bool enabled_per_settings) { 2697 bool RenderView::allowScript(WebFrame* frame, bool enabled_per_settings) {
2753 if (enabled_per_settings && 2698 ObserverListBase<RenderViewObserver>::Iterator it(observers_);
2754 AllowContentType(CONTENT_SETTINGS_TYPE_JAVASCRIPT)) 2699 RenderViewObserver* observer;
2755 return true; 2700 while ((observer = it.GetNext()) != NULL)
2701 if (!observer->AllowScript(frame, enabled_per_settings))
2702 return false;
2756 2703
2757 if (IsWhitelistedForContentSettings(frame)) 2704 return true;
2758 return true;
2759
2760 return false; // Other protocols fall through here.
2761 } 2705 }
2762 2706
2763 bool RenderView::allowDatabase( 2707 bool RenderView::allowDatabase(
2764 WebFrame* frame, const WebString& name, const WebString& display_name, 2708 WebFrame* frame, const WebString& name, const WebString& display_name,
2765 unsigned long estimated_size) { 2709 unsigned long estimated_size) {
2766 WebSecurityOrigin origin = frame->securityOrigin(); 2710 WebSecurityOrigin origin = frame->securityOrigin();
2767 if (origin.isEmpty()) 2711 if (origin.isEmpty())
2768 return false; // Uninitialized document? 2712 return false; // Uninitialized document?
2769 2713
2770 bool result; 2714 bool result;
2771 if (!Send(new DatabaseHostMsg_Allow(routing_id_, 2715 if (!Send(new DatabaseHostMsg_Allow(routing_id_,
2772 origin.toString().utf8(), name, display_name, estimated_size, &result))) 2716 origin.toString().utf8(), name, display_name, estimated_size, &result)))
2773 return false; 2717 return false;
2774 Send(new ViewHostMsg_WebDatabaseAccessed(routing_id_, 2718 Send(new ViewHostMsg_WebDatabaseAccessed(routing_id_,
2775 GURL(origin.toString().utf8()), 2719 GURL(origin.toString().utf8()),
2776 name, 2720 name,
2777 display_name, 2721 display_name,
2778 estimated_size, 2722 estimated_size,
2779 !result)); 2723 !result));
2780 return result; 2724 return result;
2781 } 2725 }
2782 void RenderView::didNotAllowScript(WebKit::WebFrame* frame) { 2726 void RenderView::didNotAllowScript(WebKit::WebFrame* frame) {
2783 DidBlockContentType(CONTENT_SETTINGS_TYPE_JAVASCRIPT, std::string()); 2727 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidNotAllowScript(frame));
2784 } 2728 }
2785 2729
2786 void RenderView::didNotAllowPlugins(WebKit::WebFrame* frame) { 2730 void RenderView::didNotAllowPlugins(WebKit::WebFrame* frame) {
2787 DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, std::string()); 2731 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidNotAllowPlugins(frame));
2788 } 2732 }
2789 2733
2790 void RenderView::didExhaustMemoryAvailableForScript(WebFrame* frame) { 2734 void RenderView::didExhaustMemoryAvailableForScript(WebFrame* frame) {
2791 Send(new ViewHostMsg_JSOutOfMemory(routing_id_)); 2735 Send(new ViewHostMsg_JSOutOfMemory(routing_id_));
2792 } 2736 }
2793 2737
2794 void RenderView::didCreateScriptContext(WebFrame* frame) { 2738 void RenderView::didCreateScriptContext(WebFrame* frame) {
2795 content::GetContentClient()->renderer()->DidCreateScriptContext(frame); 2739 content::GetContentClient()->renderer()->DidCreateScriptContext(frame);
2796 } 2740 }
2797 2741
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
3253 } 3197 }
3254 3198
3255 void RenderView::OnFindReplyAck() { 3199 void RenderView::OnFindReplyAck() {
3256 // Check if there is any queued up request waiting to be sent. 3200 // Check if there is any queued up request waiting to be sent.
3257 if (queued_find_reply_message_.get()) { 3201 if (queued_find_reply_message_.get()) {
3258 // Send the search result over to the browser process. 3202 // Send the search result over to the browser process.
3259 Send(queued_find_reply_message_.release()); 3203 Send(queued_find_reply_message_.release());
3260 } 3204 }
3261 } 3205 }
3262 3206
3263 bool RenderView::AllowContentType(ContentSettingsType settings_type) {
3264 // CONTENT_SETTING_ASK is only valid for cookies.
3265 return current_content_settings_.settings[settings_type] !=
3266 CONTENT_SETTING_BLOCK;
3267 }
3268
3269 void RenderView::DidBlockContentType(ContentSettingsType settings_type,
3270 const std::string& resource_identifier) {
3271 if (!content_blocked_[settings_type]) {
3272 content_blocked_[settings_type] = true;
3273 Send(new ViewHostMsg_ContentBlocked(routing_id_, settings_type,
3274 resource_identifier));
3275 }
3276 }
3277
3278 void RenderView::ClearBlockedContentSettings() {
3279 for (size_t i = 0; i < arraysize(content_blocked_); ++i)
3280 content_blocked_[i] = false;
3281 }
3282
3283 WebPlugin* RenderView::CreatePepperPlugin( 3207 WebPlugin* RenderView::CreatePepperPlugin(
3284 WebFrame* frame, 3208 WebFrame* frame,
3285 const WebPluginParams& params, 3209 const WebPluginParams& params,
3286 const FilePath& path, 3210 const FilePath& path,
3287 webkit::ppapi::PluginModule* pepper_module) { 3211 webkit::ppapi::PluginModule* pepper_module) {
3288 return new webkit::ppapi::WebPluginImpl( 3212 return new webkit::ppapi::WebPluginImpl(
3289 pepper_module, params, pepper_delegate_.AsWeakPtr()); 3213 pepper_module, params, pepper_delegate_.AsWeakPtr());
3290 } 3214 }
3291 3215
3292 WebPlugin* RenderView::CreateNPAPIPlugin( 3216 WebPlugin* RenderView::CreateNPAPIPlugin(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3333 // Don't set zoom level for full-page plugin since they don't use the same 3257 // Don't set zoom level for full-page plugin since they don't use the same
3334 // zoom settings. 3258 // zoom settings.
3335 if (webview()->mainFrame()->document().isPluginDocument()) 3259 if (webview()->mainFrame()->document().isPluginDocument())
3336 return; 3260 return;
3337 3261
3338 webview()->hidePopups(); 3262 webview()->hidePopups();
3339 webview()->setZoomLevel(false, zoom_level); 3263 webview()->setZoomLevel(false, zoom_level);
3340 zoomLevelChanged(); 3264 zoomLevelChanged();
3341 } 3265 }
3342 3266
3343 void RenderView::OnSetContentSettingsForLoadingURL(
3344 const GURL& url,
3345 const ContentSettings& content_settings) {
3346 host_content_settings_[url] = content_settings;
3347 }
3348
3349 void RenderView::OnSetZoomLevelForLoadingURL(const GURL& url, 3267 void RenderView::OnSetZoomLevelForLoadingURL(const GURL& url,
3350 double zoom_level) { 3268 double zoom_level) {
3351 host_zoom_levels_[url] = zoom_level; 3269 host_zoom_levels_[url] = zoom_level;
3352 } 3270 }
3353 3271
3354 void RenderView::OnSetPageEncoding(const std::string& encoding_name) { 3272 void RenderView::OnSetPageEncoding(const std::string& encoding_name) {
3355 webview()->setPageEncoding(WebString::fromUTF8(encoding_name)); 3273 webview()->setPageEncoding(WebString::fromUTF8(encoding_name));
3356 } 3274 }
3357 3275
3358 void RenderView::OnResetPageEncodingToDefault() { 3276 void RenderView::OnResetPageEncodingToDefault() {
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after
4320 const webkit_glue::CustomContextMenuContext& custom_context) { 4238 const webkit_glue::CustomContextMenuContext& custom_context) {
4321 if (custom_context.is_pepper_menu) 4239 if (custom_context.is_pepper_menu)
4322 pepper_delegate_.OnContextMenuClosed(custom_context); 4240 pepper_delegate_.OnContextMenuClosed(custom_context);
4323 else 4241 else
4324 context_menu_node_.reset(); 4242 context_menu_node_.reset();
4325 } 4243 }
4326 4244
4327 void RenderView::OnNetworkStateChanged(bool online) { 4245 void RenderView::OnNetworkStateChanged(bool online) {
4328 WebNetworkStateNotifier::setOnLine(online); 4246 WebNetworkStateNotifier::setOnLine(online);
4329 } 4247 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698