| 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 "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/i18n/time_formatting.h" | 8 #include "base/i18n/time_formatting.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| 11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
| 12 #include "chrome/browser/automation/automation_provider_json.h" | 12 #include "chrome/browser/automation/automation_provider_json.h" |
| 13 #include "chrome/browser/automation/automation_provider_observers.h" | 13 #include "chrome/browser/automation/automation_provider_observers.h" |
| 14 #include "chrome/browser/browser_process.h" | 14 #include "chrome/browser/browser_process.h" |
| 15 #include "chrome/browser/chromeos/audio_handler.h" | 15 #include "chrome/browser/chromeos/audio_handler.h" |
| 16 #include "chrome/browser/chromeos/cros/cros_library.h" | 16 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 17 #include "chrome/browser/chromeos/cros/network_library.h" | 17 #include "chrome/browser/chromeos/cros/network_library.h" |
| 18 #include "chrome/browser/chromeos/cros/power_library.h" | 18 #include "chrome/browser/chromeos/cros/power_library.h" |
| 19 #include "chrome/browser/chromeos/cros/screen_lock_library.h" | 19 #include "chrome/browser/chromeos/cros/screen_lock_library.h" |
| 20 #include "chrome/browser/chromeos/cros/update_library.h" | 20 #include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" |
| 21 #include "chrome/browser/chromeos/dbus/update_engine_client.h" |
| 21 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.
h" | 22 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.
h" |
| 22 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 23 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
| 23 #include "chrome/browser/chromeos/login/login_display.h" | 24 #include "chrome/browser/chromeos/login/login_display.h" |
| 24 #include "chrome/browser/chromeos/login/login_display_host.h" | 25 #include "chrome/browser/chromeos/login/login_display_host.h" |
| 25 #include "chrome/browser/chromeos/login/screen_locker.h" | 26 #include "chrome/browser/chromeos/login/screen_locker.h" |
| 26 #include "chrome/browser/chromeos/login/webui_login_display.h" | 27 #include "chrome/browser/chromeos/login/webui_login_display.h" |
| 27 #include "chrome/browser/chromeos/login/wizard_controller.h" | 28 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 28 #include "chrome/browser/chromeos/options/take_photo_dialog.h" | 29 #include "chrome/browser/chromeos/options/take_photo_dialog.h" |
| 29 #include "chrome/browser/chromeos/proxy_cros_settings_parser.h" | 30 #include "chrome/browser/chromeos/proxy_cros_settings_parser.h" |
| 30 #include "chrome/browser/chromeos/system/timezone_settings.h" | 31 #include "chrome/browser/chromeos/system/timezone_settings.h" |
| 31 #include "chrome/browser/policy/browser_policy_connector.h" | 32 #include "chrome/browser/policy/browser_policy_connector.h" |
| 32 #include "chrome/browser/policy/cloud_policy_cache_base.h" | 33 #include "chrome/browser/policy/cloud_policy_cache_base.h" |
| 33 #include "chrome/browser/policy/cloud_policy_data_store.h" | 34 #include "chrome/browser/policy/cloud_policy_data_store.h" |
| 34 #include "chrome/browser/policy/cloud_policy_subsystem.h" | 35 #include "chrome/browser/policy/cloud_policy_subsystem.h" |
| 35 #include "chrome/browser/policy/enterprise_install_attributes.h" | 36 #include "chrome/browser/policy/enterprise_install_attributes.h" |
| 36 #include "chrome/browser/prefs/pref_service.h" | 37 #include "chrome/browser/prefs/pref_service.h" |
| 37 #include "chrome/browser/ui/browser_window.h" | 38 #include "chrome/browser/ui/browser_window.h" |
| 38 #include "chrome/browser/ui/views/window.h" | 39 #include "chrome/browser/ui/views/window.h" |
| 39 #include "chrome/common/pref_names.h" | 40 #include "chrome/common/pref_names.h" |
| 40 #include "net/base/network_change_notifier.h" | 41 #include "net/base/network_change_notifier.h" |
| 41 #include "policy/policy_constants.h" | 42 #include "policy/policy_constants.h" |
| 42 #include "ui/views/widget/widget.h" | 43 #include "ui/views/widget/widget.h" |
| 43 | 44 |
| 44 using chromeos::CrosLibrary; | 45 using chromeos::CrosLibrary; |
| 46 using chromeos::DBusThreadManager; |
| 45 using chromeos::NetworkLibrary; | 47 using chromeos::NetworkLibrary; |
| 46 using chromeos::UpdateLibrary; | 48 using chromeos::UpdateEngineClient; |
| 47 using chromeos::UserManager; | 49 using chromeos::UserManager; |
| 48 | 50 |
| 49 namespace { | 51 namespace { |
| 50 | 52 |
| 51 DictionaryValue* GetNetworkInfoDict(const chromeos::Network* network) { | 53 DictionaryValue* GetNetworkInfoDict(const chromeos::Network* network) { |
| 52 DictionaryValue* item = new DictionaryValue; | 54 DictionaryValue* item = new DictionaryValue; |
| 53 item->SetString("name", network->name()); | 55 item->SetString("name", network->name()); |
| 54 item->SetString("device_path", network->device_path()); | 56 item->SetString("device_path", network->device_path()); |
| 55 item->SetString("ip_address", network->ip_address()); | 57 item->SetString("ip_address", network->ip_address()); |
| 56 item->SetString("status", network->GetStateString()); | 58 item->SetString("status", network->GetStateString()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 76 base::Value* value; | 78 base::Value* value; |
| 77 bool found = setting_dict->Remove("value", &value); | 79 bool found = setting_dict->Remove("value", &value); |
| 78 delete setting; | 80 delete setting; |
| 79 if (found) | 81 if (found) |
| 80 return value; | 82 return value; |
| 81 } | 83 } |
| 82 } | 84 } |
| 83 return NULL; | 85 return NULL; |
| 84 } | 86 } |
| 85 | 87 |
| 86 const char* UpdateStatusToString(chromeos::UpdateStatusOperation status) { | 88 const char* UpdateStatusToString( |
| 89 UpdateEngineClient::UpdateStatusOperation status) { |
| 87 switch (status) { | 90 switch (status) { |
| 88 case chromeos::UPDATE_STATUS_IDLE: | 91 case UpdateEngineClient::UPDATE_STATUS_IDLE: |
| 89 return "idle"; | 92 return "idle"; |
| 90 case chromeos::UPDATE_STATUS_CHECKING_FOR_UPDATE: | 93 case UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE: |
| 91 return "checking for update"; | 94 return "checking for update"; |
| 92 case chromeos::UPDATE_STATUS_UPDATE_AVAILABLE: | 95 case UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE: |
| 93 return "update available"; | 96 return "update available"; |
| 94 case chromeos::UPDATE_STATUS_DOWNLOADING: | 97 case UpdateEngineClient::UPDATE_STATUS_DOWNLOADING: |
| 95 return "downloading"; | 98 return "downloading"; |
| 96 case chromeos::UPDATE_STATUS_VERIFYING: | 99 case UpdateEngineClient::UPDATE_STATUS_VERIFYING: |
| 97 return "verifying"; | 100 return "verifying"; |
| 98 case chromeos::UPDATE_STATUS_FINALIZING: | 101 case UpdateEngineClient::UPDATE_STATUS_FINALIZING: |
| 99 return "finalizing"; | 102 return "finalizing"; |
| 100 case chromeos::UPDATE_STATUS_UPDATED_NEED_REBOOT: | 103 case UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT: |
| 101 return "updated need reboot"; | 104 return "updated need reboot"; |
| 102 case chromeos::UPDATE_STATUS_REPORTING_ERROR_EVENT: | 105 case UpdateEngineClient::UPDATE_STATUS_REPORTING_ERROR_EVENT: |
| 103 return "reporting error event"; | 106 return "reporting error event"; |
| 104 default: | 107 default: |
| 105 return "unknown"; | 108 return "unknown"; |
| 106 } | 109 } |
| 107 } | 110 } |
| 108 | 111 |
| 109 void GetReleaseTrackCallback(void* user_data, const char* track) { | 112 void GetReleaseTrackCallback(AutomationJSONReply* reply, |
| 110 AutomationJSONReply* reply = static_cast<AutomationJSONReply*>(user_data); | 113 const std::string& track) { |
| 111 | 114 if (track.empty()) { |
| 112 if (track == NULL) { | |
| 113 reply->SendError("Unable to get release track."); | 115 reply->SendError("Unable to get release track."); |
| 114 delete reply; | 116 delete reply; |
| 115 return; | 117 return; |
| 116 } | 118 } |
| 117 | 119 |
| 118 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 120 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); |
| 119 return_value->SetString("release_track", track); | 121 return_value->SetString("release_track", track); |
| 120 | 122 |
| 121 UpdateLibrary* update_library = CrosLibrary::Get()->GetUpdateLibrary(); | 123 const UpdateEngineClient::Status& status = |
| 122 const UpdateLibrary::Status& status = update_library->status(); | 124 DBusThreadManager::Get()->GetUpdateEngineClient()->GetLastStatus(); |
| 123 chromeos::UpdateStatusOperation update_status = status.status; | 125 UpdateEngineClient::UpdateStatusOperation update_status = |
| 126 status.status; |
| 124 return_value->SetString("status", UpdateStatusToString(update_status)); | 127 return_value->SetString("status", UpdateStatusToString(update_status)); |
| 125 if (update_status == chromeos::UPDATE_STATUS_DOWNLOADING) | 128 if (update_status == UpdateEngineClient::UPDATE_STATUS_DOWNLOADING) |
| 126 return_value->SetDouble("download_progress", status.download_progress); | 129 return_value->SetDouble("download_progress", status.download_progress); |
| 127 if (status.last_checked_time > 0) | 130 if (status.last_checked_time > 0) |
| 128 return_value->SetInteger("last_checked_time", status.last_checked_time); | 131 return_value->SetInteger("last_checked_time", status.last_checked_time); |
| 129 if (status.new_size > 0) | 132 if (status.new_size > 0) |
| 130 return_value->SetInteger("new_size", status.new_size); | 133 return_value->SetInteger("new_size", status.new_size); |
| 131 | 134 |
| 132 reply->SendSuccess(return_value.get()); | 135 reply->SendSuccess(return_value.get()); |
| 133 delete reply; | 136 delete reply; |
| 134 } | 137 } |
| 135 | 138 |
| 136 void UpdateCheckCallback(void* user_data, chromeos::UpdateResult result, | 139 void UpdateCheckCallback(AutomationJSONReply* reply, |
| 137 const char* error_msg) { | 140 UpdateEngineClient::UpdateCheckResult result) { |
| 138 AutomationJSONReply* reply = static_cast<AutomationJSONReply*>(user_data); | 141 if (result == UpdateEngineClient::UPDATE_RESULT_SUCCESS) |
| 139 if (result == chromeos::UPDATE_RESULT_SUCCESS) | |
| 140 reply->SendSuccess(NULL); | 142 reply->SendSuccess(NULL); |
| 141 else | 143 else |
| 142 reply->SendError(error_msg); | 144 reply->SendError("update check failed"); |
| 143 delete reply; | 145 delete reply; |
| 144 } | 146 } |
| 145 | 147 |
| 146 const std::string VPNProviderTypeToString( | 148 const std::string VPNProviderTypeToString( |
| 147 chromeos::ProviderType provider_type) { | 149 chromeos::ProviderType provider_type) { |
| 148 switch (provider_type) { | 150 switch (provider_type) { |
| 149 case chromeos::PROVIDER_TYPE_L2TP_IPSEC_PSK: | 151 case chromeos::PROVIDER_TYPE_L2TP_IPSEC_PSK: |
| 150 return std::string("L2TP_IPSEC_PSK"); | 152 return std::string("L2TP_IPSEC_PSK"); |
| 151 case chromeos::PROVIDER_TYPE_L2TP_IPSEC_USER_CERT: | 153 case chromeos::PROVIDER_TYPE_L2TP_IPSEC_USER_CERT: |
| 152 return std::string("L2TP_IPSEC_USER_CERT"); | 154 return std::string("L2TP_IPSEC_USER_CERT"); |
| (...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 | 1047 |
| 1046 icu::TimeZone* timezone = | 1048 icu::TimeZone* timezone = |
| 1047 icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(timezone_id)); | 1049 icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(timezone_id)); |
| 1048 chromeos::system::TimezoneSettings::GetInstance()->SetTimezone(*timezone); | 1050 chromeos::system::TimezoneSettings::GetInstance()->SetTimezone(*timezone); |
| 1049 delete timezone; | 1051 delete timezone; |
| 1050 AutomationJSONReply(this, reply_message).SendSuccess(NULL); | 1052 AutomationJSONReply(this, reply_message).SendSuccess(NULL); |
| 1051 } | 1053 } |
| 1052 | 1054 |
| 1053 void TestingAutomationProvider::GetUpdateInfo(DictionaryValue* args, | 1055 void TestingAutomationProvider::GetUpdateInfo(DictionaryValue* args, |
| 1054 IPC::Message* reply_message) { | 1056 IPC::Message* reply_message) { |
| 1055 UpdateLibrary* update_library = CrosLibrary::Get()->GetUpdateLibrary(); | |
| 1056 AutomationJSONReply* reply = new AutomationJSONReply(this, reply_message); | 1057 AutomationJSONReply* reply = new AutomationJSONReply(this, reply_message); |
| 1057 update_library->GetReleaseTrack(GetReleaseTrackCallback, reply); | 1058 DBusThreadManager::Get()->GetUpdateEngineClient() |
| 1059 ->GetReleaseTrack(base::Bind(GetReleaseTrackCallback, reply)); |
| 1058 } | 1060 } |
| 1059 | 1061 |
| 1060 void TestingAutomationProvider::UpdateCheck( | 1062 void TestingAutomationProvider::UpdateCheck( |
| 1061 DictionaryValue* args, | 1063 DictionaryValue* args, |
| 1062 IPC::Message* reply_message) { | 1064 IPC::Message* reply_message) { |
| 1063 UpdateLibrary* update_library = CrosLibrary::Get()->GetUpdateLibrary(); | |
| 1064 AutomationJSONReply* reply = new AutomationJSONReply(this, reply_message); | 1065 AutomationJSONReply* reply = new AutomationJSONReply(this, reply_message); |
| 1065 update_library->RequestUpdateCheck(UpdateCheckCallback, reply); | 1066 DBusThreadManager::Get()->GetUpdateEngineClient() |
| 1067 ->RequestUpdateCheck(base::Bind(UpdateCheckCallback, reply)); |
| 1066 } | 1068 } |
| 1067 | 1069 |
| 1068 void TestingAutomationProvider::SetReleaseTrack(DictionaryValue* args, | 1070 void TestingAutomationProvider::SetReleaseTrack(DictionaryValue* args, |
| 1069 IPC::Message* reply_message) { | 1071 IPC::Message* reply_message) { |
| 1070 AutomationJSONReply reply(this, reply_message); | 1072 AutomationJSONReply reply(this, reply_message); |
| 1071 std::string track; | 1073 std::string track; |
| 1072 if (!args->GetString("track", &track)) { | 1074 if (!args->GetString("track", &track)) { |
| 1073 reply.SendError("Invalid or missing args."); | 1075 reply.SendError("Invalid or missing args."); |
| 1074 return; | 1076 return; |
| 1075 } | 1077 } |
| 1076 | 1078 |
| 1077 UpdateLibrary* update_library = CrosLibrary::Get()->GetUpdateLibrary(); | 1079 DBusThreadManager::Get()->GetUpdateEngineClient()->SetReleaseTrack(track); |
| 1078 update_library->SetReleaseTrack(track); | |
| 1079 reply.SendSuccess(NULL); | 1080 reply.SendSuccess(NULL); |
| 1080 } | 1081 } |
| 1081 | 1082 |
| 1082 void TestingAutomationProvider::GetVolumeInfo(DictionaryValue* args, | 1083 void TestingAutomationProvider::GetVolumeInfo(DictionaryValue* args, |
| 1083 IPC::Message* reply_message) { | 1084 IPC::Message* reply_message) { |
| 1084 AutomationJSONReply reply(this, reply_message); | 1085 AutomationJSONReply reply(this, reply_message); |
| 1085 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 1086 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); |
| 1086 chromeos::AudioHandler* audio_handler = chromeos::AudioHandler::GetInstance(); | 1087 chromeos::AudioHandler* audio_handler = chromeos::AudioHandler::GetInstance(); |
| 1087 if (!audio_handler) { | 1088 if (!audio_handler) { |
| 1088 reply.SendError("AudioHandler not initialized."); | 1089 reply.SendError("AudioHandler not initialized."); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1141 views::Widget* window = browser::CreateViewsWindow( | 1142 views::Widget* window = browser::CreateViewsWindow( |
| 1142 browser->window()->GetNativeHandle(), take_photo_dialog); | 1143 browser->window()->GetNativeHandle(), take_photo_dialog); |
| 1143 window->SetAlwaysOnTop(true); | 1144 window->SetAlwaysOnTop(true); |
| 1144 window->Show(); | 1145 window->Show(); |
| 1145 } | 1146 } |
| 1146 | 1147 |
| 1147 void TestingAutomationProvider::PowerChanged( | 1148 void TestingAutomationProvider::PowerChanged( |
| 1148 const chromeos::PowerSupplyStatus& status) { | 1149 const chromeos::PowerSupplyStatus& status) { |
| 1149 power_status = status; | 1150 power_status = status; |
| 1150 } | 1151 } |
| OLD | NEW |