-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Register with the DE as a scheme handler #114
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn | ||
index 8b1072d4018a2..a6a13316bf21a 100644 | ||
--- a/chrome/browser/BUILD.gn | ||
+++ b/chrome/browser/BUILD.gn | ||
@@ -40,6 +40,7 @@ import("//sandbox/features.gni") | ||
import("//services/screen_ai/buildflags/features.gni") | ||
import("//testing/libfuzzer/fuzzer_test.gni") | ||
import("//third_party/blink/public/public_features.gni") | ||
+import("//third_party/ipfs_client/args.gni") | ||
import("//third_party/protobuf/proto_library.gni") | ||
import("//third_party/webrtc/webrtc.gni") | ||
import("//third_party/widevine/cdm/widevine.gni") | ||
@@ -2485,6 +2486,14 @@ static_library("browser") { | ||
"//ui/webui", | ||
] | ||
|
||
+ if (enable_ipfs) { | ||
+ sources += [ | ||
+ "ipfs_extra_parts.cc", | ||
+ "ipfs_extra_parts.h", | ||
+ ] | ||
+ deps += [ "//components/ipfs" ] | ||
+ } | ||
+ | ||
# Platforms that have a network diagnostics dialog. All others fall through | ||
# to the stub which is not implemented. | ||
if (is_chromeos_ash) { |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc | ||
index c0dc41ef147a5..87c3cceb72167 100644 | ||
--- a/chrome/browser/about_flags.cc | ||
+++ b/chrome/browser/about_flags.cc | ||
@@ -225,6 +225,7 @@ | ||
#include "third_party/blink/public/common/features_generated.h" | ||
#include "third_party/blink/public/common/forcedark/forcedark_switches.h" | ||
#include "third_party/blink/public/common/switches.h" | ||
+#include "third_party/ipfs_client/ipfs_buildflags.h" | ||
#include "ui/accessibility/accessibility_features.h" | ||
#include "ui/accessibility/accessibility_switches.h" | ||
#include "ui/base/ozone_buildflags.h" | ||
@@ -325,6 +326,10 @@ | ||
#include "extensions/common/switches.h" | ||
#endif // BUILDFLAG(ENABLE_EXTENSIONS) | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+#include "components/ipfs/ipfs_features.h" | ||
+#endif | ||
+ | ||
#if BUILDFLAG(ENABLE_PDF) | ||
#include "pdf/pdf_features.h" | ||
#endif | ||
@@ -10060,6 +10065,14 @@ const FeatureEntry kFeatureEntries[] = { | ||
flag_descriptions::kOmitCorsClientCertDescription, kOsAll, | ||
FEATURE_VALUE_TYPE(network::features::kOmitCorsClientCert)}, | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+ {"enable-ipfs", | ||
+ flag_descriptions::kEnableIpfsName, | ||
+ flag_descriptions::kEnableIpfsDescription, | ||
+ kOsMac | kOsWin | kOsLinux,//TODO: These are the only variants currently getting built, but that is not likely to remain the case | ||
+ FEATURE_VALUE_TYPE(ipfs::kEnableIpfs)}, | ||
+#endif | ||
+ | ||
{"use-idna2008-non-transitional", | ||
flag_descriptions::kUseIDNA2008NonTransitionalName, | ||
flag_descriptions::kUseIDNA2008NonTransitionalDescription, kOsAll, |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc | ||
index 9f234a2a7d41d..a9378ca80dc1e 100644 | ||
--- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc | ||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc | ||
@@ -13,6 +13,7 @@ | ||
#include "chrome/browser/profiles/profile_io_data.h" | ||
#include "components/custom_handlers/protocol_handler_registry.h" | ||
#include "content/public/common/url_constants.h" | ||
+#include "third_party/ipfs_client/ipfs_buildflags.h" | ||
#include "url/url_util.h" | ||
|
||
#if BUILDFLAG(IS_ANDROID) | ||
@@ -20,6 +21,11 @@ | ||
#include "chrome/browser/ui/android/omnibox/jni_headers/ChromeAutocompleteSchemeClassifier_jni.h" | ||
#endif | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+#include "components/ipfs/ipfs_features.h" | ||
+#endif | ||
+ | ||
+ | ||
#if BUILDFLAG(IS_ANDROID) | ||
static jlong | ||
JNI_ChromeAutocompleteSchemeClassifier_CreateAutocompleteClassifier( | ||
@@ -53,12 +59,20 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme( | ||
if (scheme.empty()) { | ||
return metrics::OmniboxInputType::EMPTY; | ||
} | ||
- if (base::IsStringASCII(scheme) && | ||
- (ProfileIOData::IsHandledProtocol(scheme) || | ||
- base::EqualsCaseInsensitiveASCII(scheme, content::kViewSourceScheme) || | ||
- base::EqualsCaseInsensitiveASCII(scheme, url::kJavaScriptScheme) || | ||
- base::EqualsCaseInsensitiveASCII(scheme, url::kDataScheme))) { | ||
- return metrics::OmniboxInputType::URL; | ||
+ if (base::IsStringASCII(scheme)) { | ||
+ if (ProfileIOData::IsHandledProtocol(scheme) || | ||
+ base::EqualsCaseInsensitiveASCII(scheme, content::kViewSourceScheme) || | ||
+ base::EqualsCaseInsensitiveASCII(scheme, url::kJavaScriptScheme) || | ||
+ base::EqualsCaseInsensitiveASCII(scheme, url::kDataScheme)) { | ||
+ return metrics::OmniboxInputType::URL; | ||
+ } | ||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+ if (base::FeatureList::IsEnabled(ipfs::kEnableIpfs) && | ||
+ (base::EqualsCaseInsensitiveASCII(scheme, "ipfs") || base::EqualsCaseInsensitiveASCII(scheme, "ipns")) | ||
+ ) { | ||
+ return metrics::OmniboxInputType::URL; | ||
+ } | ||
+#endif | ||
} | ||
|
||
// Also check for schemes registered via registerProtocolHandler(), which |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc | ||
index 2153386c668b1..6c97ec63e3694 100644 | ||
--- a/chrome/browser/chrome_content_browser_client.cc | ||
+++ b/chrome/browser/chrome_content_browser_client.cc | ||
@@ -401,6 +401,7 @@ | ||
#include "third_party/blink/public/mojom/browsing_topics/browsing_topics.mojom.h" | ||
#include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom.h" | ||
#include "third_party/blink/public/public_buildflags.h" | ||
+#include "third_party/ipfs_client/ipfs_buildflags.h" | ||
#include "third_party/widevine/cdm/buildflags.h" | ||
#include "ui/base/clipboard/clipboard_format_type.h" | ||
#include "ui/base/l10n/l10n_util.h" | ||
@@ -525,6 +526,13 @@ | ||
#include "chrome/browser/chrome_browser_main_posix.h" | ||
#endif | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+#include "chrome/browser/ipfs_extra_parts.h" | ||
+#include "components/ipfs/interceptor.h" | ||
+#include "components/ipfs/ipfs_features.h" | ||
+#include "components/ipfs/url_loader_factory.h" | ||
+#endif | ||
+ | ||
#if !BUILDFLAG(IS_ANDROID) | ||
#include "chrome/browser/digital_credentials/digital_identity_provider_desktop.h" | ||
#include "chrome/browser/preloading/preview/preview_navigation_throttle.h" | ||
@@ -1888,6 +1896,11 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) { | ||
main_parts->AddParts( | ||
std::make_unique<ChromeBrowserMainExtraPartsNaclDeprecation>()); | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+ if (base::FeatureList::IsEnabled(ipfs::kEnableIpfs)) { | ||
+ main_parts->AddParts(std::make_unique<IpfsExtraParts>()); | ||
+ } | ||
+#endif | ||
return main_parts; | ||
} | ||
|
||
@@ -6541,12 +6554,29 @@ void ChromeContentBrowserClient:: | ||
const std::optional<url::Origin>& request_initiator_origin, | ||
NonNetworkURLLoaderFactoryMap* factories) { | ||
#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_EXTENSIONS) || \ | ||
- !BUILDFLAG(IS_ANDROID) | ||
+ !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_IPFS) | ||
content::RenderFrameHost* frame_host = | ||
RenderFrameHost::FromID(render_process_id, render_frame_id); | ||
WebContents* web_contents = WebContents::FromRenderFrameHost(frame_host); | ||
#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_EXTENSIONS) || \ | ||
// !BUILDFLAG(IS_ANDROID) | ||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+ if (!web_contents) { | ||
+ VLOG(2) << "No web contents, can't register url loader factory."; | ||
+ } else if (base::FeatureList::IsEnabled(ipfs::kEnableIpfs)) { | ||
+ network::mojom::URLLoaderFactory* default_factory = g_browser_process->system_network_context_manager()->GetURLLoaderFactory(); | ||
+ auto* context = web_contents->GetBrowserContext(); | ||
+ ipfs::IpfsURLLoaderFactory::Create( | ||
+ factories, | ||
+ context, | ||
+ default_factory, | ||
+ GetSystemNetworkContext(), | ||
+ Profile::FromBrowserContext(context)->GetPrefs() | ||
+ ); | ||
+ } else { | ||
+ LOG(INFO) << "IPFS disabled."; | ||
+ } | ||
+#endif // BUILDFLAG(ENABLE_IPFS) | ||
|
||
#if BUILDFLAG(IS_CHROMEOS_ASH) | ||
if (web_contents) { | ||
@@ -6692,6 +6722,11 @@ ChromeContentBrowserClient::WillCreateURLLoaderRequestInterceptors( | ||
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner) { | ||
std::vector<std::unique_ptr<content::URLLoaderRequestInterceptor>> | ||
interceptors; | ||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+ if (base::FeatureList::IsEnabled(ipfs::kEnableIpfs)) { | ||
+ interceptors.push_back(std::make_unique<ipfs::Interceptor>(g_browser_process->system_network_context_manager()->GetURLLoaderFactory(), GetSystemNetworkContext())); | ||
+ } | ||
+#endif | ||
#if BUILDFLAG(ENABLE_OFFLINE_PAGES) | ||
interceptors.push_back( | ||
std::make_unique<offline_pages::OfflinePageURLLoaderRequestInterceptor>( |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json | ||
index 604e2c0cbd2df..75f78e0cc1b81 100644 | ||
--- a/chrome/browser/flag-metadata.json | ||
+++ b/chrome/browser/flag-metadata.json | ||
@@ -3427,6 +3427,11 @@ | ||
"owners": [ "adamta@google.com", "chrome-feed-fundamentals@google.com" ], | ||
"expiry_milestone": 130 | ||
}, | ||
+ { | ||
+ "name": "enable-ipfs", | ||
+ "owners": [ "//components/ipfs/OWNERS" ], | ||
+ "expiry_milestone": 150 | ||
+ }, | ||
{ | ||
"name": "enable-isolated-sandboxed-iframes", | ||
"owners": [ "wjmaclean@chromium.org", "alexmos@chromium.org", "creis@chromium.org" ], |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc | ||
index aa0dc42efce62..5b0d18e8ce81f 100644 | ||
--- a/chrome/browser/flag_descriptions.cc | ||
+++ b/chrome/browser/flag_descriptions.cc | ||
@@ -337,6 +337,11 @@ const char kEnableBenchmarkingChoiceDefaultFeatureStates[] = | ||
const char kEnableBenchmarkingChoiceMatchFieldTrialTestingConfig[] = | ||
"Match Field Trial Testing Config"; | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+extern const char kEnableIpfsName[] = "Enable IPFS"; | ||
+extern const char kEnableIpfsDescription[] = "Enable ipfs:// and ipns:// URLs"; | ||
+#endif | ||
+ | ||
const char kPreloadingOnPerformancePageName[] = | ||
"Preloading Settings on Performance Page"; | ||
const char kPreloadingOnPerformancePageDescription[] = |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h | ||
index 2506c13db7a5b..0694d04569d2e 100644 | ||
--- a/chrome/browser/flag_descriptions.h | ||
+++ b/chrome/browser/flag_descriptions.h | ||
@@ -24,6 +24,7 @@ | ||
#include "pdf/buildflags.h" | ||
#include "printing/buildflags/buildflags.h" | ||
#include "third_party/blink/public/common/buildflags.h" | ||
+#include "third_party/ipfs_client/ipfs_buildflags.h" | ||
|
||
// This file declares strings used in chrome://flags. These messages are not | ||
// translated, because instead of end-users they target Chromium developers and | ||
@@ -213,6 +214,11 @@ extern const char kEnableBenchmarkingChoiceDisabled[]; | ||
extern const char kEnableBenchmarkingChoiceDefaultFeatureStates[]; | ||
extern const char kEnableBenchmarkingChoiceMatchFieldTrialTestingConfig[]; | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+extern const char kEnableIpfsName[]; | ||
+extern const char kEnableIpfsDescription[]; | ||
+#endif | ||
+ | ||
extern const char kFontationsFontBackendName[]; | ||
extern const char kFontationsFontBackendDescription[]; | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#include "ipfs_extra_parts.h" | ||
|
||
#include "profiles/profile.h" | ||
|
||
#include <components/ipfs/inter_request_state.h> | ||
|
||
void IpfsExtraParts::PostProfileInit(Profile* profile, bool /* is_initial_profile */ ) { | ||
DCHECK(profile); | ||
ipfs::InterRequestState::CreateForBrowserContext(profile, profile->GetPrefs()); | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#ifndef IPFS_EXTRA_PART_H_ | ||
#define IPFS_EXTRA_PART_H_ | ||
|
||
#include <chrome/browser/chrome_browser_main_extra_parts.h> | ||
|
||
class IpfsExtraParts : public ChromeBrowserMainExtraParts { | ||
void PostProfileInit(Profile* profile, bool is_initial_profile) override; | ||
}; | ||
|
||
#endif // IPFS_EXTRA_PART_H_ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc | ||
index 30913a8a41d8b..8e422edccd129 100644 | ||
--- a/chrome/browser/prefs/browser_prefs.cc | ||
+++ b/chrome/browser/prefs/browser_prefs.cc | ||
@@ -200,6 +200,7 @@ | ||
#include "ppapi/buildflags/buildflags.h" | ||
#include "printing/buildflags/buildflags.h" | ||
#include "rlz/buildflags/buildflags.h" | ||
+#include "third_party/ipfs_client/ipfs_buildflags.h" | ||
|
||
#if BUILDFLAG(ENABLE_BACKGROUND_MODE) | ||
#include "chrome/browser/background/background_mode_manager.h" | ||
@@ -245,6 +246,11 @@ | ||
#include "chrome/browser/pdf/pdf_pref_names.h" | ||
#endif // BUILDFLAG(ENABLE_PDF) | ||
|
||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+#include "components/ipfs/ipfs_features.h" | ||
+#include "components/ipfs/preferences.h" | ||
+#endif | ||
+ | ||
#if BUILDFLAG(IS_ANDROID) | ||
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" | ||
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" | ||
@@ -1821,6 +1827,11 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, | ||
IncognitoModePrefs::RegisterProfilePrefs(registry); | ||
invalidation::PerUserTopicSubscriptionManager::RegisterProfilePrefs(registry); | ||
invalidation::InvalidatorRegistrarWithMemory::RegisterProfilePrefs(registry); | ||
+#if BUILDFLAG(ENABLE_IPFS) | ||
+ if (base::FeatureList::IsEnabled(ipfs::kEnableIpfs)) { | ||
+ ipfs::RegisterPreferences(registry); | ||
+ } | ||
+#endif | ||
language::LanguagePrefs::RegisterProfilePrefs(registry); | ||
login_detection::prefs::RegisterProfilePrefs(registry); | ||
lookalikes::RegisterProfilePrefs(registry); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
diff --git a/chrome/browser/shell_integration_mac.mm b/chrome/browser/shell_integration_mac.mm | ||
index c6bb768979453..c0d0abb9c78f3 100644 | ||
--- a/chrome/browser/shell_integration_mac.mm | ||
+++ b/chrome/browser/shell_integration_mac.mm | ||
@@ -79,6 +79,8 @@ bool SetAsDefaultBrowser() { | ||
if (LSSetDefaultHandlerForURLScheme(CFSTR("https"), identifier) != noErr) { | ||
return false; | ||
} | ||
+ LSSetDefaultHandlerForURLScheme(CFSTR("ipfs"), identifier); | ||
+ LSSetDefaultHandlerForURLScheme(CFSTR("ipns"), identifier); | ||
if (LSSetDefaultRoleHandlerForContentType(kUTTypeHTML, kLSRolesViewer, | ||
identifier) != noErr) { | ||
return false; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc | ||
index 23baff86bfc1f..df9417b28e153 100644 | ||
--- a/chrome/common/chrome_content_client.cc | ||
+++ b/chrome/common/chrome_content_client.cc | ||
@@ -308,6 +308,12 @@ void ChromeContentClient::AddAdditionalSchemes(Schemes* schemes) { | ||
#if BUILDFLAG(IS_ANDROID) | ||
schemes->local_schemes.push_back(url::kContentScheme); | ||
#endif | ||
+ for ( const char* ip_s : {"ipfs", "ipns"} ) { | ||
+ schemes->standard_schemes.push_back(ip_s); | ||
+ schemes->cors_enabled_schemes.push_back(ip_s); | ||
+ schemes->secure_schemes.push_back(ip_s); | ||
+ schemes->csp_bypassing_schemes.push_back(ip_s); | ||
+ } | ||
} | ||
|
||
std::u16string ChromeContentClient::GetLocalizedString(int message_id) { |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
diff --git a/chrome/installer/linux/common/desktop.template b/chrome/installer/linux/common/desktop.template | ||
index 2eb13ee1aba46..9af65726bde89 100644 | ||
--- a/chrome/installer/linux/common/desktop.template | ||
+++ b/chrome/installer/linux/common/desktop.template | ||
@@ -111,7 +111,7 @@ Terminal=false | ||
Icon=@@PACKAGE@@ | ||
Type=Application | ||
Categories=Network;WebBrowser; | ||
-MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https; | ||
+MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ipfs;x-scheme-handler/ipns; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This file is specific to Linux. It becomes ipfs_chromium.desktop after This line registers it as a able to handle these mime types & schemes, so if/when the desktop environment asks you which thing to open a thing with (as in Somewhat separate concept from default browser. |
||
Actions=new-window;new-private-window; | ||
|
||
[Desktop Action new-window] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc | ||
index 183bf96be3741..116c5b838c8c5 100644 | ||
--- a/chrome/installer/util/shell_util.cc | ||
+++ b/chrome/installer/util/shell_util.cc | ||
@@ -1526,11 +1526,12 @@ const wchar_t* ShellUtil::kDefaultFileAssociations[] = { | ||
const wchar_t* ShellUtil::kPotentialFileAssociations[] = { | ||
L".htm", L".html", L".pdf", L".shtml", L".svg", | ||
L".xht", L".xhtml", L".webp", nullptr}; | ||
-const wchar_t* ShellUtil::kBrowserProtocolAssociations[] = {L"http", L"https", | ||
- nullptr}; | ||
+const wchar_t* ShellUtil::kBrowserProtocolAssociations[] = { | ||
+ L"http", L"https", L"ipfs", L"ipns", nullptr}; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This file is not OS-specific, but it seems like Windows keeps a bit closer to it. |
||
const wchar_t* ShellUtil::kPotentialProtocolAssociations[] = { | ||
L"http", L"https", L"irc", L"mailto", L"mms", L"news", L"nntp", | ||
- L"sms", L"smsto", L"snews", L"tel", L"urn", L"webcal", nullptr}; | ||
+ L"sms", L"smsto", L"snews", L"tel", L"urn", L"webcal", L"ipfs", | ||
+ L"ipns", nullptr}; | ||
const wchar_t* ShellUtil::kRegUrlProtocol = L"URL Protocol"; | ||
const wchar_t* ShellUtil::kRegApplication = L"\\Application"; | ||
const wchar_t* ShellUtil::kRegAppUserModelId = L"AppUserModelId"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this PR, one does actually need to pay attention to the chromium_edits/ folder.
As you can tell from the
_mac.mm
suffix, this file is specific to Mac OS.