зеркало из https://github.com/mozilla/pjs.git
Part of docshell/webshell landing prep work. The doc loader is being re-factored into the uri loader.
These files aren't part of the build yet. r=travis
This commit is contained in:
Родитель
90e3ef9e19
Коммит
289eba7e8b
|
@ -0,0 +1,109 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape 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/NPL/
|
||||
*
|
||||
* 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.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
#ifndef nsDocLoader_h__
|
||||
#define nsDocLoader_h__
|
||||
|
||||
#include "nsIDocumentLoader.h"
|
||||
#include "nsIStreamObserver.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsILoadGroup.h"
|
||||
#include "nsISupportsArray.h"
|
||||
#include "nsVoidArray.h"
|
||||
#include "nsString.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* nsDocLoaderImpl implementation...
|
||||
****************************************************************************/
|
||||
|
||||
class nsDocLoaderImpl : public nsIDocumentLoader,
|
||||
public nsIStreamObserver,
|
||||
public nsSupportsWeakReference
|
||||
{
|
||||
public:
|
||||
|
||||
nsDocLoaderImpl();
|
||||
|
||||
nsresult Init();
|
||||
|
||||
// for nsIGenericFactory:
|
||||
static NS_IMETHODIMP Create(nsISupports *aOuter, const nsIID &aIID, void **aResult);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIDOCUMENTLOADER
|
||||
// nsIStreamObserver methods: (for observing the load group)
|
||||
NS_DECL_NSISTREAMOBSERVER
|
||||
|
||||
// Implementation specific methods...
|
||||
protected:
|
||||
virtual ~nsDocLoaderImpl();
|
||||
|
||||
nsresult SetDocLoaderParent(nsDocLoaderImpl * aLoader);
|
||||
nsresult RemoveChildGroup(nsDocLoaderImpl *aLoader);
|
||||
void DocLoaderIsEmpty(nsresult aStatus);
|
||||
|
||||
void FireOnStartDocumentLoad(nsDocLoaderImpl* aLoadInitiator,
|
||||
nsIURI* aURL);
|
||||
|
||||
void FireOnEndDocumentLoad(nsDocLoaderImpl* aLoadInitiator,
|
||||
nsIChannel *aDocChannel,
|
||||
nsresult aStatus);
|
||||
|
||||
void FireOnStartURLLoad(nsDocLoaderImpl* aLoadInitiator,
|
||||
nsIChannel* channel);
|
||||
|
||||
void FireOnEndURLLoad(nsDocLoaderImpl* aLoadInitiator,
|
||||
nsIChannel* channel, nsresult aStatus);
|
||||
|
||||
protected:
|
||||
|
||||
// IMPORTANT: The ownership implicit in the following member
|
||||
// variables has been explicitly checked and set using nsCOMPtr
|
||||
// for owning pointers and raw COM interface pointers for weak
|
||||
// (ie, non owning) references. If you add any members to this
|
||||
// class, please make the ownership explicit (pinkerton, scc).
|
||||
|
||||
nsCOMPtr<nsIChannel> mDocumentChannel; // [OWNER] ???compare with document
|
||||
nsVoidArray mDocObservers;
|
||||
nsISupports* mContainer; // [WEAK] it owns me!
|
||||
|
||||
nsDocLoaderImpl* mParent; // [WEAK]
|
||||
|
||||
nsCString mCommand;
|
||||
|
||||
/*
|
||||
* This flag indicates that the loader is loading a document. It is set
|
||||
* from the call to LoadDocument(...) until the OnConnectionsComplete(...)
|
||||
* notification is fired...
|
||||
*/
|
||||
PRBool mIsLoadingDocument;
|
||||
|
||||
nsCOMPtr<nsILoadGroup> mLoadGroup;
|
||||
nsCOMPtr<nsISupportsArray> mChildList;
|
||||
};
|
||||
|
||||
#endif /* nsDocLoader_h__ */
|
|
@ -0,0 +1,50 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape 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/NPL/
|
||||
*
|
||||
* 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.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
/* nsIDocumentLoader -->
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
interface nsILoadGroup;
|
||||
interface nsIDocumentLoaderObserver;
|
||||
interface nsIContentViewerContainer;
|
||||
interface nsIChannel;
|
||||
interface nsIURI;
|
||||
|
||||
[scriptable, uuid(f43ba260-0737-11d2-beb9-00805f8a66dc)]
|
||||
interface nsIDocumentLoader : nsISupports
|
||||
{
|
||||
void stop();
|
||||
boolean isBusy();
|
||||
void createDocumentLoader(out nsIDocumentLoader anInstance);
|
||||
|
||||
void addObserver(in nsIDocumentLoaderObserver aObserver);
|
||||
void removeObserver(in nsIDocumentLoaderObserver aObserver);
|
||||
attribute nsISupports container;
|
||||
|
||||
[noscript] void getContentViewerContainer(in unsigned long aDocumentID, out nsIContentViewerContainer aResult);
|
||||
nsILoadGroup getLoadGroup();
|
||||
|
||||
void destroy();
|
||||
};
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape 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/NPL/
|
||||
*
|
||||
* 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.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
/* nsIDocumentLoaderObserver -->
|
||||
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIDocumentLoader;
|
||||
interface nsIURI;
|
||||
interface nsIChannel;
|
||||
|
||||
/* we'll be phasing this interface out in place of a new
|
||||
improved progress sink interface
|
||||
*/
|
||||
|
||||
%{C++
|
||||
#include "nsString.h"
|
||||
%}
|
||||
|
||||
native nsString(nsString);
|
||||
[ref] native nsStringRef(nsString);
|
||||
|
||||
[scriptable, uuid(f6b4f550-317c-11d2-bd8c-00805f8ae3f4)]
|
||||
interface nsIDocumentLoaderObserver : nsISupports
|
||||
{
|
||||
/**
|
||||
* Notify the observer that a new document will be loaded.
|
||||
*
|
||||
* This notification occurs before any DNS resolution occurs, or
|
||||
* a connection is established with the server...
|
||||
*/
|
||||
void onStartDocumentLoad(in nsIDocumentLoader aLoader, in nsIURI aURL, in string aCommand);
|
||||
|
||||
/**
|
||||
* Notify the observer that a document has been completely loaded.
|
||||
*/
|
||||
void onEndDocumentLoad(in nsIDocumentLoader loader, in nsIChannel aChannel, in unsigned long aStatus);
|
||||
|
||||
/**
|
||||
* Notify the observer that the specified nsIURI has just started to load.
|
||||
*
|
||||
* This notification occurs after DNS resolution, and a connection to the
|
||||
* server has been established.
|
||||
*/
|
||||
void onStartURLLoad(in nsIDocumentLoader aLoader, in nsIChannel channel);
|
||||
|
||||
/**
|
||||
* Notify the observer that progress has occurred in the loading of the
|
||||
* specified URL...
|
||||
*/
|
||||
void onProgressURLLoad(in nsIDocumentLoader aLoader,
|
||||
in nsIChannel aChannel, in unsigned long aProgress,
|
||||
in unsigned long aProgressMax);
|
||||
|
||||
/**
|
||||
* Notify the observer that status text is available regarding the URL
|
||||
* being loaded...
|
||||
*/
|
||||
[noscript] void onStatusURLLoad(in nsIDocumentLoader loader, in nsIChannel channel, in nsStringRef aMsg);
|
||||
|
||||
/**
|
||||
* Notify the observer that the specified nsIURI has finished loading.
|
||||
*/
|
||||
void onEndURLLoad(in nsIDocumentLoader aLoader, in nsIChannel aChannel, in unsigned long aStatus);
|
||||
|
||||
/**
|
||||
* Notify the observer that some content of unknown type has been
|
||||
* encountered...
|
||||
*/
|
||||
void handleUnknownContentType(in nsIDocumentLoader aLoader,
|
||||
in nsIChannel aChannel,
|
||||
in string aContentType,
|
||||
in string aCommand);
|
||||
};
|
||||
|
||||
/* the following is a transition define. nsIDocumentLoaderObserver wasn't scriptable and now it is.
|
||||
so lots of people refer to the IID using the old non-scriptable generated IID...
|
||||
*/
|
||||
|
||||
%{C++
|
||||
#define NS_IDOCUMENT_LOADER_OBSERVER_IID NS_IDOCUMENTLOADEROBSERVER_IID
|
||||
%}
|
Загрузка…
Ссылка в новой задаче