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

Side by Side Diff: chrome/browser/ui/webui/devtools_ui.cc

Issue 27693002: DevTools: Display a warning when trying to open untrusted frontend (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed the other CHECK Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/devtools/devtools_window.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/devtools_ui.h" 5 #include "chrome/browser/ui/webui/devtools_ui.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/memory/ref_counted_memory.h" 9 #include "base/memory/ref_counted_memory.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 22 matching lines...) Expand all
33 .path().substr(1); 33 .path().substr(1);
34 } 34 }
35 35
36 const char kRemoteFrontendDomain[] = "chrome-devtools-frontend.appspot.com"; 36 const char kRemoteFrontendDomain[] = "chrome-devtools-frontend.appspot.com";
37 const char kRemoteFrontendBase[] = 37 const char kRemoteFrontendBase[] =
38 "https://chrome-devtools-frontend.appspot.com/"; 38 "https://chrome-devtools-frontend.appspot.com/";
39 const char kHttpNotFound[] = "HTTP/1.1 404 Not Found\n\n"; 39 const char kHttpNotFound[] = "HTTP/1.1 404 Not Found\n\n";
40 40
41 #if defined(DEBUG_DEVTOOLS) 41 #if defined(DEBUG_DEVTOOLS)
42 // Local frontend url provided by InspectUI. 42 // Local frontend url provided by InspectUI.
43 const char kLocalFrontendURL[] = 43 const char kFallbackFrontendURL[] =
44 "chrome-devtools://devtools/bundled/devtools.html"; 44 "chrome-devtools://devtools/bundled/devtools.html";
45 #else
46 // URL causing the DevTools window to display a plain text warning.
47 const char kFallbackFrontendURL[] =
48 "data:text/plain,Cannot load DevTools frontend from an untrusted origin";
45 #endif // defined(DEBUG_DEVTOOLS) 49 #endif // defined(DEBUG_DEVTOOLS)
46 50
51
47 class FetchRequest : public net::URLFetcherDelegate { 52 class FetchRequest : public net::URLFetcherDelegate {
48 public: 53 public:
49 FetchRequest(net::URLRequestContextGetter* request_context, 54 FetchRequest(net::URLRequestContextGetter* request_context,
50 const GURL& url, 55 const GURL& url,
51 const content::URLDataSource::GotDataCallback& callback) 56 const content::URLDataSource::GotDataCallback& callback)
52 : callback_(callback) { 57 : callback_(callback) {
53 if (!url.is_valid()) { 58 if (!url.is_valid()) {
54 OnURLFetchComplete(NULL); 59 OnURLFetchComplete(NULL);
55 return; 60 return;
56 } 61 }
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 scoped_refptr<net::URLRequestContextGetter> request_context_; 188 scoped_refptr<net::URLRequestContextGetter> request_context_;
184 189
185 DISALLOW_COPY_AND_ASSIGN(DevToolsDataSource); 190 DISALLOW_COPY_AND_ASSIGN(DevToolsDataSource);
186 }; 191 };
187 192
188 } // namespace 193 } // namespace
189 194
190 // static 195 // static
191 GURL DevToolsUI::GetProxyURL(const std::string& frontend_url) { 196 GURL DevToolsUI::GetProxyURL(const std::string& frontend_url) {
192 GURL url(frontend_url); 197 GURL url(frontend_url);
193 #if defined(DEBUG_DEVTOOLS)
194 if (!url.is_valid() || url.host() != kRemoteFrontendDomain) { 198 if (!url.is_valid() || url.host() != kRemoteFrontendDomain) {
195 return GURL(kLocalFrontendURL); 199 return GURL(kFallbackFrontendURL);
196 } 200 }
197 #endif // defined(DEBUG_DEVTOOLS)
198 CHECK(url.is_valid());
199 CHECK_EQ(url.host(), kRemoteFrontendDomain);
200 return GURL(base::StringPrintf("%s://%s/%s/%s", 201 return GURL(base::StringPrintf("%s://%s/%s/%s",
201 chrome::kChromeDevToolsScheme, 202 chrome::kChromeDevToolsScheme,
202 chrome::kChromeUIDevToolsHost, 203 chrome::kChromeUIDevToolsHost,
203 chrome::kChromeUIDevToolsRemotePath, 204 chrome::kChromeUIDevToolsRemotePath,
204 url.path().substr(1).c_str())); 205 url.path().substr(1).c_str()));
205 } 206 }
206 207
207 DevToolsUI::DevToolsUI(content::WebUI* web_ui) : WebUIController(web_ui) { 208 DevToolsUI::DevToolsUI(content::WebUI* web_ui) : WebUIController(web_ui) {
208 web_ui->SetBindings(0); 209 web_ui->SetBindings(0);
209 Profile* profile = Profile::FromWebUI(web_ui); 210 Profile* profile = Profile::FromWebUI(web_ui);
210 content::URLDataSource::Add( 211 content::URLDataSource::Add(
211 profile, 212 profile,
212 new DevToolsDataSource(profile->GetRequestContext())); 213 new DevToolsDataSource(profile->GetRequestContext()));
213 } 214 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/devtools_window.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698