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

Unified Diff: chrome/browser/extensions/extension_navigation_observer.cc

Issue 10824204: Move small c/b/extensions classes into extensions namespace no.2 (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_navigation_observer.cc
diff --git a/chrome/browser/extensions/extension_navigation_observer.cc b/chrome/browser/extensions/extension_navigation_observer.cc
deleted file mode 100644
index aef8c3acd08a74e3d1300e319129ea36fe8b9d9a..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/extension_navigation_observer.cc
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/extensions/extension_navigation_observer.h"
-
-#include "chrome/browser/extensions/extension_install_ui.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/profiles/profile.h"
-#include "content/public/browser/navigation_controller.h"
-#include "content/public/browser/navigation_entry.h"
-#include "content/public/browser/notification_service.h"
-#include "content/public/browser/notification_types.h"
-
-using content::NavigationController;
-using content::NavigationEntry;
-
-ExtensionNavigationObserver::ExtensionNavigationObserver(Profile* profile)
- : profile_(profile) {
- RegisterForNotifications();
-}
-
-ExtensionNavigationObserver::~ExtensionNavigationObserver() {}
-
-void ExtensionNavigationObserver::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- if (type != content::NOTIFICATION_NAV_ENTRY_COMMITTED) {
- NOTREACHED();
- return;
- }
-
- NavigationController* controller =
- content::Source<NavigationController>(source).ptr();
- if (!profile_->IsSameProfile(
- Profile::FromBrowserContext(controller->GetBrowserContext())))
- return;
-
- PromptToEnableExtensionIfNecessary(controller);
-}
-
-void ExtensionNavigationObserver::RegisterForNotifications() {
- registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::NotificationService::AllSources());
-}
-
-void ExtensionNavigationObserver::PromptToEnableExtensionIfNecessary(
- NavigationController* nav_controller) {
- // Bail out if we're already running a prompt.
- if (!in_progress_prompt_extension_id_.empty())
- return;
-
- NavigationEntry* nav_entry = nav_controller->GetActiveEntry();
- if (!nav_entry)
- return;
-
- ExtensionService* extension_service = profile_->GetExtensionService();
- const extensions::Extension* extension =
- extension_service->disabled_extensions()->
- GetExtensionOrAppByURL(ExtensionURLInfo(nav_entry->GetURL()));
- if (!extension)
- return;
-
- // Try not to repeatedly prompt the user about the same extension.
- if (prompted_extensions_.find(extension->id()) != prompted_extensions_.end())
- return;
- prompted_extensions_.insert(extension->id());
-
- extensions::ExtensionPrefs* extension_prefs =
- extension_service->extension_prefs();
- if (extension_prefs->DidExtensionEscalatePermissions(extension->id())) {
- // Keep track of the extension id and nav controller we're prompting for.
- // These must be reset in InstallUIProceed and InstallUIAbort.
- in_progress_prompt_extension_id_ = extension->id();
- in_progress_prompt_navigation_controller_ = nav_controller;
-
- extension_install_prompt_.reset(
- ExtensionInstallUI::CreateInstallPromptWithWebContents(
- nav_controller->GetWebContents()));
- extension_install_prompt_->ConfirmReEnable(this, extension);
- }
-}
-
-void ExtensionNavigationObserver::InstallUIProceed() {
- ExtensionService* extension_service = profile_->GetExtensionService();
- const extensions::Extension* extension = extension_service->GetExtensionById(
- in_progress_prompt_extension_id_, true);
- NavigationController* nav_controller =
- in_progress_prompt_navigation_controller_;
- CHECK(extension);
- CHECK(nav_controller);
-
- in_progress_prompt_extension_id_ = "";
- in_progress_prompt_navigation_controller_ = NULL;
- extension_install_prompt_.reset();
-
- // Grant permissions, re-enable the extension, and then reload the tab.
- extension_service->GrantPermissionsAndEnableExtension(
- extension, extension_install_prompt_->record_oauth2_grant());
- nav_controller->Reload(true);
-}
-
-void ExtensionNavigationObserver::InstallUIAbort(bool user_initiated) {
- ExtensionService* extension_service = profile_->GetExtensionService();
- const extensions::Extension* extension = extension_service->GetExtensionById(
- in_progress_prompt_extension_id_, true);
-
- in_progress_prompt_extension_id_ = "";
- in_progress_prompt_navigation_controller_ = NULL;
- extension_install_prompt_.reset();
-
- std::string histogram_name = user_initiated ?
- "Extensions.Permissions_ReEnableCancel" :
- "Extensions.Permissions_ReEnableAbort";
- ExtensionService::RecordPermissionMessagesHistogram(
- extension, histogram_name.c_str());
-}

Powered by Google App Engine
This is Rietveld 408576698