docshell/base/nsIContentViewer.idl

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:785dbeee5b03
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 #include "nsISupports.idl"
6
7 interface nsIDocShell;
8 interface nsIDocument;
9 interface nsIDOMDocument;
10 interface nsISHEntry;
11 interface nsIPrintSettings;
12
13
14 %{ C++
15 class nsIWidget;
16 struct nsIntRect;
17 class nsIPresShell;
18 class nsPresContext;
19 class nsView;
20 class nsDOMNavigationTiming;
21 %}
22
23 [ptr] native nsIWidgetPtr(nsIWidget);
24 [ref] native nsIntRectRef(nsIntRect);
25 [ptr] native nsIPresShellPtr(nsIPresShell);
26 [ptr] native nsPresContextPtr(nsPresContext);
27 [ptr] native nsViewPtr(nsView);
28 [ptr] native nsDOMNavigationTimingPtr(nsDOMNavigationTiming);
29
30 [scriptable, builtinclass, uuid(0cb321bd-5b38-4586-8fcd-d43b366886fb)]
31 interface nsIContentViewer : nsISupports
32 {
33
34 [noscript] void init(in nsIWidgetPtr aParentWidget,
35 [const] in nsIntRectRef aBounds);
36
37 attribute nsIDocShell container;
38
39 [noscript,notxpcom,nostdcall] void loadStart(in nsIDocument aDoc);
40 void loadComplete(in nsresult aStatus);
41
42 /**
43 * Checks if the document wants to prevent unloading by firing beforeunload on
44 * the document, and if it does, prompts the user. The result is returned.
45 *
46 * @param aCallerClosesWindow indicates that the current caller will close the
47 * window. If the method returns true, all subsequent calls will be
48 * ignored.
49 */
50 boolean permitUnload([optional] in boolean aCallerClosesWindow);
51
52 /**
53 * Exposes whether we're blocked in a call to permitUnload.
54 */
55 readonly attribute boolean inPermitUnload;
56
57 /**
58 * As above, but this passes around the aShouldPrompt argument to keep
59 * track of whether the user has responded to a prompt.
60 * Used internally by the scriptable version to ensure we only prompt once.
61 */
62 [noscript,nostdcall] boolean permitUnloadInternal(in boolean aCallerClosesWindow,
63 inout boolean aShouldPrompt);
64
65 /**
66 * Exposes whether we're in the process of firing the beforeunload event.
67 * In this case, the corresponding docshell will not allow navigation.
68 */
69 readonly attribute boolean beforeUnloadFiring;
70
71 /**
72 * Works in tandem with permitUnload, if the caller decides not to close the
73 * window it indicated it will, it is the caller's responsibility to reset
74 * that with this method.
75 *
76 * @Note this method is only meant to be called on documents for which the
77 * caller has indicated that it will close the window. If that is not the case
78 * the behavior of this method is undefined.
79 */
80 void resetCloseWindow();
81 void pageHide(in boolean isUnload);
82
83 /**
84 * All users of a content viewer are responsible for calling both
85 * close() and destroy(), in that order.
86 *
87 * close() should be called when the load of a new page for the next
88 * content viewer begins, and destroy() should be called when the next
89 * content viewer replaces this one.
90 *
91 * |historyEntry| sets the session history entry for the content viewer. If
92 * this is null, then Destroy() will be called on the document by close().
93 * If it is non-null, the document will not be destroyed, and the following
94 * actions will happen when destroy() is called (*):
95 * - Sanitize() will be called on the viewer's document
96 * - The content viewer will set the contentViewer property on the
97 * history entry, and release its reference (ownership reversal).
98 * - hide() will be called, and no further destruction will happen.
99 *
100 * (*) unless the document is currently being printed, in which case
101 * it will never be saved in session history.
102 *
103 */
104 void close(in nsISHEntry historyEntry);
105 void destroy();
106
107 void stop();
108
109 attribute nsIDOMDocument DOMDocument;
110
111 /**
112 * Returns DOMDocument as nsIDocument and without addrefing.
113 */
114 [noscript,notxpcom] nsIDocument getDocument();
115
116 [noscript] void getBounds(in nsIntRectRef aBounds);
117 [noscript] void setBounds([const] in nsIntRectRef aBounds);
118
119 /**
120 * The previous content viewer, which has been |close|d but not
121 * |destroy|ed.
122 */
123 [noscript] attribute nsIContentViewer previousViewer;
124
125 void move(in long aX, in long aY);
126
127 void show();
128 void hide();
129
130 attribute boolean sticky;
131
132 /*
133 * This is called when the DOM window wants to be closed. Returns true
134 * if the window can close immediately. Otherwise, returns false and will
135 * close the DOM window as soon as practical.
136 */
137
138 boolean requestWindowClose();
139
140 /**
141 * Attach the content viewer to its DOM window and docshell.
142 * @param aState A state object that might be useful in attaching the DOM
143 * window.
144 * @param aSHEntry The history entry that the content viewer was stored in.
145 * The entry must have the docshells for all of the child
146 * documents stored in its child shell list.
147 */
148 void open(in nsISupports aState, in nsISHEntry aSHEntry);
149
150 /**
151 * Clears the current history entry. This is used if we need to clear out
152 * the saved presentation state.
153 */
154 void clearHistoryEntry();
155
156 /**
157 * Change the layout to view the document with page layout (like print preview), but
158 * dynamic and editable (like Galley layout).
159 */
160 void setPageMode(in boolean aPageMode, in nsIPrintSettings aPrintSettings);
161
162 /**
163 * Get the history entry that this viewer will save itself into when
164 * destroyed. Can return null
165 */
166 readonly attribute nsISHEntry historyEntry;
167
168 /**
169 * Indicates when we're in a state where content shouldn't be allowed to
170 * trigger a tab-modal prompt (as opposed to a window-modal prompt) because
171 * we're part way through some operation (eg beforeunload) that shouldn't be
172 * rentrant if the user closes the tab while the prompt is showing.
173 * See bug 613800.
174 */
175 readonly attribute boolean isTabModalPromptAllowed;
176
177 /**
178 * Returns whether this content viewer is in a hidden state.
179 */
180 readonly attribute boolean isHidden;
181
182 [noscript] readonly attribute nsIPresShellPtr presShell;
183 [noscript] readonly attribute nsPresContextPtr presContext;
184 // aDocument must not be null.
185 [noscript] void setDocumentInternal(in nsIDocument aDocument,
186 in boolean aForceReuseInnerWindow);
187 /**
188 * Find the view to use as the container view for MakeWindow. Returns
189 * null if this will be the root of a view manager hierarchy. In that
190 * case, if mParentWidget is null then this document should not even
191 * be displayed.
192 */
193 [noscript,notxpcom,nostdcall] nsViewPtr findContainerView();
194 /**
195 * Set collector for navigation timing data (load, unload events).
196 */
197 [noscript,notxpcom,nostdcall] void setNavigationTiming(in nsDOMNavigationTimingPtr aTiming);
198 };

mercurial