[NextBrowser] url scheme chrome to internet 08/325208/3
authorHarshit Rai <r.harshit@partner.samsung.com>
Wed, 4 Jun 2025 09:26:39 +0000 (14:56 +0530)
committerBot Blink <blinkbot@samsung.com>
Thu, 12 Jun 2025 15:40:00 +0000 (15:40 +0000)
Change-Id: Ifb3b4b67cdbefa317ac5a8bca65f49e2c4e7b2c8
Signed-off-by: Harshit Rai <r.harshit@partner.samsung.com>
15 files changed:
chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
chrome/browser/feedback/show_feedback_page.cc
chrome/browser/ui/bookmarks/bookmark_utils.cc
chrome/browser/ui/browser.cc
chrome/browser/ui/browser_navigator.cc
chrome/browser/ui/views/location_bar/location_icon_view.cc
chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc
components/omnibox/browser/builtin_provider.cc
components/omnibox/browser/location_bar_model_impl.cc
components/omnibox/browser/omnibox_edit_model.cc
components/page_info/page_info.cc
components/url_formatter/url_fixer.cc
content/public/common/url_constants.h
url/url_constants.h

index eb509c2af86c120a00f442454c6cd681633e170a..f9984474a12029beb32e4dedda9bbaf2eb9a6538 100644 (file)
@@ -318,6 +318,14 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
   builtins_to_provide.push_back(chrome::kChromeUISettingsURL16);
 #endif
   builtins_to_provide.push_back(chrome::kChromeUIVersionURL16);
+#if defined(SAMSUNG_NEXT_BROWSER)
+  for (auto& builtin : builtins_to_provide) {
+    if (builtin.find(base::ASCIIToUTF16(std::string(content::kChromeUIScheme)), 0) == 0) {
+      builtin.replace(0, strlen(content::kChromeUIScheme),
+                      base::ASCIIToUTF16(std::string(content::kInternetUIScheme)));
+    }
+  }
+#endif
   return builtins_to_provide;
 }
 
index 9f234a2a7d41d53a10af17ee6c8c932a13760eb7..5f04be9a789b01f9c1b174a8744c35367ec84351 100644 (file)
@@ -57,6 +57,9 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme(
       (ProfileIOData::IsHandledProtocol(scheme) ||
        base::EqualsCaseInsensitiveASCII(scheme, content::kViewSourceScheme) ||
        base::EqualsCaseInsensitiveASCII(scheme, url::kJavaScriptScheme) ||
+#if defined(SAMSUNG_NEXT_BROWSER)
+       base::EqualsCaseInsensitiveASCII(scheme, content::kInternetUIScheme) ||
+#endif
        base::EqualsCaseInsensitiveASCII(scheme, url::kDataScheme))) {
     return metrics::OmniboxInputType::URL;
   }
