| 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
|
|
|