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

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

Issue 1081113002: Revert of [Extensions] Make extension message bubble factory platform-abstract (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
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/browser/ui/views/toolbar/wrench_toolbar_button.h" 17 #include "chrome/browser/ui/views/toolbar/wrench_toolbar_button.h"
18 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler. h" 18 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler. h"
19 #include "chrome/common/url_constants.h" 19 #include "chrome/common/url_constants.h"
20 #include "content/public/browser/browser_url_handler.h" 20 #include "content/public/browser/browser_url_handler.h"
21 #include "content/public/browser/navigation_entry.h" 21 #include "content/public/browser/navigation_entry.h"
22 22
23 namespace extensions { 23 namespace extensions {
24 24
25 namespace { 25 namespace {
26 26
27 void ShowSettingsApiBubble(SettingsApiOverrideType type, 27 void ShowSettingsApiBubble(SettingsApiOverrideType type,
28 const std::string& extension_id,
28 Profile* profile, 29 Profile* profile,
29 views::View* anchor_view, 30 views::View* anchor_view,
30 views::BubbleBorder::Arrow arrow) { 31 views::BubbleBorder::Arrow arrow) {
31 scoped_ptr<SettingsApiBubbleController> settings_api_bubble( 32 scoped_ptr<SettingsApiBubbleController> settings_api_bubble(
32 new SettingsApiBubbleController(profile, type)); 33 new SettingsApiBubbleController(profile, type));
33 if (!settings_api_bubble->ShouldShow()) 34 if (!settings_api_bubble->ShouldShow(extension_id))
34 return; 35 return;
35 36
36 SettingsApiBubbleController* controller = settings_api_bubble.get(); 37 SettingsApiBubbleController* controller = settings_api_bubble.get();
37 ExtensionMessageBubbleView* bubble_delegate = new ExtensionMessageBubbleView( 38 ExtensionMessageBubbleView* bubble_delegate = new ExtensionMessageBubbleView(
38 anchor_view, arrow, settings_api_bubble.Pass()); 39 anchor_view, arrow, settings_api_bubble.Pass());
39 views::BubbleDelegateView::CreateBubble(bubble_delegate); 40 views::BubbleDelegateView::CreateBubble(bubble_delegate);
40 controller->Show(bubble_delegate); 41 controller->Show(bubble_delegate);
41 } 42 }
42 43
43 } // namespace 44 } // namespace
44 45
45 void MaybeShowExtensionControlledHomeNotification(Browser* browser) { 46 void MaybeShowExtensionControlledHomeNotification(Browser* browser) {
46 #if !defined(OS_WIN) 47 #if !defined(OS_WIN)
47 return; 48 return;
48 #endif 49 #endif
49 50
50 // The bubble will try to anchor itself against the home button 51 const Extension* extension =
51 views::View* anchor_view = BrowserView::GetBrowserViewForBrowser(browser)-> 52 GetExtensionOverridingHomepage(browser->profile());
52 toolbar()->home_button(); 53 if (extension) {
53 ShowSettingsApiBubble(BUBBLE_TYPE_HOME_PAGE, 54 // The bubble will try to anchor itself against the home button
54 browser->profile(), 55 views::View* anchor_view = BrowserView::GetBrowserViewForBrowser(browser)->
55 anchor_view, 56 toolbar()->home_button();
56 views::BubbleBorder::TOP_LEFT); 57 ShowSettingsApiBubble(BUBBLE_TYPE_HOME_PAGE,
58 extension->id(),
59 browser->profile(),
60 anchor_view,
61 views::BubbleBorder::TOP_LEFT);
62 }
57 } 63 }
58 64
59 void MaybeShowExtensionControlledSearchNotification( 65 void MaybeShowExtensionControlledSearchNotification(
60 Profile* profile, 66 Profile* profile,
61 content::WebContents* web_contents, 67 content::WebContents* web_contents,
62 const AutocompleteMatch& match) { 68 const AutocompleteMatch& match) {
63 #if !defined(OS_WIN) 69 #if !defined(OS_WIN)
64 return; 70 return;
65 #endif 71 #endif
66 72
67 if (AutocompleteMatch::IsSearchType(match.type) && 73 if (AutocompleteMatch::IsSearchType(match.type) &&
68 match.type != AutocompleteMatchType::SEARCH_OTHER_ENGINE) { 74 match.type != AutocompleteMatchType::SEARCH_OTHER_ENGINE) {
69 ToolbarView* toolbar = 75 const Extension* extension = GetExtensionOverridingSearchEngine(profile);
70 BrowserView::GetBrowserViewForBrowser( 76 if (extension) {
71 chrome::FindBrowserWithWebContents(web_contents))->toolbar(); 77 ToolbarView* toolbar =
72 ShowSettingsApiBubble(BUBBLE_TYPE_SEARCH_ENGINE, 78 BrowserView::GetBrowserViewForBrowser(
73 profile, 79 chrome::FindBrowserWithWebContents(web_contents))->toolbar();
74 toolbar->app_menu(), 80 ShowSettingsApiBubble(BUBBLE_TYPE_SEARCH_ENGINE,
75 views::BubbleBorder::TOP_RIGHT); 81 extension->id(),
82 profile,
83 toolbar->app_menu(),
84 views::BubbleBorder::TOP_RIGHT);
85 }
76 } 86 }
77 } 87 }
78 88
79 void MaybeShowExtensionControlledNewTabPage( 89 void MaybeShowExtensionControlledNewTabPage(
80 Browser* browser, content::WebContents* web_contents) { 90 Browser* browser, content::WebContents* web_contents) {
81 #if !defined(OS_WIN) 91 #if !defined(OS_WIN)
82 return; 92 return;
83 #endif 93 #endif
84 94
85 content::NavigationEntry* entry = 95 content::NavigationEntry* entry =
(...skipping 22 matching lines...) Expand all
108 NtpOverriddenBubbleController* controller = ntp_overridden_bubble.get(); 118 NtpOverriddenBubbleController* controller = ntp_overridden_bubble.get();
109 ExtensionMessageBubbleView* bubble_delegate = new ExtensionMessageBubbleView( 119 ExtensionMessageBubbleView* bubble_delegate = new ExtensionMessageBubbleView(
110 BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(), 120 BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->app_menu(),
111 views::BubbleBorder::TOP_RIGHT, 121 views::BubbleBorder::TOP_RIGHT,
112 ntp_overridden_bubble.Pass()); 122 ntp_overridden_bubble.Pass());
113 views::BubbleDelegateView::CreateBubble(bubble_delegate); 123 views::BubbleDelegateView::CreateBubble(bubble_delegate);
114 controller->Show(bubble_delegate); 124 controller->Show(bubble_delegate);
115 } 125 }
116 126
117 } // namespace extensions 127 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698