Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / browser_content_setting_bubble_model_delegate.cc
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/browser_content_setting_bubble_model_delegate.h"
6
7 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/browser_dialogs.h"
10 #include "chrome/browser/ui/browser_tabstrip.h"
11 #include "chrome/browser/ui/chrome_pages.h"
12 #include "chrome/common/url_constants.h"
13 #include "components/google/core/browser/google_util.h"
14
15 // The URL for when the user clicks "learn more" on the mixed scripting page
16 // icon bubble.
17 const char kInsecureScriptHelpUrl[] =
18     "https://support.google.com/chrome/bin/answer.py?answer=1342714";
19
20 BrowserContentSettingBubbleModelDelegate::
21 BrowserContentSettingBubbleModelDelegate(Browser* browser) : browser_(browser) {
22 }
23
24 BrowserContentSettingBubbleModelDelegate::
25 ~BrowserContentSettingBubbleModelDelegate() {
26 }
27
28 void BrowserContentSettingBubbleModelDelegate::ShowCollectedCookiesDialog(
29     content::WebContents* web_contents) {
30   chrome::ShowCollectedCookiesDialog(web_contents);
31 }
32
33 void BrowserContentSettingBubbleModelDelegate::ShowContentSettingsPage(
34     ContentSettingsType type) {
35   switch (type) {
36     case CONTENT_SETTINGS_TYPE_MIXEDSCRIPT:
37       // We don't (yet?) implement user-settable exceptions for mixed script
38       // blocking, so bounce to an explanatory page for now.
39       TabSpecificContentSettings::RecordMixedScriptAction(
40           TabSpecificContentSettings::MIXED_SCRIPT_ACTION_CLICKED_LEARN_MORE);
41       chrome::AddSelectedTabWithURL(browser_,
42                                     GURL(kInsecureScriptHelpUrl),
43                                     ui::PAGE_TRANSITION_LINK);
44       return;
45     case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
46       chrome::ShowSettingsSubPage(browser_, chrome::kHandlerSettingsSubPage);
47       return;
48     default:
49       chrome::ShowContentSettings(browser_, type);
50       return;
51   }
52 }
53
54 void BrowserContentSettingBubbleModelDelegate::ShowLearnMorePage(
55     ContentSettingsType type) {
56   if (type != CONTENT_SETTINGS_TYPE_PLUGINS)
57     return;
58   chrome::AddSelectedTabWithURL(browser_,
59                                 GURL(chrome::kBlockedPluginLearnMoreURL),
60                                 ui::PAGE_TRANSITION_LINK);
61 }