summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-17 23:00:59 +0000
committerjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-17 23:00:59 +0000
commit2fab253a61e797b461b21671af7942521b749ee3 (patch)
tree6d61d2cbf0dd13956924fd7323a3c7506422dadd /chrome/renderer
parent5220e732b9c11a4309c6f5a45a27d4658087b1ed (diff)
downloadchromium_src-2fab253a61e797b461b21671af7942521b749ee3.zip
chromium_src-2fab253a61e797b461b21671af7942521b749ee3.tar.gz
chromium_src-2fab253a61e797b461b21671af7942521b749ee3.tar.bz2
Remove webview's dependency on webpreferences.
TEST=none BUG=none Review URL: http://codereview.chromium.org/165513 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23589 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/print_web_view_helper.cc7
-rw-r--r--chrome/renderer/render_view.cc22
-rw-r--r--chrome/renderer/render_view.h12
3 files changed, 27 insertions, 14 deletions
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc
index 3d4a336..fdc1c9a 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -89,10 +89,13 @@ bool PrintWebViewHelper::CopyAndPrint(const ViewMsg_PrintPages_Params& params,
// Create a new WebView with the same settings as the current display one.
// Except that we disable javascript (don't want any active content running
// on the page).
- WebPreferences prefs = web_frame->view()->GetPreferences();
+ WebPreferences prefs = render_view_->webkit_preferences();
prefs.javascript_enabled = false;
prefs.java_enabled = false;
- print_web_view_.reset(WebView::Create(this, prefs));
+
+ print_web_view_.reset(WebView::Create());
+ prefs.Apply(print_web_view_.get());
+ print_web_view_->InitializeMainFrame(this);
print_pages_params_.reset(new ViewMsg_PrintPages_Params(params));
print_pages_params_->pages.clear(); // Print all pages of selection.
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index 376b07e..59523a6 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -86,7 +86,6 @@
#include "webkit/glue/webdropdata.h"
#include "webkit/glue/webkit_glue.h"
#include "webkit/glue/webmediaplayer_impl.h"
-#include "webkit/glue/webpreferences.h"
#include "webkit/glue/webplugin_delegate.h"
#include "webkit/glue/webview.h"
@@ -115,6 +114,7 @@ using WebKit::WebNavigationType;
using WebKit::WebPopupMenuInfo;
using WebKit::WebRect;
using WebKit::WebScriptSource;
+using WebKit::WebSettings;
using WebKit::WebSize;
using WebKit::WebString;
using WebKit::WebTextDirection;
@@ -178,7 +178,8 @@ static void GetRedirectChain(WebDataSource* ds, std::vector<GURL>* result) {
///////////////////////////////////////////////////////////////////////////////
-RenderView::RenderView(RenderThreadBase* render_thread)
+RenderView::RenderView(RenderThreadBase* render_thread,
+ const WebPreferences& webkit_preferences)
: RenderWidget(render_thread, true),
enabled_bindings_(0),
target_url_status_(TARGET_NONE),
@@ -204,7 +205,7 @@ RenderView::RenderView(RenderThreadBase* render_thread)
determine_page_text_after_loading_stops_(false),
view_type_(ViewType::INVALID),
browser_window_id_(-1),
- last_top_level_navigation_page_id_(-1) {
+ webkit_preferences_(webkit_preferences) {
Singleton<RenderViewSet>()->render_view_set_.insert(this);
}
@@ -234,12 +235,11 @@ RenderView* RenderView::Create(
SharedRenderViewCounter* counter,
int32 routing_id) {
DCHECK(routing_id != MSG_ROUTING_NONE);
- scoped_refptr<RenderView> view = new RenderView(render_thread);
+ scoped_refptr<RenderView> view = new RenderView(render_thread, webkit_prefs);
view->Init(parent_hwnd,
modal_dialog_event,
opener_id,
renderer_prefs,
- webkit_prefs,
counter,
routing_id); // adds reference
return view;
@@ -281,7 +281,6 @@ void RenderView::Init(gfx::NativeViewId parent_hwnd,
base::WaitableEvent* modal_dialog_event,
int32 opener_id,
const RendererPreferences& renderer_prefs,
- const WebPreferences& webkit_prefs,
SharedRenderViewCounter* counter,
int32 routing_id) {
DCHECK(!webview());
@@ -302,7 +301,9 @@ void RenderView::Init(gfx::NativeViewId parent_hwnd,
devtools_agent_.reset(new DevToolsAgent(routing_id, this));
- webwidget_ = WebView::Create(this, webkit_prefs);
+ webwidget_ = WebView::Create();
+ webkit_preferences_.Apply(webview());
+ webview()->InitializeMainFrame(this);
#if defined(OS_LINUX)
// We have to enable ourselves as the editor delegate on linux so we can copy
@@ -1876,7 +1877,6 @@ WebView* RenderView::CreateWebView(WebView* webview,
}
// The WebView holds a reference to this new RenderView
- const WebPreferences& web_prefs = webview->GetPreferences();
base::WaitableEvent* waitable_event = new base::WaitableEvent
#if defined(OS_WIN)
(modal_dialog_event.event);
@@ -1885,7 +1885,8 @@ WebView* RenderView::CreateWebView(WebView* webview,
#endif
RenderView* view = RenderView::Create(render_thread_,
NULL, waitable_event, routing_id_,
- renderer_preferences_, web_prefs,
+ renderer_preferences_,
+ webkit_preferences_,
shared_popup_counter_, routing_id);
view->opened_by_user_gesture_ = user_gesture;
view->creator_url_ = creator_url;
@@ -2735,7 +2736,8 @@ void RenderView::OnDragTargetDrop(const gfx::Point& client_point,
}
void RenderView::OnUpdateWebPreferences(const WebPreferences& prefs) {
- webview()->SetPreferences(prefs);
+ webkit_preferences_ = prefs;
+ webkit_preferences_.Apply(webview());
}
void RenderView::OnSetAltErrorPageURL(const GURL& url) {
diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
index d7781e2..646b488 100644
--- a/chrome/renderer/render_view.h
+++ b/chrome/renderer/render_view.h
@@ -33,6 +33,7 @@
#include "webkit/glue/form_data.h"
#include "webkit/glue/password_form_dom_manager.h"
#include "webkit/glue/webaccessibilitymanager.h"
+#include "webkit/glue/webpreferences.h"
#include "webkit/glue/webview_delegate.h"
#include "webkit/glue/webview.h"
@@ -391,6 +392,10 @@ class RenderView : public RenderWidget,
const std::string& response,
const std::string& error);
+ const WebPreferences& webkit_preferences() const {
+ return webkit_preferences_;
+ }
+
protected:
// RenderWidget override.
virtual void OnResize(const gfx::Size& new_size,
@@ -412,7 +417,8 @@ class RenderView : public RenderWidget,
FRIEND_TEST(RenderViewTest, OnHandleKeyboardEvent);
FRIEND_TEST(RenderViewTest, InsertCharacters);
- explicit RenderView(RenderThreadBase* render_thread);
+ explicit RenderView(RenderThreadBase* render_thread,
+ const WebPreferences& webkit_preferences);
// Initializes this view with the given parent and ID. The |routing_id| can be
// set to 'MSG_ROUTING_NONE' if the true ID is not yet known. In this case,
@@ -421,7 +427,6 @@ class RenderView : public RenderWidget,
base::WaitableEvent* modal_dialog_event, // takes ownership
int32 opener_id,
const RendererPreferences& renderer_prefs,
- const WebPreferences& webkit_prefs,
SharedRenderViewCounter* counter,
int32 routing_id);
@@ -861,6 +866,9 @@ class RenderView : public RenderWidget,
// page id for the last navigation sent to the browser.
int32 last_top_level_navigation_page_id_;
+ // The settings this render view initialized WebKit with.
+ WebPreferences webkit_preferences_;
+
DISALLOW_COPY_AND_ASSIGN(RenderView);
};