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

Side by Side Diff: chrome/browser/extensions/crx_installer.cc

Issue 8430033: Adds a webstorePrivate method for silently installing extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mihai Created 9 years, 1 month 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) 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/extensions/crx_installer.h" 5 #include "chrome/browser/extensions/crx_installer.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 std::set<std::string> ids; 51 std::set<std::string> ids;
52 std::map<std::string, linked_ptr<CrxInstaller::WhitelistEntry> > entries; 52 std::map<std::string, linked_ptr<CrxInstaller::WhitelistEntry> > entries;
53 }; 53 };
54 54
55 static base::LazyInstance<Whitelist> 55 static base::LazyInstance<Whitelist>
56 g_whitelisted_install_data(base::LINKER_INITIALIZED); 56 g_whitelisted_install_data(base::LINKER_INITIALIZED);
57 57
58 } // namespace 58 } // namespace
59 59
60 CrxInstaller::WhitelistEntry::WhitelistEntry() 60 CrxInstaller::WhitelistEntry::WhitelistEntry()
61 : use_app_installed_bubble(false) {} 61 : use_app_installed_bubble(false),
62 skip_post_install_ui(false) {}
62 CrxInstaller::WhitelistEntry::~WhitelistEntry() {} 63 CrxInstaller::WhitelistEntry::~WhitelistEntry() {}
63 64
64 // static 65 // static
65 scoped_refptr<CrxInstaller> CrxInstaller::Create( 66 scoped_refptr<CrxInstaller> CrxInstaller::Create(
66 ExtensionService* frontend, 67 ExtensionService* frontend,
67 ExtensionInstallUI* client) { 68 ExtensionInstallUI* client) {
68 return new CrxInstaller(frontend->AsWeakPtr(), client); 69 return new CrxInstaller(frontend->AsWeakPtr(), client);
69 } 70 }
70 71
71 // static 72 // static
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 RemoveWhitelistEntry(extension_->id())); 411 RemoveWhitelistEntry(extension_->id()));
411 if (is_gallery_install() && entry.get() && original_manifest_.get()) { 412 if (is_gallery_install() && entry.get() && original_manifest_.get()) {
412 if (!(original_manifest_->Equals(entry->parsed_manifest.get()))) { 413 if (!(original_manifest_->Equals(entry->parsed_manifest.get()))) {
413 ReportFailureFromUIThread( 414 ReportFailureFromUIThread(
414 l10n_util::GetStringUTF8(IDS_EXTENSION_MANIFEST_INVALID)); 415 l10n_util::GetStringUTF8(IDS_EXTENSION_MANIFEST_INVALID));
415 return; 416 return;
416 } 417 }
417 whitelisted = true; 418 whitelisted = true;
418 if (entry->use_app_installed_bubble) 419 if (entry->use_app_installed_bubble)
419 client_->set_use_app_installed_bubble(true); 420 client_->set_use_app_installed_bubble(true);
421 if (entry->skip_post_install_ui)
422 client_->set_skip_post_install_ui(true);
420 } 423 }
421 424
422 if (client_ && 425 if (client_ &&
423 (!allow_silent_install_ || !whitelisted)) { 426 (!allow_silent_install_ || !whitelisted)) {
424 AddRef(); // Balanced in Proceed() and Abort(). 427 AddRef(); // Balanced in Proceed() and Abort().
425 client_->ConfirmInstall(this, extension_.get()); 428 client_->ConfirmInstall(this, extension_.get());
426 } else { 429 } else {
427 if (!BrowserThread::PostTask( 430 if (!BrowserThread::PostTask(
428 BrowserThread::FILE, FROM_HERE, 431 BrowserThread::FILE, FROM_HERE,
429 base::Bind(&CrxInstaller::CompleteInstall, this))) 432 base::Bind(&CrxInstaller::CompleteInstall, this)))
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 // Some users (such as the download shelf) need to know when a 599 // Some users (such as the download shelf) need to know when a
597 // CRXInstaller is done. Listening for the EXTENSION_* events 600 // CRXInstaller is done. Listening for the EXTENSION_* events
598 // is problematic because they don't know anything about the 601 // is problematic because they don't know anything about the
599 // extension before it is unpacked, so they can not filter based 602 // extension before it is unpacked, so they can not filter based
600 // on the extension. 603 // on the extension.
601 content::NotificationService::current()->Notify( 604 content::NotificationService::current()->Notify(
602 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 605 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
603 content::Source<CrxInstaller>(this), 606 content::Source<CrxInstaller>(this),
604 content::NotificationService::NoDetails()); 607 content::NotificationService::NoDetails());
605 } 608 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/crx_installer.h ('k') | chrome/browser/extensions/extension_browsertest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698