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

Side by Side Diff: android_webview/browser/net/aw_url_request_context_getter.cc

Issue 647853002: Create a proprietary scheme for loading web-accessible resources. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use https://codereview.chromium.org/730203007/ to permit only images and CSS on resource protocol Created 6 years, 1 month 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
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 "android_webview/browser/net/aw_url_request_context_getter.h" 5 #include "android_webview/browser/net/aw_url_request_context_getter.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "android_webview/browser/aw_browser_context.h" 9 #include "android_webview/browser/aw_browser_context.h"
10 #include "android_webview/browser/aw_content_browser_client.h" 10 #include "android_webview/browser/aw_content_browser_client.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 scoped_ptr<AwURLRequestJobFactory> aw_job_factory(new AwURLRequestJobFactory); 114 scoped_ptr<AwURLRequestJobFactory> aw_job_factory(new AwURLRequestJobFactory);
115 bool set_protocol = aw_job_factory->SetProtocolHandler( 115 bool set_protocol = aw_job_factory->SetProtocolHandler(
116 url::kFileScheme, 116 url::kFileScheme,
117 new net::FileProtocolHandler( 117 new net::FileProtocolHandler(
118 content::BrowserThread::GetBlockingPool()-> 118 content::BrowserThread::GetBlockingPool()->
119 GetTaskRunnerWithShutdownBehavior( 119 GetTaskRunnerWithShutdownBehavior(
120 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN))); 120 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)));
121 DCHECK(set_protocol); 121 DCHECK(set_protocol);
122 set_protocol = aw_job_factory->SetProtocolHandler( 122 set_protocol = aw_job_factory->SetProtocolHandler(
123 url::kDataScheme, new net::DataProtocolHandler()); 123 url::kDataScheme, new net::DataProtocolHandler());
124 DCHECK(set_protocol); 124 static const char* protocol_handlers_to_copy[] = {
125 set_protocol = aw_job_factory->SetProtocolHandler(
126 url::kBlobScheme, 125 url::kBlobScheme,
127 (*protocol_handlers)[url::kBlobScheme].release());
128 DCHECK(set_protocol);
129 set_protocol = aw_job_factory->SetProtocolHandler(
130 url::kFileSystemScheme, 126 url::kFileSystemScheme,
131 (*protocol_handlers)[url::kFileSystemScheme].release());
132 DCHECK(set_protocol);
133 set_protocol = aw_job_factory->SetProtocolHandler(
134 content::kChromeUIScheme, 127 content::kChromeUIScheme,
135 (*protocol_handlers)[content::kChromeUIScheme].release());
136 DCHECK(set_protocol);
137 set_protocol = aw_job_factory->SetProtocolHandler(
138 content::kChromeDevToolsScheme, 128 content::kChromeDevToolsScheme,
139 (*protocol_handlers)[content::kChromeDevToolsScheme].release()); 129 content::kResourceScheme,
140 DCHECK(set_protocol); 130 };
131 for (const char* scheme : protocol_handlers_to_copy) {
132 set_protocol = aw_job_factory->SetProtocolHandler(
133 scheme, (*protocol_handlers)[scheme].release());
134 DCHECK(set_protocol);
135 }
141 protocol_handlers->clear(); 136 protocol_handlers->clear();
142 137
143 // Note that even though the content:// scheme handler is created here, 138 // Note that even though the content:// scheme handler is created here,
144 // it cannot be used by child processes until access to it is granted via 139 // it cannot be used by child processes until access to it is granted via
145 // ChildProcessSecurityPolicy::GrantScheme(). This is done in 140 // ChildProcessSecurityPolicy::GrantScheme(). This is done in
146 // AwContentBrowserClient. 141 // AwContentBrowserClient.
147 request_interceptors.push_back( 142 request_interceptors.push_back(
148 CreateAndroidContentRequestInterceptor().release()); 143 CreateAndroidContentRequestInterceptor().release());
149 request_interceptors.push_back( 144 request_interceptors.push_back(
150 CreateAndroidAssetFileRequestInterceptor().release()); 145 CreateAndroidAssetFileRequestInterceptor().release());
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 net::NetLog* AwURLRequestContextGetter::GetNetLog() { 286 net::NetLog* AwURLRequestContextGetter::GetNetLog() {
292 return net_log_.get(); 287 return net_log_.get();
293 } 288 }
294 289
295 void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) { 290 void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) {
296 DCHECK(data_reduction_proxy_auth_request_handler_); 291 DCHECK(data_reduction_proxy_auth_request_handler_);
297 data_reduction_proxy_auth_request_handler_->InitAuthentication(key); 292 data_reduction_proxy_auth_request_handler_->InitAuthentication(key);
298 } 293 }
299 294
300 } // namespace android_webview 295 } // namespace android_webview
OLDNEW
« no previous file with comments | « no previous file | content/browser/child_process_security_policy_impl.cc » ('j') | content/browser/resource_protocol.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698