index 7745765ed54fe82f0e3f8b677efcfb3bda7ff571..1a08efb217cb8c517e6436c98fc214243ed0b8d7 100644 (file)
@@ -295,7 +295,14 @@ void ShowFeedbackPage(const Browser* browser,
   if (browser) {
     page_url = GetTargetTabUrl(browser->session_id(),
                                browser->tab_strip_model()->active_index());
+#if defined(SAMSUNG_NEXT_BROWSER)
+  if (page_url.SchemeIs(url::kChromeUIScheme)) {
+    GURL::Replacements replacements;
+    replacements.SetSchemeStr(url::kInternetUIScheme);
+    page_url = page_url.ReplaceComponents(replacements);
   }
+#endif
+}
 
   Profile* profile = GetFeedbackProfile(browser);
 
index e7858be996ca88ee9f2b07b3b790b8cf82e388a2..9b6b2f5729bb8eda1f714c100dea147055bf2876 100644 (file)
@@ -146,8 +146,18 @@ std::u16string FormatBookmarkURLForDisplay(const GURL& url) {
   if (url.has_username())
     format_types &= ~url_formatter::kFormatUrlOmitHTTP;
 
-  return url_formatter::FormatUrl(url, format_types, base::UnescapeRule::SPACES,
-                                  nullptr, nullptr, nullptr);
+#if defined(SAMSUNG_NEXT_BROWSER)
+    std::u16string display_url = url_formatter::FormatUrl(
+        url, format_types, base::UnescapeRule::SPACES, nullptr, nullptr, nullptr);
+    if (display_url.rfind(base::ASCIIToUTF16(std::string(url::kChromeUIScheme)), 0) == 0) {
+      display_url.replace(0, strlen(url::kChromeUIScheme),
+                          base::ASCIIToUTF16(std::string(url::kInternetUIScheme)));
+    }
+    return display_url;
+#else
+    return url_formatter::FormatUrl(url, format_types, base::UnescapeRule::SPACES,
+                                    nullptr, nullptr, nullptr);
+#endif
 }
 
 bool IsAppsShortcutEnabled(Profile* profile) {
index d15a08b812dbd4197561fa9e6a3c902f51191359..e8fec8501767543c0e5ea7cf7d2dc1d32ea10cbb 100644 (file)
@@ -2007,9 +2007,21 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
 void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
   if (!GetStatusBubble())
     return;
-
+#if defined(SAMSUNG_NEXT_BROWSER)
+    if (source == tab_strip_model_->GetActiveWebContents()) {
+      if (url.SchemeIs(content::kChromeUIScheme)) {
+        GURL::Replacements replacements;
+        replacements.SetSchemeStr(content::kInternetUIScheme);
+        const GURL &internet_url = url.ReplaceComponents(replacements);
+        GetStatusBubble()->SetURL(internet_url);
+      } else {
+        GetStatusBubble()->SetURL(url);
+      }
+    }
+#else
   if (source == tab_strip_model_->GetActiveWebContents())
     GetStatusBubble()->SetURL(url);
+#endif
 }
 
 void Browser::ContentsMouseEvent(WebContents* source, const ui::Event& event) {
index a9c87a493bba4780f824e066c5197ccf91f4e9c3..6711d37769831e1a52a9198f2b79ed22d7417cf1 100644 (file)
@@ -632,6 +632,14 @@ base::WeakPtr<content::NavigationHandle> Navigate(NavigateParams* params) {
       return nullptr;
     }
   }
+#if defined(SAMSUNG_NEXT_BROWSER)
+  if (params->url.SchemeIs(content::kInternetUIScheme)) {
+    GURL::Replacements replacements;
+    replacements.SetSchemeStr(content::kChromeUIScheme);
+    params->url = params->url.ReplaceComponents(replacements);
+  }
+#endif
+
 
   // Open System Apps in their standalone window if necessary.
   // TODO(crbug.com/40136163): Remove this code after we integrate with intent
index c00c86f254dd58157b686fb3adf81e17e20b0939..466b1726c15a296158b2283a605c3efa4f6487f6 100644 (file)
@@ -189,6 +189,9 @@ bool LocationIconView::GetShowText() const {
   const auto* location_bar_model = delegate_->GetLocationBarModel();
   const GURL& url = location_bar_model->GetURL();
   if (url.SchemeIs(content::kChromeUIScheme) ||
+#if defined(SAMSUNG_NEXT_BROWSER)
+      url.SchemeIs(content::kInternetUIScheme) ||
+#endif
       url.SchemeIs(extensions::kExtensionScheme) ||
       url.SchemeIs(url::kFileScheme) ||
       url.SchemeIs(dom_distiller::kDomDistillerScheme)) {
@@ -210,6 +213,11 @@ std::u16string LocationIconView::GetText() const {
           content::kChromeUIScheme))
     return l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME);
 
+#if defined(SAMSUNG_NEXT_BROWSER)
+    if (delegate_->GetLocationBarModel()->GetURL().SchemeIs(
+        content::kInternetUIScheme))
+        return l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME);
+#endif
   if (delegate_->GetLocationBarModel()->GetURL().SchemeIs(url::kFileScheme))
     return l10n_util::GetStringUTF16(IDS_OMNIBOX_FILE);
 
