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

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

Issue 1497193002: Remove all the ephemeral apps code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self review, Devlin review. Created 5 years 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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/signin/signin_manager_factory.h" 24 #include "chrome/browser/signin/signin_manager_factory.h"
25 #include "chrome/browser/ui/app_list/app_list_service.h" 25 #include "chrome/browser/ui/app_list/app_list_service.h"
26 #include "chrome/browser/ui/app_list/app_list_util.h" 26 #include "chrome/browser/ui/app_list/app_list_util.h"
27 #include "chrome/common/extensions/extension_constants.h" 27 #include "chrome/common/extensions/extension_constants.h"
28 #include "chrome/common/pref_names.h" 28 #include "chrome/common/pref_names.h"
29 #include "components/crx_file/id_util.h" 29 #include "components/crx_file/id_util.h"
30 #include "components/signin/core/browser/signin_manager.h" 30 #include "components/signin/core/browser/signin_manager.h"
31 #include "content/public/browser/web_contents.h" 31 #include "content/public/browser/web_contents.h"
32 #include "extensions/browser/extension_registry.h" 32 #include "extensions/browser/extension_registry.h"
33 #include "extensions/browser/extension_system.h" 33 #include "extensions/browser/extension_system.h"
34 #include "extensions/browser/extension_util.h"
35 #include "extensions/common/extension.h" 34 #include "extensions/common/extension.h"
36 #include "net/base/load_flags.h" 35 #include "net/base/load_flags.h"
37 #include "net/url_request/url_request.h" 36 #include "net/url_request/url_request.h"
38 #include "url/gurl.h" 37 #include "url/gurl.h"
39 38
40 namespace extensions { 39 namespace extensions {
41 40
42 namespace BeginInstallWithManifest3 = 41 namespace BeginInstallWithManifest3 =
43 api::webstore_private::BeginInstallWithManifest3; 42 api::webstore_private::BeginInstallWithManifest3;
44 namespace CompleteInstall = api::webstore_private::CompleteInstall; 43 namespace CompleteInstall = api::webstore_private::CompleteInstall;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 icon_url = source_url().Resolve(*details().icon_url); 199 icon_url = source_url().Resolve(*details().icon_url);
201 if (!icon_url.is_valid()) { 200 if (!icon_url.is_valid()) {
202 return RespondNow(BuildResponse( 201 return RespondNow(BuildResponse(
203 api::webstore_private::RESULT_INVALID_ICON_URL, 202 api::webstore_private::RESULT_INVALID_ICON_URL,
204 kInvalidIconUrlError)); 203 kInvalidIconUrlError));
205 } 204 }
206 } 205 }
207 206
208 InstallTracker* tracker = InstallTracker::Get(browser_context()); 207 InstallTracker* tracker = InstallTracker::Get(browser_context());
209 DCHECK(tracker); 208 DCHECK(tracker);
210 if (util::IsExtensionInstalledPermanently(details().id, browser_context()) || 209 bool is_installed =
211 tracker->GetActiveInstall(details().id)) { 210 extensions::ExtensionRegistry::Get(browser_context())->GetExtensionById(
211 details().id, extensions::ExtensionRegistry::EVERYTHING) != nullptr;
212 if (is_installed || tracker->GetActiveInstall(details().id)) {
212 return RespondNow(BuildResponse( 213 return RespondNow(BuildResponse(
213 api::webstore_private::RESULT_ALREADY_INSTALLED, 214 api::webstore_private::RESULT_ALREADY_INSTALLED,
214 kAlreadyInstalledError)); 215 kAlreadyInstalledError));
215 } 216 }
216 ActiveInstallData install_data(details().id); 217 ActiveInstallData install_data(details().id);
217 scoped_active_install_.reset(new ScopedActiveInstall(tracker, install_data)); 218 scoped_active_install_.reset(new ScopedActiveInstall(tracker, install_data));
218 219
219 net::URLRequestContextGetter* context_getter = nullptr; 220 net::URLRequestContextGetter* context_getter = nullptr;
220 if (!icon_url.is_empty()) 221 if (!icon_url.is_empty())
221 context_getter = browser_context()->GetRequestContext(); 222 context_getter = browser_context()->GetRequestContext();
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 420
420 if (IsAppLauncherEnabled() && approval_->manifest->is_app()) { 421 if (IsAppLauncherEnabled() && approval_->manifest->is_app()) {
421 // Show the app list to show download is progressing. Don't show the app 422 // Show the app list to show download is progressing. Don't show the app
422 // list on first app install so users can be trained to open it themselves. 423 // list on first app install so users can be trained to open it themselves.
423 app_list_service->ShowForAppInstall( 424 app_list_service->ShowForAppInstall(
424 chrome_details_.GetProfile(), 425 chrome_details_.GetProfile(),
425 params->expected_id, 426 params->expected_id,
426 approval_->enable_launcher); 427 approval_->enable_launcher);
427 } 428 }
428 429
429 // If the target extension has already been installed ephemerally and is
430 // up to date, it can be promoted to a regular installed extension and
431 // downloading from the Web Store is not necessary.
432 const Extension* extension = ExtensionRegistry::Get(browser_context())->
433 GetExtensionById(params->expected_id, ExtensionRegistry::EVERYTHING);
434 if (extension && approval_->dummy_extension.get() &&
435 util::IsEphemeralApp(extension->id(), browser_context()) &&
436 extension->version()->CompareTo(*approval_->dummy_extension->version()) >=
437 0) {
438 install_ui::ShowPostInstallUIForApproval(
439 browser_context(), *approval_, extension);
440
441 ExtensionService* extension_service =
442 ExtensionSystem::Get(browser_context())->extension_service();
443 extension_service->PromoteEphemeralApp(extension, false);
444 OnInstallSuccess(extension->id());
445 VLOG(1) << "Install success, sending response";
446 return RespondNow(NoArguments());
447 }
448
449 // Balanced in OnExtensionInstallSuccess() or OnExtensionInstallFailure(). 430 // Balanced in OnExtensionInstallSuccess() or OnExtensionInstallFailure().
450 AddRef(); 431 AddRef();
451 432
452 // The extension will install through the normal extension install flow, but 433 // The extension will install through the normal extension install flow, but
453 // the whitelist entry will bypass the normal permissions install dialog. 434 // the whitelist entry will bypass the normal permissions install dialog.
454 scoped_refptr<WebstoreInstaller> installer = new WebstoreInstaller( 435 scoped_refptr<WebstoreInstaller> installer = new WebstoreInstaller(
455 chrome_details_.GetProfile(), 436 chrome_details_.GetProfile(),
456 this, 437 this,
457 chrome_details_.GetAssociatedWebContents(), 438 chrome_details_.GetAssociatedWebContents(),
458 params->expected_id, 439 params->expected_id,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 // The response is sent asynchronously in OnFetchComplete, OnInstallApproval, 518 // The response is sent asynchronously in OnFetchComplete, OnInstallApproval,
538 // or OnInstallComplete. 519 // or OnInstallComplete.
539 return RespondLater(); 520 return RespondLater();
540 } 521 }
541 522
542 void WebstorePrivateInstallBundleFunction::OnFetchComplete( 523 void WebstorePrivateInstallBundleFunction::OnFetchComplete(
543 const GURL& url, const SkBitmap* bitmap) { 524 const GURL& url, const SkBitmap* bitmap) {
544 BundleInstaller::ItemList items; 525 BundleInstaller::ItemList items;
545 for (const auto& entry : params_->contents) { 526 for (const auto& entry : params_->contents) {
546 // Skip already-installed items. 527 // Skip already-installed items.
547 if (util::IsExtensionInstalledPermanently(entry->id, browser_context()) || 528 bool is_installed =
529 extensions::ExtensionRegistry::Get(browser_context())->GetExtensionById(
530 entry->id, extensions::ExtensionRegistry::EVERYTHING) != nullptr;
531 if (is_installed ||
548 InstallTracker::Get(browser_context())->GetActiveInstall(entry->id)) { 532 InstallTracker::Get(browser_context())->GetActiveInstall(entry->id)) {
549 continue; 533 continue;
550 } 534 }
551 BundleInstaller::Item item; 535 BundleInstaller::Item item;
552 item.id = entry->id; 536 item.id = entry->id;
553 item.manifest = entry->manifest; 537 item.manifest = entry->manifest;
554 item.localized_name = entry->localized_name; 538 item.localized_name = entry->localized_name;
555 if (entry->icon_url) 539 if (entry->icon_url)
556 item.icon_url = source_url().Resolve(*entry->icon_url); 540 item.icon_url = source_url().Resolve(*entry->icon_url);
557 items.push_back(item); 541 items.push_back(item);
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 WebstorePrivateGetEphemeralAppsEnabledFunction:: 701 WebstorePrivateGetEphemeralAppsEnabledFunction::
718 ~WebstorePrivateGetEphemeralAppsEnabledFunction() {} 702 ~WebstorePrivateGetEphemeralAppsEnabledFunction() {}
719 703
720 ExtensionFunction::ResponseAction 704 ExtensionFunction::ResponseAction
721 WebstorePrivateGetEphemeralAppsEnabledFunction::Run() { 705 WebstorePrivateGetEphemeralAppsEnabledFunction::Run() {
722 return RespondNow(ArgumentList(GetEphemeralAppsEnabled::Results::Create( 706 return RespondNow(ArgumentList(GetEphemeralAppsEnabled::Results::Create(
723 false))); 707 false)));
724 } 708 }
725 709
726 } // namespace extensions 710 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/storage/managed_value_store_cache.cc ('k') | chrome/browser/extensions/crx_installer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698