| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 2628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2639 DownloadServiceFactory::GetForProfile(browser->profile())); | 2639 DownloadServiceFactory::GetForProfile(browser->profile())); |
| 2640 | 2640 |
| 2641 if (download_service->HasCreatedDownloadManager()) { | 2641 if (download_service->HasCreatedDownloadManager()) { |
| 2642 std::vector<DownloadItem*> downloads; | 2642 std::vector<DownloadItem*> downloads; |
| 2643 BrowserContext::GetDownloadManager(browser->profile())-> | 2643 BrowserContext::GetDownloadManager(browser->profile())-> |
| 2644 GetAllDownloads(FilePath(), &downloads); | 2644 GetAllDownloads(FilePath(), &downloads); |
| 2645 | 2645 |
| 2646 for (std::vector<DownloadItem*>::iterator it = downloads.begin(); | 2646 for (std::vector<DownloadItem*>::iterator it = downloads.begin(); |
| 2647 it != downloads.end(); | 2647 it != downloads.end(); |
| 2648 it++) { // Fill info about each download item. | 2648 it++) { // Fill info about each download item. |
| 2649 list_of_downloads->Append(GetDictionaryFromDownloadItem(*it)); | 2649 list_of_downloads->Append(GetDictionaryFromDownloadItem( |
| 2650 *it, browser->profile()->IsOffTheRecord())); |
| 2650 } | 2651 } |
| 2651 } | 2652 } |
| 2652 return_value->Set("downloads", list_of_downloads); | 2653 return_value->Set("downloads", list_of_downloads); |
| 2653 reply.SendSuccess(return_value.get()); | 2654 reply.SendSuccess(return_value.get()); |
| 2654 } | 2655 } |
| 2655 | 2656 |
| 2656 void TestingAutomationProvider::WaitForAllDownloadsToComplete( | 2657 void TestingAutomationProvider::WaitForAllDownloadsToComplete( |
| 2657 Browser* browser, | 2658 Browser* browser, |
| 2658 DictionaryValue* args, | 2659 DictionaryValue* args, |
| 2659 IPC::Message* reply_message) { | 2660 IPC::Message* reply_message) { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2734 // We need to be IN_PROGRESS for these actions. | 2735 // We need to be IN_PROGRESS for these actions. |
| 2735 if ((action == "toggle_pause" || action == "cancel") && | 2736 if ((action == "toggle_pause" || action == "cancel") && |
| 2736 !selected_item->IsInProgress()) { | 2737 !selected_item->IsInProgress()) { |
| 2737 AutomationJSONReply(this, reply_message) | 2738 AutomationJSONReply(this, reply_message) |
| 2738 .SendError("Selected DownloadItem is not in progress."); | 2739 .SendError("Selected DownloadItem is not in progress."); |
| 2739 } | 2740 } |
| 2740 | 2741 |
| 2741 if (action == "open") { | 2742 if (action == "open") { |
| 2742 selected_item->AddObserver( | 2743 selected_item->AddObserver( |
| 2743 new AutomationProviderDownloadUpdatedObserver( | 2744 new AutomationProviderDownloadUpdatedObserver( |
| 2744 this, reply_message, true)); | 2745 this, reply_message, true, browser->profile()->IsOffTheRecord())); |
| 2745 selected_item->OpenDownload(); | 2746 selected_item->OpenDownload(); |
| 2746 } else if (action == "toggle_open_files_like_this") { | 2747 } else if (action == "toggle_open_files_like_this") { |
| 2747 DownloadPrefs* prefs = | 2748 DownloadPrefs* prefs = |
| 2748 DownloadPrefs::FromBrowserContext(selected_item->GetBrowserContext()); | 2749 DownloadPrefs::FromBrowserContext(selected_item->GetBrowserContext()); |
| 2749 FilePath path = selected_item->GetUserVerifiedFilePath(); | 2750 FilePath path = selected_item->GetUserVerifiedFilePath(); |
| 2750 if (!selected_item->ShouldOpenFileBasedOnExtension()) | 2751 if (!selected_item->ShouldOpenFileBasedOnExtension()) |
| 2751 prefs->EnableAutoOpenBasedOnExtension(path); | 2752 prefs->EnableAutoOpenBasedOnExtension(path); |
| 2752 else | 2753 else |
| 2753 prefs->DisableAutoOpenBasedOnExtension(path); | 2754 prefs->DisableAutoOpenBasedOnExtension(path); |
| 2754 AutomationJSONReply(this, reply_message).SendSuccess(NULL); | 2755 AutomationJSONReply(this, reply_message).SendSuccess(NULL); |
| 2755 } else if (action == "remove") { | 2756 } else if (action == "remove") { |
| 2756 download_manager->AddObserver( | 2757 download_manager->AddObserver( |
| 2757 new AutomationProviderDownloadModelChangedObserver( | 2758 new AutomationProviderDownloadModelChangedObserver( |
| 2758 this, reply_message, download_manager)); | 2759 this, reply_message, download_manager)); |
| 2759 selected_item->Remove(); | 2760 selected_item->Remove(); |
| 2760 } else if (action == "decline_dangerous_download") { | 2761 } else if (action == "decline_dangerous_download") { |
| 2761 download_manager->AddObserver( | 2762 download_manager->AddObserver( |
| 2762 new AutomationProviderDownloadModelChangedObserver( | 2763 new AutomationProviderDownloadModelChangedObserver( |
| 2763 this, reply_message, download_manager)); | 2764 this, reply_message, download_manager)); |
| 2764 selected_item->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); | 2765 selected_item->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); |
| 2765 } else if (action == "save_dangerous_download") { | 2766 } else if (action == "save_dangerous_download") { |
| 2766 selected_item->AddObserver(new AutomationProviderDownloadUpdatedObserver( | 2767 selected_item->AddObserver(new AutomationProviderDownloadUpdatedObserver( |
| 2767 this, reply_message, false)); | 2768 this, reply_message, false, browser->profile()->IsOffTheRecord())); |
| 2768 selected_item->DangerousDownloadValidated(); | 2769 selected_item->DangerousDownloadValidated(); |
| 2769 } else if (action == "toggle_pause") { | 2770 } else if (action == "toggle_pause") { |
| 2770 selected_item->AddObserver(new AutomationProviderDownloadUpdatedObserver( | 2771 selected_item->AddObserver(new AutomationProviderDownloadUpdatedObserver( |
| 2771 this, reply_message, false)); | 2772 this, reply_message, false, browser->profile()->IsOffTheRecord())); |
| 2772 // This will still return if download has already completed. | 2773 // This will still return if download has already completed. |
| 2773 selected_item->TogglePause(); | 2774 selected_item->TogglePause(); |
| 2774 } else if (action == "cancel") { | 2775 } else if (action == "cancel") { |
| 2775 selected_item->AddObserver(new AutomationProviderDownloadUpdatedObserver( | 2776 selected_item->AddObserver(new AutomationProviderDownloadUpdatedObserver( |
| 2776 this, reply_message, false)); | 2777 this, reply_message, false, browser->profile()->IsOffTheRecord())); |
| 2777 selected_item->Cancel(true); | 2778 selected_item->Cancel(true); |
| 2778 } else { | 2779 } else { |
| 2779 AutomationJSONReply(this, reply_message) | 2780 AutomationJSONReply(this, reply_message) |
| 2780 .SendError(StringPrintf("Invalid action '%s' given.", action.c_str())); | 2781 .SendError(StringPrintf("Invalid action '%s' given.", action.c_str())); |
| 2781 } | 2782 } |
| 2782 } | 2783 } |
| 2783 | 2784 |
| 2784 void TestingAutomationProvider::SetDownloadShelfVisibleJSON( | 2785 void TestingAutomationProvider::SetDownloadShelfVisibleJSON( |
| 2785 DictionaryValue* args, | 2786 DictionaryValue* args, |
| 2786 IPC::Message* reply_message) { | 2787 IPC::Message* reply_message) { |
| (...skipping 4378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7165 void TestingAutomationProvider::OnRemoveProvider() { | 7166 void TestingAutomationProvider::OnRemoveProvider() { |
| 7166 if (g_browser_process) | 7167 if (g_browser_process) |
| 7167 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); | 7168 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); |
| 7168 } | 7169 } |
| 7169 | 7170 |
| 7170 void TestingAutomationProvider::EnsureTabSelected(Browser* browser, | 7171 void TestingAutomationProvider::EnsureTabSelected(Browser* browser, |
| 7171 WebContents* tab) { | 7172 WebContents* tab) { |
| 7172 if (chrome::GetActiveWebContents(browser) != tab) | 7173 if (chrome::GetActiveWebContents(browser) != tab) |
| 7173 chrome::ActivateTabAt(browser, chrome::GetIndexOfTab(browser, tab), true); | 7174 chrome::ActivateTabAt(browser, chrome::GetIndexOfTab(browser, tab), true); |
| 7174 } | 7175 } |
| OLD | NEW |