alloy: Add support for chrome-untrusted scheme (see issue #3047)

Lack of this functionality was causing print preview to fail with
PdfUnseasoned enabled.
This commit is contained in:
Marshall Greenblatt
2022-02-16 17:27:59 -05:00
parent 7909550112
commit 0fc092c4aa
3 changed files with 53 additions and 0 deletions

View File

@ -32,6 +32,7 @@
#include "cef/grit/cef_resources.h"
#include "chrome/browser/browser_about_handler.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/chrome_untrusted_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"
@ -581,6 +582,11 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory {
if (controller.get())
return controller;
controller = ChromeUntrustedWebUIControllerFactory::GetInstance()
->CreateWebUIControllerForURL(web_ui, url);
if (controller.get())
return controller;
return ChromeWebUIControllerFactory::GetInstance()
->CreateWebUIControllerForURL(web_ui, url);
}
@ -601,6 +607,11 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory {
if (type != content::WebUI::kNoWebUI)
return type;
type = ChromeUntrustedWebUIControllerFactory::GetInstance()->GetWebUIType(
browser_context, url);
if (type != content::WebUI::kNoWebUI)
return type;
type = ChromeWebUIControllerFactory::GetInstance()->GetWebUIType(
browser_context, url);
if (type != content::WebUI::kNoWebUI)
@ -621,6 +632,8 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory {
if (content::ContentWebUIControllerFactory::GetInstance()->UseWebUIForURL(
browser_context, url) ||
ChromeUntrustedWebUIControllerFactory::GetInstance()->UseWebUIForURL(
browser_context, url) ||
ChromeWebUIControllerFactory::GetInstance()->UseWebUIForURL(
browser_context, url)) {
return true;