| 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/chromeos/extensions/file_manager/private_api_misc.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_misc.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 #include "url/gurl.h" | 57 #include "url/gurl.h" |
| 58 | 58 |
| 59 namespace extensions { | 59 namespace extensions { |
| 60 namespace { | 60 namespace { |
| 61 | 61 |
| 62 using api::file_manager_private::ProfileInfo; | 62 using api::file_manager_private::ProfileInfo; |
| 63 | 63 |
| 64 const char kCWSScope[] = "https://www.googleapis.com/auth/chromewebstore"; | 64 const char kCWSScope[] = "https://www.googleapis.com/auth/chromewebstore"; |
| 65 | 65 |
| 66 // Obtains the current app window. | 66 // Obtains the current app window. |
| 67 AppWindow* GetCurrentAppWindow(ChromeSyncExtensionFunction* function) { | 67 AppWindow* GetCurrentAppWindow(UIThreadExtensionFunction* function) { |
| 68 content::WebContents* const contents = function->GetSenderWebContents(); | 68 content::WebContents* const contents = function->GetSenderWebContents(); |
| 69 return contents ? | 69 return contents |
| 70 AppWindowRegistry::Get(function->GetProfile())-> | 70 ? AppWindowRegistry::Get(function->browser_context()) |
| 71 GetAppWindowForWebContents(contents) : nullptr; | 71 ->GetAppWindowForWebContents(contents) |
| 72 : nullptr; |
| 72 } | 73 } |
| 73 | 74 |
| 74 std::vector<ProfileInfo> GetLoggedInProfileInfoList() { | 75 std::vector<ProfileInfo> GetLoggedInProfileInfoList() { |
| 75 DCHECK(user_manager::UserManager::IsInitialized()); | 76 DCHECK(user_manager::UserManager::IsInitialized()); |
| 76 const std::vector<Profile*>& profiles = | 77 const std::vector<Profile*>& profiles = |
| 77 g_browser_process->profile_manager()->GetLoadedProfiles(); | 78 g_browser_process->profile_manager()->GetLoadedProfiles(); |
| 78 std::set<Profile*> original_profiles; | 79 std::set<Profile*> original_profiles; |
| 79 std::vector<ProfileInfo> result_profiles; | 80 std::vector<ProfileInfo> result_profiles; |
| 80 | 81 |
| 81 for (Profile* profile : profiles) { | 82 for (Profile* profile : profiles) { |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 | 146 |
| 146 // Erase duplicates. | 147 // Erase duplicates. |
| 147 std::sort(paths->begin(), paths->end()); | 148 std::sort(paths->begin(), paths->end()); |
| 148 paths->erase(std::unique(paths->begin(), paths->end()), paths->end()); | 149 paths->erase(std::unique(paths->begin(), paths->end()), paths->end()); |
| 149 | 150 |
| 150 return true; | 151 return true; |
| 151 } | 152 } |
| 152 | 153 |
| 153 } // namespace | 154 } // namespace |
| 154 | 155 |
| 155 bool FileManagerPrivateLogoutUserForReauthenticationFunction::RunSync() { | 156 ExtensionFunction::ResponseAction |
| 157 FileManagerPrivateLogoutUserForReauthenticationFunction::Run() { |
| 156 const user_manager::User* user = | 158 const user_manager::User* user = |
| 157 chromeos::ProfileHelper::Get()->GetUserByProfile(GetProfile()); | 159 chromeos::ProfileHelper::Get()->GetUserByProfile( |
| 160 Profile::FromBrowserContext(browser_context())); |
| 158 if (user) { | 161 if (user) { |
| 159 user_manager::UserManager::Get()->SaveUserOAuthStatus( | 162 user_manager::UserManager::Get()->SaveUserOAuthStatus( |
| 160 user->GetAccountId(), user_manager::User::OAUTH2_TOKEN_STATUS_INVALID); | 163 user->GetAccountId(), user_manager::User::OAUTH2_TOKEN_STATUS_INVALID); |
| 161 } | 164 } |
| 162 | 165 |
| 163 chrome::AttemptUserExit(); | 166 chrome::AttemptUserExit(); |
| 164 return true; | 167 return RespondNow(NoArguments()); |
| 165 } | 168 } |
| 166 | 169 |
| 167 bool FileManagerPrivateGetPreferencesFunction::RunSync() { | 170 ExtensionFunction::ResponseAction |
| 171 FileManagerPrivateGetPreferencesFunction::Run() { |
| 168 api::file_manager_private::Preferences result; | 172 api::file_manager_private::Preferences result; |
| 169 const PrefService* const service = GetProfile()->GetPrefs(); | 173 Profile* profile = Profile::FromBrowserContext(browser_context()); |
| 174 const PrefService* const service = profile->GetPrefs(); |
| 170 | 175 |
| 171 result.drive_enabled = drive::util::IsDriveEnabledForProfile(GetProfile()); | 176 result.drive_enabled = drive::util::IsDriveEnabledForProfile(profile); |
| 172 result.cellular_disabled = | 177 result.cellular_disabled = |
| 173 service->GetBoolean(drive::prefs::kDisableDriveOverCellular); | 178 service->GetBoolean(drive::prefs::kDisableDriveOverCellular); |
| 174 result.hosted_files_disabled = | 179 result.hosted_files_disabled = |
| 175 service->GetBoolean(drive::prefs::kDisableDriveHostedFiles); | 180 service->GetBoolean(drive::prefs::kDisableDriveHostedFiles); |
| 176 result.search_suggest_enabled = | 181 result.search_suggest_enabled = |
| 177 service->GetBoolean(prefs::kSearchSuggestEnabled); | 182 service->GetBoolean(prefs::kSearchSuggestEnabled); |
| 178 result.use24hour_clock = service->GetBoolean(prefs::kUse24HourClock); | 183 result.use24hour_clock = service->GetBoolean(prefs::kUse24HourClock); |
| 179 result.allow_redeem_offers = true; | 184 result.allow_redeem_offers = true; |
| 180 if (!chromeos::CrosSettings::Get()->GetBoolean( | 185 if (!chromeos::CrosSettings::Get()->GetBoolean( |
| 181 chromeos::kAllowRedeemChromeOsRegistrationOffers, | 186 chromeos::kAllowRedeemChromeOsRegistrationOffers, |
| 182 &result.allow_redeem_offers)) { | 187 &result.allow_redeem_offers)) { |
| 183 result.allow_redeem_offers = true; | 188 result.allow_redeem_offers = true; |
| 184 } | 189 } |
| 185 result.timezone = | 190 result.timezone = |
| 186 UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() | 191 UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() |
| 187 ->GetCurrentTimezoneID()); | 192 ->GetCurrentTimezoneID()); |
| 188 | 193 |
| 189 SetResult(result.ToValue()); | 194 drive::EventLogger* logger = file_manager::util::GetLogger(profile); |
| 190 | |
| 191 drive::EventLogger* logger = file_manager::util::GetLogger(GetProfile()); | |
| 192 if (logger) | 195 if (logger) |
| 193 logger->Log(logging::LOG_INFO, "%s succeeded.", name()); | 196 logger->Log(logging::LOG_INFO, "%s succeeded.", name()); |
| 194 return true; | 197 |
| 198 return RespondNow(OneArgument(result.ToValue())); |
| 195 } | 199 } |
| 196 | 200 |
| 197 bool FileManagerPrivateSetPreferencesFunction::RunSync() { | 201 ExtensionFunction::ResponseAction |
| 202 FileManagerPrivateSetPreferencesFunction::Run() { |
| 198 using extensions::api::file_manager_private::SetPreferences::Params; | 203 using extensions::api::file_manager_private::SetPreferences::Params; |
| 199 const std::unique_ptr<Params> params(Params::Create(*args_)); | 204 const std::unique_ptr<Params> params(Params::Create(*args_)); |
| 200 EXTENSION_FUNCTION_VALIDATE(params); | 205 EXTENSION_FUNCTION_VALIDATE(params); |
| 201 | 206 |
| 202 PrefService* const service = GetProfile()->GetPrefs(); | 207 Profile* profile = Profile::FromBrowserContext(browser_context()); |
| 208 PrefService* const service = profile->GetPrefs(); |
| 203 | 209 |
| 204 if (params->change_info.cellular_disabled) | 210 if (params->change_info.cellular_disabled) |
| 205 service->SetBoolean(drive::prefs::kDisableDriveOverCellular, | 211 service->SetBoolean(drive::prefs::kDisableDriveOverCellular, |
| 206 *params->change_info.cellular_disabled); | 212 *params->change_info.cellular_disabled); |
| 207 | 213 |
| 208 if (params->change_info.hosted_files_disabled) | 214 if (params->change_info.hosted_files_disabled) |
| 209 service->SetBoolean(drive::prefs::kDisableDriveHostedFiles, | 215 service->SetBoolean(drive::prefs::kDisableDriveHostedFiles, |
| 210 *params->change_info.hosted_files_disabled); | 216 *params->change_info.hosted_files_disabled); |
| 211 | 217 |
| 212 drive::EventLogger* logger = file_manager::util::GetLogger(GetProfile()); | 218 drive::EventLogger* logger = file_manager::util::GetLogger(profile); |
| 213 if (logger) | 219 if (logger) |
| 214 logger->Log(logging::LOG_INFO, "%s succeeded.", name()); | 220 logger->Log(logging::LOG_INFO, "%s succeeded.", name()); |
| 215 return true; | 221 return RespondNow(NoArguments()); |
| 216 } | 222 } |
| 217 | 223 |
| 218 FileManagerPrivateInternalZipSelectionFunction:: | 224 FileManagerPrivateInternalZipSelectionFunction:: |
| 219 FileManagerPrivateInternalZipSelectionFunction() {} | 225 FileManagerPrivateInternalZipSelectionFunction() {} |
| 220 | 226 |
| 221 FileManagerPrivateInternalZipSelectionFunction:: | 227 FileManagerPrivateInternalZipSelectionFunction:: |
| 222 ~FileManagerPrivateInternalZipSelectionFunction() {} | 228 ~FileManagerPrivateInternalZipSelectionFunction() {} |
| 223 | 229 |
| 224 bool FileManagerPrivateInternalZipSelectionFunction::RunAsync() { | 230 bool FileManagerPrivateInternalZipSelectionFunction::RunAsync() { |
| 225 using extensions::api::file_manager_private_internal::ZipSelection::Params; | 231 using extensions::api::file_manager_private_internal::ZipSelection::Params; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 src_dir, src_relative_paths, dest_file)) | 281 src_dir, src_relative_paths, dest_file)) |
| 276 ->Start(); | 282 ->Start(); |
| 277 return true; | 283 return true; |
| 278 } | 284 } |
| 279 | 285 |
| 280 void FileManagerPrivateInternalZipSelectionFunction::OnZipDone(bool success) { | 286 void FileManagerPrivateInternalZipSelectionFunction::OnZipDone(bool success) { |
| 281 SetResult(base::MakeUnique<base::FundamentalValue>(success)); | 287 SetResult(base::MakeUnique<base::FundamentalValue>(success)); |
| 282 SendResponse(true); | 288 SendResponse(true); |
| 283 } | 289 } |
| 284 | 290 |
| 285 bool FileManagerPrivateZoomFunction::RunSync() { | 291 ExtensionFunction::ResponseAction FileManagerPrivateZoomFunction::Run() { |
| 286 using extensions::api::file_manager_private::Zoom::Params; | 292 using extensions::api::file_manager_private::Zoom::Params; |
| 287 const std::unique_ptr<Params> params(Params::Create(*args_)); | 293 const std::unique_ptr<Params> params(Params::Create(*args_)); |
| 288 EXTENSION_FUNCTION_VALIDATE(params); | 294 EXTENSION_FUNCTION_VALIDATE(params); |
| 289 | 295 |
| 290 content::PageZoom zoom_type; | 296 content::PageZoom zoom_type; |
| 291 switch (params->operation) { | 297 switch (params->operation) { |
| 292 case api::file_manager_private::ZOOM_OPERATION_TYPE_IN: | 298 case api::file_manager_private::ZOOM_OPERATION_TYPE_IN: |
| 293 zoom_type = content::PAGE_ZOOM_IN; | 299 zoom_type = content::PAGE_ZOOM_IN; |
| 294 break; | 300 break; |
| 295 case api::file_manager_private::ZOOM_OPERATION_TYPE_OUT: | 301 case api::file_manager_private::ZOOM_OPERATION_TYPE_OUT: |
| 296 zoom_type = content::PAGE_ZOOM_OUT; | 302 zoom_type = content::PAGE_ZOOM_OUT; |
| 297 break; | 303 break; |
| 298 case api::file_manager_private::ZOOM_OPERATION_TYPE_RESET: | 304 case api::file_manager_private::ZOOM_OPERATION_TYPE_RESET: |
| 299 zoom_type = content::PAGE_ZOOM_RESET; | 305 zoom_type = content::PAGE_ZOOM_RESET; |
| 300 break; | 306 break; |
| 301 default: | 307 default: |
| 302 NOTREACHED(); | 308 NOTREACHED(); |
| 303 return false; | 309 return RespondNow(Error(kUnknownErrorDoNotUse)); |
| 304 } | 310 } |
| 305 zoom::PageZoom::Zoom(GetSenderWebContents(), zoom_type); | 311 zoom::PageZoom::Zoom(GetSenderWebContents(), zoom_type); |
| 306 return true; | 312 return RespondNow(NoArguments()); |
| 307 } | 313 } |
| 308 | 314 |
| 309 FileManagerPrivateRequestWebStoreAccessTokenFunction:: | 315 FileManagerPrivateRequestWebStoreAccessTokenFunction:: |
| 310 FileManagerPrivateRequestWebStoreAccessTokenFunction() { | 316 FileManagerPrivateRequestWebStoreAccessTokenFunction() { |
| 311 } | 317 } |
| 312 | 318 |
| 313 FileManagerPrivateRequestWebStoreAccessTokenFunction:: | 319 FileManagerPrivateRequestWebStoreAccessTokenFunction:: |
| 314 ~FileManagerPrivateRequestWebStoreAccessTokenFunction() { | 320 ~FileManagerPrivateRequestWebStoreAccessTokenFunction() { |
| 315 } | 321 } |
| 316 | 322 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 if (logger) { | 371 if (logger) { |
| 366 logger->Log(logging::LOG_ERROR, | 372 logger->Log(logging::LOG_ERROR, |
| 367 "CWS OAuth token fetch failed. (DriveApiErrorCode: %s)", | 373 "CWS OAuth token fetch failed. (DriveApiErrorCode: %s)", |
| 368 google_apis::DriveApiErrorCodeToString(code).c_str()); | 374 google_apis::DriveApiErrorCodeToString(code).c_str()); |
| 369 } | 375 } |
| 370 SetResult(base::Value::CreateNullValue()); | 376 SetResult(base::Value::CreateNullValue()); |
| 371 SendResponse(false); | 377 SendResponse(false); |
| 372 } | 378 } |
| 373 } | 379 } |
| 374 | 380 |
| 375 bool FileManagerPrivateGetProfilesFunction::RunSync() { | 381 ExtensionFunction::ResponseAction FileManagerPrivateGetProfilesFunction::Run() { |
| 376 const std::vector<ProfileInfo>& profiles = GetLoggedInProfileInfoList(); | 382 const std::vector<ProfileInfo>& profiles = GetLoggedInProfileInfoList(); |
| 377 | 383 |
| 378 // Obtains the display profile ID. | 384 // Obtains the display profile ID. |
| 379 AppWindow* const app_window = GetCurrentAppWindow(this); | 385 AppWindow* const app_window = GetCurrentAppWindow(this); |
| 380 chrome::MultiUserWindowManager* const window_manager = | 386 chrome::MultiUserWindowManager* const window_manager = |
| 381 chrome::MultiUserWindowManager::GetInstance(); | 387 chrome::MultiUserWindowManager::GetInstance(); |
| 382 const AccountId current_profile_id = | 388 const AccountId current_profile_id = multi_user_util::GetAccountIdFromProfile( |
| 383 multi_user_util::GetAccountIdFromProfile(GetProfile()); | 389 Profile::FromBrowserContext(browser_context())); |
| 384 const AccountId display_profile_id = | 390 const AccountId display_profile_id = |
| 385 window_manager && app_window | 391 window_manager && app_window |
| 386 ? window_manager->GetUserPresentingWindow( | 392 ? window_manager->GetUserPresentingWindow( |
| 387 app_window->GetNativeWindow()) | 393 app_window->GetNativeWindow()) |
| 388 : EmptyAccountId(); | 394 : EmptyAccountId(); |
| 389 | 395 |
| 390 results_ = api::file_manager_private::GetProfiles::Results::Create( | 396 return RespondNow( |
| 391 profiles, current_profile_id.GetUserEmail(), | 397 ArgumentList(api::file_manager_private::GetProfiles::Results::Create( |
| 392 display_profile_id.is_valid() ? display_profile_id.GetUserEmail() | 398 profiles, current_profile_id.GetUserEmail(), |
| 393 : current_profile_id.GetUserEmail()); | 399 display_profile_id.is_valid() ? display_profile_id.GetUserEmail() |
| 394 return true; | 400 : current_profile_id.GetUserEmail()))); |
| 395 } | 401 } |
| 396 | 402 |
| 397 bool FileManagerPrivateOpenInspectorFunction::RunSync() { | 403 ExtensionFunction::ResponseAction |
| 404 FileManagerPrivateOpenInspectorFunction::Run() { |
| 398 using extensions::api::file_manager_private::OpenInspector::Params; | 405 using extensions::api::file_manager_private::OpenInspector::Params; |
| 399 const std::unique_ptr<Params> params(Params::Create(*args_)); | 406 const std::unique_ptr<Params> params(Params::Create(*args_)); |
| 400 EXTENSION_FUNCTION_VALIDATE(params); | 407 EXTENSION_FUNCTION_VALIDATE(params); |
| 401 | 408 |
| 402 switch (params->type) { | 409 switch (params->type) { |
| 403 case extensions::api::file_manager_private::INSPECTION_TYPE_NORMAL: | 410 case extensions::api::file_manager_private::INSPECTION_TYPE_NORMAL: |
| 404 // Open inspector for foreground page. | 411 // Open inspector for foreground page. |
| 405 DevToolsWindow::OpenDevToolsWindow(GetSenderWebContents()); | 412 DevToolsWindow::OpenDevToolsWindow(GetSenderWebContents()); |
| 406 break; | 413 break; |
| 407 case extensions::api::file_manager_private::INSPECTION_TYPE_CONSOLE: | 414 case extensions::api::file_manager_private::INSPECTION_TYPE_CONSOLE: |
| 408 // Open inspector for foreground page and bring focus to the console. | 415 // Open inspector for foreground page and bring focus to the console. |
| 409 DevToolsWindow::OpenDevToolsWindow(GetSenderWebContents(), | 416 DevToolsWindow::OpenDevToolsWindow(GetSenderWebContents(), |
| 410 DevToolsToggleAction::ShowConsole()); | 417 DevToolsToggleAction::ShowConsole()); |
| 411 break; | 418 break; |
| 412 case extensions::api::file_manager_private::INSPECTION_TYPE_ELEMENT: | 419 case extensions::api::file_manager_private::INSPECTION_TYPE_ELEMENT: |
| 413 // Open inspector for foreground page in inspect element mode. | 420 // Open inspector for foreground page in inspect element mode. |
| 414 DevToolsWindow::OpenDevToolsWindow(GetSenderWebContents(), | 421 DevToolsWindow::OpenDevToolsWindow(GetSenderWebContents(), |
| 415 DevToolsToggleAction::Inspect()); | 422 DevToolsToggleAction::Inspect()); |
| 416 break; | 423 break; |
| 417 case extensions::api::file_manager_private::INSPECTION_TYPE_BACKGROUND: | 424 case extensions::api::file_manager_private::INSPECTION_TYPE_BACKGROUND: |
| 418 // Open inspector for background page. | 425 // Open inspector for background page. |
| 419 extensions::devtools_util::InspectBackgroundPage(extension(), | 426 extensions::devtools_util::InspectBackgroundPage( |
| 420 GetProfile()); | 427 extension(), Profile::FromBrowserContext(browser_context())); |
| 421 break; | 428 break; |
| 422 default: | 429 default: |
| 423 NOTREACHED(); | 430 NOTREACHED(); |
| 424 SetError( | 431 return RespondNow(Error( |
| 425 base::StringPrintf("Unexpected inspection type(%d) is specified.", | 432 base::StringPrintf("Unexpected inspection type(%d) is specified.", |
| 426 static_cast<int>(params->type))); | 433 static_cast<int>(params->type)))); |
| 427 return false; | |
| 428 } | 434 } |
| 429 return true; | 435 return RespondNow(NoArguments()); |
| 430 } | 436 } |
| 431 | 437 |
| 432 FileManagerPrivateInternalGetMimeTypeFunction:: | 438 FileManagerPrivateInternalGetMimeTypeFunction:: |
| 433 FileManagerPrivateInternalGetMimeTypeFunction() { | 439 FileManagerPrivateInternalGetMimeTypeFunction() { |
| 434 } | 440 } |
| 435 | 441 |
| 436 FileManagerPrivateInternalGetMimeTypeFunction:: | 442 FileManagerPrivateInternalGetMimeTypeFunction:: |
| 437 ~FileManagerPrivateInternalGetMimeTypeFunction() { | 443 ~FileManagerPrivateInternalGetMimeTypeFunction() { |
| 438 } | 444 } |
| 439 | 445 |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 base::File::Error result) { | 694 base::File::Error result) { |
| 689 if (result != base::File::FILE_OK) { | 695 if (result != base::File::FILE_OK) { |
| 690 Respond(Error("Failed to execute the action.")); | 696 Respond(Error("Failed to execute the action.")); |
| 691 return; | 697 return; |
| 692 } | 698 } |
| 693 | 699 |
| 694 Respond(NoArguments()); | 700 Respond(NoArguments()); |
| 695 } | 701 } |
| 696 | 702 |
| 697 } // namespace extensions | 703 } // namespace extensions |
| OLD | NEW |