Update mojo surfaces bindings and mojo/cc/ glue
[chromium-blink-merge.git] / chrome / browser / content_settings / permission_bubble_request_impl.h
blob660dcbf65c02e671ad81b1a689bc57c756af0a2a
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_CONTENT_SETTINGS_PERMISSION_BUBBLE_REQUEST_IMPL_H_
6 #define CHROME_BROWSER_CONTENT_SETTINGS_PERMISSION_BUBBLE_REQUEST_IMPL_H_
8 #include "base/callback.h"
9 #include "chrome/browser/content_settings/permission_request_id.h"
10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
11 #include "components/content_settings/core/common/content_settings_types.h"
13 class GURL;
15 class PermissionContextBase;
17 // Default implementation of PermissionBubbleRequest, it is assumed that the
18 // caller owns it and that it can be deleted once the |delete_callback|
19 // is executed.
20 class PermissionBubbleRequestImpl : public PermissionBubbleRequest {
21 public:
23 typedef base::Callback<void(bool persist_permission, bool grant_permission)>
24 PermissionDecidedCallback;
26 PermissionBubbleRequestImpl(
27 const GURL& request_origin,
28 bool user_gesture,
29 ContentSettingsType type,
30 const std::string& display_languages,
31 const PermissionDecidedCallback permission_decided_callback,
32 const base::Closure delete_callback);
34 virtual ~PermissionBubbleRequestImpl();
36 // PermissionBubbleRequest:
37 virtual int GetIconID() const OVERRIDE;
38 virtual base::string16 GetMessageText() const OVERRIDE;
39 virtual base::string16 GetMessageTextFragment() const OVERRIDE;
40 virtual bool HasUserGesture() const OVERRIDE;
42 // TODO(miguelg) Change this method to GetOrigin()
43 virtual GURL GetRequestingHostname() const OVERRIDE;
45 // Remember to call RegisterActionTaken for these methods if you are
46 // overriding them.
47 virtual void PermissionGranted() OVERRIDE;
48 virtual void PermissionDenied() OVERRIDE;
49 virtual void Cancelled() OVERRIDE;
50 virtual void RequestFinished() OVERRIDE;
52 protected:
53 void RegisterActionTaken() { action_taken_ = true; }
55 private:
56 GURL request_origin_;
57 bool user_gesture_;
58 ContentSettingsType type_;
59 std::string display_languages_;
61 // Called once a decision is made about the permission.
62 const PermissionDecidedCallback permission_decided_callback_;
64 // Called when the bubble is no longer in use so it can be deleted by
65 // the caller.
66 const base::Closure delete_callback_;
67 bool is_finished_;
68 bool action_taken_;
70 DISALLOW_COPY_AND_ASSIGN(PermissionBubbleRequestImpl);
73 #endif // CHROME_BROWSER_CONTENT_SETTINGS_PERMISSION_BUBBLE_REQUEST_IMPL_H_