index ee0360306cce089909c128fdd0a519ca206079fb..41b51e40c29f70800d9e60a88c37e54179f23c75 100644 (file)
 #include "ui/views/style/typography.h"
 #include "ui/views/view_class_properties.h"
 #include "ui/views/widget/widget.h"
+#if defined(SAMSUNG_NEXT_BROWSER)
+#include "content/public/common/url_constants.h"
+#endif
+
 
 namespace {
 
@@ -501,6 +505,13 @@ void TabHoverCardBubbleView::UpdateCardContent(const Tab* tab) {
 
   std::u16string domain;
   bool is_filename = false;
+#if defined(SAMSUNG_NEXT_BROWSER)
+  if (domain_url.SchemeIs(content::kChromeUIScheme)) {
+    GURL::Replacements replacements;
+    replacements.SetSchemeStr(content::kInternetUIScheme);
+    domain_url = domain_url.ReplaceComponents(replacements);
+  }
+#endif
   if (domain_url.SchemeIsFile()) {
     is_filename = true;
     domain = l10n_util::GetStringUTF16(IDS_HOVER_CARD_FILE_URL_SOURCE);
index f36561ad7f691a98ea935d8d87696d65b3d551b9..0d54538e1d8c4ded9f191c7829c97ad5e1cdf878 100644 (file)
@@ -49,9 +49,13 @@ void BuiltinProvider::DoBuiltinAutocompletion(const std::u16string& text) {
   const size_t kAboutSchemeLength = strlen(url::kAboutScheme);
   const std::u16string kAbout =
       base::StrCat({url::kAboutScheme16, url::kStandardSchemeSeparator16});
-  const std::u16string embedderAbout = base::StrCat(
-      {base::UTF8ToUTF16(client_->GetEmbedderRepresentationOfAboutScheme()),
-       url::kStandardSchemeSeparator16});
+  const std::u16string embedderAbout = base::StrCat({
+#if defined(SAMSUNG_NEXT_BROWSER)
+  base::ASCIIToUTF16(std::string(url::kInternetUIScheme)),
+#else
+  base::UTF8ToUTF16(client_->GetEmbedderRepresentationOfAboutScheme()),
+#endif
+  url::kStandardSchemeSeparator16});
 
   const int kUrl = ACMatchClassification::URL;
   const int kMatch = kUrl | ACMatchClassification::MATCH;
index c854444e94e5424a8a5b56fc6d7912a2cf92bc65..bf723a65d9a7f363e3170ac2c29bfae5ac6f9a90 100644 (file)
 #if (!BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_VR)) && !BUILDFLAG(IS_IOS)
 #include "components/omnibox/browser/vector_icons.h"  // nogncheck
 #endif
+#if defined(SAMSUNG_NEXT_BROWSER)
+#include "content/public/common/url_constants.h"
+#endif
+
 
 using metrics::OmniboxEventProto;
 
@@ -92,6 +96,13 @@ std::u16string LocationBarModelImpl::GetFormattedURL(
   }
 
   GURL url(GetURL());
+#if defined(SAMSUNG_NEXT_BROWSER)
+  if (url.SchemeIs(content::kChromeUIScheme)) {
+    GURL::Replacements replacements;
+    replacements.SetSchemeStr(content::kInternetUIScheme);
+    url = url.ReplaceComponents(replacements);
+  }
+#endif
 
 #if BUILDFLAG(IS_IOS)
   // On iOS, the blob: display URLs should be simply the domain name. However,
index e970db2e8613ce032f98fc1e877372b4437af3c5..4eb7ef14709d31ad506c6bc67e77c1410f3c4d2f 100644 (file)
@@ -501,6 +501,9 @@ void OmniboxEditModel::AdjustTextForCopy(int sel_min,
   // text (whether it's in the elided or unelided form), copy the omnibox
   // contents as a hyperlink to the current page.
   if (!user_input_in_progress_ &&
+#if defined(SAMSUNG_NEXT_BROWSER)
+     !(text->rfind(u"internet://", 0) == 0) &&
+#endif
       (*text == display_text_ || *text == url_for_editing_)) {
     *url_from_text = controller_->client()->GetNavigationEntryURL();
     *write_url = true;
index de497055da9fda1ed7e5b95ab41ba86324bdca27..254b5940f85fe5f366c52d0b1ccf535a855809b2 100644 (file)
@@ -400,6 +400,9 @@ bool PageInfo::IsPermissionFactoryDefault(const PermissionInfo& info,
 // static
 bool PageInfo::IsFileOrInternalPage(const GURL& url) {
   return url.SchemeIs(content::kChromeUIScheme) ||
+#if defined(SAMSUNG_NEXT_BROWSER)
+         url.SchemeIs(content::kInternetUIScheme) ||
+#endif
          url.SchemeIs(content::kChromeDevToolsScheme) ||
          url.SchemeIs(content::kViewSourceScheme) ||
          url.SchemeIs(url::kFileScheme);
@@ -930,7 +933,13 @@ void PageInfo::ComputeUIInputs(const GURL& url) {
     return;
   }
 
-  if (url.SchemeIs(content::kChromeUIScheme) || is_chrome_ui_native_scheme) {
+#if defined(SAMSUNG_NEXT_BROWSER)
+  if (url.SchemeIs(content::kChromeUIScheme) || is_chrome_ui_native_scheme ||
+      url.SchemeIs(content::kInternetUIScheme))
+#else
+  if (url.SchemeIs(content::kChromeUIScheme) || is_chrome_ui_native_scheme)
+#endif
+{
     site_identity_status_ = SITE_IDENTITY_STATUS_INTERNAL_PAGE;
 #if BUILDFLAG(IS_ANDROID)
     identity_status_description_android_ =
index dee4a6c1e847feeeca31ba9e7acd0943daa0edc6..228c832bb4012f7c3b013f1a91d593825f6b8fe8 100644 (file)
@@ -722,6 +722,12 @@ bool IsEquivalentScheme(const std::string& scheme1,
                         const std::string& scheme2) {
   return scheme1 == scheme2 ||
          (scheme1 == url::kAboutScheme && scheme2 == kChromeUIScheme) ||
+#if defined(SAMSUNG_NEXT_BROWSER)
+         (scheme1 == url::kInternetUIScheme && scheme2 == kChromeUIScheme) ||
+         (scheme1 == kChromeUIScheme && scheme2 == url::kInternetUIScheme) ||
+         (scheme1 == url::kInternetUIScheme && scheme2 == url::kAboutScheme) ||
+         (scheme1 == url::kAboutScheme && scheme2 == url::kInternetUIScheme) ||
+#endif
          (scheme1 == kChromeUIScheme && scheme2 == url::kAboutScheme);
 }
 
index da2232684aa4a0b89f2bf106b408b2cbae635e18..78e60a420d672ffe4136387f66689e2747699313 100644 (file)
@@ -72,6 +72,9 @@ inline constexpr char kUnreachableWebDataURL[] =
 // Special URL used to rewrite URLs coming from untrusted processes, when the
 // source process is not allowed access to the initially requested URL.
 inline constexpr char kBlockedURL[] = "about:blank#blocked";
+#if defined(SAMSUNG_NEXT_BROWSER)
+inline constexpr char kInternetUIScheme[] = "internet";
+#endif
 
 }  // namespace content
 
index 30705b6873d8b0601980976299d507d1cb40f4c4..ba55fcc2278789fd0a0d39824c59955259944d7e 100644 (file)
@@ -81,6 +81,11 @@ inline constexpr char16_t kWssScheme16[] = u"wss";
 inline constexpr char kStandardSchemeSeparator[] = "://";
 inline constexpr char16_t kStandardSchemeSeparator16[] = u"://";
 
+#if defined(SAMSUNG_NEXT_BROWSER)
+inline const char kChromeUIScheme[] = "chrome";
+inline const char kInternetUIScheme[] = "internet";
+#endif
+
 // Max GURL length passed between processes. See url::mojom::kMaxURLChars, which
 // has the same value, for more details.
 inline constexpr size_t kMaxURLChars = 2 * 1024 * 1024;