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

Side by Side Diff: chrome/browser/pepper_broker_infobar_delegate.cc

Issue 190063006: Infobar Componentization Proof of Concept (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor fixes Created 6 years, 9 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) 2012 The Chromium Authors. All rights reserved. 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 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/pepper_broker_infobar_delegate.h" 5 #include "chrome/browser/pepper_broker_infobar_delegate.h"
6 6
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/content_settings/host_content_settings_map.h" 8 #include "chrome/browser/content_settings/host_content_settings_map.h"
9 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 9 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
10 #include "chrome/browser/infobars/infobar.h" 10 #include "chrome/browser/infobars/infobar.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, 49 CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
50 std::string()); 50 std::string());
51 51
52 if (setting == CONTENT_SETTING_ASK) { 52 if (setting == CONTENT_SETTING_ASK) {
53 content::RecordAction( 53 content::RecordAction(
54 base::UserMetricsAction("PPAPI.BrokerInfobarDisplayed")); 54 base::UserMetricsAction("PPAPI.BrokerInfobarDisplayed"));
55 InfoBarService* infobar_service = 55 InfoBarService* infobar_service =
56 InfoBarService::FromWebContents(web_contents); 56 InfoBarService::FromWebContents(web_contents);
57 infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( 57 infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(
58 scoped_ptr<ConfirmInfoBarDelegate>(new PepperBrokerInfoBarDelegate( 58 scoped_ptr<ConfirmInfoBarDelegate>(new PepperBrokerInfoBarDelegate(
59 url, plugin_path, 59 web_contents,
60 url,
61 plugin_path,
60 profile->GetPrefs()->GetString(prefs::kAcceptLanguages), 62 profile->GetPrefs()->GetString(prefs::kAcceptLanguages),
61 content_settings, tab_content_settings, callback)))); 63 content_settings,
64 tab_content_settings,
65 callback))));
62 return; 66 return;
63 } 67 }
64 68
65 bool allowed = (setting == CONTENT_SETTING_ALLOW); 69 bool allowed = (setting == CONTENT_SETTING_ALLOW);
66 content::RecordAction(allowed ? 70 content::RecordAction(allowed ?
67 base::UserMetricsAction("PPAPI.BrokerSettingAllow") : 71 base::UserMetricsAction("PPAPI.BrokerSettingAllow") :
68 base::UserMetricsAction("PPAPI.BrokerSettingDeny")); 72 base::UserMetricsAction("PPAPI.BrokerSettingDeny"));
69 tab_content_settings->SetPepperBrokerAllowed(allowed); 73 tab_content_settings->SetPepperBrokerAllowed(allowed);
70 callback.Run(allowed); 74 callback.Run(allowed);
71 } 75 }
72 76
73 PepperBrokerInfoBarDelegate::PepperBrokerInfoBarDelegate( 77 PepperBrokerInfoBarDelegate::PepperBrokerInfoBarDelegate(
78 content::WebContents* web_contents,
74 const GURL& url, 79 const GURL& url,
75 const base::FilePath& plugin_path, 80 const base::FilePath& plugin_path,
76 const std::string& languages, 81 const std::string& languages,
77 HostContentSettingsMap* content_settings, 82 HostContentSettingsMap* content_settings,
78 TabSpecificContentSettings* tab_content_settings, 83 TabSpecificContentSettings* tab_content_settings,
79 const base::Callback<void(bool)>& callback) 84 const base::Callback<void(bool)>& callback)
80 : ConfirmInfoBarDelegate(), 85 : ContentConfirmInfoBarDelegate(web_contents),
81 url_(url), 86 url_(url),
82 plugin_path_(plugin_path), 87 plugin_path_(plugin_path),
83 languages_(languages), 88 languages_(languages),
84 content_settings_(content_settings), 89 content_settings_(content_settings),
85 tab_content_settings_(tab_content_settings), 90 tab_content_settings_(tab_content_settings),
86 callback_(callback) { 91 callback_(callback) {}
87 }
88 92
89 PepperBrokerInfoBarDelegate::~PepperBrokerInfoBarDelegate() { 93 PepperBrokerInfoBarDelegate::~PepperBrokerInfoBarDelegate() {
90 if (!callback_.is_null()) 94 if (!callback_.is_null())
91 callback_.Run(false); 95 callback_.Run(false);
92 } 96 }
93 97
94 int PepperBrokerInfoBarDelegate::GetIconID() const { 98 int PepperBrokerInfoBarDelegate::GetIconID() const {
95 return IDR_INFOBAR_PLUGIN_INSTALL; 99 return IDR_INFOBAR_PLUGIN_INSTALL;
96 } 100 }
97 101
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 base::UserMetricsAction("PPAPI.BrokerInfobarClickedDeny")); 149 base::UserMetricsAction("PPAPI.BrokerInfobarClickedDeny"));
146 callback_.Run(result); 150 callback_.Run(result);
147 callback_ = base::Callback<void(bool)>(); 151 callback_ = base::Callback<void(bool)>();
148 content_settings_->SetContentSetting( 152 content_settings_->SetContentSetting(
149 ContentSettingsPattern::FromURLNoWildcard(url_), 153 ContentSettingsPattern::FromURLNoWildcard(url_),
150 ContentSettingsPattern::Wildcard(), 154 ContentSettingsPattern::Wildcard(),
151 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, 155 CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
152 std::string(), result ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK); 156 std::string(), result ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK);
153 tab_content_settings_->SetPepperBrokerAllowed(result); 157 tab_content_settings_->SetPepperBrokerAllowed(result);
154 } 158 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698