NaCl: Update revision in DEPS, r12770 -> r12773
[chromium-blink-merge.git] / chrome / browser / ui / website_settings / permission_bubble_request.h
blob4beec272c94c47cea63c09e2f339a12ac6181efb
1 // Copyright 2014 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.
5 #ifndef CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_BUBBLE_REQUEST_H_
6 #define CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_BUBBLE_REQUEST_H_
8 #include "base/strings/string16.h"
10 // Describes the interface a feature utilizing permission bubbles should
11 // implement. A class of this type is registered with the permission bubble
12 // manager to receive updates about the result of the permissions request
13 // from the bubble. It should live until it is unregistered or until
14 // PermissionsBubbleDestroyed is called.
15 // Note that no particular guarantees are made about what exact UI surface
16 // is presented to the user. The delegate may be coalesced with other bubble
17 // requests, or depending on the situation, not shown at all.
18 class PermissionBubbleRequest {
19 public:
20 virtual ~PermissionBubbleRequest() {}
22 // Returns the full prompt text for this permission. This is the only text
23 // that will be shown in the single-permission case and should be phrased
24 // positively as a complete sentence.
25 virtual base::string16 GetMessageText() const = 0;
27 // Returns the shortened prompt text for this permission. Must be phrased
28 // positively -- the permission bubble may coalesce different requests, and
29 // if it does, this text will be displayed next to a bullet or checkbox
30 // indicating the user grants the permission.
31 virtual base::string16 GetMessageTextFragment() const = 0;
33 // May return alternative text for the accept button in the case where this
34 // single permission request is triggered in the bubble. If it returns an
35 // empty string the default is used.
36 // If the permission request is coalesced, the text will revert to the default
37 // "Accept"-alike, so the message text must be clear enough for users to
38 // understand even if this text is not used.
39 virtual base::string16 GetAlternateAcceptButtonText() const = 0;
41 // May return alternative text for the deny button in the case where this
42 // single permission request is triggered in the bubble. If it returns an
43 // empty string the default is used. This text may not be used at all,
44 // so the |GetMessageText()| prompt should be clear enough to convey the
45 // permission request with generic button text.
46 virtual base::string16 GetAlternateDenyButtonText() const = 0;
48 // Called when the user has granted the requested permission.
49 virtual void PermissionGranted() = 0;
51 // Called when the user has denied the requested permission.
52 virtual void PermissionDenied() = 0;
54 // Called when the user has cancelled the permission request. This
55 // corresponds to a denial, but is segregated in case the context needs to
56 // be able to distinguish between an active refusal or an implicit refusal.
57 virtual void Cancelled() = 0;
59 // The bubble this request was associated with was answered by the user.
60 // It is safe for the request to be deleted at this point -- it will receive
61 // no further message from the permission bubble system. This method will
62 // eventually be called on every request which is not unregistered.
63 virtual void RequestFinished() = 0;
66 #endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_BUBBLE_REQUEST_H_