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

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

Issue 510943003: Register granting of previously withheld permissions as a permissions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolve threading issues, add crx installer browser test Created 6 years, 3 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/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 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 452
453 if (original_manifest) 453 if (original_manifest)
454 original_manifest_.reset(new Manifest( 454 original_manifest_.reset(new Manifest(
455 Manifest::INVALID_LOCATION, 455 Manifest::INVALID_LOCATION,
456 scoped_ptr<base::DictionaryValue>(original_manifest->DeepCopy()))); 456 scoped_ptr<base::DictionaryValue>(original_manifest->DeepCopy())));
457 457
458 // We don't have to delete the unpack dir explicity since it is a child of 458 // We don't have to delete the unpack dir explicity since it is a child of
459 // the temp dir. 459 // the temp dir.
460 unpacked_extension_root_ = extension_dir; 460 unpacked_extension_root_ = extension_dir;
461 461
462 if (!BrowserThread::PostTask(
463 BrowserThread::UI,
464 FROM_HERE,
465 base::Bind(&CrxInstaller::InitializeExtensionPermissions, this)))
Devlin 2014/09/09 16:04:26 Ew. We already bounce around a ton in extension i
gpdavis 2014/09/09 17:48:53 Well, the goal here is to call InitializePermissio
Devlin 2014/09/09 17:57:44 Hmm... that makes me wonder if this is actually th
466 NOTREACHED();
467 }
468
469 void CrxInstaller::InitializeExtensionPermissions() {
470 DCHECK_CURRENTLY_ON(BrowserThread::UI);
471 PermissionsUpdater(profile()).InitializePermissions(
472 install_checker_.extension().get());
473 if (!installer_task_runner_->PostTask(
474 FROM_HERE,
475 base::Bind(&CrxInstaller::ContinueUnpackSuccess, this)))
476 NOTREACHED();
477 }
478
479 void CrxInstaller::ContinueUnpackSuccess() {
480 DCHECK(installer_task_runner_->RunsTasksOnCurrentThread());
481 const Extension* extension = install_checker_.extension().get();
462 CrxInstallerError error = AllowInstall(extension); 482 CrxInstallerError error = AllowInstall(extension);
463 if (error.type() != CrxInstallerError::ERROR_NONE) { 483 if (error.type() != CrxInstallerError::ERROR_NONE) {
464 ReportFailureFromFileThread(error); 484 ReportFailureFromFileThread(error);
465 return; 485 return;
466 } 486 }
467 487
468 if (!BrowserThread::PostTask(BrowserThread::UI, 488 if (!BrowserThread::PostTask(BrowserThread::UI,
469 FROM_HERE, 489 FROM_HERE,
470 base::Bind(&CrxInstaller::CheckInstall, this))) 490 base::Bind(&CrxInstaller::CheckInstall, this)))
471 NOTREACHED(); 491 NOTREACHED();
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 if (!prefs->DidExtensionEscalatePermissions(extension()->id())) 910 if (!prefs->DidExtensionEscalatePermissions(extension()->id()))
891 return; 911 return;
892 912
893 if (client_) { 913 if (client_) {
894 AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort(). 914 AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort().
895 client_->ConfirmReEnable(this, extension()); 915 client_->ConfirmReEnable(this, extension());
896 } 916 }
897 } 917 }
898 918
899 } // namespace extensions 919 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698