mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Revert "chrome: Simplify WebUIControllerFactory registration (see issue #3047)"
Still need to unregister the Content-level factory to stop Alloy loading
unsupported pages.
This reverts commit a21d0c41a4.
			
			
This commit is contained in:
		| @@ -695,6 +695,9 @@ CefWebUIControllerFactory* CefWebUIControllerFactory::GetInstance() { | |||||||
|  |  | ||||||
| void RegisterWebUIControllerFactory() { | void RegisterWebUIControllerFactory() { | ||||||
|   // Channel all WebUI handling through CefWebUIControllerFactory. |   // Channel all WebUI handling through CefWebUIControllerFactory. | ||||||
|  |   content::WebUIControllerFactory::UnregisterFactoryForTesting( | ||||||
|  |       content::ContentWebUIControllerFactory::GetInstance()); | ||||||
|  |  | ||||||
|   content::WebUIControllerFactory::RegisterFactory( |   content::WebUIControllerFactory::RegisterFactory( | ||||||
|       CefWebUIControllerFactory::GetInstance()); |       CefWebUIControllerFactory::GetInstance()); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -436,6 +436,13 @@ patches = [ | |||||||
|     # This crash was introduced by https://crrev.com/5f6212babf. |     # This crash was introduced by https://crrev.com/5f6212babf. | ||||||
|     'name': 'browser_scheduler', |     'name': 'browser_scheduler', | ||||||
|   }, |   }, | ||||||
|  |   { | ||||||
|  |     # Restore access to WebUIControllerFactory::UnregisterFactoryForTesting | ||||||
|  |     # which was removed in https://crrev.com/5f183d6636. We can't use | ||||||
|  |     # ScopedWebUIControllerFactoryRegistration because it pulls in GTest | ||||||
|  |     # dependencies. | ||||||
|  |     'name': 'browser_web_ui_controller_factory', | ||||||
|  |   }, | ||||||
|   { |   { | ||||||
|     # Avoid a shutdown crash caused by PrefWatcher holding a reference to |     # Avoid a shutdown crash caused by PrefWatcher holding a reference to | ||||||
|     # |g_browser_process->local_state()|, and the local_state being deleted |     # |g_browser_process->local_state()|, and the local_state being deleted | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								patch/patches/browser_web_ui_controller_factory.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								patch/patches/browser_web_ui_controller_factory.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | diff --git content/public/browser/web_ui_controller_factory.h content/public/browser/web_ui_controller_factory.h | ||||||
|  | index eb068fb9bb42c..4e8e6a1a7abf4 100644 | ||||||
|  | --- content/public/browser/web_ui_controller_factory.h | ||||||
|  | +++ content/public/browser/web_ui_controller_factory.h | ||||||
|  | @@ -47,9 +47,6 @@ class CONTENT_EXPORT WebUIControllerFactory { | ||||||
|  |    virtual bool UseWebUIForURL(BrowserContext* browser_context, | ||||||
|  |                                const GURL& url) = 0; | ||||||
|  |   | ||||||
|  | - private: | ||||||
|  | -  friend class ScopedWebUIControllerFactoryRegistration; | ||||||
|  | - | ||||||
|  |    static void UnregisterFactoryForTesting(WebUIControllerFactory* factory); | ||||||
|  |  }; | ||||||
|  |   | ||||||
| @@ -78,7 +78,7 @@ index 132735e3a1200..0d392976799a4 100644 | |||||||
|   |   | ||||||
|  #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |  #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) | ||||||
| diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc | diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc | ||||||
| index 4e9969d9c5b0b..e599b114f021d 100644 | index 4e9969d9c5b0b..0e734d8661db0 100644 | ||||||
| --- chrome/browser/chrome_browser_main.cc | --- chrome/browser/chrome_browser_main.cc | ||||||
| +++ chrome/browser/chrome_browser_main.cc | +++ chrome/browser/chrome_browser_main.cc | ||||||
| @@ -52,6 +52,7 @@ | @@ -52,6 +52,7 @@ | ||||||
| @@ -89,21 +89,7 @@ index 4e9969d9c5b0b..e599b114f021d 100644 | |||||||
|  #include "chrome/browser/about_flags.h" |  #include "chrome/browser/about_flags.h" | ||||||
|  #include "chrome/browser/active_use_util.h" |  #include "chrome/browser/active_use_util.h" | ||||||
|  #include "chrome/browser/after_startup_task_utils.h" |  #include "chrome/browser/after_startup_task_utils.h" | ||||||
| @@ -1530,11 +1531,13 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | @@ -1757,11 +1758,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||||
|          browser_process_->local_state()); |  | ||||||
|    } |  | ||||||
|   |  | ||||||
| +#if !BUILDFLAG(ENABLE_CEF) |  | ||||||
|    // Needs to be done before PostProfileInit, since login manager on CrOS is |  | ||||||
|    // called inside PostProfileInit. |  | ||||||
|    content::WebUIControllerFactory::RegisterFactory( |  | ||||||
|        ChromeWebUIControllerFactory::GetInstance()); |  | ||||||
|    ChromeUntrustedWebUIControllerFactory::RegisterInstance(); |  | ||||||
| +#endif |  | ||||||
|   |  | ||||||
|  #if BUILDFLAG(IS_ANDROID) |  | ||||||
|    page_info::SetPageInfoClient(new ChromePageInfoClient()); |  | ||||||
| @@ -1757,11 +1760,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |  | ||||||
|    // This step is costly and is already measured in |    // This step is costly and is already measured in | ||||||
|    // Startup.StartupBrowserCreator_Start. |    // Startup.StartupBrowserCreator_Start. | ||||||
|    // See the comment above for an explanation of |process_command_line|. |    // See the comment above for an explanation of |process_command_line|. | ||||||
| @@ -119,7 +105,7 @@ index 4e9969d9c5b0b..e599b114f021d 100644 | |||||||
|  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch |  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch | ||||||
|  // of lacros-chrome is complete. |  // of lacros-chrome is complete. | ||||||
|  #if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) |  #if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) | ||||||
| @@ -1789,8 +1795,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | @@ -1789,8 +1793,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||||
|   |   | ||||||
|      // Create the RunLoop for MainMessageLoopRun() to use and transfer |      // Create the RunLoop for MainMessageLoopRun() to use and transfer | ||||||
|      // ownership of the browser's lifetime to the BrowserProcess. |      // ownership of the browser's lifetime to the BrowserProcess. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user