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 |