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

Unified Diff: chrome/browser/ui/views/settings_api_bubble_helper_views.cc

Issue 246653003: Settings Overides -- warn user when extensions override their NTP. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Polish Created 6 years, 8 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/ui/views/settings_api_bubble_helper_views.cc
diff --git a/chrome/browser/ui/views/settings_api_bubble_helper_views.cc b/chrome/browser/ui/views/settings_api_bubble_helper_views.cc
index 6dadb98b50bcd581fe493c102420661458460631..92e08e1065c364b63ee7ca82df027cbf48ab0787 100644
--- a/chrome/browser/ui/views/settings_api_bubble_helper_views.cc
+++ b/chrome/browser/ui/views/settings_api_bubble_helper_views.cc
@@ -4,15 +4,19 @@
#include "chrome/browser/ui/views/settings_api_bubble_helper_views.h"
+#include "chrome/browser/extensions/ntp_controlled_bubble_controller.h"
#include "chrome/browser/extensions/settings_api_bubble_controller.h"
#include "chrome/browser/extensions/settings_api_helpers.h"
#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/extensions/extension_message_bubble_view.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/settings_api_bubble_helper_views.h"
#include "chrome/browser/ui/views/toolbar/home_button.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.h"
+#include "chrome/common/url_constants.h"
+#include "content/public/browser/browser_url_handler.h"
namespace {
@@ -85,4 +89,31 @@ void MaybeShowExtensionControlledSearchNotification(
}
}
+void MaybeShowExtensionControlledNewTabPage(Browser* browser) {
+ GURL ntp_url(chrome::kChromeUINewTabURL);
+ bool ignored_param;
+ content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
+ &ntp_url,
+ browser->tab_strip_model()->GetActiveWebContents()->GetBrowserContext(),
+ &ignored_param);
+ if (!ntp_url.SchemeIs("chrome-extension"))
+ return; // Not being overridden by an extension.
+
+ scoped_ptr<extensions::NtpControlledBubbleController> ntp_controlled_bubble(
Yoyo Zhou 2014/04/23 00:04:24 nit: don't need extensions::
Finnur 2014/04/23 13:51:35 Good point (this function moved around a bit durin
+ new extensions::NtpControlledBubbleController(browser->profile()));
+ if (!ntp_controlled_bubble->ShouldShow(ntp_url.host()))
+ return;
+
+ extensions::NtpControlledBubbleController* controller =
+ ntp_controlled_bubble.get();
+ extensions::ExtensionMessageBubbleView* bubble_delegate =
+ new extensions::ExtensionMessageBubbleView(
+ BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(),
+ views::BubbleBorder::TOP_RIGHT,
+ ntp_controlled_bubble.PassAs<
+ extensions::ExtensionMessageBubbleController>());
+ views::BubbleDelegateView::CreateBubble(bubble_delegate);
+ controller->Show(bubble_delegate);
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698