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

Side by Side Diff: chrome/browser/extensions/api/webstore_private/webstore_private_api.cc

Issue 21046003: Move webstore_private API functions registrations out of ExtensionFunctionRegistry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 4 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
OLDNEW
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/extensions/api/webstore_private/webstore_private_api.h" 5 #include "chrome/browser/extensions/api/webstore_private/webstore_private_api.h"
6 6
7 #include "apps/app_launcher.h" 7 #include "apps/app_launcher.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 test_webstore_installer_delegate = delegate; 199 test_webstore_installer_delegate = delegate;
200 } 200 }
201 201
202 // static 202 // static
203 scoped_ptr<WebstoreInstaller::Approval> 203 scoped_ptr<WebstoreInstaller::Approval>
204 WebstorePrivateApi::PopApprovalForTesting( 204 WebstorePrivateApi::PopApprovalForTesting(
205 Profile* profile, const std::string& extension_id) { 205 Profile* profile, const std::string& extension_id) {
206 return g_pending_approvals.Get().PopApproval(profile, extension_id); 206 return g_pending_approvals.Get().PopApproval(profile, extension_id);
207 } 207 }
208 208
209 InstallBundleFunction::InstallBundleFunction() {} 209 WebstorePrivateInstallBundleFunction::WebstorePrivateInstallBundleFunction() {}
210 InstallBundleFunction::~InstallBundleFunction() {} 210 WebstorePrivateInstallBundleFunction::~WebstorePrivateInstallBundleFunction() {}
211 211
212 bool InstallBundleFunction::RunImpl() { 212 bool WebstorePrivateInstallBundleFunction::RunImpl() {
213 base::ListValue* extensions = NULL; 213 base::ListValue* extensions = NULL;
214 EXTENSION_FUNCTION_VALIDATE(args_->GetList(0, &extensions)); 214 EXTENSION_FUNCTION_VALIDATE(args_->GetList(0, &extensions));
215 215
216 BundleInstaller::ItemList items; 216 BundleInstaller::ItemList items;
217 if (!ReadBundleInfo(extensions, &items)) 217 if (!ReadBundleInfo(extensions, &items))
218 return false; 218 return false;
219 219
220 bundle_ = new BundleInstaller(GetCurrentBrowser(), items); 220 bundle_ = new BundleInstaller(GetCurrentBrowser(), items);
221 221
222 AddRef(); // Balanced in OnBundleInstallCompleted / OnBundleInstallCanceled. 222 AddRef(); // Balanced in OnBundleInstallCompleted / OnBundleInstallCanceled.
223 223
224 bundle_->PromptForApproval(this); 224 bundle_->PromptForApproval(this);
225 return true; 225 return true;
226 } 226 }
227 227
228 bool InstallBundleFunction::ReadBundleInfo(base::ListValue* extensions, 228 bool WebstorePrivateInstallBundleFunction::
229 BundleInstaller::ItemList* items) { 229 ReadBundleInfo(base::ListValue* extensions,
230 BundleInstaller::ItemList* items) {
230 for (size_t i = 0; i < extensions->GetSize(); ++i) { 231 for (size_t i = 0; i < extensions->GetSize(); ++i) {
231 base::DictionaryValue* details = NULL; 232 base::DictionaryValue* details = NULL;
232 EXTENSION_FUNCTION_VALIDATE(extensions->GetDictionary(i, &details)); 233 EXTENSION_FUNCTION_VALIDATE(extensions->GetDictionary(i, &details));
233 234
234 BundleInstaller::Item item; 235 BundleInstaller::Item item;
235 EXTENSION_FUNCTION_VALIDATE(details->GetString( 236 EXTENSION_FUNCTION_VALIDATE(details->GetString(
236 kIdKey, &item.id)); 237 kIdKey, &item.id));
237 EXTENSION_FUNCTION_VALIDATE(details->GetString( 238 EXTENSION_FUNCTION_VALIDATE(details->GetString(
238 kManifestKey, &item.manifest)); 239 kManifestKey, &item.manifest));
239 EXTENSION_FUNCTION_VALIDATE(details->GetString( 240 EXTENSION_FUNCTION_VALIDATE(details->GetString(
240 kLocalizedNameKey, &item.localized_name)); 241 kLocalizedNameKey, &item.localized_name));
241 242
242 items->push_back(item); 243 items->push_back(item);
243 } 244 }
244 245
245 return true; 246 return true;
246 } 247 }
247 248
248 void InstallBundleFunction::OnBundleInstallApproved() { 249 void WebstorePrivateInstallBundleFunction::OnBundleInstallApproved() {
249 bundle_->CompleteInstall( 250 bundle_->CompleteInstall(
250 &(dispatcher()->delegate()->GetAssociatedWebContents()->GetController()), 251 &(dispatcher()->delegate()->GetAssociatedWebContents()->GetController()),
251 this); 252 this);
252 } 253 }
253 254
254 void InstallBundleFunction::OnBundleInstallCanceled(bool user_initiated) { 255 void WebstorePrivateInstallBundleFunction::OnBundleInstallCanceled(
256 bool user_initiated) {
255 if (user_initiated) 257 if (user_initiated)
256 error_ = "user_canceled"; 258 error_ = "user_canceled";
257 else 259 else
258 error_ = "unknown_error"; 260 error_ = "unknown_error";
259 261
260 SendResponse(false); 262 SendResponse(false);
261 263
262 Release(); // Balanced in RunImpl(). 264 Release(); // Balanced in RunImpl().
263 } 265 }
264 266
265 void InstallBundleFunction::OnBundleInstallCompleted() { 267 void WebstorePrivateInstallBundleFunction::OnBundleInstallCompleted() {
266 SendResponse(true); 268 SendResponse(true);
267 269
268 Release(); // Balanced in RunImpl(). 270 Release(); // Balanced in RunImpl().
269 } 271 }
270 272
271 BeginInstallWithManifestFunction::BeginInstallWithManifestFunction() 273 WebstorePrivateBeginInstallWithManifest3Function::
274 WebstorePrivateBeginInstallWithManifest3Function()
272 : use_app_installed_bubble_(false), enable_launcher_(false) {} 275 : use_app_installed_bubble_(false), enable_launcher_(false) {}
273 276
274 BeginInstallWithManifestFunction::~BeginInstallWithManifestFunction() {} 277 WebstorePrivateBeginInstallWithManifest3Function::
278 ~WebstorePrivateBeginInstallWithManifest3Function() {}
275 279
276 bool BeginInstallWithManifestFunction::RunImpl() { 280 bool WebstorePrivateBeginInstallWithManifest3Function::RunImpl() {
277 base::DictionaryValue* details = NULL; 281 base::DictionaryValue* details = NULL;
278 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &details)); 282 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &details));
279 CHECK(details); 283 CHECK(details);
280 284
281 EXTENSION_FUNCTION_VALIDATE(details->GetString(kIdKey, &id_)); 285 EXTENSION_FUNCTION_VALIDATE(details->GetString(kIdKey, &id_));
282 if (!extensions::Extension::IdIsValid(id_)) { 286 if (!extensions::Extension::IdIsValid(id_)) {
283 SetResultCode(INVALID_ID); 287 SetResultCode(INVALID_ID);
284 error_ = kInvalidIdError; 288 error_ = kInvalidIdError;
285 return false; 289 return false;
286 } 290 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 346
343 // Matched with a Release in OnWebstoreParseSuccess/OnWebstoreParseFailure. 347 // Matched with a Release in OnWebstoreParseSuccess/OnWebstoreParseFailure.
344 AddRef(); 348 AddRef();
345 349
346 // The response is sent asynchronously in OnWebstoreParseSuccess/ 350 // The response is sent asynchronously in OnWebstoreParseSuccess/
347 // OnWebstoreParseFailure. 351 // OnWebstoreParseFailure.
348 return true; 352 return true;
349 } 353 }
350 354
351 355
352 void BeginInstallWithManifestFunction::SetResultCode(ResultCode code) { 356 void WebstorePrivateBeginInstallWithManifest3Function::SetResultCode(
357 ResultCode code) {
353 switch (code) { 358 switch (code) {
354 case ERROR_NONE: 359 case ERROR_NONE:
355 SetResult(Value::CreateStringValue(std::string())); 360 SetResult(Value::CreateStringValue(std::string()));
356 break; 361 break;
357 case UNKNOWN_ERROR: 362 case UNKNOWN_ERROR:
358 SetResult(Value::CreateStringValue("unknown_error")); 363 SetResult(Value::CreateStringValue("unknown_error"));
359 break; 364 break;
360 case USER_CANCELLED: 365 case USER_CANCELLED:
361 SetResult(Value::CreateStringValue("user_cancelled")); 366 SetResult(Value::CreateStringValue("user_cancelled"));
362 break; 367 break;
(...skipping 16 matching lines...) Expand all
379 SetResult(Value::CreateStringValue("signin_failed")); 384 SetResult(Value::CreateStringValue("signin_failed"));
380 break; 385 break;
381 case ALREADY_INSTALLED: 386 case ALREADY_INSTALLED:
382 SetResult(Value::CreateStringValue("already_installed")); 387 SetResult(Value::CreateStringValue("already_installed"));
383 break; 388 break;
384 default: 389 default:
385 CHECK(false); 390 CHECK(false);
386 } 391 }
387 } 392 }
388 393
389 void BeginInstallWithManifestFunction::OnWebstoreParseSuccess( 394 void WebstorePrivateBeginInstallWithManifest3Function::OnWebstoreParseSuccess(
390 const std::string& id, 395 const std::string& id,
391 const SkBitmap& icon, 396 const SkBitmap& icon,
392 base::DictionaryValue* parsed_manifest) { 397 base::DictionaryValue* parsed_manifest) {
393 CHECK_EQ(id_, id); 398 CHECK_EQ(id_, id);
394 CHECK(parsed_manifest); 399 CHECK(parsed_manifest);
395 icon_ = icon; 400 icon_ = icon;
396 parsed_manifest_.reset(parsed_manifest); 401 parsed_manifest_.reset(parsed_manifest);
397 402
398 std::string error; 403 std::string error;
399 dummy_extension_ = ExtensionInstallPrompt::GetLocalizedExtensionForDisplay( 404 dummy_extension_ = ExtensionInstallPrompt::GetLocalizedExtensionForDisplay(
(...skipping 17 matching lines...) Expand all
417 signin_manager && 422 signin_manager &&
418 signin_manager->GetAuthenticatedUsername().empty() && 423 signin_manager->GetAuthenticatedUsername().empty() &&
419 signin_manager->AuthInProgress()) { 424 signin_manager->AuthInProgress()) {
420 signin_tracker_.reset(new SigninTracker(profile(), this)); 425 signin_tracker_.reset(new SigninTracker(profile(), this));
421 return; 426 return;
422 } 427 }
423 428
424 SigninCompletedOrNotNeeded(); 429 SigninCompletedOrNotNeeded();
425 } 430 }
426 431
427 void BeginInstallWithManifestFunction::OnWebstoreParseFailure( 432 void WebstorePrivateBeginInstallWithManifest3Function::OnWebstoreParseFailure(
428 const std::string& id, 433 const std::string& id,
429 WebstoreInstallHelper::Delegate::InstallHelperResultCode result_code, 434 WebstoreInstallHelper::Delegate::InstallHelperResultCode result_code,
430 const std::string& error_message) { 435 const std::string& error_message) {
431 CHECK_EQ(id_, id); 436 CHECK_EQ(id_, id);
432 437
433 // Map from WebstoreInstallHelper's result codes to ours. 438 // Map from WebstoreInstallHelper's result codes to ours.
434 switch (result_code) { 439 switch (result_code) {
435 case WebstoreInstallHelper::Delegate::UNKNOWN_ERROR: 440 case WebstoreInstallHelper::Delegate::UNKNOWN_ERROR:
436 SetResultCode(UNKNOWN_ERROR); 441 SetResultCode(UNKNOWN_ERROR);
437 break; 442 break;
438 case WebstoreInstallHelper::Delegate::ICON_ERROR: 443 case WebstoreInstallHelper::Delegate::ICON_ERROR:
439 SetResultCode(ICON_ERROR); 444 SetResultCode(ICON_ERROR);
440 break; 445 break;
441 case WebstoreInstallHelper::Delegate::MANIFEST_ERROR: 446 case WebstoreInstallHelper::Delegate::MANIFEST_ERROR:
442 SetResultCode(MANIFEST_ERROR); 447 SetResultCode(MANIFEST_ERROR);
443 break; 448 break;
444 default: 449 default:
445 CHECK(false); 450 CHECK(false);
446 } 451 }
447 error_ = error_message; 452 error_ = error_message;
448 g_pending_installs.Get().EraseInstall(profile_, id); 453 g_pending_installs.Get().EraseInstall(profile_, id);
449 SendResponse(false); 454 SendResponse(false);
450 455
451 // Matches the AddRef in RunImpl(). 456 // Matches the AddRef in RunImpl().
452 Release(); 457 Release();
453 } 458 }
454 459
455 void BeginInstallWithManifestFunction::SigninFailed( 460 void WebstorePrivateBeginInstallWithManifest3Function::SigninFailed(
456 const GoogleServiceAuthError& error) { 461 const GoogleServiceAuthError& error) {
457 signin_tracker_.reset(); 462 signin_tracker_.reset();
458 463
459 SetResultCode(SIGNIN_FAILED); 464 SetResultCode(SIGNIN_FAILED);
460 error_ = error.ToString(); 465 error_ = error.ToString();
461 g_pending_installs.Get().EraseInstall(profile_, id_); 466 g_pending_installs.Get().EraseInstall(profile_, id_);
462 SendResponse(false); 467 SendResponse(false);
463 468
464 // Matches the AddRef in RunImpl(). 469 // Matches the AddRef in RunImpl().
465 Release(); 470 Release();
466 } 471 }
467 472
468 void BeginInstallWithManifestFunction::SigninSuccess() { 473 void WebstorePrivateBeginInstallWithManifest3Function::SigninSuccess() {
469 signin_tracker_.reset(); 474 signin_tracker_.reset();
470 475
471 SigninCompletedOrNotNeeded(); 476 SigninCompletedOrNotNeeded();
472 } 477 }
473 478
474 void BeginInstallWithManifestFunction::SigninCompletedOrNotNeeded() { 479 void WebstorePrivateBeginInstallWithManifest3Function::
480 SigninCompletedOrNotNeeded() {
475 content::WebContents* web_contents = GetAssociatedWebContents(); 481 content::WebContents* web_contents = GetAssociatedWebContents();
476 if (!web_contents) // The browser window has gone away. 482 if (!web_contents) // The browser window has gone away.
477 return; 483 return;
478 install_prompt_.reset(new ExtensionInstallPrompt(web_contents)); 484 install_prompt_.reset(new ExtensionInstallPrompt(web_contents));
479 install_prompt_->ConfirmWebstoreInstall( 485 install_prompt_->ConfirmWebstoreInstall(
480 this, 486 this,
481 dummy_extension_.get(), 487 dummy_extension_.get(),
482 &icon_, 488 &icon_,
483 ExtensionInstallPrompt::GetDefaultShowDialogCallback()); 489 ExtensionInstallPrompt::GetDefaultShowDialogCallback());
484 // Control flow finishes up in InstallUIProceed or InstallUIAbort. 490 // Control flow finishes up in InstallUIProceed or InstallUIAbort.
485 } 491 }
486 492
487 void BeginInstallWithManifestFunction::InstallUIProceed() { 493 void WebstorePrivateBeginInstallWithManifest3Function::InstallUIProceed() {
488 // This gets cleared in CrxInstaller::ConfirmInstall(). TODO(asargent) - in 494 // This gets cleared in CrxInstaller::ConfirmInstall(). TODO(asargent) - in
489 // the future we may also want to add time-based expiration, where a whitelist 495 // the future we may also want to add time-based expiration, where a whitelist
490 // entry is only valid for some number of minutes. 496 // entry is only valid for some number of minutes.
491 scoped_ptr<WebstoreInstaller::Approval> approval( 497 scoped_ptr<WebstoreInstaller::Approval> approval(
492 WebstoreInstaller::Approval::CreateWithNoInstallPrompt( 498 WebstoreInstaller::Approval::CreateWithNoInstallPrompt(
493 profile(), id_, parsed_manifest_.Pass())); 499 profile(), id_, parsed_manifest_.Pass()));
494 approval->use_app_installed_bubble = use_app_installed_bubble_; 500 approval->use_app_installed_bubble = use_app_installed_bubble_;
495 approval->enable_launcher = enable_launcher_; 501 approval->enable_launcher = enable_launcher_;
496 // If we are enabling the launcher, we should not show the app list in order 502 // If we are enabling the launcher, we should not show the app list in order
497 // to train the user to open it themselves at least once. 503 // to train the user to open it themselves at least once.
498 approval->skip_post_install_ui = enable_launcher_; 504 approval->skip_post_install_ui = enable_launcher_;
499 approval->installing_icon = gfx::ImageSkia::CreateFrom1xBitmap(icon_); 505 approval->installing_icon = gfx::ImageSkia::CreateFrom1xBitmap(icon_);
500 g_pending_approvals.Get().PushApproval(approval.Pass()); 506 g_pending_approvals.Get().PushApproval(approval.Pass());
501 507
502 SetResultCode(ERROR_NONE); 508 SetResultCode(ERROR_NONE);
503 SendResponse(true); 509 SendResponse(true);
504 510
505 // The Permissions_Install histogram is recorded from the ExtensionService 511 // The Permissions_Install histogram is recorded from the ExtensionService
506 // for all extension installs, so we only need to record the web store 512 // for all extension installs, so we only need to record the web store
507 // specific histogram here. 513 // specific histogram here.
508 ExtensionService::RecordPermissionMessagesHistogram( 514 ExtensionService::RecordPermissionMessagesHistogram(
509 dummy_extension_.get(), "Extensions.Permissions_WebStoreInstall"); 515 dummy_extension_.get(), "Extensions.Permissions_WebStoreInstall");
510 516
511 // Matches the AddRef in RunImpl(). 517 // Matches the AddRef in RunImpl().
512 Release(); 518 Release();
513 } 519 }
514 520
515 void BeginInstallWithManifestFunction::InstallUIAbort(bool user_initiated) { 521 void WebstorePrivateBeginInstallWithManifest3Function::InstallUIAbort(
522 bool user_initiated) {
516 error_ = kUserCancelledError; 523 error_ = kUserCancelledError;
517 SetResultCode(USER_CANCELLED); 524 SetResultCode(USER_CANCELLED);
518 g_pending_installs.Get().EraseInstall(profile_, id_); 525 g_pending_installs.Get().EraseInstall(profile_, id_);
519 SendResponse(false); 526 SendResponse(false);
520 527
521 // The web store install histograms are a subset of the install histograms. 528 // The web store install histograms are a subset of the install histograms.
522 // We need to record both histograms here since CrxInstaller::InstallUIAbort 529 // We need to record both histograms here since CrxInstaller::InstallUIAbort
523 // is never called for web store install cancellations. 530 // is never called for web store install cancellations.
524 std::string histogram_name = user_initiated ? 531 std::string histogram_name = user_initiated ?
525 "Extensions.Permissions_WebStoreInstallCancel" : 532 "Extensions.Permissions_WebStoreInstallCancel" :
526 "Extensions.Permissions_WebStoreInstallAbort"; 533 "Extensions.Permissions_WebStoreInstallAbort";
527 ExtensionService::RecordPermissionMessagesHistogram(dummy_extension_.get(), 534 ExtensionService::RecordPermissionMessagesHistogram(dummy_extension_.get(),
528 histogram_name.c_str()); 535 histogram_name.c_str());
529 536
530 histogram_name = user_initiated ? 537 histogram_name = user_initiated ?
531 "Extensions.Permissions_InstallCancel" : 538 "Extensions.Permissions_InstallCancel" :
532 "Extensions.Permissions_InstallAbort"; 539 "Extensions.Permissions_InstallAbort";
533 ExtensionService::RecordPermissionMessagesHistogram(dummy_extension_.get(), 540 ExtensionService::RecordPermissionMessagesHistogram(dummy_extension_.get(),
534 histogram_name.c_str()); 541 histogram_name.c_str());
535 542
536 // Matches the AddRef in RunImpl(). 543 // Matches the AddRef in RunImpl().
537 Release(); 544 Release();
538 } 545 }
539 546
540 CompleteInstallFunction::CompleteInstallFunction() {} 547 WebstorePrivateCompleteInstallFunction::
548 WebstorePrivateCompleteInstallFunction() {}
541 549
542 CompleteInstallFunction::~CompleteInstallFunction() {} 550 WebstorePrivateCompleteInstallFunction::
551 ~WebstorePrivateCompleteInstallFunction() {}
543 552
544 bool CompleteInstallFunction::RunImpl() { 553 bool WebstorePrivateCompleteInstallFunction::RunImpl() {
545 std::string id; 554 std::string id;
546 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &id)); 555 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &id));
547 if (!extensions::Extension::IdIsValid(id)) { 556 if (!extensions::Extension::IdIsValid(id)) {
548 error_ = kInvalidIdError; 557 error_ = kInvalidIdError;
549 return false; 558 return false;
550 } 559 }
551 560
552 approval_ = g_pending_approvals.Get().PopApproval(profile(), id).Pass(); 561 approval_ = g_pending_approvals.Get().PopApproval(profile(), id).Pass();
553 if (!approval_) { 562 if (!approval_) {
554 error_ = ErrorUtils::FormatErrorMessage( 563 error_ = ErrorUtils::FormatErrorMessage(
(...skipping 18 matching lines...) Expand all
573 // the whitelist entry will bypass the normal permissions install dialog. 582 // the whitelist entry will bypass the normal permissions install dialog.
574 scoped_refptr<WebstoreInstaller> installer = new WebstoreInstaller( 583 scoped_refptr<WebstoreInstaller> installer = new WebstoreInstaller(
575 profile(), this, 584 profile(), this,
576 &(dispatcher()->delegate()->GetAssociatedWebContents()->GetController()), 585 &(dispatcher()->delegate()->GetAssociatedWebContents()->GetController()),
577 id, approval_.Pass(), WebstoreInstaller::FLAG_NONE); 586 id, approval_.Pass(), WebstoreInstaller::FLAG_NONE);
578 installer->Start(); 587 installer->Start();
579 588
580 return true; 589 return true;
581 } 590 }
582 591
583 void CompleteInstallFunction::OnExtensionInstallSuccess( 592 void WebstorePrivateCompleteInstallFunction::OnExtensionInstallSuccess(
584 const std::string& id) { 593 const std::string& id) {
585 if (test_webstore_installer_delegate) 594 if (test_webstore_installer_delegate)
586 test_webstore_installer_delegate->OnExtensionInstallSuccess(id); 595 test_webstore_installer_delegate->OnExtensionInstallSuccess(id);
587 596
588 LOG(INFO) << "Install success, sending response"; 597 LOG(INFO) << "Install success, sending response";
589 g_pending_installs.Get().EraseInstall(profile_, id); 598 g_pending_installs.Get().EraseInstall(profile_, id);
590 SendResponse(true); 599 SendResponse(true);
591 600
592 // Matches the AddRef in RunImpl(). 601 // Matches the AddRef in RunImpl().
593 Release(); 602 Release();
594 } 603 }
595 604
596 void CompleteInstallFunction::OnExtensionInstallFailure( 605 void WebstorePrivateCompleteInstallFunction::OnExtensionInstallFailure(
597 const std::string& id, 606 const std::string& id,
598 const std::string& error, 607 const std::string& error,
599 WebstoreInstaller::FailureReason reason) { 608 WebstoreInstaller::FailureReason reason) {
600 if (test_webstore_installer_delegate) { 609 if (test_webstore_installer_delegate) {
601 test_webstore_installer_delegate->OnExtensionInstallFailure( 610 test_webstore_installer_delegate->OnExtensionInstallFailure(
602 id, error, reason); 611 id, error, reason);
603 } 612 }
604 613
605 error_ = error; 614 error_ = error;
606 LOG(INFO) << "Install failed, sending response"; 615 LOG(INFO) << "Install failed, sending response";
607 g_pending_installs.Get().EraseInstall(profile_, id); 616 g_pending_installs.Get().EraseInstall(profile_, id);
608 SendResponse(false); 617 SendResponse(false);
609 618
610 // Matches the AddRef in RunImpl(). 619 // Matches the AddRef in RunImpl().
611 Release(); 620 Release();
612 } 621 }
613 622
614 EnableAppLauncherFunction::EnableAppLauncherFunction() {} 623 WebstorePrivateEnableAppLauncherFunction::
624 WebstorePrivateEnableAppLauncherFunction() {}
615 625
616 EnableAppLauncherFunction::~EnableAppLauncherFunction() {} 626 WebstorePrivateEnableAppLauncherFunction::
627 ~WebstorePrivateEnableAppLauncherFunction() {}
617 628
618 bool EnableAppLauncherFunction::RunImpl() { 629 bool WebstorePrivateEnableAppLauncherFunction::RunImpl() {
619 AppListService::Get()->EnableAppList(profile()); 630 AppListService::Get()->EnableAppList(profile());
620 SendResponse(true); 631 SendResponse(true);
621 return true; 632 return true;
622 } 633 }
623 634
624 bool GetBrowserLoginFunction::RunImpl() { 635 bool WebstorePrivateGetBrowserLoginFunction::RunImpl() {
625 SetResult(CreateLoginResult(profile_->GetOriginalProfile())); 636 SetResult(CreateLoginResult(profile_->GetOriginalProfile()));
626 return true; 637 return true;
627 } 638 }
628 639
629 bool GetStoreLoginFunction::RunImpl() { 640 bool WebstorePrivateGetStoreLoginFunction::RunImpl() {
630 SetResult(Value::CreateStringValue(GetWebstoreLogin(profile_))); 641 SetResult(Value::CreateStringValue(GetWebstoreLogin(profile_)));
631 return true; 642 return true;
632 } 643 }
633 644
634 bool SetStoreLoginFunction::RunImpl() { 645 bool WebstorePrivateSetStoreLoginFunction::RunImpl() {
635 std::string login; 646 std::string login;
636 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &login)); 647 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &login));
637 SetWebstoreLogin(profile_, login); 648 SetWebstoreLogin(profile_, login);
638 return true; 649 return true;
639 } 650 }
640 651
641 GetWebGLStatusFunction::GetWebGLStatusFunction() { 652 WebstorePrivateGetWebGLStatusFunction::WebstorePrivateGetWebGLStatusFunction() {
642 feature_checker_ = new GPUFeatureChecker( 653 feature_checker_ = new GPUFeatureChecker(
643 gpu::GPU_FEATURE_TYPE_WEBGL, 654 gpu::GPU_FEATURE_TYPE_WEBGL,
644 base::Bind(&GetWebGLStatusFunction::OnFeatureCheck, 655 base::Bind(&WebstorePrivateGetWebGLStatusFunction::OnFeatureCheck,
645 base::Unretained(this))); 656 base::Unretained(this)));
646 } 657 }
647 658
648 GetWebGLStatusFunction::~GetWebGLStatusFunction() {} 659 WebstorePrivateGetWebGLStatusFunction::
660 ~WebstorePrivateGetWebGLStatusFunction() {}
649 661
650 void GetWebGLStatusFunction::CreateResult(bool webgl_allowed) { 662 void WebstorePrivateGetWebGLStatusFunction::CreateResult(bool webgl_allowed) {
651 SetResult(Value::CreateStringValue( 663 SetResult(Value::CreateStringValue(
652 webgl_allowed ? "webgl_allowed" : "webgl_blocked")); 664 webgl_allowed ? "webgl_allowed" : "webgl_blocked"));
653 } 665 }
654 666
655 bool GetWebGLStatusFunction::RunImpl() { 667 bool WebstorePrivateGetWebGLStatusFunction::RunImpl() {
656 feature_checker_->CheckGPUFeatureAvailability(); 668 feature_checker_->CheckGPUFeatureAvailability();
657 return true; 669 return true;
658 } 670 }
659 671
660 void GetWebGLStatusFunction::OnFeatureCheck(bool feature_allowed) { 672 void WebstorePrivateGetWebGLStatusFunction::
673 OnFeatureCheck(bool feature_allowed) {
661 CreateResult(feature_allowed); 674 CreateResult(feature_allowed);
662 SendResponse(true); 675 SendResponse(true);
663 } 676 }
664 677
665 bool GetIsLauncherEnabledFunction::RunImpl() { 678 bool WebstorePrivateGetIsLauncherEnabledFunction::RunImpl() {
666 SetResult(Value::CreateBooleanValue(apps::IsAppLauncherEnabled())); 679 SetResult(Value::CreateBooleanValue(apps::IsAppLauncherEnabled()));
667 SendResponse(true); 680 SendResponse(true);
668 return true; 681 return true;
669 } 682 }
670 683
671 bool IsInIncognitoModeFunction::RunImpl() { 684 bool WebstorePrivateIsInIncognitoModeFunction::RunImpl() {
672 SetResult( 685 SetResult(
673 Value::CreateBooleanValue(profile_ != profile_->GetOriginalProfile())); 686 Value::CreateBooleanValue(profile_ != profile_->GetOriginalProfile()));
674 SendResponse(true); 687 SendResponse(true);
675 return true; 688 return true;
676 } 689 }
677 690
678 } // namespace extensions 691 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698