| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/autofill/content/renderer/password_generation_manager.h" | 5 #include "components/autofill/content/renderer/password_generation_manager.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "components/autofill/content/renderer/password_form_conversion_utils.h" | 8 #include "components/autofill/content/renderer/password_form_conversion_utils.h" |
| 9 #include "components/autofill/core/common/autofill_messages.h" | 9 #include "components/autofill/core/common/autofill_messages.h" |
| 10 #include "components/autofill/core/common/password_generation_util.h" | 10 #include "components/autofill/core/common/password_generation_util.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 return; | 101 return; |
| 102 | 102 |
| 103 WebKit::WebVector<WebKit::WebFormElement> forms; | 103 WebKit::WebVector<WebKit::WebFormElement> forms; |
| 104 frame->document().forms(forms); | 104 frame->document().forms(forms); |
| 105 for (size_t i = 0; i < forms.size(); ++i) { | 105 for (size_t i = 0; i < forms.size(); ++i) { |
| 106 if (forms[i].isNull()) | 106 if (forms[i].isNull()) |
| 107 continue; | 107 continue; |
| 108 | 108 |
| 109 // If we can't get a valid PasswordForm, we skip this form because the | 109 // If we can't get a valid PasswordForm, we skip this form because the |
| 110 // the password won't get saved even if we generate it. | 110 // the password won't get saved even if we generate it. |
| 111 scoped_ptr<content::PasswordForm> password_form( | 111 scoped_ptr<autofill::PasswordForm> password_form( |
| 112 CreatePasswordForm(forms[i])); | 112 CreatePasswordForm(forms[i])); |
| 113 if (!password_form.get()) { | 113 if (!password_form.get()) { |
| 114 DVLOG(2) << "Skipping form as it would not be saved"; | 114 DVLOG(2) << "Skipping form as it would not be saved"; |
| 115 continue; | 115 continue; |
| 116 } | 116 } |
| 117 | 117 |
| 118 // Do not generate password for GAIA since it is used to retrieve the | 118 // Do not generate password for GAIA since it is used to retrieve the |
| 119 // generated paswords. | 119 // generated paswords. |
| 120 GURL realm(password_form->signon_realm); | 120 GURL realm(password_form->signon_realm); |
| 121 if (realm == GURL(GaiaUrls::GetInstance()->gaia_login_form_realm())) | 121 if (realm == GURL(GaiaUrls::GetInstance()->gaia_login_form_realm())) |
| (...skipping 25 matching lines...) Expand all Loading... |
| 147 return false; | 147 return false; |
| 148 } | 148 } |
| 149 | 149 |
| 150 return true; | 150 return true; |
| 151 } | 151 } |
| 152 | 152 |
| 153 void PasswordGenerationManager::openPasswordGenerator( | 153 void PasswordGenerationManager::openPasswordGenerator( |
| 154 WebKit::WebInputElement& element) { | 154 WebKit::WebInputElement& element) { |
| 155 WebKit::WebElement button(element.passwordGeneratorButtonElement()); | 155 WebKit::WebElement button(element.passwordGeneratorButtonElement()); |
| 156 gfx::Rect rect(button.boundsInViewportSpace()); | 156 gfx::Rect rect(button.boundsInViewportSpace()); |
| 157 scoped_ptr<content::PasswordForm> password_form( | 157 scoped_ptr<autofill::PasswordForm> password_form( |
| 158 CreatePasswordForm(element.form())); | 158 CreatePasswordForm(element.form())); |
| 159 // We should not have shown the icon we can't create a valid PasswordForm. | 159 // We should not have shown the icon we can't create a valid PasswordForm. |
| 160 DCHECK(password_form.get()); | 160 DCHECK(password_form.get()); |
| 161 | 161 |
| 162 Send(new AutofillHostMsg_ShowPasswordGenerationPopup(routing_id(), | 162 Send(new AutofillHostMsg_ShowPasswordGenerationPopup(routing_id(), |
| 163 rect, | 163 rect, |
| 164 element.maxLength(), | 164 element.maxLength(), |
| 165 *password_form)); | 165 *password_form)); |
| 166 password_generation::LogPasswordGenerationEvent( | 166 password_generation::LogPasswordGenerationEvent( |
| 167 password_generation::BUBBLE_SHOWN); | 167 password_generation::BUBBLE_SHOWN); |
| 168 } | 168 } |
| 169 | 169 |
| 170 bool PasswordGenerationManager::OnMessageReceived(const IPC::Message& message) { | 170 bool PasswordGenerationManager::OnMessageReceived(const IPC::Message& message) { |
| 171 bool handled = true; | 171 bool handled = true; |
| 172 IPC_BEGIN_MESSAGE_MAP(PasswordGenerationManager, message) | 172 IPC_BEGIN_MESSAGE_MAP(PasswordGenerationManager, message) |
| 173 IPC_MESSAGE_HANDLER(AutofillMsg_FormNotBlacklisted, | 173 IPC_MESSAGE_HANDLER(AutofillMsg_FormNotBlacklisted, |
| 174 OnFormNotBlacklisted) | 174 OnFormNotBlacklisted) |
| 175 IPC_MESSAGE_HANDLER(AutofillMsg_GeneratedPasswordAccepted, | 175 IPC_MESSAGE_HANDLER(AutofillMsg_GeneratedPasswordAccepted, |
| 176 OnPasswordAccepted) | 176 OnPasswordAccepted) |
| 177 IPC_MESSAGE_HANDLER(AutofillMsg_PasswordGenerationEnabled, | 177 IPC_MESSAGE_HANDLER(AutofillMsg_PasswordGenerationEnabled, |
| 178 OnPasswordGenerationEnabled) | 178 OnPasswordGenerationEnabled) |
| 179 IPC_MESSAGE_UNHANDLED(handled = false) | 179 IPC_MESSAGE_UNHANDLED(handled = false) |
| 180 IPC_END_MESSAGE_MAP() | 180 IPC_END_MESSAGE_MAP() |
| 181 return handled; | 181 return handled; |
| 182 } | 182 } |
| 183 | 183 |
| 184 void PasswordGenerationManager::OnFormNotBlacklisted( | 184 void PasswordGenerationManager::OnFormNotBlacklisted( |
| 185 const content::PasswordForm& form) { | 185 const autofill::PasswordForm& form) { |
| 186 not_blacklisted_password_form_origins_.push_back(form.origin); | 186 not_blacklisted_password_form_origins_.push_back(form.origin); |
| 187 MaybeShowIcon(); | 187 MaybeShowIcon(); |
| 188 } | 188 } |
| 189 | 189 |
| 190 void PasswordGenerationManager::OnPasswordAccepted( | 190 void PasswordGenerationManager::OnPasswordAccepted( |
| 191 const base::string16& password) { | 191 const base::string16& password) { |
| 192 for (std::vector<WebKit::WebInputElement>::iterator it = passwords_.begin(); | 192 for (std::vector<WebKit::WebInputElement>::iterator it = passwords_.begin(); |
| 193 it != passwords_.end(); ++it) { | 193 it != passwords_.end(); ++it) { |
| 194 it->setValue(password); | 194 it->setValue(password); |
| 195 it->setAutofilled(true); | 195 it->setAutofilled(true); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 220 passwords_[0].passwordGeneratorButtonElement().setAttribute("style", | 220 passwords_[0].passwordGeneratorButtonElement().setAttribute("style", |
| 221 "display:block"); | 221 "display:block"); |
| 222 password_generation::LogPasswordGenerationEvent( | 222 password_generation::LogPasswordGenerationEvent( |
| 223 password_generation::ICON_SHOWN); | 223 password_generation::ICON_SHOWN); |
| 224 return; | 224 return; |
| 225 } | 225 } |
| 226 } | 226 } |
| 227 } | 227 } |
| 228 | 228 |
| 229 } // namespace autofill | 229 } // namespace autofill |
| OLD | NEW |