Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: chrome/browser/chromeos/extensions/wallpaper_private_api.cc

Issue 12089062: Move API functions registrations out of ExtensionFunctionRegistry. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/wallpaper_private_api.h" 5 #include "chrome/browser/chromeos/extensions/wallpaper_private_api.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/wm/window_cycle_controller.h" 10 #include "ash/wm/window_cycle_controller.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 DCHECK(i != windows_.end()); 167 DCHECK(i != windows_.end());
168 windows_.erase(i); 168 windows_.erase(i);
169 } 169 }
170 170
171 // List of minimized windows. 171 // List of minimized windows.
172 std::vector<aura::Window*> windows_; 172 std::vector<aura::Window*> windows_;
173 }; 173 };
174 174
175 } // namespace 175 } // namespace
176 176
177 bool WallpaperStringsFunction::RunImpl() { 177 bool WallpaperPrivateGetStringsFunction::RunImpl() {
178 DictionaryValue* dict = new DictionaryValue(); 178 DictionaryValue* dict = new DictionaryValue();
179 SetResult(dict); 179 SetResult(dict);
180 180
181 #define SET_STRING(id, idr) \ 181 #define SET_STRING(id, idr) \
182 dict->SetString(id, l10n_util::GetStringUTF16(idr)) 182 dict->SetString(id, l10n_util::GetStringUTF16(idr))
183 SET_STRING("webFontFamily", IDS_WEB_FONT_FAMILY); 183 SET_STRING("webFontFamily", IDS_WEB_FONT_FAMILY);
184 SET_STRING("webFontSize", IDS_WEB_FONT_SIZE); 184 SET_STRING("webFontSize", IDS_WEB_FONT_SIZE);
185 SET_STRING("searchTextLabel", IDS_WALLPAPER_MANAGER_SEARCH_TEXT_LABEL); 185 SET_STRING("searchTextLabel", IDS_WALLPAPER_MANAGER_SEARCH_TEXT_LABEL);
186 SET_STRING("authorLabel", IDS_WALLPAPER_MANAGER_AUTHOR_LABEL); 186 SET_STRING("authorLabel", IDS_WALLPAPER_MANAGER_AUTHOR_LABEL);
187 SET_STRING("customCategoryLabel", 187 SET_STRING("customCategoryLabel",
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 wallpaper_decoder_->Start(data); 288 wallpaper_decoder_->Start(data);
289 } 289 }
290 290
291 void WallpaperFunctionBase::OnFailureOrCancel(const std::string& error) { 291 void WallpaperFunctionBase::OnFailureOrCancel(const std::string& error) {
292 wallpaper_decoder_ = NULL; 292 wallpaper_decoder_ = NULL;
293 if (!error.empty()) 293 if (!error.empty())
294 SetError(error); 294 SetError(error);
295 SendResponse(false); 295 SendResponse(false);
296 } 296 }
297 297
298 WallpaperSetWallpaperIfExistFunction::WallpaperSetWallpaperIfExistFunction() { 298 WallpaperPrivateSetWallpaperIfExistFunction::
299 } 299 WallpaperPrivateSetWallpaperIfExistFunction() {}
300 300
301 WallpaperSetWallpaperIfExistFunction::~WallpaperSetWallpaperIfExistFunction() { 301 WallpaperPrivateSetWallpaperIfExistFunction::
302 } 302 ~WallpaperPrivateSetWallpaperIfExistFunction() {}
303 303
304 bool WallpaperSetWallpaperIfExistFunction::RunImpl() { 304 bool WallpaperPrivateSetWallpaperIfExistFunction::RunImpl() {
305 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url_)); 305 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url_));
306 EXTENSION_FUNCTION_VALIDATE(!url_.empty()); 306 EXTENSION_FUNCTION_VALIDATE(!url_.empty());
307 std::string file_name = GURL(url_).ExtractFileName(); 307 std::string file_name = GURL(url_).ExtractFileName();
308 308
309 std::string layout_string; 309 std::string layout_string;
310 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &layout_string)); 310 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &layout_string));
311 EXTENSION_FUNCTION_VALIDATE(!layout_string.empty()); 311 EXTENSION_FUNCTION_VALIDATE(!layout_string.empty());
312 layout_ = GetLayoutEnum(layout_string); 312 layout_ = GetLayoutEnum(layout_string);
313 313
314 sequence_token_ = BrowserThread::GetBlockingPool()-> 314 sequence_token_ = BrowserThread::GetBlockingPool()->
315 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName); 315 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName);
316 scoped_refptr<base::SequencedTaskRunner> task_runner = 316 scoped_refptr<base::SequencedTaskRunner> task_runner =
317 BrowserThread::GetBlockingPool()-> 317 BrowserThread::GetBlockingPool()->
318 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, 318 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_,
319 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); 319 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
320 320
321 task_runner->PostTask(FROM_HERE, 321 task_runner->PostTask(FROM_HERE,
322 base::Bind( 322 base::Bind(
323 &WallpaperSetWallpaperIfExistFunction::ReadFileAndInitiateStartDecode, 323 &WallpaperPrivateSetWallpaperIfExistFunction::
324 ReadFileAndInitiateStartDecode,
324 this, 325 this,
325 file_name)); 326 file_name));
326 return true; 327 return true;
327 } 328 }
328 329
329 void WallpaperSetWallpaperIfExistFunction::ReadFileAndInitiateStartDecode( 330 void WallpaperPrivateSetWallpaperIfExistFunction::
330 const std::string& file_name) { 331 ReadFileAndInitiateStartDecode(const std::string& file_name) {
331 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( 332 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread(
332 sequence_token_)); 333 sequence_token_));
333 std::string data; 334 std::string data;
334 FilePath data_dir; 335 FilePath data_dir;
335 336
336 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &data_dir)); 337 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &data_dir));
337 FilePath file_path = data_dir.Append(file_name); 338 FilePath file_path = data_dir.Append(file_name);
338 339
339 if (file_util::PathExists(file_path) && 340 if (file_util::PathExists(file_path) &&
340 file_util::ReadFileToString(file_path, &data)) { 341 file_util::ReadFileToString(file_path, &data)) {
341 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 342 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
342 base::Bind(&WallpaperSetWallpaperIfExistFunction::StartDecode, this, 343 base::Bind(&WallpaperPrivateSetWallpaperIfExistFunction::StartDecode,
343 data)); 344 this, data));
344 return; 345 return;
345 } 346 }
346 std::string error = base::StringPrintf( 347 std::string error = base::StringPrintf(
347 "Failed to set wallpaper %s from file system.", file_name.c_str()); 348 "Failed to set wallpaper %s from file system.", file_name.c_str());
348 BrowserThread::PostTask( 349 BrowserThread::PostTask(
349 BrowserThread::UI, FROM_HERE, 350 BrowserThread::UI, FROM_HERE,
350 base::Bind(&WallpaperSetWallpaperIfExistFunction::OnFailureOrCancel, 351 base::Bind(&WallpaperPrivateSetWallpaperIfExistFunction::
352 OnFailureOrCancel,
351 this, error)); 353 this, error));
352 } 354 }
353 355
354 void WallpaperSetWallpaperIfExistFunction::OnWallpaperDecoded( 356 void WallpaperPrivateSetWallpaperIfExistFunction::OnWallpaperDecoded(
355 const gfx::ImageSkia& wallpaper) { 357 const gfx::ImageSkia& wallpaper) {
356 // Set wallpaper_decoder_ to null since the decoding already finished. 358 // Set wallpaper_decoder_ to null since the decoding already finished.
357 wallpaper_decoder_ = NULL; 359 wallpaper_decoder_ = NULL;
358 360
359 chromeos::WallpaperManager* wallpaper_manager = 361 chromeos::WallpaperManager* wallpaper_manager =
360 chromeos::WallpaperManager::Get(); 362 chromeos::WallpaperManager::Get();
361 wallpaper_manager->SetWallpaperFromImageSkia(wallpaper, layout_); 363 wallpaper_manager->SetWallpaperFromImageSkia(wallpaper, layout_);
362 bool is_persistent = 364 bool is_persistent =
363 !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral(); 365 !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral();
364 chromeos::WallpaperInfo info = { 366 chromeos::WallpaperInfo info = {
365 url_, 367 url_,
366 layout_, 368 layout_,
367 chromeos::User::ONLINE, 369 chromeos::User::ONLINE,
368 base::Time::Now().LocalMidnight() 370 base::Time::Now().LocalMidnight()
369 }; 371 };
370 std::string email = chromeos::UserManager::Get()->GetLoggedInUser()->email(); 372 std::string email = chromeos::UserManager::Get()->GetLoggedInUser()->email();
371 wallpaper_manager->SetUserWallpaperInfo(email, info, is_persistent); 373 wallpaper_manager->SetUserWallpaperInfo(email, info, is_persistent);
372 SendResponse(true); 374 SendResponse(true);
373 } 375 }
374 376
375 WallpaperSetWallpaperFunction::WallpaperSetWallpaperFunction() { 377 WallpaperPrivateSetWallpaperFunction::WallpaperPrivateSetWallpaperFunction() {
376 } 378 }
377 379
378 WallpaperSetWallpaperFunction::~WallpaperSetWallpaperFunction() { 380 WallpaperPrivateSetWallpaperFunction::~WallpaperPrivateSetWallpaperFunction() {
379 } 381 }
380 382
381 bool WallpaperSetWallpaperFunction::RunImpl() { 383 bool WallpaperPrivateSetWallpaperFunction::RunImpl() {
382 BinaryValue* input = NULL; 384 BinaryValue* input = NULL;
383 EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(0, &input)); 385 EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(0, &input));
384 386
385 std::string layout_string; 387 std::string layout_string;
386 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &layout_string)); 388 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &layout_string));
387 EXTENSION_FUNCTION_VALIDATE(!layout_string.empty()); 389 EXTENSION_FUNCTION_VALIDATE(!layout_string.empty());
388 layout_ = GetLayoutEnum(layout_string); 390 layout_ = GetLayoutEnum(layout_string);
389 391
390 EXTENSION_FUNCTION_VALIDATE(args_->GetString(2, &url_)); 392 EXTENSION_FUNCTION_VALIDATE(args_->GetString(2, &url_));
391 EXTENSION_FUNCTION_VALIDATE(!url_.empty()); 393 EXTENSION_FUNCTION_VALIDATE(!url_.empty());
392 394
393 // Gets email address while at UI thread. 395 // Gets email address while at UI thread.
394 email_ = chromeos::UserManager::Get()->GetLoggedInUser()->email(); 396 email_ = chromeos::UserManager::Get()->GetLoggedInUser()->email();
395 397
396 image_data_.assign(input->GetBuffer(), input->GetSize()); 398 image_data_.assign(input->GetBuffer(), input->GetSize());
397 StartDecode(image_data_); 399 StartDecode(image_data_);
398 400
399 return true; 401 return true;
400 } 402 }
401 403
402 void WallpaperSetWallpaperFunction::OnWallpaperDecoded( 404 void WallpaperPrivateSetWallpaperFunction::OnWallpaperDecoded(
403 const gfx::ImageSkia& wallpaper) { 405 const gfx::ImageSkia& wallpaper) {
404 wallpaper_ = wallpaper; 406 wallpaper_ = wallpaper;
405 // Set wallpaper_decoder_ to null since the decoding already finished. 407 // Set wallpaper_decoder_ to null since the decoding already finished.
406 wallpaper_decoder_ = NULL; 408 wallpaper_decoder_ = NULL;
407 409
408 sequence_token_ = BrowserThread::GetBlockingPool()-> 410 sequence_token_ = BrowserThread::GetBlockingPool()->
409 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName); 411 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName);
410 scoped_refptr<base::SequencedTaskRunner> task_runner = 412 scoped_refptr<base::SequencedTaskRunner> task_runner =
411 BrowserThread::GetBlockingPool()-> 413 BrowserThread::GetBlockingPool()->
412 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, 414 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_,
413 base::SequencedWorkerPool::BLOCK_SHUTDOWN); 415 base::SequencedWorkerPool::BLOCK_SHUTDOWN);
414 416
415 task_runner->PostTask(FROM_HERE, 417 task_runner->PostTask(FROM_HERE,
416 base::Bind(&WallpaperSetWallpaperFunction::SaveToFile, this)); 418 base::Bind(&WallpaperPrivateSetWallpaperFunction::SaveToFile, this));
417 } 419 }
418 420
419 void WallpaperSetWallpaperFunction::SaveToFile() { 421 void WallpaperPrivateSetWallpaperFunction::SaveToFile() {
420 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( 422 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread(
421 sequence_token_)); 423 sequence_token_));
422 std::string file_name = GURL(url_).ExtractFileName(); 424 std::string file_name = GURL(url_).ExtractFileName();
423 if (SaveData(chrome::DIR_CHROMEOS_WALLPAPERS, file_name, image_data_)) { 425 if (SaveData(chrome::DIR_CHROMEOS_WALLPAPERS, file_name, image_data_)) {
424 wallpaper_.EnsureRepsForSupportedScaleFactors(); 426 wallpaper_.EnsureRepsForSupportedScaleFactors();
425 scoped_ptr<gfx::ImageSkia> deep_copy(wallpaper_.DeepCopy()); 427 scoped_ptr<gfx::ImageSkia> deep_copy(wallpaper_.DeepCopy());
426 // ImageSkia is not RefCountedThreadSafe. Use a deep copied ImageSkia if 428 // ImageSkia is not RefCountedThreadSafe. Use a deep copied ImageSkia if
427 // post to another thread. 429 // post to another thread.
428 BrowserThread::PostTask( 430 BrowserThread::PostTask(
429 BrowserThread::UI, FROM_HERE, 431 BrowserThread::UI, FROM_HERE,
430 base::Bind(&WallpaperSetWallpaperFunction::SetDecodedWallpaper, 432 base::Bind(&WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper,
431 this, base::Passed(&deep_copy))); 433 this, base::Passed(&deep_copy)));
432 chromeos::UserImage wallpaper(wallpaper_); 434 chromeos::UserImage wallpaper(wallpaper_);
433 435
434 FilePath wallpaper_dir; 436 FilePath wallpaper_dir;
435 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &wallpaper_dir)); 437 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &wallpaper_dir));
436 FilePath file_path = wallpaper_dir.Append(file_name).InsertBeforeExtension( 438 FilePath file_path = wallpaper_dir.Append(file_name).InsertBeforeExtension(
437 chromeos::kSmallWallpaperSuffix); 439 chromeos::kSmallWallpaperSuffix);
438 if (file_util::PathExists(file_path)) 440 if (file_util::PathExists(file_path))
439 return; 441 return;
440 // Generates and saves small resolution wallpaper. Uses CENTER_CROPPED to 442 // Generates and saves small resolution wallpaper. Uses CENTER_CROPPED to
441 // maintain the aspect ratio after resize. 443 // maintain the aspect ratio after resize.
442 chromeos::WallpaperManager::Get()->ResizeAndSaveWallpaper( 444 chromeos::WallpaperManager::Get()->ResizeAndSaveWallpaper(
443 wallpaper, 445 wallpaper,
444 file_path, 446 file_path,
445 ash::WALLPAPER_LAYOUT_CENTER_CROPPED, 447 ash::WALLPAPER_LAYOUT_CENTER_CROPPED,
446 ash::kSmallWallpaperMaxWidth, 448 ash::kSmallWallpaperMaxWidth,
447 ash::kSmallWallpaperMaxHeight); 449 ash::kSmallWallpaperMaxHeight);
448 } else { 450 } else {
449 std::string error = base::StringPrintf( 451 std::string error = base::StringPrintf(
450 "Failed to create/write wallpaper to %s.", file_name.c_str()); 452 "Failed to create/write wallpaper to %s.", file_name.c_str());
451 BrowserThread::PostTask( 453 BrowserThread::PostTask(
452 BrowserThread::UI, FROM_HERE, 454 BrowserThread::UI, FROM_HERE,
453 base::Bind(&WallpaperSetWallpaperFunction::OnFailureOrCancel, 455 base::Bind(&WallpaperPrivateSetWallpaperFunction::OnFailureOrCancel,
454 this, error)); 456 this, error));
455 } 457 }
456 } 458 }
457 459
458 void WallpaperSetWallpaperFunction::SetDecodedWallpaper( 460 void WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper(
459 scoped_ptr<gfx::ImageSkia> wallpaper) { 461 scoped_ptr<gfx::ImageSkia> wallpaper) {
460 chromeos::WallpaperManager* wallpaper_manager = 462 chromeos::WallpaperManager* wallpaper_manager =
461 chromeos::WallpaperManager::Get(); 463 chromeos::WallpaperManager::Get();
462 wallpaper_manager->SetWallpaperFromImageSkia(*wallpaper.get(), layout_); 464 wallpaper_manager->SetWallpaperFromImageSkia(*wallpaper.get(), layout_);
463 bool is_persistent = 465 bool is_persistent =
464 !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral(); 466 !chromeos::UserManager::Get()->IsCurrentUserNonCryptohomeDataEphemeral();
465 chromeos::WallpaperInfo info = { 467 chromeos::WallpaperInfo info = {
466 url_, 468 url_,
467 layout_, 469 layout_,
468 chromeos::User::ONLINE, 470 chromeos::User::ONLINE,
469 base::Time::Now().LocalMidnight() 471 base::Time::Now().LocalMidnight()
470 }; 472 };
471 wallpaper_manager->SetUserWallpaperInfo(email_, info, is_persistent); 473 wallpaper_manager->SetUserWallpaperInfo(email_, info, is_persistent);
472 SendResponse(true); 474 SendResponse(true);
473 } 475 }
474 476
475 WallpaperSetCustomWallpaperFunction::WallpaperSetCustomWallpaperFunction() { 477 WallpaperPrivateSetCustomWallpaperFunction::
476 } 478 WallpaperPrivateSetCustomWallpaperFunction() {}
477 479
478 WallpaperSetCustomWallpaperFunction::~WallpaperSetCustomWallpaperFunction() { 480 WallpaperPrivateSetCustomWallpaperFunction::
479 } 481 ~WallpaperPrivateSetCustomWallpaperFunction() {}
480 482
481 bool WallpaperSetCustomWallpaperFunction::RunImpl() { 483 bool WallpaperPrivateSetCustomWallpaperFunction::RunImpl() {
482 BinaryValue* input = NULL; 484 BinaryValue* input = NULL;
483 EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(0, &input)); 485 EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(0, &input));
484 486
485 std::string layout_string; 487 std::string layout_string;
486 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &layout_string)); 488 EXTENSION_FUNCTION_VALIDATE(args_->GetString(1, &layout_string));
487 EXTENSION_FUNCTION_VALIDATE(!layout_string.empty()); 489 EXTENSION_FUNCTION_VALIDATE(!layout_string.empty());
488 layout_ = GetLayoutEnum(layout_string); 490 layout_ = GetLayoutEnum(layout_string);
489 491
490 // Gets email address while at UI thread. 492 // Gets email address while at UI thread.
491 email_ = chromeos::UserManager::Get()->GetLoggedInUser()->email(); 493 email_ = chromeos::UserManager::Get()->GetLoggedInUser()->email();
492 494
493 image_data_.assign(input->GetBuffer(), input->GetSize()); 495 image_data_.assign(input->GetBuffer(), input->GetSize());
494 StartDecode(image_data_); 496 StartDecode(image_data_);
495 497
496 return true; 498 return true;
497 } 499 }
498 500
499 void WallpaperSetCustomWallpaperFunction::OnWallpaperDecoded( 501 void WallpaperPrivateSetCustomWallpaperFunction::OnWallpaperDecoded(
500 const gfx::ImageSkia& wallpaper) { 502 const gfx::ImageSkia& wallpaper) {
501 chromeos::UserImage::RawImage raw_image(image_data_.begin(), 503 chromeos::UserImage::RawImage raw_image(image_data_.begin(),
502 image_data_.end()); 504 image_data_.end());
503 chromeos::UserImage image(wallpaper, raw_image); 505 chromeos::UserImage image(wallpaper, raw_image);
504 // In the new wallpaper picker UI, we do not depend on WallpaperDelegate 506 // In the new wallpaper picker UI, we do not depend on WallpaperDelegate
505 // to refresh thumbnail. Uses a null delegate here. 507 // to refresh thumbnail. Uses a null delegate here.
506 chromeos::WallpaperManager::Get()->SetCustomWallpaper( 508 chromeos::WallpaperManager::Get()->SetCustomWallpaper(
507 email_, layout_, chromeos::User::CUSTOMIZED, image); 509 email_, layout_, chromeos::User::CUSTOMIZED, image);
508 wallpaper_decoder_ = NULL; 510 wallpaper_decoder_ = NULL;
509 SendResponse(true); 511 SendResponse(true);
510 } 512 }
511 513
512 WallpaperMinimizeInactiveWindowsFunction:: 514 WallpaperPrivateMinimizeInactiveWindowsFunction::
513 WallpaperMinimizeInactiveWindowsFunction() { 515 WallpaperPrivateMinimizeInactiveWindowsFunction() {
514 } 516 }
515 517
516 WallpaperMinimizeInactiveWindowsFunction:: 518 WallpaperPrivateMinimizeInactiveWindowsFunction::
517 ~WallpaperMinimizeInactiveWindowsFunction() { 519 ~WallpaperPrivateMinimizeInactiveWindowsFunction() {
518 } 520 }
519 521
520 bool WallpaperMinimizeInactiveWindowsFunction::RunImpl() { 522 bool WallpaperPrivateMinimizeInactiveWindowsFunction::RunImpl() {
521 WindowStateManager::MinimizeInactiveWindows(); 523 WindowStateManager::MinimizeInactiveWindows();
522 return true; 524 return true;
523 } 525 }
524 526
525 WallpaperRestoreMinimizedWindowsFunction:: 527 WallpaperPrivateRestoreMinimizedWindowsFunction::
526 WallpaperRestoreMinimizedWindowsFunction() { 528 WallpaperPrivateRestoreMinimizedWindowsFunction() {
527 } 529 }
528 530
529 WallpaperRestoreMinimizedWindowsFunction:: 531 WallpaperPrivateRestoreMinimizedWindowsFunction::
530 ~WallpaperRestoreMinimizedWindowsFunction() { 532 ~WallpaperPrivateRestoreMinimizedWindowsFunction() {
531 } 533 }
532 534
533 bool WallpaperRestoreMinimizedWindowsFunction::RunImpl() { 535 bool WallpaperPrivateRestoreMinimizedWindowsFunction::RunImpl() {
534 WindowStateManager::RestoreWindows(); 536 WindowStateManager::RestoreWindows();
535 return true; 537 return true;
536 } 538 }
537 539
538 WallpaperGetThumbnailFunction::WallpaperGetThumbnailFunction() { 540 WallpaperPrivateGetThumbnailFunction::WallpaperPrivateGetThumbnailFunction() {
539 } 541 }
540 542
541 WallpaperGetThumbnailFunction::~WallpaperGetThumbnailFunction() { 543 WallpaperPrivateGetThumbnailFunction::~WallpaperPrivateGetThumbnailFunction() {
542 } 544 }
543 545
544 bool WallpaperGetThumbnailFunction::RunImpl() { 546 bool WallpaperPrivateGetThumbnailFunction::RunImpl() {
545 std::string url; 547 std::string url;
546 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url)); 548 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url));
547 EXTENSION_FUNCTION_VALIDATE(!url.empty()); 549 EXTENSION_FUNCTION_VALIDATE(!url.empty());
548 std::string file_name = GURL(url).ExtractFileName(); 550 std::string file_name = GURL(url).ExtractFileName();
549 sequence_token_ = BrowserThread::GetBlockingPool()-> 551 sequence_token_ = BrowserThread::GetBlockingPool()->
550 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName); 552 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName);
551 scoped_refptr<base::SequencedTaskRunner> task_runner = 553 scoped_refptr<base::SequencedTaskRunner> task_runner =
552 BrowserThread::GetBlockingPool()-> 554 BrowserThread::GetBlockingPool()->
553 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, 555 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_,
554 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); 556 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
555 557
556 task_runner->PostTask(FROM_HERE, 558 task_runner->PostTask(FROM_HERE,
557 base::Bind(&WallpaperGetThumbnailFunction::Get, this, file_name)); 559 base::Bind(&WallpaperPrivateGetThumbnailFunction::Get, this, file_name));
558 return true; 560 return true;
559 } 561 }
560 562
561 void WallpaperGetThumbnailFunction::Failure(const std::string& file_name) { 563 void WallpaperPrivateGetThumbnailFunction::Failure(
564 const std::string& file_name) {
562 SetError(base::StringPrintf("Failed to access wallpaper thumbnails for %s.", 565 SetError(base::StringPrintf("Failed to access wallpaper thumbnails for %s.",
563 file_name.c_str())); 566 file_name.c_str()));
564 SendResponse(false); 567 SendResponse(false);
565 } 568 }
566 569
567 void WallpaperGetThumbnailFunction::FileNotLoaded() { 570 void WallpaperPrivateGetThumbnailFunction::FileNotLoaded() {
568 SendResponse(true); 571 SendResponse(true);
569 } 572 }
570 573
571 void WallpaperGetThumbnailFunction::FileLoaded(const std::string& data) { 574 void WallpaperPrivateGetThumbnailFunction::FileLoaded(
575 const std::string& data) {
572 BinaryValue* thumbnail = BinaryValue::CreateWithCopiedBuffer(data.c_str(), 576 BinaryValue* thumbnail = BinaryValue::CreateWithCopiedBuffer(data.c_str(),
573 data.size()); 577 data.size());
574 SetResult(thumbnail); 578 SetResult(thumbnail);
575 SendResponse(true); 579 SendResponse(true);
576 } 580 }
577 581
578 void WallpaperGetThumbnailFunction::Get(const std::string& file_name) { 582 void WallpaperPrivateGetThumbnailFunction::Get(const std::string& file_name) {
579 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( 583 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread(
580 sequence_token_)); 584 sequence_token_));
581 std::string data; 585 std::string data;
582 if (GetData(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, file_name, &data)) { 586 if (GetData(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, file_name, &data)) {
583 if (data.empty()) { 587 if (data.empty()) {
584 BrowserThread::PostTask( 588 BrowserThread::PostTask(
585 BrowserThread::UI, FROM_HERE, 589 BrowserThread::UI, FROM_HERE,
586 base::Bind(&WallpaperGetThumbnailFunction::FileNotLoaded, this)); 590 base::Bind(&WallpaperPrivateGetThumbnailFunction::FileNotLoaded, this));
587 } else { 591 } else {
588 BrowserThread::PostTask( 592 BrowserThread::PostTask(
589 BrowserThread::UI, FROM_HERE, 593 BrowserThread::UI, FROM_HERE,
590 base::Bind(&WallpaperGetThumbnailFunction::FileLoaded, this, data)); 594 base::Bind(&WallpaperPrivateGetThumbnailFunction::FileLoaded, this,
595 data));
591 } 596 }
592 } else { 597 } else {
593 BrowserThread::PostTask( 598 BrowserThread::PostTask(
594 BrowserThread::UI, FROM_HERE, 599 BrowserThread::UI, FROM_HERE,
595 base::Bind(&WallpaperGetThumbnailFunction::Failure, this, file_name)); 600 base::Bind(&WallpaperPrivateGetThumbnailFunction::Failure, this,
601 file_name));
596 } 602 }
597 } 603 }
598 604
599 WallpaperSaveThumbnailFunction::WallpaperSaveThumbnailFunction() { 605 WallpaperPrivateSaveThumbnailFunction::WallpaperPrivateSaveThumbnailFunction() {
600 } 606 }
601 607
602 WallpaperSaveThumbnailFunction::~WallpaperSaveThumbnailFunction() { 608 WallpaperPrivateSaveThumbnailFunction::
603 } 609 ~WallpaperPrivateSaveThumbnailFunction() {}
604 610
605 bool WallpaperSaveThumbnailFunction::RunImpl() { 611 bool WallpaperPrivateSaveThumbnailFunction::RunImpl() {
606 std::string url; 612 std::string url;
607 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url)); 613 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url));
608 EXTENSION_FUNCTION_VALIDATE(!url.empty()); 614 EXTENSION_FUNCTION_VALIDATE(!url.empty());
609 615
610 BinaryValue* input = NULL; 616 BinaryValue* input = NULL;
611 EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(1, &input)); 617 EXTENSION_FUNCTION_VALIDATE(args_->GetBinary(1, &input));
612 618
613 std::string file_name = GURL(url).ExtractFileName(); 619 std::string file_name = GURL(url).ExtractFileName();
614 std::string data(input->GetBuffer(), input->GetSize()); 620 std::string data(input->GetBuffer(), input->GetSize());
615 621
616 sequence_token_ = BrowserThread::GetBlockingPool()-> 622 sequence_token_ = BrowserThread::GetBlockingPool()->
617 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName); 623 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName);
618 scoped_refptr<base::SequencedTaskRunner> task_runner = 624 scoped_refptr<base::SequencedTaskRunner> task_runner =
619 BrowserThread::GetBlockingPool()-> 625 BrowserThread::GetBlockingPool()->
620 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, 626 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_,
621 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); 627 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
622 628
623 task_runner->PostTask(FROM_HERE, 629 task_runner->PostTask(FROM_HERE,
624 base::Bind(&WallpaperSaveThumbnailFunction::Save, 630 base::Bind(&WallpaperPrivateSaveThumbnailFunction::Save,
625 this, data, file_name)); 631 this, data, file_name));
626 return true; 632 return true;
627 } 633 }
628 634
629 void WallpaperSaveThumbnailFunction::Failure(const std::string& file_name) { 635 void WallpaperPrivateSaveThumbnailFunction::Failure(
636 const std::string& file_name) {
630 SetError(base::StringPrintf("Failed to create/write thumbnail of %s.", 637 SetError(base::StringPrintf("Failed to create/write thumbnail of %s.",
631 file_name.c_str())); 638 file_name.c_str()));
632 SendResponse(false); 639 SendResponse(false);
633 } 640 }
634 641
635 void WallpaperSaveThumbnailFunction::Success() { 642 void WallpaperPrivateSaveThumbnailFunction::Success() {
636 SendResponse(true); 643 SendResponse(true);
637 } 644 }
638 645
639 void WallpaperSaveThumbnailFunction::Save(const std::string& data, 646 void WallpaperPrivateSaveThumbnailFunction::Save(const std::string& data,
640 const std::string& file_name) { 647 const std::string& file_name) {
641 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( 648 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread(
642 sequence_token_)); 649 sequence_token_));
643 if (SaveData(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, file_name, data)) { 650 if (SaveData(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, file_name, data)) {
644 BrowserThread::PostTask( 651 BrowserThread::PostTask(
645 BrowserThread::UI, FROM_HERE, 652 BrowserThread::UI, FROM_HERE,
646 base::Bind(&WallpaperSaveThumbnailFunction::Success, this)); 653 base::Bind(&WallpaperPrivateSaveThumbnailFunction::Success, this));
647 } else { 654 } else {
648 BrowserThread::PostTask( 655 BrowserThread::PostTask(
649 BrowserThread::UI, FROM_HERE, 656 BrowserThread::UI, FROM_HERE,
650 base::Bind(&WallpaperSaveThumbnailFunction::Failure, 657 base::Bind(&WallpaperPrivateSaveThumbnailFunction::Failure,
651 this, file_name)); 658 this, file_name));
652 } 659 }
653 } 660 }
654 661
655 WallpaperGetOfflineWallpaperListFunction:: 662 WallpaperPrivateGetOfflineWallpaperListFunction::
656 WallpaperGetOfflineWallpaperListFunction() { 663 WallpaperPrivateGetOfflineWallpaperListFunction() {
657 } 664 }
658 665
659 WallpaperGetOfflineWallpaperListFunction:: 666 WallpaperPrivateGetOfflineWallpaperListFunction::
660 ~WallpaperGetOfflineWallpaperListFunction() { 667 ~WallpaperPrivateGetOfflineWallpaperListFunction() {
661 } 668 }
662 669
663 bool WallpaperGetOfflineWallpaperListFunction::RunImpl() { 670 bool WallpaperPrivateGetOfflineWallpaperListFunction::RunImpl() {
664 sequence_token_ = BrowserThread::GetBlockingPool()-> 671 sequence_token_ = BrowserThread::GetBlockingPool()->
665 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName); 672 GetNamedSequenceToken(chromeos::kWallpaperSequenceTokenName);
666 scoped_refptr<base::SequencedTaskRunner> task_runner = 673 scoped_refptr<base::SequencedTaskRunner> task_runner =
667 BrowserThread::GetBlockingPool()-> 674 BrowserThread::GetBlockingPool()->
668 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, 675 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_,
669 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); 676 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
670 677
671 task_runner->PostTask(FROM_HERE, 678 task_runner->PostTask(FROM_HERE,
672 base::Bind(&WallpaperGetOfflineWallpaperListFunction::GetList, this)); 679 base::Bind(&WallpaperPrivateGetOfflineWallpaperListFunction::GetList,
680 this));
673 return true; 681 return true;
674 } 682 }
675 683
676 void WallpaperGetOfflineWallpaperListFunction::GetList() { 684 void WallpaperPrivateGetOfflineWallpaperListFunction::GetList() {
677 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( 685 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread(
678 sequence_token_)); 686 sequence_token_));
679 FilePath wallpaper_dir; 687 FilePath wallpaper_dir;
680 std::vector<std::string> file_list; 688 std::vector<std::string> file_list;
681 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &wallpaper_dir)); 689 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &wallpaper_dir));
682 if (file_util::DirectoryExists(wallpaper_dir)) { 690 if (file_util::DirectoryExists(wallpaper_dir)) {
683 file_util::FileEnumerator files(wallpaper_dir, false, 691 file_util::FileEnumerator files(wallpaper_dir, false,
684 file_util::FileEnumerator::FILES); 692 file_util::FileEnumerator::FILES);
685 for (FilePath current = files.Next(); !current.empty(); 693 for (FilePath current = files.Next(); !current.empty();
686 current = files.Next()) { 694 current = files.Next()) {
687 std::string file_name = current.BaseName().RemoveExtension().value(); 695 std::string file_name = current.BaseName().RemoveExtension().value();
688 // Do not add file name of small resolution wallpaper to the list. 696 // Do not add file name of small resolution wallpaper to the list.
689 if (!EndsWith(file_name, chromeos::kSmallWallpaperSuffix, true)) 697 if (!EndsWith(file_name, chromeos::kSmallWallpaperSuffix, true))
690 file_list.push_back(current.BaseName().value()); 698 file_list.push_back(current.BaseName().value());
691 } 699 }
692 } 700 }
693 BrowserThread::PostTask( 701 BrowserThread::PostTask(
694 BrowserThread::UI, FROM_HERE, 702 BrowserThread::UI, FROM_HERE,
695 base::Bind(&WallpaperGetOfflineWallpaperListFunction::OnComplete, 703 base::Bind(&WallpaperPrivateGetOfflineWallpaperListFunction::OnComplete,
696 this, file_list)); 704 this, file_list));
697 } 705 }
698 706
699 void WallpaperGetOfflineWallpaperListFunction::OnComplete( 707 void WallpaperPrivateGetOfflineWallpaperListFunction::OnComplete(
700 const std::vector<std::string>& file_list) { 708 const std::vector<std::string>& file_list) {
701 ListValue* results = new ListValue(); 709 ListValue* results = new ListValue();
702 results->AppendStrings(file_list); 710 results->AppendStrings(file_list);
703 SetResult(results); 711 SetResult(results);
704 SendResponse(true); 712 SendResponse(true);
705 } 713 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698