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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 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/ui/views/settings_api_bubble_helper_views.h" 5 #include "chrome/browser/ui/views/settings_api_bubble_helper_views.h"
6 6
7 #include "chrome/browser/extensions/ntp_controlled_bubble_controller.h"
7 #include "chrome/browser/extensions/settings_api_bubble_controller.h" 8 #include "chrome/browser/extensions/settings_api_bubble_controller.h"
8 #include "chrome/browser/extensions/settings_api_helpers.h" 9 #include "chrome/browser/extensions/settings_api_helpers.h"
9 #include "chrome/browser/ui/browser_finder.h" 10 #include "chrome/browser/ui/browser_finder.h"
11 #include "chrome/browser/ui/tabs/tab_strip_model.h"
10 #include "chrome/browser/ui/views/extensions/extension_message_bubble_view.h" 12 #include "chrome/browser/ui/views/extensions/extension_message_bubble_view.h"
11 #include "chrome/browser/ui/views/frame/browser_view.h" 13 #include "chrome/browser/ui/views/frame/browser_view.h"
12 #include "chrome/browser/ui/views/settings_api_bubble_helper_views.h" 14 #include "chrome/browser/ui/views/settings_api_bubble_helper_views.h"
13 #include "chrome/browser/ui/views/toolbar/home_button.h" 15 #include "chrome/browser/ui/views/toolbar/home_button.h"
14 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 16 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
15 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler. h" 17 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler. h"
18 #include "chrome/common/url_constants.h"
19 #include "content/public/browser/browser_url_handler.h"
16 20
17 namespace { 21 namespace {
18 22
19 void ShowSettingsApiBubble(extensions::SettingsApiOverrideType type, 23 void ShowSettingsApiBubble(extensions::SettingsApiOverrideType type,
20 const std::string& extension_id, 24 const std::string& extension_id,
21 Profile* profile, 25 Profile* profile,
22 views::View* anchor_view, 26 views::View* anchor_view,
23 views::BubbleBorder::Arrow arrow) { 27 views::BubbleBorder::Arrow arrow) {
24 scoped_ptr<extensions::SettingsApiBubbleController> settings_api_bubble( 28 scoped_ptr<extensions::SettingsApiBubbleController> settings_api_bubble(
25 new extensions::SettingsApiBubbleController(profile, type)); 29 new extensions::SettingsApiBubbleController(profile, type));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 chrome::FindBrowserWithWebContents(web_contents))->toolbar(); 82 chrome::FindBrowserWithWebContents(web_contents))->toolbar();
79 ShowSettingsApiBubble(BUBBLE_TYPE_SEARCH_ENGINE, 83 ShowSettingsApiBubble(BUBBLE_TYPE_SEARCH_ENGINE,
80 extension->id(), 84 extension->id(),
81 profile, 85 profile,
82 toolbar->app_menu(), 86 toolbar->app_menu(),
83 views::BubbleBorder::TOP_RIGHT); 87 views::BubbleBorder::TOP_RIGHT);
84 } 88 }
85 } 89 }
86 } 90 }
87 91
92 void MaybeShowExtensionControlledNewTabPage(Browser* browser) {
93 GURL ntp_url(chrome::kChromeUINewTabURL);
94 bool ignored_param;
95 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
96 &ntp_url,
97 browser->tab_strip_model()->GetActiveWebContents()->GetBrowserContext(),
98 &ignored_param);
99 if (!ntp_url.SchemeIs("chrome-extension"))
100 return; // Not being overridden by an extension.
101
102 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
103 new extensions::NtpControlledBubbleController(browser->profile()));
104 if (!ntp_controlled_bubble->ShouldShow(ntp_url.host()))
105 return;
106
107 extensions::NtpControlledBubbleController* controller =
108 ntp_controlled_bubble.get();
109 extensions::ExtensionMessageBubbleView* bubble_delegate =
110 new extensions::ExtensionMessageBubbleView(
111 BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(),
112 views::BubbleBorder::TOP_RIGHT,
113 ntp_controlled_bubble.PassAs<
114 extensions::ExtensionMessageBubbleController>());
115 views::BubbleDelegateView::CreateBubble(bubble_delegate);
116 controller->Show(bubble_delegate);
117 }
118
88 } // namespace extensions 119 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698