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

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: Sync to head 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
« no previous file with comments | « chrome/browser/ui/views/settings_api_bubble_helper_views.h ('k') | chrome/chrome_browser_extensions.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..67199cdb782e7a079c5d2c7e0a4ddb2457f45f5f 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,20 @@
#include "chrome/browser/ui/views/settings_api_bubble_helper_views.h"
+#include "chrome/browser/extensions/ntp_overridden_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"
+#include "content/public/browser/navigation_entry.h"
namespace {
@@ -70,7 +75,7 @@ void MaybeShowExtensionControlledSearchNotification(
if (AutocompleteMatch::IsSearchType(match.type) &&
match.type != AutocompleteMatchType::SEARCH_OTHER_ENGINE) {
- const extensions::Extension* extension =
+ const Extension* extension =
OverridesSearchEngine(profile, NULL);
if (extension) {
ToolbarView* toolbar =
@@ -85,4 +90,44 @@ void MaybeShowExtensionControlledSearchNotification(
}
}
+void MaybeShowExtensionControlledNewTabPage(
+ Browser* browser, content::WebContents* web_contents) {
+#if !defined(OS_WIN)
+ return;
+#endif
+
+ content::NavigationEntry* entry =
+ web_contents->GetController().GetActiveEntry();
+ if (!entry)
+ return;
+ GURL active_url = entry->GetURL();
+ if (!active_url.SchemeIs("chrome-extension"))
+ return; // Not a URL that we care about.
+
+ // See if the current active URL matches a transformed NewTab URL.
+ GURL ntp_url(chrome::kChromeUINewTabURL);
+ bool ignored_param;
+ content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
+ &ntp_url,
+ web_contents->GetBrowserContext(),
+ &ignored_param);
+ if (ntp_url != active_url)
+ return; // Not being overridden by an extension.
+
+ scoped_ptr<NtpOverriddenBubbleController> ntp_overridden_bubble(
+ new NtpOverriddenBubbleController(browser->profile()));
+ if (!ntp_overridden_bubble->ShouldShow(ntp_url.host()))
+ return;
+
+ NtpOverriddenBubbleController* controller = ntp_overridden_bubble.get();
+ ExtensionMessageBubbleView* bubble_delegate =
+ new ExtensionMessageBubbleView(
+ BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(),
+ views::BubbleBorder::TOP_RIGHT,
+ ntp_overridden_bubble.PassAs<
+ ExtensionMessageBubbleController>());
+ views::BubbleDelegateView::CreateBubble(bubble_delegate);
+ controller->Show(bubble_delegate);
+}
+
} // namespace extensions
« no previous file with comments | « chrome/browser/ui/views/settings_api_bubble_helper_views.h ('k') | chrome/chrome_browser_extensions.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698