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