| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/dom_ui/net_internals_ui.h" | 5 #include "chrome/browser/dom_ui/net_internals_ui.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 // This is the "real" message handler, which lives on the IO thread. | 190 // This is the "real" message handler, which lives on the IO thread. |
| 191 scoped_refptr<IOThreadImpl> proxy_; | 191 scoped_refptr<IOThreadImpl> proxy_; |
| 192 | 192 |
| 193 // Used for loading log files. | 193 // Used for loading log files. |
| 194 scoped_refptr<SelectFileDialog> select_log_file_dialog_; | 194 scoped_refptr<SelectFileDialog> select_log_file_dialog_; |
| 195 | 195 |
| 196 DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler); | 196 DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler); |
| 197 }; | 197 }; |
| 198 | 198 |
| 199 // This class is the "real" message handler. It is allocated and destroyed on | 199 // This class is the "real" message handler. It is allocated and destroyed on |
| 200 // the UI thread. With the exception of OnAddEntry, OnDOMUIDeleted, and | 200 // the UI thread. With the exception of OnAddEntry, OnWebUIDeleted, and |
| 201 // CallJavascriptFunction, its methods are all expected to be called from the IO | 201 // CallJavascriptFunction, its methods are all expected to be called from the IO |
| 202 // thread. OnAddEntry and CallJavascriptFunction can be called from any thread, | 202 // thread. OnAddEntry and CallJavascriptFunction can be called from any thread, |
| 203 // and OnDOMUIDeleted can only be called from the UI thread. | 203 // and OnWebUIDeleted can only be called from the UI thread. |
| 204 class NetInternalsMessageHandler::IOThreadImpl | 204 class NetInternalsMessageHandler::IOThreadImpl |
| 205 : public base::RefCountedThreadSafe< | 205 : public base::RefCountedThreadSafe< |
| 206 NetInternalsMessageHandler::IOThreadImpl, | 206 NetInternalsMessageHandler::IOThreadImpl, |
| 207 BrowserThread::DeleteOnUIThread>, | 207 BrowserThread::DeleteOnUIThread>, |
| 208 public ChromeNetLog::ThreadSafeObserver, | 208 public ChromeNetLog::ThreadSafeObserver, |
| 209 public ConnectionTester::Delegate { | 209 public ConnectionTester::Delegate { |
| 210 public: | 210 public: |
| 211 // Type for methods that can be used as MessageHandler callbacks. | 211 // Type for methods that can be used as MessageHandler callbacks. |
| 212 typedef void (IOThreadImpl::*MessageHandler)(const ListValue*); | 212 typedef void (IOThreadImpl::*MessageHandler)(const ListValue*); |
| 213 | 213 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 232 // Called once the WebUI has been deleted (i.e. renderer went away), on the | 232 // Called once the WebUI has been deleted (i.e. renderer went away), on the |
| 233 // IO thread. | 233 // IO thread. |
| 234 void Detach(); | 234 void Detach(); |
| 235 | 235 |
| 236 // Sends all passive log entries in |passive_entries| to the Javascript | 236 // Sends all passive log entries in |passive_entries| to the Javascript |
| 237 // handler, called on the IO thread. | 237 // handler, called on the IO thread. |
| 238 void SendPassiveLogEntries(const ChromeNetLog::EntryList& passive_entries); | 238 void SendPassiveLogEntries(const ChromeNetLog::EntryList& passive_entries); |
| 239 | 239 |
| 240 // Called when the WebUI is deleted. Prevents calling Javascript functions | 240 // Called when the WebUI is deleted. Prevents calling Javascript functions |
| 241 // afterwards. Called on UI thread. | 241 // afterwards. Called on UI thread. |
| 242 void OnDOMUIDeleted(); | 242 void OnWebUIDeleted(); |
| 243 | 243 |
| 244 //-------------------------------- | 244 //-------------------------------- |
| 245 // Javascript message handlers: | 245 // Javascript message handlers: |
| 246 //-------------------------------- | 246 //-------------------------------- |
| 247 | 247 |
| 248 void OnRendererReady(const ListValue* list); | 248 void OnRendererReady(const ListValue* list); |
| 249 | 249 |
| 250 void OnGetProxySettings(const ListValue* list); | 250 void OnGetProxySettings(const ListValue* list); |
| 251 void OnReloadProxySettings(const ListValue* list); | 251 void OnReloadProxySettings(const ListValue* list); |
| 252 void OnGetBadProxies(const ListValue* list); | 252 void OnGetBadProxies(const ListValue* list); |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 //////////////////////////////////////////////////////////////////////////////// | 425 //////////////////////////////////////////////////////////////////////////////// |
| 426 // | 426 // |
| 427 // NetInternalsMessageHandler | 427 // NetInternalsMessageHandler |
| 428 // | 428 // |
| 429 //////////////////////////////////////////////////////////////////////////////// | 429 //////////////////////////////////////////////////////////////////////////////// |
| 430 | 430 |
| 431 NetInternalsMessageHandler::NetInternalsMessageHandler() {} | 431 NetInternalsMessageHandler::NetInternalsMessageHandler() {} |
| 432 | 432 |
| 433 NetInternalsMessageHandler::~NetInternalsMessageHandler() { | 433 NetInternalsMessageHandler::~NetInternalsMessageHandler() { |
| 434 if (proxy_) { | 434 if (proxy_) { |
| 435 proxy_.get()->OnDOMUIDeleted(); | 435 proxy_.get()->OnWebUIDeleted(); |
| 436 // Notify the handler on the IO thread that the renderer is gone. | 436 // Notify the handler on the IO thread that the renderer is gone. |
| 437 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 437 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 438 NewRunnableMethod(proxy_.get(), &IOThreadImpl::Detach)); | 438 NewRunnableMethod(proxy_.get(), &IOThreadImpl::Detach)); |
| 439 } | 439 } |
| 440 if (select_log_file_dialog_) | 440 if (select_log_file_dialog_) |
| 441 select_log_file_dialog_->ListenerDestroyed(); | 441 select_log_file_dialog_->ListenerDestroyed(); |
| 442 } | 442 } |
| 443 | 443 |
| 444 WebUIMessageHandler* NetInternalsMessageHandler::Attach(WebUI* web_ui) { | 444 WebUIMessageHandler* NetInternalsMessageHandler::Attach(WebUI* web_ui) { |
| 445 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 445 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 613 e.time, | 613 e.time, |
| 614 e.source, | 614 e.source, |
| 615 e.phase, | 615 e.phase, |
| 616 e.params, | 616 e.params, |
| 617 false)); | 617 false)); |
| 618 } | 618 } |
| 619 | 619 |
| 620 CallJavascriptFunction(L"g_browser.receivedPassiveLogEntries", dict_list); | 620 CallJavascriptFunction(L"g_browser.receivedPassiveLogEntries", dict_list); |
| 621 } | 621 } |
| 622 | 622 |
| 623 void NetInternalsMessageHandler::IOThreadImpl::OnDOMUIDeleted() { | 623 void NetInternalsMessageHandler::IOThreadImpl::OnWebUIDeleted() { |
| 624 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 624 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 625 was_domui_deleted_ = true; | 625 was_domui_deleted_ = true; |
| 626 } | 626 } |
| 627 | 627 |
| 628 void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady( | 628 void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady( |
| 629 const ListValue* list) { | 629 const ListValue* list) { |
| 630 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 630 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 631 DCHECK(!is_observing_log_) << "notifyReady called twice"; | 631 DCHECK(!is_observing_log_) << "notifyReady called twice"; |
| 632 | 632 |
| 633 // Tell the javascript about the relationship between event type enums and | 633 // Tell the javascript about the relationship between event type enums and |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1219 //////////////////////////////////////////////////////////////////////////////// | 1219 //////////////////////////////////////////////////////////////////////////////// |
| 1220 | 1220 |
| 1221 NetInternalsUI::NetInternalsUI(TabContents* contents) : WebUI(contents) { | 1221 NetInternalsUI::NetInternalsUI(TabContents* contents) : WebUI(contents) { |
| 1222 AddMessageHandler((new NetInternalsMessageHandler())->Attach(this)); | 1222 AddMessageHandler((new NetInternalsMessageHandler())->Attach(this)); |
| 1223 | 1223 |
| 1224 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); | 1224 NetInternalsHTMLSource* html_source = new NetInternalsHTMLSource(); |
| 1225 | 1225 |
| 1226 // Set up the chrome://net-internals/ source. | 1226 // Set up the chrome://net-internals/ source. |
| 1227 contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source); | 1227 contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source); |
| 1228 } | 1228 } |
| OLD | NEW |