michael@0: /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsContentDLF_h__ michael@0: #define nsContentDLF_h__ michael@0: michael@0: #include "nsIDocumentLoaderFactory.h" michael@0: #include "nsMimeTypes.h" michael@0: michael@0: class nsIChannel; michael@0: class nsIContentViewer; michael@0: class nsIFile; michael@0: class nsIInputStream; michael@0: class nsILoadGroup; michael@0: class nsIStreamListener; michael@0: michael@0: #define CONTENT_DLF_CONTRACTID "@mozilla.org/content/document-loader-factory;1" michael@0: #define PLUGIN_DLF_CONTRACTID "@mozilla.org/content/plugin/document-loader-factory;1" michael@0: michael@0: class nsContentDLF : public nsIDocumentLoaderFactory michael@0: { michael@0: public: michael@0: nsContentDLF(); michael@0: virtual ~nsContentDLF(); michael@0: michael@0: NS_DECL_ISUPPORTS michael@0: NS_DECL_NSIDOCUMENTLOADERFACTORY michael@0: michael@0: nsresult InitUAStyleSheet(); michael@0: michael@0: nsresult CreateDocument(const char* aCommand, michael@0: nsIChannel* aChannel, michael@0: nsILoadGroup* aLoadGroup, michael@0: nsIDocShell* aContainer, michael@0: const nsCID& aDocumentCID, michael@0: nsIStreamListener** aDocListener, michael@0: nsIContentViewer** aContentViewer); michael@0: michael@0: nsresult CreateXULDocument(const char* aCommand, michael@0: nsIChannel* aChannel, michael@0: nsILoadGroup* aLoadGroup, michael@0: const char* aContentType, michael@0: nsIDocShell* aContainer, michael@0: nsISupports* aExtraInfo, michael@0: nsIStreamListener** aDocListener, michael@0: nsIContentViewer** aContentViewer); michael@0: michael@0: private: michael@0: static nsresult EnsureUAStyleSheet(); michael@0: static bool IsImageContentType(const char* aContentType); michael@0: }; michael@0: michael@0: nsresult michael@0: NS_NewContentDocumentLoaderFactory(nsIDocumentLoaderFactory** aResult); michael@0: michael@0: #ifdef MOZ_WEBM michael@0: #define CONTENTDLF_WEBM_CATEGORIES \ michael@0: { "Gecko-Content-Viewers", VIDEO_WEBM, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", AUDIO_WEBM, "@mozilla.org/content/document-loader-factory;1" }, michael@0: #else michael@0: #define CONTENTDLF_WEBM_CATEGORIES michael@0: #endif michael@0: michael@0: #define CONTENTDLF_CATEGORIES \ michael@0: { "Gecko-Content-Viewers", TEXT_HTML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_PLAIN, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_CACHE_MANIFEST, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_CSS, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_JAVASCRIPT, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_ECMASCRIPT, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_JAVASCRIPT, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_ECMASCRIPT, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_XJAVASCRIPT, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_JSON, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_XHTML_XML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_XML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_XML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_RDF_XML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_RDF, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", TEXT_XUL, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_CACHED_XUL, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", VIEWSOURCE_CONTENT_TYPE, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", IMAGE_SVG_XML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: { "Gecko-Content-Viewers", APPLICATION_MATHML_XML, "@mozilla.org/content/document-loader-factory;1" }, \ michael@0: CONTENTDLF_WEBM_CATEGORIES michael@0: michael@0: michael@0: #endif michael@0: