OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/media/chrome_midi_permission_context.h" | 5 #include "chrome/browser/media/chrome_midi_permission_context.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/permission_queue_controller.h" | 9 #include "chrome/browser/content_settings/permission_queue_controller.h" |
10 #include "chrome/browser/content_settings/permission_request_id.h" | 10 #include "chrome/browser/content_settings/permission_request_id.h" |
11 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 11 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
12 #include "chrome/browser/profiles/profile.h" | 12 #include "chrome/browser/profiles/profile.h" |
13 #include "chrome/browser/tab_contents/tab_util.h" | 13 #include "chrome/browser/tab_contents/tab_util.h" |
14 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" | 14 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
15 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" | 15 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
16 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
17 #include "content/public/browser/browser_thread.h" | 17 #include "content/public/browser/browser_thread.h" |
18 #include "content/public/browser/web_contents.h" | 18 #include "content/public/browser/web_contents.h" |
19 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" |
| 20 #include "grit/theme_resources.h" |
20 #include "net/base/net_util.h" | 21 #include "net/base/net_util.h" |
21 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
22 | 23 |
23 class MidiPermissionRequest : public PermissionBubbleRequest { | 24 class MidiPermissionRequest : public PermissionBubbleRequest { |
24 public: | 25 public: |
25 MidiPermissionRequest( | 26 MidiPermissionRequest( |
26 ChromeMidiPermissionContext* context, | 27 ChromeMidiPermissionContext* context, |
27 const PermissionRequestID& id, | 28 const PermissionRequestID& id, |
28 const GURL& requesting_frame, | 29 const GURL& requesting_frame, |
29 const std::string& display_languages, | 30 const std::string& display_languages, |
30 const content::BrowserContext::MidiSysExPermissionCallback& callback); | 31 const content::BrowserContext::MidiSysExPermissionCallback& callback); |
31 virtual ~MidiPermissionRequest(); | 32 virtual ~MidiPermissionRequest(); |
32 | 33 |
33 // PermissionBubbleDelegate: | 34 // PermissionBubbleDelegate: |
| 35 virtual int GetIconID() const OVERRIDE; |
34 virtual base::string16 GetMessageText() const OVERRIDE; | 36 virtual base::string16 GetMessageText() const OVERRIDE; |
35 virtual base::string16 GetMessageTextFragment() const OVERRIDE; | 37 virtual base::string16 GetMessageTextFragment() const OVERRIDE; |
36 virtual base::string16 GetAlternateAcceptButtonText() const OVERRIDE; | 38 virtual bool HasUserGesture() const OVERRIDE; |
37 virtual base::string16 GetAlternateDenyButtonText() const OVERRIDE; | |
38 virtual void PermissionGranted() OVERRIDE; | 39 virtual void PermissionGranted() OVERRIDE; |
39 virtual void PermissionDenied() OVERRIDE; | 40 virtual void PermissionDenied() OVERRIDE; |
40 virtual void Cancelled() OVERRIDE; | 41 virtual void Cancelled() OVERRIDE; |
41 virtual void RequestFinished() OVERRIDE; | 42 virtual void RequestFinished() OVERRIDE; |
42 | 43 |
43 private: | 44 private: |
44 ChromeMidiPermissionContext* context_; | 45 ChromeMidiPermissionContext* context_; |
45 const PermissionRequestID id_; | 46 const PermissionRequestID id_; |
46 GURL requesting_frame_; | 47 GURL requesting_frame_; |
47 std::string display_languages_; | 48 std::string display_languages_; |
48 const content::BrowserContext::MidiSysExPermissionCallback& callback_; | 49 const content::BrowserContext::MidiSysExPermissionCallback& callback_; |
49 | 50 |
50 DISALLOW_COPY_AND_ASSIGN(MidiPermissionRequest); | 51 DISALLOW_COPY_AND_ASSIGN(MidiPermissionRequest); |
51 }; | 52 }; |
52 | 53 |
53 MidiPermissionRequest::MidiPermissionRequest( | 54 MidiPermissionRequest::MidiPermissionRequest( |
54 ChromeMidiPermissionContext* context, | 55 ChromeMidiPermissionContext* context, |
55 const PermissionRequestID& id, | 56 const PermissionRequestID& id, |
56 const GURL& requesting_frame, | 57 const GURL& requesting_frame, |
57 const std::string& display_languages, | 58 const std::string& display_languages, |
58 const content::BrowserContext::MidiSysExPermissionCallback& callback) | 59 const content::BrowserContext::MidiSysExPermissionCallback& callback) |
59 : context_(context), | 60 : context_(context), |
60 id_(id), | 61 id_(id), |
61 requesting_frame_(requesting_frame), | 62 requesting_frame_(requesting_frame), |
62 display_languages_(display_languages), | 63 display_languages_(display_languages), |
63 callback_(callback) {} | 64 callback_(callback) {} |
64 | 65 |
65 MidiPermissionRequest::~MidiPermissionRequest() {} | 66 MidiPermissionRequest::~MidiPermissionRequest() {} |
66 | 67 |
| 68 int MidiPermissionRequest::GetIconID() const { |
| 69 return IDR_ALLOWED_MIDI_SYSEX; |
| 70 } |
| 71 |
67 base::string16 MidiPermissionRequest::GetMessageText() const { | 72 base::string16 MidiPermissionRequest::GetMessageText() const { |
68 return l10n_util::GetStringFUTF16( | 73 return l10n_util::GetStringFUTF16( |
69 IDS_MIDI_SYSEX_INFOBAR_QUESTION, | 74 IDS_MIDI_SYSEX_INFOBAR_QUESTION, |
70 net::FormatUrl(requesting_frame_.GetOrigin(), display_languages_)); | 75 net::FormatUrl(requesting_frame_.GetOrigin(), display_languages_)); |
71 } | 76 } |
72 | 77 |
73 base::string16 MidiPermissionRequest::GetMessageTextFragment() const { | 78 base::string16 MidiPermissionRequest::GetMessageTextFragment() const { |
74 return l10n_util::GetStringUTF16(IDS_MIDI_SYSEX_PERMISSION_FRAGMENT); | 79 return l10n_util::GetStringUTF16(IDS_MIDI_SYSEX_PERMISSION_FRAGMENT); |
75 } | 80 } |
76 | 81 |
77 base::string16 MidiPermissionRequest::GetAlternateAcceptButtonText() const { | 82 bool MidiPermissionRequest::HasUserGesture() const { |
78 return l10n_util::GetStringUTF16(IDS_MIDI_SYSEX_ALLOW_BUTTON); | 83 // TODO(gbillock): plumb through. |
79 } | 84 return false; |
80 | |
81 base::string16 MidiPermissionRequest::GetAlternateDenyButtonText() const { | |
82 return l10n_util::GetStringUTF16(IDS_MIDI_SYSEX_DENY_BUTTON); | |
83 } | 85 } |
84 | 86 |
85 void MidiPermissionRequest::PermissionGranted() { | 87 void MidiPermissionRequest::PermissionGranted() { |
86 context_->NotifyPermissionSet(id_, requesting_frame_, callback_, true); | 88 context_->NotifyPermissionSet(id_, requesting_frame_, callback_, true); |
87 } | 89 } |
88 | 90 |
89 void MidiPermissionRequest::PermissionDenied() { | 91 void MidiPermissionRequest::PermissionDenied() { |
90 context_->NotifyPermissionSet(id_, requesting_frame_, callback_, false); | 92 context_->NotifyPermissionSet(id_, requesting_frame_, callback_, false); |
91 } | 93 } |
92 | 94 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 } | 244 } |
243 | 245 |
244 void ChromeMidiPermissionContext::CancelPendingInfobarRequest( | 246 void ChromeMidiPermissionContext::CancelPendingInfobarRequest( |
245 const PermissionRequestID& id) { | 247 const PermissionRequestID& id) { |
246 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 248 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
247 if (shutting_down_) | 249 if (shutting_down_) |
248 return; | 250 return; |
249 // TODO(gbillock): Add support for cancellation to permission bubbles. | 251 // TODO(gbillock): Add support for cancellation to permission bubbles. |
250 GetQueueController()->CancelInfoBarRequest(id); | 252 GetQueueController()->CancelInfoBarRequest(id); |
251 } | 253 } |
OLD | NEW |