mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-14 10:43:24 +00:00
93 lines
2.9 KiB
Plaintext
93 lines
2.9 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/*
|
|
* The contents of this file are subject to the Mozilla Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is Mozilla.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape
|
|
* Communications. Portions created by Netscape Communications are
|
|
* Copyright (C) 2001 by Netscape Communications. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Vidur Apparao <vidur@netscape.com> (original author)
|
|
*/
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
interface nsIDocument;
|
|
interface nsIDOMHTMLScriptElement;
|
|
interface nsIScriptLoaderObserver;
|
|
|
|
[scriptable, uuid(501209d3-7edf-437d-9948-3c6d1c08ef7a)]
|
|
interface nsIScriptLoader : nsISupports {
|
|
/**
|
|
* Initialize loader with a document. The container of this document
|
|
* will be used for getting script evaluation information, including
|
|
* the context in which to do the evaluation. The loader maintains a
|
|
* strong reference to the document.
|
|
*
|
|
* @param aDocument The document to use as the basis for script
|
|
* processing.
|
|
*/
|
|
void init(in nsIDocument aDocument);
|
|
|
|
/**
|
|
* The loader maintains a strong reference to the document with
|
|
* which it is initialized. This call forces the reference to
|
|
* be dropped.
|
|
*/
|
|
void dropDocumentReference();
|
|
|
|
/**
|
|
* Add an observer for all scripts loaded through this loader.
|
|
*
|
|
* @param aObserver observer for all script processing.
|
|
*/
|
|
void addObserver(in nsIScriptLoaderObserver aObserver);
|
|
|
|
/**
|
|
* Remove an observer.
|
|
*
|
|
* @param aObserver observer to be removed
|
|
*/
|
|
void removeObserver(in nsIScriptLoaderObserver aObserver);
|
|
|
|
/**
|
|
* Process a script element. This will include both loading the
|
|
* source of the element if it is not inline and evaluating
|
|
* the script itself.
|
|
*
|
|
* @param aElement The element representing the script to be loaded and
|
|
* evaluated.
|
|
* @param aObserver An observer for this script load only
|
|
*
|
|
*/
|
|
void processScriptElement(in nsIDOMHTMLScriptElement aElement,
|
|
in nsIScriptLoaderObserver aObserver);
|
|
|
|
/**
|
|
* Suspend processing of new script elements. Any call to
|
|
* processScriptElement() will fail with a return code of
|
|
* NS_ERROR_NOT_AVAILABLE. Note that this DOES NOT suspend
|
|
* currently loading or executing scripts. All calls to
|
|
* suspend() must be matched with an equal number of calls
|
|
* to resume() before processing of new script elements
|
|
* continues.
|
|
*/
|
|
void suspend();
|
|
|
|
/**
|
|
* Resume processing of new script elements.
|
|
*/
|
|
void resume();
|
|
};
|