diff options
author | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-17 23:00:59 +0000 |
---|---|---|
committer | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-17 23:00:59 +0000 |
commit | 2fab253a61e797b461b21671af7942521b749ee3 (patch) | |
tree | 6d61d2cbf0dd13956924fd7323a3c7506422dadd /chrome/renderer | |
parent | 5220e732b9c11a4309c6f5a45a27d4658087b1ed (diff) | |
download | chromium_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.cc | 7 | ||||
-rw-r--r-- | chrome/renderer/render_view.cc | 22 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 12 |
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); }; |