| 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
|
|
|
|
|