mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Windows: Fix AtExitManager assertions on shutdown when running with multi-threaded message loop (issue #1680)
This commit is contained in:
		
							
								
								
									
										47
									
								
								patch/patches/prefs_tab_helper_1680.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								patch/patches/prefs_tab_helper_1680.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
diff --git prefs_tab_helper.cc prefs_tab_helper.cc
 | 
			
		||||
index 5cb2d6e..b0c8689 100644
 | 
			
		||||
--- prefs_tab_helper.cc
 | 
			
		||||
+++ prefs_tab_helper.cc
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
 #include <set>
 | 
			
		||||
 #include <string>
 | 
			
		||||
 
 | 
			
		||||
-#include "base/memory/singleton.h"
 | 
			
		||||
+#include "base/lazy_instance.h"
 | 
			
		||||
 #include "base/prefs/overlay_user_pref_store.h"
 | 
			
		||||
 #include "base/prefs/pref_change_registrar.h"
 | 
			
		||||
 #include "base/prefs/pref_service.h"
 | 
			
		||||
@@ -413,12 +413,10 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
 | 
			
		||||
         GetInstance()->GetServiceForBrowserContext(profile, true));
 | 
			
		||||
   }
 | 
			
		||||
 
 | 
			
		||||
-  static PrefWatcherFactory* GetInstance() {
 | 
			
		||||
-    return base::Singleton<PrefWatcherFactory>::get();
 | 
			
		||||
-  }
 | 
			
		||||
+  static PrefWatcherFactory* GetInstance();
 | 
			
		||||
 
 | 
			
		||||
  private:
 | 
			
		||||
-  friend struct base::DefaultSingletonTraits<PrefWatcherFactory>;
 | 
			
		||||
+  friend struct base::DefaultLazyInstanceTraits<PrefWatcherFactory>;
 | 
			
		||||
 
 | 
			
		||||
   PrefWatcherFactory() : BrowserContextKeyedServiceFactory(
 | 
			
		||||
       "PrefWatcher",
 | 
			
		||||
@@ -439,6 +437,18 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
 | 
			
		||||
   }
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+namespace {
 | 
			
		||||
+
 | 
			
		||||
+base::LazyInstance<PrefWatcherFactory>::Leaky g_pref_watcher_factory =
 | 
			
		||||
+    LAZY_INSTANCE_INITIALIZER;
 | 
			
		||||
+
 | 
			
		||||
+}  // namespace
 | 
			
		||||
+
 | 
			
		||||
+// static
 | 
			
		||||
+PrefWatcherFactory* PrefWatcherFactory::GetInstance() {
 | 
			
		||||
+  return g_pref_watcher_factory.Pointer();
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 // static
 | 
			
		||||
 PrefWatcher* PrefWatcher::Get(Profile* profile) {
 | 
			
		||||
   return PrefWatcherFactory::GetForProfile(profile);
 | 
			
		||||
		Reference in New Issue
	
	Block a user