|
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* vim:set tw=80 expandtab softtabstop=2 ts=2 sw=2: */ |
|
3 |
|
4 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
5 * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
|
6 * You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
7 |
|
8 #include "nsIDOMMozBrowserFrame.idl" |
|
9 |
|
10 interface nsITabParent; |
|
11 |
|
12 [scriptable, builtinclass, uuid(929AED00-3E15-49B7-8CA2-75003715B7E7)] |
|
13 interface nsIMozBrowserFrame : nsIDOMMozBrowserFrame |
|
14 { |
|
15 /** |
|
16 * Gets whether this frame really is a browser or app frame. |
|
17 * |
|
18 * In order to really be a browser frame, this frame's |
|
19 * nsIDOMMozBrowserFrame::mozbrowser attribute must be true, and the frame |
|
20 * may have to pass various security checks. |
|
21 */ |
|
22 [infallible] readonly attribute boolean reallyIsBrowserOrApp; |
|
23 |
|
24 /** |
|
25 * Gets whether this frame really is an app frame. |
|
26 * |
|
27 * In order to really be an app frame, this frame must really be a browser |
|
28 * frame (this requirement will go away eventually), and the frame's mozapp |
|
29 * attribute must point to the manifest of a valid app. |
|
30 */ |
|
31 [infallible] readonly attribute boolean reallyIsApp; |
|
32 |
|
33 /** |
|
34 * This corresponds to the expecting-system-message attribute, which tells us |
|
35 * whether we should expect that this frame will receive a system message once |
|
36 * it starts up. |
|
37 * |
|
38 * It's the embedder's job to set this attribute on a frame. Its presence |
|
39 * might cause us to increase the priority of the frame's process. |
|
40 */ |
|
41 [infallible] readonly attribute boolean isExpectingSystemMessage; |
|
42 |
|
43 /** |
|
44 * Gets this frame's app manifest URL, if the frame really is an app frame. |
|
45 * Otherwise, returns the empty string. |
|
46 * |
|
47 * This method is guaranteed not to fail. |
|
48 */ |
|
49 readonly attribute AString appManifestURL; |
|
50 |
|
51 /** |
|
52 * Normally, a frame tries to create its frame loader when its src is |
|
53 * modified, or its contentWindow is accessed. |
|
54 * |
|
55 * disallowCreateFrameLoader prevents the frame element from creating its |
|
56 * frame loader (in the same way that not being inside a document prevents the |
|
57 * creation of a frame loader). allowCreateFrameLoader lifts this restriction. |
|
58 * |
|
59 * These methods are not re-entrant -- it is an error to call |
|
60 * disallowCreateFrameLoader twice without first calling allowFrameLoader. |
|
61 * |
|
62 * It's also an error to call either method if we already have a frame loader. |
|
63 */ |
|
64 void disallowCreateFrameLoader(); |
|
65 void allowCreateFrameLoader(); |
|
66 |
|
67 /** |
|
68 * Create a remote (i.e., out-of-process) frame loader attached to the given |
|
69 * tab parent. |
|
70 * |
|
71 * It is an error to call this method if we already have a frame loader. |
|
72 */ |
|
73 void createRemoteFrameLoader(in nsITabParent aTabParent); |
|
74 }; |