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/automation/automation_provider_observers.h" | 5 #include "chrome/browser/automation/automation_provider_observers.h" |
| 6 | 6 |
| 7 #include <deque> | 7 #include <deque> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 1640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1651 const std::vector<webkit_glue::PasswordForm*>& result) { | 1651 const std::vector<webkit_glue::PasswordForm*>& result) { |
| 1652 if (!provider_) { | 1652 if (!provider_) { |
| 1653 delete this; | 1653 delete this; |
| 1654 return; | 1654 return; |
| 1655 } | 1655 } |
| 1656 | 1656 |
| 1657 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 1657 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); |
| 1658 | 1658 |
| 1659 ListValue* passwords = new ListValue; | 1659 ListValue* passwords = new ListValue; |
| 1660 for (std::vector<webkit_glue::PasswordForm*>::const_iterator it = | 1660 for (std::vector<webkit_glue::PasswordForm*>::const_iterator it = |
| 1661 result.begin(); it != result.end(); ++it) { | 1661 result.begin(); it != result.end(); ++it) { |
| 1662 DictionaryValue* password_val = new DictionaryValue; | 1662 DictionaryValue* password_val = new DictionaryValue; |
| 1663 webkit_glue::PasswordForm* password_form = *it; | 1663 webkit_glue::PasswordForm* password_form = *it; |
| 1664 password_val->SetString("username_value", password_form->username_value); | 1664 password_val->SetString("username_value", password_form->username_value); |
| 1665 password_val->SetString("password_value", password_form->password_value); | 1665 password_val->SetString("password_value", password_form->password_value); |
| 1666 password_val->SetString("signon_realm", password_form->signon_realm); | 1666 password_val->SetString("signon_realm", password_form->signon_realm); |
| 1667 password_val->SetDouble( | 1667 password_val->SetDouble( |
| 1668 "time", static_cast<double>(password_form->date_created.ToDoubleT())); | 1668 "time", static_cast<double>(password_form->date_created.ToDoubleT())); |
| 1669 password_val->SetString("origin_url", password_form->origin.spec()); | 1669 password_val->SetString("origin_url", password_form->origin.spec()); |
| 1670 password_val->SetString("username_element", | 1670 password_val->SetString("username_element", |
| 1671 password_form->username_element); | 1671 password_form->username_element); |
| 1672 password_val->SetString("password_element", | 1672 password_val->SetString("password_element", |
| 1673 password_form->password_element); | 1673 password_form->password_element); |
| 1674 password_val->SetString("submit_element", | 1674 password_val->SetString("submit_element", password_form->submit_element); |
| 1675 password_form->submit_element); | |
| 1676 password_val->SetString("action_target", password_form->action.spec()); | 1675 password_val->SetString("action_target", password_form->action.spec()); |
| 1677 password_val->SetBoolean("blacklist", password_form->blacklisted_by_user); | 1676 password_val->SetBoolean("blacklist", password_form->blacklisted_by_user); |
| 1678 passwords->Append(password_val); | 1677 passwords->Append(password_val); |
| 1679 } | 1678 } |
| 1680 | 1679 |
| 1681 return_value->Set("passwords", passwords); | 1680 return_value->Set("passwords", passwords); |
| 1682 AutomationJSONReply(provider_, reply_message_.release()).SendSuccess( | 1681 AutomationJSONReply(provider_, reply_message_.release()).SendSuccess( |
| 1683 return_value.get()); | 1682 return_value.get()); |
| 1684 delete this; | 1683 delete this; |
| 1685 } | 1684 } |
| 1686 | 1685 |
| 1686 PasswordStoreLoginsChangedObserver::PasswordStoreLoginsChangedObserver( | |
| 1687 AutomationProvider* automation, | |
| 1688 IPC::Message* reply_message, | |
| 1689 const std::string result_key) | |
|
Nirnimesh
2011/05/10 19:25:52
std::string&
dennis_jeffrey
2011/05/17 01:40:21
Done.
| |
| 1690 : automation_(automation->AsWeakPtr()), | |
| 1691 reply_message_(reply_message), | |
| 1692 result_key_(result_key), | |
| 1693 done_event_(false, false) { | |
| 1694 AddRef(); | |
| 1695 } | |
| 1696 | |
| 1697 PasswordStoreLoginsChangedObserver::~PasswordStoreLoginsChangedObserver() { | |
| 1698 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 1699 } | |
| 1700 | |
| 1701 void PasswordStoreLoginsChangedObserver::Init() { | |
| 1702 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 1703 BrowserThread::PostTask( | |
| 1704 BrowserThread::DB, | |
| 1705 FROM_HERE, | |
| 1706 NewRunnableMethod( | |
| 1707 this, &PasswordStoreLoginsChangedObserver::RegisterObserversTask)); | |
| 1708 done_event_.Wait(); | |
| 1709 } | |
| 1710 | |
| 1711 void PasswordStoreLoginsChangedObserver::RegisterObserversTask() { | |
| 1712 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); | |
| 1713 registrar_.Add(this, NotificationType::LOGINS_CHANGED, | |
| 1714 NotificationService::AllSources()); | |
| 1715 done_event_.Signal(); | |
| 1716 } | |
| 1717 | |
| 1718 void PasswordStoreLoginsChangedObserver::Observe( | |
| 1719 NotificationType type, | |
| 1720 const NotificationSource& source, | |
| 1721 const NotificationDetails& details) { | |
| 1722 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); | |
| 1723 DCHECK(type.value == NotificationType::LOGINS_CHANGED); | |
| 1724 | |
| 1725 registrar_.RemoveAll(); // Must be done from thread BrowserThread::DB. | |
| 1726 | |
| 1727 // Notify thread BrowserThread::UI that we're done listening. | |
| 1728 BrowserThread::PostTask( | |
| 1729 BrowserThread::UI, | |
| 1730 FROM_HERE, | |
| 1731 NewRunnableMethod( | |
| 1732 this, &PasswordStoreLoginsChangedObserver::IndicateDone)); | |
| 1733 } | |
| 1734 | |
| 1735 void PasswordStoreLoginsChangedObserver::IndicateDone() { | |
| 1736 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 1737 if (automation_) { | |
| 1738 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | |
| 1739 return_value->SetBoolean(result_key_, true); | |
| 1740 AutomationJSONReply( | |
| 1741 automation_, reply_message_.release()).SendSuccess(return_value.get()); | |
| 1742 } | |
| 1743 Release(); | |
| 1744 } | |
| 1745 | |
| 1687 AutomationProviderBrowsingDataObserver::AutomationProviderBrowsingDataObserver( | 1746 AutomationProviderBrowsingDataObserver::AutomationProviderBrowsingDataObserver( |
| 1688 AutomationProvider* provider, | 1747 AutomationProvider* provider, |
| 1689 IPC::Message* reply_message) | 1748 IPC::Message* reply_message) |
| 1690 : provider_(provider->AsWeakPtr()), | 1749 : provider_(provider->AsWeakPtr()), |
| 1691 reply_message_(reply_message) { | 1750 reply_message_(reply_message) { |
| 1692 } | 1751 } |
| 1693 | 1752 |
| 1694 AutomationProviderBrowsingDataObserver:: | 1753 AutomationProviderBrowsingDataObserver:: |
| 1695 ~AutomationProviderBrowsingDataObserver() {} | 1754 ~AutomationProviderBrowsingDataObserver() {} |
| 1696 | 1755 |
| (...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2436 this, | 2495 this, |
| 2437 &WaitForProcessLauncherThreadToGoIdleObserver::RunOnUIThread)); | 2496 &WaitForProcessLauncherThreadToGoIdleObserver::RunOnUIThread)); |
| 2438 } | 2497 } |
| 2439 | 2498 |
| 2440 void WaitForProcessLauncherThreadToGoIdleObserver::RunOnUIThread() { | 2499 void WaitForProcessLauncherThreadToGoIdleObserver::RunOnUIThread() { |
| 2441 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 2500 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 2442 if (automation_) | 2501 if (automation_) |
| 2443 automation_->Send(reply_message_.release()); | 2502 automation_->Send(reply_message_.release()); |
| 2444 Release(); | 2503 Release(); |
| 2445 } | 2504 } |
| OLD | NEW |