Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1047)

Unified Diff: content/public/common/url_constants.cc

Issue 10383298: Move RegisterContentSchemes from public url_constants into non-public url_schemes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: take RegisterContentSchemes out of public Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/common/url_constants.cc
diff --git a/content/public/common/url_constants.cc b/content/public/common/url_constants.cc
index 4ac3da67e08cb083896966392bca126432778512..7f68d6ab8dc8ea71fd6d5f85a348e5f662940320 100644
--- a/content/public/common/url_constants.cc
+++ b/content/public/common/url_constants.cc
@@ -4,14 +4,11 @@
#include "content/public/common/url_constants.h"
-#include <algorithm>
-
-#include "base/string_util.h"
-#include "content/public/common/content_client.h"
-#include "googleurl/src/url_util.h"
+#include <stddef.h>
namespace {
-const char* kDefaultSavableSchemes[] = {
+
+const char* const kDefaultSavableSchemes[] = {
chrome::kHttpScheme,
chrome::kHttpsScheme,
chrome::kFileScheme,
@@ -22,11 +19,8 @@ const char* kDefaultSavableSchemes[] = {
chrome::kDataScheme,
NULL
};
-char** g_savable_schemes = const_cast<char**>(kDefaultSavableSchemes);
-void AddStandardSchemeHelper(const std::string& scheme) {
- url_util::AddStandardScheme(scheme.c_str());
-}
+const char* const* g_savable_schemes = kDefaultSavableSchemes;
} // namespace
@@ -82,49 +76,12 @@ const char kUnreachableWebDataURL[] = "data:text/html,chromewebdata";
// scripted by other pages in the process.
const char kSwappedOutURL[] = "swappedout://";
-const char** GetSavableSchemes() {
- return const_cast<const char**>(g_savable_schemes);
+const char* const* GetSavableSchemes() {
+ return g_savable_schemes;
}
-void RegisterContentSchemes(bool lock_standard_schemes) {
- std::vector<std::string> additional_standard_schemes;
- std::vector<std::string> additional_savable_schemes;
- GetContentClient()->AddAdditionalSchemes(
- &additional_standard_schemes,
- &additional_savable_schemes);
-
- // Don't need "chrome-internal" which was used in old versions of Chrome for
- // the new tab page.
- url_util::AddStandardScheme(chrome::kChromeDevToolsScheme);
- url_util::AddStandardScheme(chrome::kChromeUIScheme);
- url_util::AddStandardScheme(chrome::kMetadataScheme);
- std::for_each(additional_standard_schemes.begin(),
- additional_standard_schemes.end(),
- AddStandardSchemeHelper);
-
- // Prevent future modification of the standard schemes list. This is to
- // prevent accidental creation of data races in the program. AddStandardScheme
- // isn't threadsafe so must be called when GURL isn't used on any other
- // thread. This is really easy to mess up, so we say that all calls to
- // AddStandardScheme in Chrome must be inside this function.
- if (lock_standard_schemes)
- url_util::LockStandardSchemes();
-
- // We rely on the above lock to protect this part from being invoked twice.
- if (!additional_savable_schemes.empty()) {
- int schemes = static_cast<int>(additional_savable_schemes.size());
- // The array, and the copied schemes won't be freed, but will remain
- // reachable.
- g_savable_schemes = new char*[schemes + arraysize(kDefaultSavableSchemes)];
- memcpy(g_savable_schemes,
- kDefaultSavableSchemes,
- arraysize(kDefaultSavableSchemes) * sizeof(char*));
- for (int i = 0; i < schemes; ++i) {
- g_savable_schemes[arraysize(kDefaultSavableSchemes) + i - 1] =
- base::strdup(additional_savable_schemes[i].c_str());
- }
- g_savable_schemes[arraysize(kDefaultSavableSchemes) + schemes - 1] = 0;
- }
+void SetSavableSchemes(const char* const* savable_schemes) {
+ g_savable_schemes = savable_schemes;
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698