| 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/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 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 } | 694 } |
| 695 } | 695 } |
| 696 } | 696 } |
| 697 | 697 |
| 698 void TestingAutomationProvider::GetRedirectsFrom(int tab_handle, | 698 void TestingAutomationProvider::GetRedirectsFrom(int tab_handle, |
| 699 const GURL& source_url, | 699 const GURL& source_url, |
| 700 IPC::Message* reply_message) { | 700 IPC::Message* reply_message) { |
| 701 if (redirect_query_) { | 701 if (redirect_query_) { |
| 702 LOG(ERROR) << "Can only handle one redirect query at once."; | 702 LOG(ERROR) << "Can only handle one redirect query at once."; |
| 703 } else if (tab_tracker_->ContainsHandle(tab_handle)) { | 703 } else if (tab_tracker_->ContainsHandle(tab_handle)) { |
| 704 NavigationController* tab = tab_tracker_->GetResource(tab_handle); | 704 NavigationController* nav = tab_tracker_->GetResource(tab_handle); |
| 705 Profile* profile = static_cast<Profile*>(nav->browser_context()); |
| 705 HistoryService* history_service = | 706 HistoryService* history_service = |
| 706 tab->profile()->GetHistoryService(Profile::EXPLICIT_ACCESS); | 707 profile->GetHistoryService(Profile::EXPLICIT_ACCESS); |
| 707 | 708 |
| 708 DCHECK(history_service) << "Tab " << tab_handle << "'s profile " << | 709 DCHECK(history_service) << "Tab " << tab_handle << "'s profile " << |
| 709 "has no history service"; | 710 "has no history service"; |
| 710 if (history_service) { | 711 if (history_service) { |
| 711 DCHECK(!reply_message_); | 712 DCHECK(!reply_message_); |
| 712 reply_message_ = reply_message; | 713 reply_message_ = reply_message; |
| 713 // Schedule a history query for redirects. The response will be sent | 714 // Schedule a history query for redirects. The response will be sent |
| 714 // asynchronously from the callback the history system uses to notify us | 715 // asynchronously from the callback the history system uses to notify us |
| 715 // that it's done: OnRedirectQueryComplete. | 716 // that it's done: OnRedirectQueryComplete. |
| 716 redirect_query_ = history_service->QueryRedirectsFrom( | 717 redirect_query_ = history_service->QueryRedirectsFrom( |
| (...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1313 DevToolsWindow::InspectElement(tab_contents->render_view_host(), x, y); | 1314 DevToolsWindow::InspectElement(tab_contents->render_view_host(), x, y); |
| 1314 } else { | 1315 } else { |
| 1315 AutomationMsg_InspectElement::WriteReplyParams(reply_message, -1); | 1316 AutomationMsg_InspectElement::WriteReplyParams(reply_message, -1); |
| 1316 Send(reply_message); | 1317 Send(reply_message); |
| 1317 } | 1318 } |
| 1318 } | 1319 } |
| 1319 | 1320 |
| 1320 void TestingAutomationProvider::GetDownloadDirectory( | 1321 void TestingAutomationProvider::GetDownloadDirectory( |
| 1321 int handle, FilePath* download_directory) { | 1322 int handle, FilePath* download_directory) { |
| 1322 if (tab_tracker_->ContainsHandle(handle)) { | 1323 if (tab_tracker_->ContainsHandle(handle)) { |
| 1323 NavigationController* tab = tab_tracker_->GetResource(handle); | 1324 NavigationController* nav = tab_tracker_->GetResource(handle); |
| 1324 DownloadManager* dlm = tab->profile()->GetDownloadManager(); | 1325 Profile* profile = static_cast<Profile*>(nav->browser_context()); |
| 1326 DownloadManager* dlm = profile->GetDownloadManager(); |
| 1325 *download_directory = dlm->download_prefs()->download_path(); | 1327 *download_directory = dlm->download_prefs()->download_path(); |
| 1326 } | 1328 } |
| 1327 } | 1329 } |
| 1328 | 1330 |
| 1329 void TestingAutomationProvider::OpenNewBrowserWindowOfType( | 1331 void TestingAutomationProvider::OpenNewBrowserWindowOfType( |
| 1330 int type, bool show, IPC::Message* reply_message) { | 1332 int type, bool show, IPC::Message* reply_message) { |
| 1331 new BrowserOpenedNotificationObserver(this, reply_message); | 1333 new BrowserOpenedNotificationObserver(this, reply_message); |
| 1332 // We may have no current browser windows open so don't rely on | 1334 // We may have no current browser windows open so don't rely on |
| 1333 // asking an existing browser to execute the IDC_NEWWINDOW command | 1335 // asking an existing browser to execute the IDC_NEWWINDOW command |
| 1334 Browser* browser = new Browser(static_cast<Browser::Type>(type), profile_); | 1336 Browser* browser = new Browser(static_cast<Browser::Type>(type), profile_); |
| (...skipping 2927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4262 DictionaryValue* args, | 4264 DictionaryValue* args, |
| 4263 IPC::Message* reply_message) { | 4265 IPC::Message* reply_message) { |
| 4264 AutomationJSONReply reply(this, reply_message); | 4266 AutomationJSONReply reply(this, reply_message); |
| 4265 // Get the AutofillProfiles currently in the database. | 4267 // Get the AutofillProfiles currently in the database. |
| 4266 int tab_index = 0; | 4268 int tab_index = 0; |
| 4267 if (!args->GetInteger("tab_index", &tab_index)) { | 4269 if (!args->GetInteger("tab_index", &tab_index)) { |
| 4268 reply.SendError("Invalid or missing tab_index integer value."); | 4270 reply.SendError("Invalid or missing tab_index integer value."); |
| 4269 return; | 4271 return; |
| 4270 } | 4272 } |
| 4271 | 4273 |
| 4272 TabContents* tab_contents = browser->GetTabContentsAt(tab_index); | 4274 TabContentsWrapper* tab_contents = |
| 4275 browser->GetTabContentsWrapperAt(tab_index); |
| 4273 if (tab_contents) { | 4276 if (tab_contents) { |
| 4274 PersonalDataManager* pdm = tab_contents->profile()->GetOriginalProfile() | 4277 PersonalDataManager* pdm = |
| 4275 ->GetPersonalDataManager(); | 4278 tab_contents->profile()->GetOriginalProfile()->GetPersonalDataManager(); |
| 4276 if (pdm) { | 4279 if (pdm) { |
| 4277 std::vector<AutofillProfile*> autofill_profiles = pdm->profiles(); | 4280 std::vector<AutofillProfile*> autofill_profiles = pdm->profiles(); |
| 4278 std::vector<CreditCard*> credit_cards = pdm->credit_cards(); | 4281 std::vector<CreditCard*> credit_cards = pdm->credit_cards(); |
| 4279 | 4282 |
| 4280 ListValue* profiles = GetListFromAutofillProfiles(autofill_profiles); | 4283 ListValue* profiles = GetListFromAutofillProfiles(autofill_profiles); |
| 4281 ListValue* cards = GetListFromCreditCards(credit_cards); | 4284 ListValue* cards = GetListFromCreditCards(credit_cards); |
| 4282 | 4285 |
| 4283 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 4286 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); |
| 4284 | 4287 |
| 4285 return_value->Set("profiles", profiles); | 4288 return_value->Set("profiles", profiles); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4327 } | 4330 } |
| 4328 | 4331 |
| 4329 // Save the AutofillProfiles. | 4332 // Save the AutofillProfiles. |
| 4330 int tab_index = 0; | 4333 int tab_index = 0; |
| 4331 if (!args->GetInteger("tab_index", &tab_index)) { | 4334 if (!args->GetInteger("tab_index", &tab_index)) { |
| 4332 AutomationJSONReply(this, reply_message).SendError( | 4335 AutomationJSONReply(this, reply_message).SendError( |
| 4333 "Invalid or missing tab_index integer"); | 4336 "Invalid or missing tab_index integer"); |
| 4334 return; | 4337 return; |
| 4335 } | 4338 } |
| 4336 | 4339 |
| 4337 TabContents* tab_contents = browser->GetTabContentsAt(tab_index); | 4340 TabContentsWrapper* tab_contents = |
| 4341 browser->GetTabContentsWrapperAt(tab_index); |
| 4338 | 4342 |
| 4339 if (tab_contents) { | 4343 if (tab_contents) { |
| 4340 PersonalDataManager* pdm = tab_contents->profile() | 4344 PersonalDataManager* pdm = |
| 4341 ->GetPersonalDataManager(); | 4345 tab_contents->profile()->GetPersonalDataManager(); |
| 4342 if (pdm) { | 4346 if (pdm) { |
| 4343 if (profiles || cards) { | 4347 if (profiles || cards) { |
| 4344 // This observer will delete itself. | 4348 // This observer will delete itself. |
| 4345 AutofillChangedObserver* observer = new AutofillChangedObserver( | 4349 AutofillChangedObserver* observer = new AutofillChangedObserver( |
| 4346 this, reply_message, autofill_profiles.size(), credit_cards.size()); | 4350 this, reply_message, autofill_profiles.size(), credit_cards.size()); |
| 4347 observer->Init(); | 4351 observer->Init(); |
| 4348 | 4352 |
| 4349 if (profiles) | 4353 if (profiles) |
| 4350 pdm->SetProfiles(&autofill_profiles); | 4354 pdm->SetProfiles(&autofill_profiles); |
| 4351 if (cards) | 4355 if (cards) |
| (...skipping 1718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6070 IPC::ParamTraits<std::vector<GURL> >::Write(reply_message_, redirects_gurl); | 6074 IPC::ParamTraits<std::vector<GURL> >::Write(reply_message_, redirects_gurl); |
| 6071 | 6075 |
| 6072 Send(reply_message_); | 6076 Send(reply_message_); |
| 6073 redirect_query_ = 0; | 6077 redirect_query_ = 0; |
| 6074 reply_message_ = NULL; | 6078 reply_message_ = NULL; |
| 6075 } | 6079 } |
| 6076 | 6080 |
| 6077 void TestingAutomationProvider::OnRemoveProvider() { | 6081 void TestingAutomationProvider::OnRemoveProvider() { |
| 6078 AutomationProviderList::GetInstance()->RemoveProvider(this); | 6082 AutomationProviderList::GetInstance()->RemoveProvider(this); |
| 6079 } | 6083 } |
| OLD | NEW |