1/* -*- Mode: IDL; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 *
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7#include "nsISupports.idl"
8
9interface nsIWebBrowserPersistDocumentReceiver;
10
11/**
12 * Interface for objects which represent a document that can be
13 * serialized with nsIWebBrowserPersist.  This interface is
14 * asynchronous because the actual document can be in another process
15 * (e.g., if this object is an nsFrameLoader for an out-of-process
16 * frame).
17 *
18 * Warning: this is currently implemented only by nsFrameLoader, and
19 * may change in the future to become more frame-loader-specific or be
20 * merged into nsIFrameLoader.  See bug 1101100 comment #34.
21 *
22 * @see nsIWebBrowserPersistDocumentReceiver
23 * @see nsIWebBrowserPersistDocument
24 * @see nsIWebBrowserPersist
25 *
26 * @param aOuterWindowID
27 *        The outer window ID of the subframe we'd like to persist.
28 *        If set at 0, nsIWebBrowserPersistable will attempt to persist
29 *        the top-level document. If the outer window ID is for a subframe
30 *        that does not exist, or is not held beneath the nsIWebBrowserPersistable,
31 *        aRecv's onError method will be called with NS_ERROR_NO_CONTENT.
32 * @param aRecv
33 *        The nsIWebBrowserPersistDocumentReceiver is a callback that
34 *        will be fired once the document is ready for persisting.
35 */
36[uuid(f4c3fa8e-83e9-49f8-ac6f-951fc7541fe4)]
37interface nsIWebBrowserPersistable : nsISupports
38{
39  void startPersistence(in unsigned long long aOuterWindowID,
40                        in nsIWebBrowserPersistDocumentReceiver aRecv);
41};
42