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

Side by Side Diff: chrome/browser/media/midi_permission_infobar_delegate.cc

Issue 20990005: Web MIDI: implement permission infobar (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review #2 and #10 Created 7 years, 4 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/media/midi_permission_infobar_delegate.h"
6
7 #include "chrome/browser/content_settings/permission_queue_controller.h"
8 #include "chrome/browser/content_settings/permission_request_id.h"
9 #include "chrome/browser/infobars/infobar_service.h"
10 #include "content/public/browser/navigation_details.h"
11 #include "content/public/browser/navigation_entry.h"
12 #include "content/public/browser/web_contents.h"
13 #include "grit/generated_resources.h"
14 #include "grit/locale_settings.h"
15 #include "grit/theme_resources.h"
16 #include "net/base/net_util.h"
17 #include "ui/base/l10n/l10n_util.h"
18
19 // static
20 InfoBarDelegate* MIDIPermissionInfoBarDelegate::Create(
21 InfoBarService* infobar_service,
22 PermissionQueueController* controller,
23 const PermissionRequestID& id,
24 const GURL& requesting_frame,
25 const std::string& display_languages) {
26 return infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>(
27 new MIDIPermissionInfoBarDelegate(infobar_service,
28 controller,
29 id,
30 requesting_frame,
31 display_languages)));
32 }
33
34 MIDIPermissionInfoBarDelegate::MIDIPermissionInfoBarDelegate(
35 InfoBarService* infobar_service,
36 PermissionQueueController* controller,
37 const PermissionRequestID& id,
38 const GURL& requesting_frame,
39 const std::string& display_languages)
40 : ConfirmInfoBarDelegate(infobar_service),
41 controller_(controller),
42 id_(id),
43 requesting_frame_(requesting_frame),
44 display_languages_(display_languages) {
45 const content::NavigationEntry* committed_entry = infobar_service->
46 web_contents()->GetController().GetLastCommittedEntry();
47 contents_unique_id_ = committed_entry ? committed_entry->GetUniqueID() : 0;
48 }
49
50 int MIDIPermissionInfoBarDelegate::GetIconID() const {
51 return IDR_INFOBAR_MIDI_SYSEX;
52 }
53
54 InfoBarDelegate::Type MIDIPermissionInfoBarDelegate::GetInfoBarType() const {
55 return PAGE_ACTION_TYPE;
56 }
57
58 bool MIDIPermissionInfoBarDelegate::ShouldExpireInternal(
59 const content::LoadCommittedDetails& details) const {
60 // This implementation matches InfoBarDelegate::ShouldExpireInternal(), but
61 // uses the unique ID we set in the constructor instead of that stored in the
62 // base class.
63 return (contents_unique_id_ != details.entry->GetUniqueID()) ||
64 (content::PageTransitionStripQualifier(
65 details.entry->GetTransitionType()) ==
66 content::PAGE_TRANSITION_RELOAD);
67 }
68
69 string16 MIDIPermissionInfoBarDelegate::GetMessageText() const {
70 return l10n_util::GetStringFUTF16(IDS_MIDI_SYSEX_INFOBAR_QUESTION,
71 net::FormatUrl(requesting_frame_.GetOrigin(), display_languages_));
Peter Kasting 2013/08/02 06:00:57 Nit: All lines of args must be aligned (i.e. move
72 }
73
74 string16 MIDIPermissionInfoBarDelegate::GetButtonLabel(
75 InfoBarButton button) const {
76 return l10n_util::GetStringUTF16((button == BUTTON_OK) ?
77 IDS_MIDI_SYSEX_ALLOW_BUTTON : IDS_MIDI_SYSEX_DENY_BUTTON);
78 }
79
80 bool MIDIPermissionInfoBarDelegate::Accept() {
81 SetPermission(true, true);
82 return true;
83 }
84
85 bool MIDIPermissionInfoBarDelegate::Cancel() {
86 SetPermission(true, false);
87 return true;
88 }
89
90 void MIDIPermissionInfoBarDelegate::SetPermission(bool update_content_setting,
Peter Kasting 2013/08/02 06:00:57 Why does this take a first bool if it's always tru
Takashi Toyoshima 2013/08/02 07:22:23 Agreed... GeolocationInfoBarDelegate has the same
91 bool allowed) {
92 controller_->OnPermissionSet(id_, requesting_frame_,
93 web_contents()->GetURL(),
94 update_content_setting, allowed);
95 }
96
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698