| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/common/webui_url_utils.h" |
| |
| #include "build/build_config.h" |
| #include "chrome/common/webui_url_constants.h" |
| #include "content/public/common/url_constants.h" |
| #include "url/gurl.h" |
| |
| bool IsTopChromeWebUIURL(const GURL& url) { |
| return url.SchemeIs(content::kChromeUIScheme) && |
| url.DomainIs(chrome::kChromeUITopChromeDomain); |
| } |
| |
| bool IsTopChromeUntrustedWebUIURL(const GURL& url) { |
| // TODO(b/339037968): Remove this exception once Lens uses ".top-chrome" |
| // suffix. |
| #if !BUILDFLAG(IS_ANDROID) |
| if (url == GURL(chrome::kChromeUILensOverlayUntrustedURL) || |
| url == GURL(chrome::kChromeUIAiOverlayDialogUntrustedURL)) { |
| return true; |
| } |
| #endif |
| |
| return url.SchemeIs(content::kChromeUIUntrustedScheme) && |
| url.DomainIs(chrome::kChromeUITopChromeDomain); |
| } |
| |
| bool ShouldRefuseBecomingKeyViewForTopChromeWebUI(const GURL& url) { |
| // List of specific Top Chrome hosts that should not accept key view status. |
| if (IsTopChromeWebUIURL(url) && |
| url.host() == chrome::kChromeUIWebUIToolbarHost) { |
| return true; |
| } |
| |
| return false; |
| } |