url_constants.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/public/common/url_constants.h"
6
7#include "content/common/savable_url_schemes.h"
8#include "googleurl/src/gurl.h"
9
10namespace chrome {
11
12const char kAboutScheme[] = "about";
13const char kBlobScheme[] = "blob";
14
15// Before adding new chrome schemes please check with security@chromium.org.
16// There are security implications associated with introducing new schemes.
17const char kChromeDevToolsScheme[] = "chrome-devtools";
18const char kChromeInternalScheme[] = "chrome-internal";
19const char kChromeUIScheme[] = "chrome";
20const char kDataScheme[] = "data";
21const char kFileScheme[] = "file";
22const char kFileSystemScheme[] = "filesystem";
23const char kFtpScheme[] = "ftp";
24const char kGuestScheme[] = "chrome-guest";
25const char kHttpScheme[] = "http";
26const char kHttpsScheme[] = "https";
27const char kJavaScriptScheme[] = "javascript";
28const char kMailToScheme[] = "mailto";
29const char kMetadataScheme[] = "metadata";
30const char kSwappedOutScheme[] = "swappedout";
31const char kViewSourceScheme[] = "view-source";
32
33const char kAboutBlankURL[] = "about:blank";
34const char kAboutSrcDocURL[] = "about:srcdoc";
35const char kChromeUIAppCacheInternalsHost[] = "appcache-internals";
36const char kChromeUIAccessibilityHost[] = "accessibility";
37const char kChromeUIBlobInternalsHost[] = "blob-internals";
38const char kChromeUIBrowserCrashHost[] = "inducebrowsercrashforrealz";
39const char kChromeUIDevToolsHost[] = "devtools";
40const char kChromeUIGpuHost[] = "gpu";
41const char kChromeUIHistogramHost[] = "histograms";
42const char kChromeUIMediaInternalsHost[] = "media-internals";
43const char kChromeUINetworkViewCacheHost[] = "view-http-cache";
44const char kChromeUIResourcesHost[] = "resources";
45const char kChromeUITcmallocHost[] = "tcmalloc";
46const char kChromeUITracingHost[] = "tracing";
47const char kChromeUIWebRTCInternalsHost[] = "webrtc-internals";
48
49}  // namespace chrome
50
51namespace content {
52
53const char kChromeUICrashURL[] = "chrome://crash";
54const char kChromeUIGpuCleanURL[] = "chrome://gpuclean";
55const char kChromeUIGpuCrashURL[] = "chrome://gpucrash";
56const char kChromeUIGpuHangURL[] = "chrome://gpuhang";
57const char kChromeUIHangURL[] = "chrome://hang";
58const char kChromeUIKillURL[] = "chrome://kill";
59const char kChromeUIPpapiFlashCrashURL[] = "chrome://ppapiflashcrash";
60const char kChromeUIPpapiFlashHangURL[] = "chrome://ppapiflashhang";
61
62const char kStandardSchemeSeparator[] = "://";
63
64// This error URL is loaded in normal web renderer processes, so it should not
65// have a chrome:// scheme that might let it be confused with a WebUI page.
66const char kUnreachableWebDataURL[] = "data:text/html,chromewebdata";
67
68const char kChromeUINetworkViewCacheURL[] = "chrome://view-http-cache/";
69const char kChromeUIShorthangURL[] = "chrome://shorthang";
70
71// This URL is loaded when a page is swapped out and replaced by a page in a
72// different renderer process.  It must have a unique origin that cannot be
73// scripted by other pages in the process.
74const char kSwappedOutURL[] = "swappedout://";
75
76const char* const* GetSavableSchemes() {
77  return GetSavableSchemesInternal();
78}
79
80bool HasWebUIScheme(const GURL& url) {
81  return
82#if !defined(OS_IOS)
83         url.SchemeIs(chrome::kChromeDevToolsScheme) ||
84         url.SchemeIs(chrome::kChromeInternalScheme) ||
85#endif
86         url.SchemeIs(chrome::kChromeUIScheme);
87}
88
89}  // namespace content
90