1// Copyright (c) 2012 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_UI_FULLSCREEN_FULLSCREEN_EXIT_BUBBLE_TYPE_H_
6#define CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_EXIT_BUBBLE_TYPE_H_
7
8#include "base/strings/string16.h"
9#include "url/gurl.h"
10
11class ExtensionService;
12
13// Describes the contents of the fullscreen exit bubble.
14// For example, if the user already agreed to fullscreen mode and the
15// web page then requests mouse lock, "do you want to allow mouse lock"
16// will be shown.
17enum FullscreenExitBubbleType {
18  FEB_TYPE_NONE = 0,
19
20  // For tab fullscreen mode.
21  // More comments about tab and browser fullscreen mode can be found in
22  // chrome/browser/ui/fullscreen/fullscreen_controller.h.
23  FEB_TYPE_FULLSCREEN_BUTTONS,
24  FEB_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS,
25  FEB_TYPE_MOUSELOCK_BUTTONS,
26  FEB_TYPE_FULLSCREEN_EXIT_INSTRUCTION,
27  FEB_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION,
28  FEB_TYPE_MOUSELOCK_EXIT_INSTRUCTION,
29
30  // For browser fullscreen mode.
31  FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION,
32  FEB_TYPE_BROWSER_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION
33};
34
35namespace fullscreen_bubble {
36
37base::string16 GetLabelTextForType(FullscreenExitBubbleType type,
38                                   const GURL& url,
39                                   ExtensionService* extension_service);
40base::string16 GetDenyButtonTextForType(FullscreenExitBubbleType type);
41bool ShowButtonsForType(FullscreenExitBubbleType type);
42void PermissionRequestedByType(FullscreenExitBubbleType type,
43                               bool* tab_fullscreen,
44                               bool* mouse_lock);
45
46}  // namespace fullscreen_bubble
47
48#endif  // CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_EXIT_BUBBLE_TYPE_H_
49