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.
4
5#ifndef CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_PERMISSION_REQUEST_H_
6#define CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_PERMISSION_REQUEST_H_
7
8#include "chrome/browser/ui/website_settings/permission_bubble_request.h"
9#include "chrome/common/custom_handlers/protocol_handler.h"
10
11class ProtocolHandlerRegistry;
12
13// This class provides display data for a permission bubble request, shown when
14// a page wants to register a protocol handler and was triggered by a user
15// action.
16class RegisterProtocolHandlerPermissionRequest
17    : public PermissionBubbleRequest {
18 public:
19  RegisterProtocolHandlerPermissionRequest(
20      ProtocolHandlerRegistry* registry,
21      const ProtocolHandler& handler,
22      GURL url,
23      bool user_gesture);
24  virtual ~RegisterProtocolHandlerPermissionRequest();
25
26  // PermissionBubbleRequest:
27  virtual int GetIconID() const OVERRIDE;
28  virtual base::string16 GetMessageText() const OVERRIDE;
29  virtual base::string16 GetMessageTextFragment() const OVERRIDE;
30  virtual bool HasUserGesture() const OVERRIDE;
31  virtual GURL GetRequestingHostname() const OVERRIDE;
32  virtual void PermissionGranted() OVERRIDE;
33  virtual void PermissionDenied() OVERRIDE;
34  virtual void Cancelled() OVERRIDE;
35  virtual void RequestFinished() OVERRIDE;
36
37 private:
38  ProtocolHandlerRegistry* registry_;
39  ProtocolHandler handler_;
40  GURL url_;
41  bool user_gesture_;
42
43  DISALLOW_COPY_AND_ASSIGN(RegisterProtocolHandlerPermissionRequest);
44};
45
46#endif  // CHROME_BROWSER_CUSTOM_HANDLERS_REGISTER_PROTOCOL_HANDLER_PERMISSION_REQUEST_H_
47