mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Add chrome://process-internals support (see issue #2498)
This commit is contained in:
		| @@ -32,6 +32,7 @@ | |||||||
| #include "cef/grit/cef_resources.h" | #include "cef/grit/cef_resources.h" | ||||||
| #include "chrome/browser/browser_about_handler.h" | #include "chrome/browser/browser_about_handler.h" | ||||||
| #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" | #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" | ||||||
|  | #include "chrome/browser/ui/webui/theme_source.h" | ||||||
| #include "chrome/common/url_constants.h" | #include "chrome/common/url_constants.h" | ||||||
| #include "content/browser/frame_host/debug_urls.h" | #include "content/browser/frame_host/debug_urls.h" | ||||||
| #include "content/browser/webui/content_web_ui_controller_factory.h" | #include "content/browser/webui/content_web_ui_controller_factory.h" | ||||||
| @@ -85,9 +86,11 @@ const char* kAllowedWebUIHosts[] = { | |||||||
|     content::kChromeUINetworkErrorHost, |     content::kChromeUINetworkErrorHost, | ||||||
|     content::kChromeUINetworkErrorsListingHost, |     content::kChromeUINetworkErrorsListingHost, | ||||||
|     chrome::kChromeUIPrintHost, |     chrome::kChromeUIPrintHost, | ||||||
|  |     content::kChromeUIProcessInternalsHost, | ||||||
|     content::kChromeUIResourcesHost, |     content::kChromeUIResourcesHost, | ||||||
|     content::kChromeUIServiceWorkerInternalsHost, |     content::kChromeUIServiceWorkerInternalsHost, | ||||||
|     chrome::kChromeUISystemInfoHost, |     chrome::kChromeUISystemInfoHost, | ||||||
|  |     chrome::kChromeUIThemeHost, | ||||||
|     content::kChromeUITracingHost, |     content::kChromeUITracingHost, | ||||||
|     chrome::kChromeUIVersionHost, |     chrome::kChromeUIVersionHost, | ||||||
|     content::kChromeUIWebRTCInternalsHost, |     content::kChromeUIWebRTCInternalsHost, | ||||||
| @@ -99,6 +102,7 @@ const char* kAllowedWebUIHosts[] = { | |||||||
| const char* kUnlistedHosts[] = { | const char* kUnlistedHosts[] = { | ||||||
|     content::kChromeUINetworkErrorHost, |     content::kChromeUINetworkErrorHost, | ||||||
|     content::kChromeUIResourcesHost, |     content::kChromeUIResourcesHost, | ||||||
|  |     chrome::kChromeUIThemeHost, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| enum ChromeHostId { | enum ChromeHostId { | ||||||
| @@ -536,6 +540,16 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory { | |||||||
|     if (!AllowWebUIForURL(url)) |     if (!AllowWebUIForURL(url)) | ||||||
|       return controller; |       return controller; | ||||||
|  |  | ||||||
|  |     // Set up the chrome://theme/ source. These URLs are referenced from many | ||||||
|  |     // places (WebUI and chrome://resources which live in //ui). WebUI code | ||||||
|  |     // can live in both //content and //chrome. Since ThemeSource lives in | ||||||
|  |     // //chrome the WebUI from //content is not performing this setup despite | ||||||
|  |     // the fact that it's needed for proper handling of theme resource requests. | ||||||
|  |     // See https://crbug.com/1011280. | ||||||
|  |     Profile* profile = Profile::FromWebUI(web_ui); | ||||||
|  |     content::URLDataSource::Add(profile, | ||||||
|  |                                 std::make_unique<ThemeSource>(profile)); | ||||||
|  |  | ||||||
|     const auto host_id = GetChromeHostId(url.host()); |     const auto host_id = GetChromeHostId(url.host()); | ||||||
|     if (host_id != CHROME_UNKNOWN) { |     if (host_id != CHROME_UNKNOWN) { | ||||||
|       return std::make_unique<CefWebUIController>(web_ui, url.host(), host_id); |       return std::make_unique<CefWebUIController>(web_ui, url.host(), host_id); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user