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

Unified Diff: chrome/renderer/render_view_wrapper.cc

Issue 6750018: Cleanup: Stop creating RenderViewObservers from chrome/ in RenderViewer. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix build on win/mac Created 9 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/render_view_wrapper.cc
===================================================================
--- chrome/renderer/render_view_wrapper.cc (revision 0)
+++ chrome/renderer/render_view_wrapper.cc (revision 0)
@@ -0,0 +1,100 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/renderer/render_view_wrapper.h"
+
+#include <map>
+
+#include "base/command_line.h"
+#include "base/lazy_instance.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/renderer/autofill/autofill_agent.h"
+#include "chrome/renderer/autofill/password_autofill_manager.h"
+#include "chrome/renderer/devtools_agent.h"
+#include "chrome/renderer/extensions/extension_helper.h"
+#include "chrome/renderer/page_click_tracker.h"
+#include "chrome/renderer/print_web_view_helper.h"
+#include "chrome/renderer/render_thread.h"
+#include "chrome/renderer/safe_browsing/malware_dom_details.h"
+#include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h"
+#include "chrome/renderer/searchbox.h"
+#include "chrome/renderer/spellchecker/spellcheck_provider.h"
+#include "chrome/renderer/translate_helper.h"
+#include "content/renderer/render_view.h"
+
+using autofill::AutofillAgent;
+using autofill::PasswordAutofillManager;
+
+typedef std::map<RenderView*, RenderViewWrapper*> RenderViewWrapperMap;
+static base::LazyInstance<RenderViewWrapperMap> g_rvw_map(
+ base::LINKER_INITIALIZED);
+
+RenderViewWrapper::RenderViewWrapper(RenderView* rv,
+ gfx::NativeViewId parent_hwnd,
+ int32 opener_id,
+ const RendererPreferences& renderer_prefs,
+ const string16& frame_name
+ )
+ : RenderViewObserver(rv),
+ print_helper_(new PrintWebViewHelper(rv)),
+ searchbox_(new SearchBox(rv)) {
+ g_rvw_map.Get()[rv] = this;
+
+ // The following classes implements the RenderViewObserver interface and
+ // share the lifetime of |rv|.
+
+ PasswordAutofillManager* password_autofill_manager =
+ new PasswordAutofillManager(rv);
+ AutofillAgent* autofill_agent = new AutofillAgent(rv,
+ password_autofill_manager);
+ DevToolsAgent* devtools_agent = new DevToolsAgent(rv);
+
+ PageClickTracker* page_click_tracker = new PageClickTracker(rv);
+
+ // Note that the order of insertion of the listeners is important.
+ // The password_autocomplete_manager takes the first shot at processing the
+ // notification and can stop the propagation.
+ page_click_tracker->AddListener(password_autofill_manager);
+ page_click_tracker->AddListener(autofill_agent);
+
+ new TranslateHelper(rv);
+
+ new safe_browsing::MalwareDOMDetails(rv);
+ new ExtensionHelper(rv);
+
+ RenderThread* current_thread = RenderThread::current();
+ SpellCheck* spellcheck = current_thread ? current_thread->spellchecker() : 0;
+ new SpellCheckProvider(rv, spellcheck);
+
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableClientSidePhishingDetection)) {
+ new safe_browsing::PhishingClassifierDelegate(rv, NULL);
+ }
+
+ rv->Init(parent_hwnd,
+ opener_id,
+ renderer_prefs,
+ frame_name,
+ autofill_agent,
+ devtools_agent);
+}
+
+RenderViewWrapper::~RenderViewWrapper() {
+}
+
+// static
+RenderViewWrapper* RenderViewWrapper::FromWebView(WebKit::WebView* webview) {
+ RenderView* rv = RenderView::FromWebView(webview);
+ if (!rv)
+ return NULL;
+ RenderViewWrapperMap* rvw_map = g_rvw_map.Pointer();
+ RenderViewWrapperMap::iterator it = rvw_map->find(rv);
+ if (it == rvw_map->end())
+ return NULL;
+ return it->second;
+}
+
+SearchBox* RenderViewWrapper::searchbox() const {
+ return searchbox_;
+}
Property changes on: chrome/renderer/render_view_wrapper.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698