Chromium Code Reviews| 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/ui/webui/chromeos/login/signin_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | |
| 8 #include "base/callback.h" | |
| 7 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 8 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
| 9 #include "base/stringprintf.h" | 11 #include "base/stringprintf.h" |
| 10 #include "base/task.h" | 12 #include "base/task.h" |
| 11 #include "base/values.h" | 13 #include "base/values.h" |
| 12 #include "chrome/browser/browser_process.h" | 14 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/browser_shutdown.h" | 15 #include "chrome/browser/browser_shutdown.h" |
| 14 #include "chrome/browser/io_thread.h" | 16 #include "chrome/browser/io_thread.h" |
| 15 #include "chrome/browser/chromeos/cros/cros_library.h" | 17 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 16 #include "chrome/browser/chromeos/cros/network_library.h" | 18 #include "chrome/browser/chromeos/cros/network_library.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 94 | 96 |
| 95 bool UpdateState(chromeos::NetworkLibrary* cros); | 97 bool UpdateState(chromeos::NetworkLibrary* cros); |
| 96 | 98 |
| 97 base::hash_set<std::string> observers_; | 99 base::hash_set<std::string> observers_; |
| 98 std::string active_network_; | 100 std::string active_network_; |
| 99 std::string network_name_; | 101 std::string network_name_; |
| 100 State state_; | 102 State state_; |
| 101 WebUI* web_ui_; | 103 WebUI* web_ui_; |
| 102 }; | 104 }; |
| 103 | 105 |
| 106 #if 0 | |
|
awong
2011/10/04 01:48:09
Should this just be removed?
James Hawkins
2011/10/04 02:09:20
Done.
| |
| 104 // Clears DNS cache on IO thread. | 107 // Clears DNS cache on IO thread. |
| 105 class ClearDnsCacheTaskOnIOThread : public Task { | 108 class ClearDnsCacheTaskOnIOThread : public base::Callback<void(void)> { |
| 106 public: | 109 public: |
| 107 ClearDnsCacheTaskOnIOThread(Task* callback, IOThread* io_thread) | 110 explicit ClearDnsCacheTaskOnIOThread() : io_thread_(NULL) {} |
| 108 : callback_(callback), io_thread_(io_thread) { | |
| 109 } | |
| 110 virtual ~ClearDnsCacheTaskOnIOThread() {} | 111 virtual ~ClearDnsCacheTaskOnIOThread() {} |
| 111 | 112 |
| 112 // Task overrides. | 113 void set_callback(const base::Closure& callback) { callback_ = callback; } |
| 114 void set_io_thread(IOThread* io_thread) { io_thread_ = io_thread; } | |
| 115 | |
| 116 // base::Closure implementation. | |
| 113 virtual void Run() OVERRIDE { | 117 virtual void Run() OVERRIDE { |
| 114 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 118 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 115 if (browser_shutdown::IsTryingToQuit()) | 119 if (browser_shutdown::IsTryingToQuit()) |
| 116 return; | 120 return; |
| 117 | 121 |
| 118 io_thread_->globals()->dnsrr_resolver.get()->OnIPAddressChanged(); | 122 io_thread_->globals()->dnsrr_resolver.get()->OnIPAddressChanged(); |
| 119 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback_); | 123 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback_); |
| 120 } | 124 } |
| 121 | 125 |
| 122 private: | 126 private: |
| 123 Task* callback_; | 127 base::Closure callback_; |
| 124 IOThread* io_thread_; | 128 IOThread* io_thread_; |
| 129 | |
| 125 DISALLOW_COPY_AND_ASSIGN(ClearDnsCacheTaskOnIOThread); | 130 DISALLOW_COPY_AND_ASSIGN(ClearDnsCacheTaskOnIOThread); |
| 126 }; | 131 }; |
| 132 #endif | |
| 127 | 133 |
| 128 // NetworkStateInformer implementation ----------------------------------------- | 134 // NetworkStateInformer implementation ----------------------------------------- |
| 129 | 135 |
| 130 NetworkStateInformer::NetworkStateInformer(WebUI* web_ui) : web_ui_(web_ui) { | 136 NetworkStateInformer::NetworkStateInformer(WebUI* web_ui) : web_ui_(web_ui) { |
| 131 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); | 137 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); |
| 132 UpdateState(cros); | 138 UpdateState(cros); |
| 133 cros->AddNetworkManagerObserver(this); | 139 cros->AddNetworkManagerObserver(this); |
| 134 } | 140 } |
| 135 | 141 |
| 136 NetworkStateInformer::~NetworkStateInformer() { | 142 NetworkStateInformer::~NetworkStateInformer() { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 190 : delegate_(WebUILoginDisplay::GetInstance()), | 196 : delegate_(WebUILoginDisplay::GetInstance()), |
| 191 show_on_init_(false), | 197 show_on_init_(false), |
| 192 oobe_ui_(false), | 198 oobe_ui_(false), |
| 193 dns_cleared_(false), | 199 dns_cleared_(false), |
| 194 dns_clear_task_running_(false), | 200 dns_clear_task_running_(false), |
| 195 cookies_cleared_(false), | 201 cookies_cleared_(false), |
| 196 extension_driven_( | 202 extension_driven_( |
| 197 CommandLine::ForCurrentProcess()->HasSwitch( | 203 CommandLine::ForCurrentProcess()->HasSwitch( |
| 198 switches::kWebUILogin)), | 204 switches::kWebUILogin)), |
| 199 cookie_remover_(NULL), | 205 cookie_remover_(NULL), |
| 200 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { | 206 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { |
| 201 delegate_->SetWebUIHandler(this); | 207 delegate_->SetWebUIHandler(this); |
| 202 } | 208 } |
| 203 | 209 |
| 204 SigninScreenHandler::~SigninScreenHandler() { | 210 SigninScreenHandler::~SigninScreenHandler() { |
| 205 method_factory_.RevokeAll(); | 211 weak_factory_.InvalidateWeakPtrs(); |
| 206 if (cookie_remover_) | 212 if (cookie_remover_) |
| 207 cookie_remover_->RemoveObserver(this); | 213 cookie_remover_->RemoveObserver(this); |
| 208 } | 214 } |
| 209 | 215 |
| 210 void SigninScreenHandler::GetLocalizedStrings( | 216 void SigninScreenHandler::GetLocalizedStrings( |
| 211 DictionaryValue* localized_strings) { | 217 DictionaryValue* localized_strings) { |
| 212 localized_strings->SetString("signinScreenTitle", | 218 localized_strings->SetString("signinScreenTitle", |
| 213 l10n_util::GetStringUTF16(IDS_SIGNIN_SCREEN_TITLE)); | 219 l10n_util::GetStringUTF16(IDS_SIGNIN_SCREEN_TITLE)); |
| 214 localized_strings->SetString("passwordHint", | 220 localized_strings->SetString("passwordHint", |
| 215 l10n_util::GetStringUTF16(IDS_LOGIN_POD_EMPTY_PASSWORD_TEXT)); | 221 l10n_util::GetStringUTF16(IDS_LOGIN_POD_EMPTY_PASSWORD_TEXT)); |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 589 NOTREACHED(); | 595 NOTREACHED(); |
| 590 return; | 596 return; |
| 591 } | 597 } |
| 592 network_state_informer_->RemoveObserver(callback); | 598 network_state_informer_->RemoveObserver(callback); |
| 593 } | 599 } |
| 594 | 600 |
| 595 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { | 601 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { |
| 596 delegate_->CreateAccount(); | 602 delegate_->CreateAccount(); |
| 597 } | 603 } |
| 598 | 604 |
| 605 void SigninScreenHandler::ClearDnsCache( | |
| 606 const base::Closure& callback, IOThread* io_thread) { | |
| 607 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | |
| 608 if (browser_shutdown::IsTryingToQuit()) | |
| 609 return; | |
| 610 | |
| 611 io_thread->globals()->dnsrr_resolver.get()->OnIPAddressChanged(); | |
| 612 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback); | |
| 613 } | |
| 614 | |
| 599 void SigninScreenHandler::StartClearingDnsCache() { | 615 void SigninScreenHandler::StartClearingDnsCache() { |
| 600 if (dns_clear_task_running_ || !g_browser_process->io_thread()) | 616 if (dns_clear_task_running_ || !g_browser_process->io_thread()) |
| 601 return; | 617 return; |
| 602 | 618 |
| 603 dns_cleared_ = false; | 619 dns_cleared_ = false; |
| 604 ClearDnsCacheTaskOnIOThread* clear_dns_task = new ClearDnsCacheTaskOnIOThread( | 620 base::Closure callback = |
| 605 method_factory_.NewRunnableMethod(&SigninScreenHandler::OnDnsCleared), | 621 base::Bind(&SigninScreenHandler::ClearDnsCache, |
| 606 g_browser_process->io_thread()); | 622 weak_factory_.GetWeakPtr(), |
| 607 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, clear_dns_task); | 623 base::Bind(&SigninScreenHandler::OnDnsCleared, |
| 624 weak_factory_.GetWeakPtr()), | |
| 625 g_browser_process->io_thread()); | |
| 626 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, callback); | |
|
awong
2011/10/04 01:48:09
I don't think is quite right....
StartClearingDns
James Hawkins
2011/10/04 02:09:20
Done.
| |
| 608 dns_clear_task_running_ = true; | 627 dns_clear_task_running_ = true; |
| 609 } | 628 } |
| 610 | 629 |
| 611 void SigninScreenHandler::StartClearingCookies() { | 630 void SigninScreenHandler::StartClearingCookies() { |
| 612 cookies_cleared_ = false; | 631 cookies_cleared_ = false; |
| 613 if (cookie_remover_) | 632 if (cookie_remover_) |
| 614 cookie_remover_->RemoveObserver(this); | 633 cookie_remover_->RemoveObserver(this); |
| 615 | 634 |
| 616 cookie_remover_ = new BrowsingDataRemover( | 635 cookie_remover_ = new BrowsingDataRemover( |
| 617 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()), | 636 Profile::FromBrowserContext(web_ui_->tab_contents()->browser_context()), |
| 618 BrowsingDataRemover::EVERYTHING, | 637 BrowsingDataRemover::EVERYTHING, |
| 619 base::Time()); | 638 base::Time()); |
| 620 cookie_remover_->AddObserver(this); | 639 cookie_remover_->AddObserver(this); |
| 621 cookie_remover_->Remove(BrowsingDataRemover::REMOVE_SITE_DATA); | 640 cookie_remover_->Remove(BrowsingDataRemover::REMOVE_SITE_DATA); |
| 622 } | 641 } |
| 623 | 642 |
| 624 } // namespace chromeos | 643 } // namespace chromeos |
| OLD | NEW |