| Index: chrome/renderer/render_view.cc
|
| diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
|
| index e29e30a9386532ca92100bf4d64a79f02d74fdd9..ca29c0afd30166ac6ccbb1d379c1e6ead2e6830b 100644
|
| --- a/chrome/renderer/render_view.cc
|
| +++ b/chrome/renderer/render_view.cc
|
| @@ -15,10 +15,10 @@
|
| #include "base/callback.h"
|
| #include "base/command_line.h"
|
| #include "base/compiler_specific.h"
|
| +#include "base/lazy_instance.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/path_service.h"
|
| #include "base/process_util.h"
|
| -#include "base/singleton.h"
|
| #include "base/string_piece.h"
|
| #include "base/string_util.h"
|
| #include "base/sys_string_conversions.h"
|
| @@ -277,6 +277,7 @@ using webkit_glue::WebAccessibility;
|
| //-----------------------------------------------------------------------------
|
|
|
| typedef std::map<WebKit::WebView*, RenderView*> ViewMap;
|
| +static base::LazyInstance<ViewMap> g_view_map(base::LINKER_INITIALIZED);
|
|
|
| // define to write the time necessary for thumbnail/DOM text retrieval,
|
| // respectively, into the system debug log
|
| @@ -615,7 +616,7 @@ RenderView::~RenderView() {
|
|
|
| #ifndef NDEBUG
|
| // Make sure we are no longer referenced by the ViewMap.
|
| - ViewMap* views = Singleton<ViewMap>::get();
|
| + ViewMap* views = g_view_map.Pointer();
|
| for (ViewMap::iterator it = views->begin(); it != views->end(); ++it)
|
| DCHECK_NE(this, it->second) << "Failed to call Close?";
|
| #endif
|
| @@ -623,7 +624,7 @@ RenderView::~RenderView() {
|
|
|
| /*static*/
|
| void RenderView::ForEach(RenderViewVisitor* visitor) {
|
| - ViewMap* views = Singleton<ViewMap>::get();
|
| + ViewMap* views = g_view_map.Pointer();
|
| for (ViewMap::iterator it = views->begin(); it != views->end(); ++it) {
|
| if (!visitor->Visit(it->second))
|
| return;
|
| @@ -632,7 +633,7 @@ void RenderView::ForEach(RenderViewVisitor* visitor) {
|
|
|
| /*static*/
|
| RenderView* RenderView::FromWebView(WebView* webview) {
|
| - ViewMap* views = Singleton<ViewMap>::get();
|
| + ViewMap* views = g_view_map.Pointer();
|
| ViewMap::iterator it = views->find(webview);
|
| return it == views->end() ? NULL : it->second;
|
| }
|
| @@ -895,7 +896,7 @@ void RenderView::Init(gfx::NativeViewId parent_hwnd,
|
| devtools_agent_.reset(new DevToolsAgent(routing_id, this));
|
|
|
| webwidget_ = WebView::create(this, devtools_agent_.get());
|
| - Singleton<ViewMap>::get()->insert(std::make_pair(webview(), this));
|
| + g_view_map.Get().insert(std::make_pair(webview(), this));
|
| webkit_preferences_.Apply(webview());
|
| webview()->initializeMainFrame(this);
|
| if (!frame_name.empty())
|
| @@ -5447,7 +5448,7 @@ void RenderView::Close() {
|
| // We need to grab a pointer to the doomed WebView before we destroy it.
|
| WebView* doomed = webview();
|
| RenderWidget::Close();
|
| - Singleton<ViewMap>::get()->erase(doomed);
|
| + g_view_map.Get().erase(doomed);
|
| }
|
|
|
| void RenderView::DidHandleKeyEvent() {
|
|
|