OLD | NEW |
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/net_internals/net_internals_ui.h" | 5 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 bool success, | 233 bool success, |
234 const net::CertificateList& onc_trusted_certificates); | 234 const net::CertificateList& onc_trusted_certificates); |
235 #endif | 235 #endif |
236 | 236 |
237 private: | 237 private: |
238 class IOThreadImpl; | 238 class IOThreadImpl; |
239 | 239 |
240 // This is the "real" message handler, which lives on the IO thread. | 240 // This is the "real" message handler, which lives on the IO thread. |
241 scoped_refptr<IOThreadImpl> proxy_; | 241 scoped_refptr<IOThreadImpl> proxy_; |
242 | 242 |
243 base::WeakPtr<prerender::PrerenderManager> prerender_manager_; | |
244 | |
245 DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler); | 243 DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler); |
246 }; | 244 }; |
247 | 245 |
248 // This class is the "real" message handler. It is allocated and destroyed on | 246 // This class is the "real" message handler. It is allocated and destroyed on |
249 // the UI thread. With the exception of OnAddEntry, OnWebUIDeleted, and | 247 // the UI thread. With the exception of OnAddEntry, OnWebUIDeleted, and |
250 // SendJavascriptCommand, its methods are all expected to be called from the IO | 248 // SendJavascriptCommand, its methods are all expected to be called from the IO |
251 // thread. OnAddEntry and SendJavascriptCommand can be called from any thread, | 249 // thread. OnAddEntry and SendJavascriptCommand can be called from any thread, |
252 // and OnWebUIDeleted can only be called from the UI thread. | 250 // and OnWebUIDeleted can only be called from the UI thread. |
253 class NetInternalsMessageHandler::IOThreadImpl | 251 class NetInternalsMessageHandler::IOThreadImpl |
254 : public base::RefCountedThreadSafe< | 252 : public base::RefCountedThreadSafe< |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 | 401 |
404 proxy_ = new IOThreadImpl(this->AsWeakPtr(), g_browser_process->io_thread(), | 402 proxy_ = new IOThreadImpl(this->AsWeakPtr(), g_browser_process->io_thread(), |
405 profile->GetRequestContext()); | 403 profile->GetRequestContext()); |
406 proxy_->AddRequestContextGetter( | 404 proxy_->AddRequestContextGetter( |
407 content::BrowserContext::GetDefaultStoragePartition(profile)-> | 405 content::BrowserContext::GetDefaultStoragePartition(profile)-> |
408 GetMediaURLRequestContext()); | 406 GetMediaURLRequestContext()); |
409 #if defined(ENABLE_EXTENSIONS) | 407 #if defined(ENABLE_EXTENSIONS) |
410 proxy_->AddRequestContextGetter(profile->GetRequestContextForExtensions()); | 408 proxy_->AddRequestContextGetter(profile->GetRequestContextForExtensions()); |
411 #endif | 409 #endif |
412 | 410 |
413 prerender::PrerenderManager* prerender_manager = | |
414 prerender::PrerenderManagerFactory::GetForProfile(profile); | |
415 if (prerender_manager) { | |
416 prerender_manager_ = prerender_manager->AsWeakPtr(); | |
417 } else { | |
418 prerender_manager_ = base::WeakPtr<prerender::PrerenderManager>(); | |
419 } | |
420 | |
421 web_ui()->RegisterMessageCallback( | 411 web_ui()->RegisterMessageCallback( |
422 "notifyReady", | 412 "notifyReady", |
423 base::Bind(&NetInternalsMessageHandler::OnRendererReady, | 413 base::Bind(&NetInternalsMessageHandler::OnRendererReady, |
424 base::Unretained(this))); | 414 base::Unretained(this))); |
425 web_ui()->RegisterMessageCallback( | 415 web_ui()->RegisterMessageCallback( |
426 "getNetInfo", | 416 "getNetInfo", |
427 base::Bind(&IOThreadImpl::CallbackHelper, | 417 base::Bind(&IOThreadImpl::CallbackHelper, |
428 &IOThreadImpl::OnGetNetInfo, proxy_)); | 418 &IOThreadImpl::OnGetNetInfo, proxy_)); |
429 web_ui()->RegisterMessageCallback( | 419 web_ui()->RegisterMessageCallback( |
430 "reloadProxySettings", | 420 "reloadProxySettings", |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 BrowsingDataRemover::REMOVE_CACHE, | 525 BrowsingDataRemover::REMOVE_CACHE, |
536 BrowsingDataHelper::UNPROTECTED_WEB); | 526 BrowsingDataHelper::UNPROTECTED_WEB); |
537 // BrowsingDataRemover deletes itself. | 527 // BrowsingDataRemover deletes itself. |
538 } | 528 } |
539 | 529 |
540 void NetInternalsMessageHandler::OnGetPrerenderInfo( | 530 void NetInternalsMessageHandler::OnGetPrerenderInfo( |
541 const base::ListValue* /* list */) { | 531 const base::ListValue* /* list */) { |
542 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 532 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
543 | 533 |
544 std::unique_ptr<base::DictionaryValue> value; | 534 std::unique_ptr<base::DictionaryValue> value; |
545 if (prerender_manager_) { | 535 |
546 value = prerender_manager_->GetAsValue(); | 536 prerender::PrerenderManager* prerender_manager = |
| 537 prerender::PrerenderManagerFactory::GetForProfile( |
| 538 Profile::FromWebUI(web_ui())); |
| 539 if (prerender_manager) { |
| 540 value = prerender_manager->GetAsValue(); |
547 } else { | 541 } else { |
548 value.reset(new base::DictionaryValue()); | 542 value.reset(new base::DictionaryValue()); |
549 value->SetBoolean("enabled", false); | 543 value->SetBoolean("enabled", false); |
550 value->SetBoolean("omnibox_enabled", false); | 544 value->SetBoolean("omnibox_enabled", false); |
551 } | 545 } |
552 SendJavascriptCommand("receivedPrerenderInfo", std::move(value)); | 546 SendJavascriptCommand("receivedPrerenderInfo", std::move(value)); |
553 } | 547 } |
554 | 548 |
555 void NetInternalsMessageHandler::OnGetHistoricNetworkStats( | 549 void NetInternalsMessageHandler::OnGetHistoricNetworkStats( |
556 const base::ListValue* list) { | 550 const base::ListValue* list) { |
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1175 //////////////////////////////////////////////////////////////////////////////// | 1169 //////////////////////////////////////////////////////////////////////////////// |
1176 | 1170 |
1177 NetInternalsUI::NetInternalsUI(content::WebUI* web_ui) | 1171 NetInternalsUI::NetInternalsUI(content::WebUI* web_ui) |
1178 : WebUIController(web_ui) { | 1172 : WebUIController(web_ui) { |
1179 web_ui->AddMessageHandler(new NetInternalsMessageHandler()); | 1173 web_ui->AddMessageHandler(new NetInternalsMessageHandler()); |
1180 | 1174 |
1181 // Set up the chrome://net-internals/ source. | 1175 // Set up the chrome://net-internals/ source. |
1182 Profile* profile = Profile::FromWebUI(web_ui); | 1176 Profile* profile = Profile::FromWebUI(web_ui); |
1183 content::WebUIDataSource::Add(profile, CreateNetInternalsHTMLSource()); | 1177 content::WebUIDataSource::Add(profile, CreateNetInternalsHTMLSource()); |
1184 } | 1178 } |
OLD | NEW |