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

Side by Side Diff: chrome/browser/ui/views/settings_api_bubble_helper_views.cc

Issue 320633002: Add an extension override bubble and warning box for proxy extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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_overridden_bubble_controller.h" 7 #include "chrome/browser/extensions/ntp_overridden_bubble_controller.h"
8 #include "chrome/browser/extensions/settings_api_bubble_controller.h" 8 #include "chrome/browser/extensions/settings_api_bubble_controller.h"
9 #include "chrome/browser/extensions/settings_api_helpers.h" 9 #include "chrome/browser/extensions/settings_api_helpers.h"
10 #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" 11 #include "chrome/browser/ui/tabs/tab_strip_model.h"
12 #include "chrome/browser/ui/views/extensions/extension_message_bubble_view.h" 12 #include "chrome/browser/ui/views/extensions/extension_message_bubble_view.h"
13 #include "chrome/browser/ui/views/frame/browser_view.h" 13 #include "chrome/browser/ui/views/frame/browser_view.h"
14 #include "chrome/browser/ui/views/settings_api_bubble_helper_views.h" 14 #include "chrome/browser/ui/views/settings_api_bubble_helper_views.h"
15 #include "chrome/browser/ui/views/toolbar/home_button.h" 15 #include "chrome/browser/ui/views/toolbar/home_button.h"
16 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 16 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
17 #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" 18 #include "chrome/common/url_constants.h"
19 #include "content/public/browser/browser_url_handler.h" 19 #include "content/public/browser/browser_url_handler.h"
20 #include "content/public/browser/navigation_entry.h" 20 #include "content/public/browser/navigation_entry.h"
21 21
22 namespace extensions {
23
22 namespace { 24 namespace {
23 25
24 void ShowSettingsApiBubble(extensions::SettingsApiOverrideType type, 26 void ShowSettingsApiBubble(SettingsApiOverrideType type,
25 const std::string& extension_id, 27 const std::string& extension_id,
26 Profile* profile, 28 Profile* profile,
27 views::View* anchor_view, 29 views::View* anchor_view,
28 views::BubbleBorder::Arrow arrow) { 30 views::BubbleBorder::Arrow arrow) {
29 scoped_ptr<extensions::SettingsApiBubbleController> settings_api_bubble( 31 scoped_ptr<SettingsApiBubbleController> settings_api_bubble(
30 new extensions::SettingsApiBubbleController(profile, type)); 32 new SettingsApiBubbleController(profile, type));
31 if (!settings_api_bubble->ShouldShow(extension_id)) 33 if (!settings_api_bubble->ShouldShow(extension_id))
32 return; 34 return;
33 35
34 extensions::SettingsApiBubbleController* controller = 36 SettingsApiBubbleController* controller = settings_api_bubble.get();
35 settings_api_bubble.get(); 37 ExtensionMessageBubbleView* bubble_delegate =
36 extensions::ExtensionMessageBubbleView* bubble_delegate = 38 new ExtensionMessageBubbleView(
37 new extensions::ExtensionMessageBubbleView(
38 anchor_view, 39 anchor_view,
39 arrow, 40 arrow,
40 settings_api_bubble.PassAs< 41 settings_api_bubble.PassAs<
41 extensions::ExtensionMessageBubbleController>()); 42 ExtensionMessageBubbleController>());
42 views::BubbleDelegateView::CreateBubble(bubble_delegate); 43 views::BubbleDelegateView::CreateBubble(bubble_delegate);
43 controller->Show(bubble_delegate); 44 controller->Show(bubble_delegate);
44 } 45 }
45 46
46 } // namespace 47 } // namespace
47 48
48 namespace extensions {
49
50 void MaybeShowExtensionControlledHomeNotification(Browser* browser) { 49 void MaybeShowExtensionControlledHomeNotification(Browser* browser) {
51 #if !defined(OS_WIN) 50 #if !defined(OS_WIN)
52 return; 51 return;
53 #endif 52 #endif
54 53
55 const Extension* extension = OverridesHomepage(browser->profile(), NULL); 54 const Extension* extension =
55 GetExtensionOverridingHomepage(browser->profile(), NULL);
56 if (extension) { 56 if (extension) {
57 // The bubble will try to anchor itself against the home button 57 // The bubble will try to anchor itself against the home button
58 views::View* anchor_view = BrowserView::GetBrowserViewForBrowser(browser)-> 58 views::View* anchor_view = BrowserView::GetBrowserViewForBrowser(browser)->
59 toolbar()->home_button(); 59 toolbar()->home_button();
60 ShowSettingsApiBubble(BUBBLE_TYPE_HOME_PAGE, 60 ShowSettingsApiBubble(BUBBLE_TYPE_HOME_PAGE,
61 extension->id(), 61 extension->id(),
62 browser->profile(), 62 browser->profile(),
63 anchor_view, 63 anchor_view,
64 views::BubbleBorder::TOP_LEFT); 64 views::BubbleBorder::TOP_LEFT);
65 } 65 }
66 } 66 }
67 67
68 void MaybeShowExtensionControlledSearchNotification( 68 void MaybeShowExtensionControlledSearchNotification(
69 Profile* profile, 69 Profile* profile,
70 content::WebContents* web_contents, 70 content::WebContents* web_contents,
71 const AutocompleteMatch& match) { 71 const AutocompleteMatch& match) {
72 #if !defined(OS_WIN) 72 #if !defined(OS_WIN)
73 return; 73 return;
74 #endif 74 #endif
75 75
76 if (AutocompleteMatch::IsSearchType(match.type) && 76 if (AutocompleteMatch::IsSearchType(match.type) &&
77 match.type != AutocompleteMatchType::SEARCH_OTHER_ENGINE) { 77 match.type != AutocompleteMatchType::SEARCH_OTHER_ENGINE) {
78 const Extension* extension = 78 const Extension* extension =
79 OverridesSearchEngine(profile, NULL); 79 GetExtensionOverridingSearchEngine(profile, NULL);
80 if (extension) { 80 if (extension) {
81 ToolbarView* toolbar = 81 ToolbarView* toolbar =
82 BrowserView::GetBrowserViewForBrowser( 82 BrowserView::GetBrowserViewForBrowser(
83 chrome::FindBrowserWithWebContents(web_contents))->toolbar(); 83 chrome::FindBrowserWithWebContents(web_contents))->toolbar();
84 ShowSettingsApiBubble(BUBBLE_TYPE_SEARCH_ENGINE, 84 ShowSettingsApiBubble(BUBBLE_TYPE_SEARCH_ENGINE,
85 extension->id(), 85 extension->id(),
86 profile, 86 profile,
87 toolbar->app_menu(), 87 toolbar->app_menu(),
88 views::BubbleBorder::TOP_RIGHT); 88 views::BubbleBorder::TOP_RIGHT);
89 } 89 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 new ExtensionMessageBubbleView( 124 new ExtensionMessageBubbleView(
125 BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(), 125 BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(),
126 views::BubbleBorder::TOP_RIGHT, 126 views::BubbleBorder::TOP_RIGHT,
127 ntp_overridden_bubble.PassAs< 127 ntp_overridden_bubble.PassAs<
128 ExtensionMessageBubbleController>()); 128 ExtensionMessageBubbleController>());
129 views::BubbleDelegateView::CreateBubble(bubble_delegate); 129 views::BubbleDelegateView::CreateBubble(bubble_delegate);
130 controller->Show(bubble_delegate); 130 controller->Show(bubble_delegate);
131 } 131 }
132 132
133 } // namespace extensions 133 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698