| 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 "chrome/browser/automation/testing_automation_provider.h" | 5 #include "chrome/browser/automation/testing_automation_provider.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 3156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3167 } | 3167 } |
| 3168 // The observer will delete itself when done. | 3168 // The observer will delete itself when done. |
| 3169 new SavePackageNotificationObserver( | 3169 new SavePackageNotificationObserver( |
| 3170 BrowserContext::GetDownloadManager(browser->profile()), | 3170 BrowserContext::GetDownloadManager(browser->profile()), |
| 3171 this, reply_message); | 3171 this, reply_message); |
| 3172 } | 3172 } |
| 3173 | 3173 |
| 3174 namespace { | 3174 namespace { |
| 3175 | 3175 |
| 3176 // Translates a dictionary password to a PasswordForm struct. | 3176 // Translates a dictionary password to a PasswordForm struct. |
| 3177 content::PasswordForm GetPasswordFormFromDict( | 3177 autofill::PasswordForm GetPasswordFormFromDict( |
| 3178 const DictionaryValue& password_dict) { | 3178 const DictionaryValue& password_dict) { |
| 3179 | 3179 |
| 3180 // If the time is specified, change time to the specified time. | 3180 // If the time is specified, change time to the specified time. |
| 3181 base::Time time = base::Time::Now(); | 3181 base::Time time = base::Time::Now(); |
| 3182 int it; | 3182 int it; |
| 3183 double dt; | 3183 double dt; |
| 3184 if (password_dict.GetInteger("time", &it)) | 3184 if (password_dict.GetInteger("time", &it)) |
| 3185 time = base::Time::FromTimeT(it); | 3185 time = base::Time::FromTimeT(it); |
| 3186 else if (password_dict.GetDouble("time", &dt)) | 3186 else if (password_dict.GetDouble("time", &dt)) |
| 3187 time = base::Time::FromDoubleT(dt); | 3187 time = base::Time::FromDoubleT(dt); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 3207 password_dict.GetString("username_element", &username_element); | 3207 password_dict.GetString("username_element", &username_element); |
| 3208 password_dict.GetString("password_element", &password_element); | 3208 password_dict.GetString("password_element", &password_element); |
| 3209 password_dict.GetString("submit_element", &submit_element); | 3209 password_dict.GetString("submit_element", &submit_element); |
| 3210 password_dict.GetString("action_target", &action_target_text); | 3210 password_dict.GetString("action_target", &action_target_text); |
| 3211 if (!password_dict.GetBoolean("blacklist", &blacklist)) | 3211 if (!password_dict.GetBoolean("blacklist", &blacklist)) |
| 3212 blacklist = false; | 3212 blacklist = false; |
| 3213 | 3213 |
| 3214 GURL origin_gurl(origin_url_text); | 3214 GURL origin_gurl(origin_url_text); |
| 3215 GURL action_target(action_target_text); | 3215 GURL action_target(action_target_text); |
| 3216 | 3216 |
| 3217 content::PasswordForm password_form; | 3217 autofill::PasswordForm password_form; |
| 3218 password_form.signon_realm = signon_realm; | 3218 password_form.signon_realm = signon_realm; |
| 3219 password_form.username_value = username_value; | 3219 password_form.username_value = username_value; |
| 3220 password_form.password_value = password_value; | 3220 password_form.password_value = password_value; |
| 3221 password_form.origin = origin_gurl; | 3221 password_form.origin = origin_gurl; |
| 3222 password_form.username_element = username_element; | 3222 password_form.username_element = username_element; |
| 3223 password_form.password_element = password_element; | 3223 password_form.password_element = password_element; |
| 3224 password_form.submit_element = submit_element; | 3224 password_form.submit_element = submit_element; |
| 3225 password_form.action = action_target; | 3225 password_form.action = action_target; |
| 3226 password_form.blacklisted_by_user = blacklist; | 3226 password_form.blacklisted_by_user = blacklist; |
| 3227 password_form.date_created = time; | 3227 password_form.date_created = time; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 3246 } | 3246 } |
| 3247 | 3247 |
| 3248 // The "signon realm" is effectively the primary key and must be included. | 3248 // The "signon realm" is effectively the primary key and must be included. |
| 3249 // Check here before calling GetPasswordFormFromDict. | 3249 // Check here before calling GetPasswordFormFromDict. |
| 3250 if (!password_dict->HasKey("signon_realm")) { | 3250 if (!password_dict->HasKey("signon_realm")) { |
| 3251 AutomationJSONReply(this, reply_message).SendError( | 3251 AutomationJSONReply(this, reply_message).SendError( |
| 3252 "Password must include a value for 'signon_realm.'"); | 3252 "Password must include a value for 'signon_realm.'"); |
| 3253 return; | 3253 return; |
| 3254 } | 3254 } |
| 3255 | 3255 |
| 3256 content::PasswordForm new_password = | 3256 autofill::PasswordForm new_password = |
| 3257 GetPasswordFormFromDict(*password_dict); | 3257 GetPasswordFormFromDict(*password_dict); |
| 3258 | 3258 |
| 3259 // Use IMPLICIT_ACCESS since new passwords aren't added in incognito mode. | 3259 // Use IMPLICIT_ACCESS since new passwords aren't added in incognito mode. |
| 3260 PasswordStore* password_store = PasswordStoreFactory::GetForProfile( | 3260 PasswordStore* password_store = PasswordStoreFactory::GetForProfile( |
| 3261 browser->profile(), Profile::IMPLICIT_ACCESS).get(); | 3261 browser->profile(), Profile::IMPLICIT_ACCESS).get(); |
| 3262 | 3262 |
| 3263 // The password store does not exist for an incognito window. | 3263 // The password store does not exist for an incognito window. |
| 3264 if (password_store == NULL) { | 3264 if (password_store == NULL) { |
| 3265 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 3265 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); |
| 3266 return_value->SetBoolean("password_added", false); | 3266 return_value->SetBoolean("password_added", false); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 3292 return; | 3292 return; |
| 3293 } | 3293 } |
| 3294 | 3294 |
| 3295 // The "signon realm" is effectively the primary key and must be included. | 3295 // The "signon realm" is effectively the primary key and must be included. |
| 3296 // Check here before calling GetPasswordFormFromDict. | 3296 // Check here before calling GetPasswordFormFromDict. |
| 3297 if (!password_dict->HasKey("signon_realm")) { | 3297 if (!password_dict->HasKey("signon_realm")) { |
| 3298 AutomationJSONReply(this, reply_message).SendError( | 3298 AutomationJSONReply(this, reply_message).SendError( |
| 3299 "Password must include a value for 'signon_realm.'"); | 3299 "Password must include a value for 'signon_realm.'"); |
| 3300 return; | 3300 return; |
| 3301 } | 3301 } |
| 3302 content::PasswordForm to_remove = | 3302 autofill::PasswordForm to_remove = |
| 3303 GetPasswordFormFromDict(*password_dict); | 3303 GetPasswordFormFromDict(*password_dict); |
| 3304 | 3304 |
| 3305 // Use EXPLICIT_ACCESS since passwords can be removed in incognito mode. | 3305 // Use EXPLICIT_ACCESS since passwords can be removed in incognito mode. |
| 3306 PasswordStore* password_store = PasswordStoreFactory::GetForProfile( | 3306 PasswordStore* password_store = PasswordStoreFactory::GetForProfile( |
| 3307 browser->profile(), Profile::EXPLICIT_ACCESS).get(); | 3307 browser->profile(), Profile::EXPLICIT_ACCESS).get(); |
| 3308 if (password_store == NULL) { | 3308 if (password_store == NULL) { |
| 3309 AutomationJSONReply(this, reply_message).SendError( | 3309 AutomationJSONReply(this, reply_message).SendError( |
| 3310 "Unable to get password store."); | 3310 "Unable to get password store."); |
| 3311 return; | 3311 return; |
| 3312 } | 3312 } |
| (...skipping 2241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5554 if (g_browser_process) | 5554 if (g_browser_process) |
| 5555 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); | 5555 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); |
| 5556 } | 5556 } |
| 5557 | 5557 |
| 5558 void TestingAutomationProvider::EnsureTabSelected(Browser* browser, | 5558 void TestingAutomationProvider::EnsureTabSelected(Browser* browser, |
| 5559 WebContents* tab) { | 5559 WebContents* tab) { |
| 5560 TabStripModel* tab_strip = browser->tab_strip_model(); | 5560 TabStripModel* tab_strip = browser->tab_strip_model(); |
| 5561 if (tab_strip->GetActiveWebContents() != tab) | 5561 if (tab_strip->GetActiveWebContents() != tab) |
| 5562 tab_strip->ActivateTabAt(tab_strip->GetIndexOfWebContents(tab), true); | 5562 tab_strip->ActivateTabAt(tab_strip->GetIndexOfWebContents(tab), true); |
| 5563 } | 5563 } |
| OLD | NEW |