blob: aaeab6cc4f240577683404153cb6994648f79f1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_WINDOW_CONTROLLER_H_
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_WINDOW_CONTROLLER_H_
#pragma once
#include "base/basictypes.h"
#include "base/compiler_specific.h"
class BaseWindow;
class GURL;
class Profile;
class SessionID;
namespace base {
class DictionaryValue;
}
namespace gfx {
class Rect;
}
// This API needs to be implemented by any window that might be accessed
// through chrome.windows or chrome.tabs (e.g. browser windows and panels).
class ExtensionWindowController {
public:
enum Reason {
REASON_NONE,
REASON_TAB_STRIP_NOT_EDITABLE,
};
enum ProfileMatchType {
MATCH_NORMAL_ONLY,
MATCH_INCOGNITO
};
ExtensionWindowController(BaseWindow* window, Profile* profile);
virtual ~ExtensionWindowController();
BaseWindow* window() const { return window_; }
// Returns true if the window matches the profile.
bool MatchesProfile(Profile* profile, ProfileMatchType match_type) const;
// Populates a dictionary for the Window object. Override this to set
// implementation specific properties (call the base implementation first to
// set common properties).
virtual base::DictionaryValue* CreateWindowValue() const;
// Return a session id uniquely identifying the window.
virtual const SessionID& GetSessionId() const = 0;
// Populates a dictionary for the Window object, including a list of tabs.
virtual base::DictionaryValue* CreateWindowValueWithTabs() const = 0;
// Returns false if the window is in a state where closing the window is not
// permitted and sets |reason| if not NULL.
virtual bool CanClose(Reason* reason) const = 0;
// Set the window's fullscreen state. |extension_url| provides the url
// associated with the extension (used by FullscreenController).
virtual void SetFullscreenMode(bool is_fullscreen,
const GURL& extension_url) const = 0;
private:
BaseWindow* window_;
Profile* profile_;
DISALLOW_COPY_AND_ASSIGN(ExtensionWindowController);
};
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_WINDOW_CONTROLLER_H_
|