1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
3
* The contents of this file are subject to the Mozilla Public
4
* License Version 1.1 (the "License"); you may not use this file
5
* except in compliance with the License. You may obtain a copy of
6
* the License at http://www.mozilla.org/MPL/
8
* Software distributed under the License is distributed on an "AS
9
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10
* implied. See the License for the specific language governing
11
* rights and limitations under the License.
13
* The Original Code is Mozilla.
15
* The Initial Developer of the Original Code is Netscape
16
* Communications. Portions created by Netscape Communications are
17
* Copyright (C) 2001 by Netscape Communications. All
21
* Vidur Apparao <vidur@netscape.com> (original author)
24
#ifndef __nsScriptLoader_h__
25
#define __nsScriptLoader_h__
28
#include "nsIScriptLoader.h"
29
#include "nsIDOMHTMLScriptElement.h"
30
#include "nsIScriptLoaderObserver.h"
32
#include "nsCOMArray.h"
33
#include "nsIDocument.h"
34
#include "nsIStreamLoader.h"
36
class nsScriptLoadRequest;
38
//////////////////////////////////////////////////////////////
39
// Script loader implementation
40
//////////////////////////////////////////////////////////////
42
class nsScriptLoader : public nsIScriptLoader,
43
public nsIStreamLoaderObserver
47
virtual ~nsScriptLoader();
50
NS_DECL_NSISCRIPTLOADER
51
NS_DECL_NSISTREAMLOADEROBSERVER
54
PRBool InNonScriptingContainer(nsIDOMHTMLScriptElement* aScriptElement);
55
PRBool IsScriptEventHandler(nsIDOMHTMLScriptElement* aScriptElement);
56
nsresult FireErrorNotification(nsresult aResult,
57
nsIDOMHTMLScriptElement* aElement,
58
nsIScriptLoaderObserver* aObserver);
59
nsresult ProcessRequest(nsScriptLoadRequest* aRequest);
60
void FireScriptAvailable(nsresult aResult,
61
nsScriptLoadRequest* aRequest,
62
const nsAFlatString& aScript);
63
void FireScriptEvaluated(nsresult aResult,
64
nsScriptLoadRequest* aRequest);
65
nsresult EvaluateScript(nsScriptLoadRequest* aRequest,
66
const nsAFlatString& aScript);
67
void ProcessPendingReqests();
69
nsIDocument* mDocument; // [WEAK]
70
nsCOMArray<nsIScriptLoaderObserver> mObservers;
71
nsCOMArray<nsScriptLoadRequest> mPendingRequests;
75
#endif //__nsScriptLoader_h__