From 4606489f20d917bf5ce40bd5203e89cdb2c222cb Mon Sep 17 00:00:00 2001 From: "darin%netscape.com" Date: Wed, 23 Apr 2003 03:47:43 +0000 Subject: [PATCH] patch for bug 191970 "necko configuration options for footprint reduction" r=seawood sr=dbaron git-svn-id: svn://10.0.0.236/trunk@141664 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/config/autoconf.mk.in | 4 + mozilla/configure.in | 70 +++++++++++++++- mozilla/netwerk/Makefile.in | 5 +- mozilla/netwerk/base/src/nsIOService.h | 7 ++ mozilla/netwerk/base/src/nsNetSegmentUtils.h | 6 ++ mozilla/netwerk/build/Makefile.in | 20 ++--- mozilla/netwerk/build/nsNetModule.cpp | 81 +++++++++++++------ mozilla/netwerk/build2/Makefile.in | 21 +++-- mozilla/netwerk/build2/nsNetModule2.cpp | 21 +++++ mozilla/netwerk/cache/src/Makefile.in | 5 ++ mozilla/netwerk/cache/src/nsCacheService.cpp | 30 ++++++- mozilla/netwerk/necko-config.h.in | 55 +++++++++++++ .../netwerk/protocol/keyword/src/Makefile.in | 2 +- 13 files changed, 277 insertions(+), 50 deletions(-) create mode 100644 mozilla/netwerk/necko-config.h.in diff --git a/mozilla/config/autoconf.mk.in b/mozilla/config/autoconf.mk.in index 9c951a960dc..6ebc71f1f36 100644 --- a/mozilla/config/autoconf.mk.in +++ b/mozilla/config/autoconf.mk.in @@ -124,6 +124,10 @@ MOZ_BUILD_ROOT = @MOZ_BUILD_ROOT@ MOZ_XUL = @MOZ_XUL@ +NECKO_PROTOCOLS = @NECKO_PROTOCOLS@ +NECKO_DISK_CACHE = @NECKO_DISK_CACHE@ +NECKO_SMALL_BUFFERS = @NECKO_SMALL_BUFFERS@ + MOZ_NATIVE_ZLIB = @SYSTEM_ZLIB@ MOZ_NATIVE_JPEG = @SYSTEM_JPEG@ MOZ_NATIVE_PNG = @SYSTEM_PNG@ diff --git a/mozilla/configure.in b/mozilla/configure.in index ac884ceeea5..94997fc1604 100644 --- a/mozilla/configure.in +++ b/mozilla/configure.in @@ -4850,6 +4850,74 @@ fi AC_SUBST(MOZ_XUL) +dnl ======================================================== +dnl necko configuration options +dnl ======================================================== + +dnl +dnl option to disable various necko protocols +dnl +NECKO_PROTOCOLS_DEFAULT="about data file ftp gopher http jar keyword res viewsource" +MOZ_ARG_ENABLE_STRING(necko-protocols, +[ --enable-necko-protocols[={http,ftp,default,all,none}] + Enable/disable specific protocol handlers], +[ for option in `echo $enableval | sed 's/,/ /g'`; do + if test "$option" = "yes" || test "$option" = "all"; then + NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT" + elif test "$option" = "no" || test "$option" = "none"; then + NECKO_PROTOCOLS="" + elif test "$option" = "default"; then + NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT" + elif test `echo "$option" | grep -c \^-` != 0; then + option=`echo $option | sed 's/^-//'` + NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"` + else + NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option" + fi +done], + NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT") +dnl Remove dupes +if test -n "${_CYGWIN_PERL}"; then + NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}` +else + NECKO_PROTOCOLS=`${CYGWIN_WRAPPER} ${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}` +fi +AC_SUBST(NECKO_PROTOCOLS) +for p in $NECKO_PROTOCOLS; do + AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p) +done + +dnl +dnl option to disable necko's disk cache +dnl +NECKO_DISK_CACHE=1 +MOZ_ARG_DISABLE_BOOL(necko-disk-cache, +[ --disable-necko-disk-cache + Disable necko disk cache], + NECKO_DISK_CACHE=, + NECKO_DISK_CACHE=1) +AC_SUBST(NECKO_DISK_CACHE) +if test "$NECKO_DISK_CACHE"; then + AC_DEFINE(NECKO_DISK_CACHE) +fi + +dnl +dnl option to minimize size of necko's i/o buffers +dnl +NECKO_SMALL_BUFFERS= +MOZ_ARG_ENABLE_BOOL(necko-small-buffers, +[ --enable-necko-small-buffers + Minimize size of necko's i/o buffers], + NECKO_SMALL_BUFFERS=1, + NECKO_SMALL_BUFFERS=) +AC_SUBST(NECKO_SMALL_BUFFERS) +if test "$NECKO_SMALL_BUFFERS"; then + AC_DEFINE(NECKO_SMALL_BUFFERS) +fi + +dnl NECKO_ configuration options are not global +_NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_" + dnl ======================================================== dnl = dnl = Cleanup section for misc ordering snafus @@ -5232,7 +5300,7 @@ AC_SUBST(ac_configure_args) dnl Spit out some output dnl ======================================================== -AC_CONFIG_HEADER(gfx/gfx-config.h) +AC_CONFIG_HEADER(gfx/gfx-config.h netwerk/necko-config.h) # Save the defines header file before autoconf removes it. # (Do not add AC_DEFINE calls after this line.) diff --git a/mozilla/netwerk/Makefile.in b/mozilla/netwerk/Makefile.in index 5685a2adb8d..a75f0bee152 100644 --- a/mozilla/netwerk/Makefile.in +++ b/mozilla/netwerk/Makefile.in @@ -26,6 +26,8 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk +MODULE = necko + DIRS = \ base \ cookie \ @@ -44,5 +46,6 @@ ifdef ENABLE_TESTS DIRS += test endif -include $(topsrcdir)/config/rules.mk +EXPORTS = necko-config.h +include $(topsrcdir)/config/rules.mk diff --git a/mozilla/netwerk/base/src/nsIOService.h b/mozilla/netwerk/base/src/nsIOService.h index 95af5ec6bd1..ddcd0333789 100644 --- a/mozilla/netwerk/base/src/nsIOService.h +++ b/mozilla/netwerk/base/src/nsIOService.h @@ -38,6 +38,8 @@ #ifndef nsIOService_h__ #define nsIOService_h__ +#include "necko-config.h" + #include "nsString.h" #include "nsIIOService.h" #include "nsVoidArray.h" @@ -55,7 +57,12 @@ #include "nsWeakReference.h" #define NS_N(x) (sizeof(x)/sizeof(*x)) + +#ifdef NECKO_SMALL_BUFFERS +#define NS_NECKO_BUFFER_CACHE_COUNT (10) // Max holdings: 10 * 2k = 20k +#else #define NS_NECKO_BUFFER_CACHE_COUNT (24) // Max holdings: 24 * 4k = 96k +#endif #define NS_NECKO_15_MINS (15 * 60) static const char *gScheme[] = {"chrome", "file", "http", "jar", "resource"}; diff --git a/mozilla/netwerk/base/src/nsNetSegmentUtils.h b/mozilla/netwerk/base/src/nsNetSegmentUtils.h index 2cc00c81a62..301d04225be 100644 --- a/mozilla/netwerk/base/src/nsNetSegmentUtils.h +++ b/mozilla/netwerk/base/src/nsNetSegmentUtils.h @@ -38,10 +38,16 @@ #ifndef nsNetSegmentUtils_h__ #define nsNetSegmentUtils_h__ +#include "necko-config.h" #include "nsIOService.h" +#ifdef NECKO_SMALL_BUFFERS +#define NET_DEFAULT_SEGMENT_SIZE 2048 +#define NET_DEFAULT_SEGMENT_COUNT 4 +#else #define NET_DEFAULT_SEGMENT_SIZE 4096 #define NET_DEFAULT_SEGMENT_COUNT 16 +#endif /** * returns preferred allocator for given segment size. NULL implies diff --git a/mozilla/netwerk/build/Makefile.in b/mozilla/netwerk/build/Makefile.in index 23675dc91bc..016ada086bc 100644 --- a/mozilla/netwerk/build/Makefile.in +++ b/mozilla/netwerk/build/Makefile.in @@ -51,6 +51,9 @@ REQUIRES = xpcom \ CPPSRCS = nsNetModule.cpp EXPORTS = nsNetCID.h +# core necko protocols (about:blank is mandatory) +PROTOCOLS = $(filter file ftp http jar res,$(NECKO_PROTOCOLS)) + SHARED_LIBRARY_LIBS = \ $(DIST)/lib/$(LIB_PREFIX)neckobase_s.$(LIB_SUFFIX) \ $(DIST)/lib/$(LIB_PREFIX)neckodns_s.$(LIB_SUFFIX) \ @@ -58,13 +61,10 @@ SHARED_LIBRARY_LIBS = \ $(DIST)/lib/$(LIB_PREFIX)nkconv_s.$(LIB_SUFFIX) \ $(DIST)/lib/$(LIB_PREFIX)nkcnvts_s.$(LIB_SUFFIX) \ $(DIST)/lib/$(LIB_PREFIX)nkmime_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkhttp_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkfile_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkftp_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkjar_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkres_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkabout_s.$(LIB_SUFFIX) \ $(DIST)/lib/$(LIB_PREFIX)nkcache_s.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)nkabout_s.$(LIB_SUFFIX) \ + $(foreach d,$(PROTOCOLS), \ + $(DIST)/lib/$(LIB_PREFIX)nk${d}_s.$(LIB_SUFFIX)) \ $(NULL) LOCAL_INCLUDES = \ @@ -75,12 +75,9 @@ LOCAL_INCLUDES = \ -I$(srcdir)/../streamconv/converters \ -I$(srcdir)/../mime/src \ -I$(srcdir)/../cache/src \ - -I$(srcdir)/../protocol/http/src \ - -I$(srcdir)/../protocol/file/src \ - -I$(srcdir)/../protocol/ftp/src \ - -I$(srcdir)/../protocol/jar/src \ - -I$(srcdir)/../protocol/res/src \ -I$(srcdir)/../protocol/about/src \ + $(foreach d,$(PROTOCOLS), \ + -I$(srcdir)/../protocol/${d}/src) \ $(NULL) ifdef MOZ_PERF_METRICS @@ -108,4 +105,3 @@ ifdef GNU_CC OS_LIBS += -lws2_32 endif endif - diff --git a/mozilla/netwerk/build/nsNetModule.cpp b/mozilla/netwerk/build/nsNetModule.cpp index 40105d1e852..3a4ec157335 100644 --- a/mozilla/netwerk/build/nsNetModule.cpp +++ b/mozilla/netwerk/build/nsNetModule.cpp @@ -35,6 +35,8 @@ * * ***** END LICENSE BLOCK ***** */ +#include "necko-config.h" + #include "nsCOMPtr.h" #include "nsIModule.h" #include "nsIGenericFactory.h" @@ -125,8 +127,37 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsDirIndex) #include "nsStreamListenerTee.h" NS_GENERIC_FACTORY_CONSTRUCTOR(nsStreamListenerTee) +/////////////////////////////////////////////////////////////////////////////// +// protocols /////////////////////////////////////////////////////////////////////////////// +// about:blank is mandatory +#include "nsAboutProtocolHandler.h" +#include "nsAboutBlank.h" + +#ifdef NECKO_PROTOCOL_about +// about +#include "nsAboutBloat.h" +#include "nsAboutCache.h" +#include "nsAboutRedirector.h" +#include "nsAboutCacheEntry.h" +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutCacheEntry) +#endif + +#ifdef NECKO_PROTOCOL_file +// file +#include "nsFileProtocolHandler.h" +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFileProtocolHandler, Init) +#endif + +#ifdef NECKO_PROTOCOL_ftp +// ftp +#include "nsFtpProtocolHandler.h" +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFtpProtocolHandler, Init); +#endif + +#ifdef NECKO_PROTOCOL_http +// http/https #include "nsHttpHandler.h" #include "nsHttpAuthManager.h" #include "nsHttpBasicAuth.h" @@ -137,17 +168,24 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpNTLMAuth, Init) #endif #undef LOG #undef LOG_ENABLED - NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpHandler, Init) NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpsHandler, Init) NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpAuthManager, Init) NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpBasicAuth) NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpDigestAuth) - -/////////////////////////////////////////////////////////////////////////////// - +#endif // !NECKO_PROTOCOL_http + +#ifdef NECKO_PROTOCOL_jar +// jar +#include "nsJARProtocolHandler.h" +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsJARProtocolHandler, Init) +#endif + +#ifdef NECKO_PROTOCOL_res +// resource #include "nsResProtocolHandler.h" NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsResProtocolHandler, Init) +#endif /////////////////////////////////////////////////////////////////////////////// @@ -176,25 +214,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsIDNService, Init) /////////////////////////////////////////////////////////////////////////////// -#include "nsFileProtocolHandler.h" -#include "nsJARProtocolHandler.h" -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFileProtocolHandler, Init) - -#include "nsJARProtocolHandler.h" -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsJARProtocolHandler, Init) - -#include "nsAboutProtocolHandler.h" -#include "nsAboutBlank.h" -#include "nsAboutBloat.h" -#include "nsAboutCache.h" -#include "nsAboutRedirector.h" - -#include "nsAboutCacheEntry.h" -NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutCacheEntry) - -/////////////////////////////////////////////////////////////////////////////// - -#include "nsFtpProtocolHandler.h" #include "nsFTPDirListingConv.h" #include "nsGopherDirListingConv.h" #include "nsMultiMixedConv.h" @@ -207,8 +226,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutCacheEntry) #include "nsBinHexDecoder.h" #endif -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFtpProtocolHandler, Init); - nsresult NS_NewFTPDirListingConv(nsFTPDirListingConv** result); nsresult NS_NewGopherDirListingConv(nsGopherDirListingConv** result); nsresult NS_NewMultiMixedConv (nsMultiMixedConv** result); @@ -794,13 +811,16 @@ static const nsModuleComponentInfo gNetModuleInfo[] = { nsMIMEInfoImplConstructor }, +#ifdef NECKO_PROTOCOL_file // from netwerk/protocol/file: { NS_FILEPROTOCOLHANDLER_CLASSNAME, NS_FILEPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "file", nsFileProtocolHandlerConstructor }, +#endif +#ifdef NECKO_PROTOCOL_http { "HTTP Handler", NS_HTTPPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", @@ -832,29 +852,36 @@ static const nsModuleComponentInfo gNetModuleInfo[] = { NS_HTTPAUTHMANAGER_CID, NS_HTTPAUTHMANAGER_CONTRACTID, nsHttpAuthManagerConstructor }, +#endif // !NECKO_PROTOCOL_http +#ifdef NECKO_PROTOCOL_ftp // from netwerk/protocol/ftp: { NS_FTPPROTOCOLHANDLER_CLASSNAME, NS_FTPPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "ftp", nsFtpProtocolHandlerConstructor }, +#endif +#ifdef NECKO_PROTOCOL_jar // from netwerk/protocol/jar: { NS_JARPROTOCOLHANDLER_CLASSNAME, NS_JARPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "jar", nsJARProtocolHandlerConstructor }, +#endif +#ifdef NECKO_PROTOCOL_res // from netwerk/protocol/res: { NS_RESPROTOCOLHANDLER_CLASSNAME, NS_RESPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "resource", nsResProtocolHandlerConstructor }, +#endif - // from netwerk/protocol/about: + // from netwerk/protocol/about (about:blank is mandatory): { "About Protocol Handler", NS_ABOUTPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "about", @@ -865,6 +892,7 @@ static const nsModuleComponentInfo gNetModuleInfo[] = { NS_ABOUT_MODULE_CONTRACTID_PREFIX "blank", nsAboutBlank::Create }, +#ifdef NECKO_PROTOCOL_about { "about:bloat", NS_ABOUT_BLOAT_MODULE_CID, NS_ABOUT_MODULE_CONTRACTID_PREFIX "bloat", @@ -911,6 +939,7 @@ static const nsModuleComponentInfo gNetModuleInfo[] = { NS_ABOUT_MODULE_CONTRACTID_PREFIX "cache-entry", nsAboutCacheEntryConstructor }, +#endif { NS_ISOCKSSOCKETPROVIDER_CLASSNAME, NS_SOCKSSOCKETPROVIDER_CID, diff --git a/mozilla/netwerk/build2/Makefile.in b/mozilla/netwerk/build2/Makefile.in index 73026b19eb2..b5e483ebbe2 100644 --- a/mozilla/netwerk/build2/Makefile.in +++ b/mozilla/netwerk/build2/Makefile.in @@ -26,6 +26,12 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk +# secondary necko protocols +PROTOCOLS = $(filter data keyword gopher viewsource,$(NECKO_PROTOCOLS)) + +# we don't need to build anything here at all if there are no protocols +ifdef PROTOCOLS + MODULE = necko2 LIBRARY_NAME = necko2 EXPORT_LIBRARY = 1 @@ -41,22 +47,21 @@ REQUIRES = xpcom \ CPPSRCS = nsNetModule2.cpp + SHARED_LIBRARY_LIBS = \ - $(DIST)/lib/$(LIB_PREFIX)nkgopher_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkviewsource_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkdata_s.$(LIB_SUFFIX) \ - $(DIST)/lib/$(LIB_PREFIX)nkkwd_s.$(LIB_SUFFIX) \ + $(foreach d,$(PROTOCOLS), \ + $(DIST)/lib/$(LIB_PREFIX)nk${d}_s.$(LIB_SUFFIX)) \ $(NULL) LOCAL_INCLUDES = \ - -I$(srcdir)/../protocol/gopher/src \ - -I$(srcdir)/../protocol/viewsource/src \ - -I$(srcdir)/../protocol/keyword/src \ - -I$(srcdir)/../protocol/data/src \ + $(foreach d,$(PROTOCOLS), \ + -I$(srcdir)/../protocol/${d}/src) \ $(NULL) EXTRA_DSO_LDOPTS = \ $(MOZ_COMPONENT_LIBS) \ $(NULL) +endif # !PROTOCOLS + include $(topsrcdir)/config/rules.mk diff --git a/mozilla/netwerk/build2/nsNetModule2.cpp b/mozilla/netwerk/build2/nsNetModule2.cpp index 7d083c3ee27..6b1455de398 100644 --- a/mozilla/netwerk/build2/nsNetModule2.cpp +++ b/mozilla/netwerk/build2/nsNetModule2.cpp @@ -35,44 +35,65 @@ * * ***** END LICENSE BLOCK ***** */ +#include "necko-config.h" #include "nsIGenericFactory.h" +#ifdef NECKO_PROTOCOL_gopher #include "nsGopherHandler.h" +#endif + +#ifdef NECKO_PROTOCOL_viewsource #include "nsViewSourceHandler.h" +#endif + +#ifdef NECKO_PROTOCOL_data #include "nsDataHandler.h" +#endif + +#ifdef NECKO_PROTOCOL_keyword #include "nsKeywordProtocolHandler.h" +#endif + #include "nsNetCID.h" /////////////////////////////////////////////////////////////////////////////// // Module implementation for the net library static const nsModuleComponentInfo gNetModuleInfo[] = { +#ifdef NECKO_PROTOCOL_gopher //gopher: { "The Gopher Protocol Handler", NS_GOPHERHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "gopher", nsGopherHandler::Create }, +#endif +#ifdef NECKO_PROTOCOL_data // from netwerk/protocol/data: { "Data Protocol Handler", NS_DATAPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "data", nsDataHandler::Create}, +#endif +#ifdef NECKO_PROTOCOL_keyword // from netwerk/protocol/keyword: { "The Keyword Protocol Handler", NS_KEYWORDPROTOCOLHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "keyword", nsKeywordProtocolHandler::Create }, +#endif +#ifdef NECKO_PROTOCOL_viewsource // from netwerk/protocol/viewsource: { "The ViewSource Protocol Handler", NS_VIEWSOURCEHANDLER_CID, NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "view-source", nsViewSourceHandler::Create } +#endif }; NS_IMPL_NSGETMODULE(necko_secondary_protocols, gNetModuleInfo) diff --git a/mozilla/netwerk/cache/src/Makefile.in b/mozilla/netwerk/cache/src/Makefile.in index 318560af630..a53bdf0f640 100644 --- a/mozilla/netwerk/cache/src/Makefile.in +++ b/mozilla/netwerk/cache/src/Makefile.in @@ -49,6 +49,10 @@ CPPSRCS = \ nsCacheService.cpp \ nsCacheSession.cpp \ nsMemoryCacheDevice.cpp \ + $(NULL) + +ifdef NECKO_DISK_CACHE +CPPSRCS += \ nsDiskCacheBinding.cpp \ nsDiskCacheBlockFile.cpp \ nsDiskCacheDevice.cpp \ @@ -56,6 +60,7 @@ CPPSRCS = \ nsDiskCacheMap.cpp \ nsDiskCacheStreams.cpp \ $(NULL) +endif include $(topsrcdir)/config/config.mk diff --git a/mozilla/netwerk/cache/src/nsCacheService.cpp b/mozilla/netwerk/cache/src/nsCacheService.cpp index bb4ea24a8ce..029467b4e25 100644 --- a/mozilla/netwerk/cache/src/nsCacheService.cpp +++ b/mozilla/netwerk/cache/src/nsCacheService.cpp @@ -21,6 +21,7 @@ * Gordon Sheridan, 10-February-2001 */ +#include "necko-config.h" #include "nsCache.h" #include "nsCacheService.h" @@ -248,6 +249,7 @@ nsCacheProfilePrefObserver::Observe(nsISupports * subject, if (NS_FAILED(rv)) return rv; +#ifdef NECKO_DISK_CACHE // which preference changed? if (!nsCRT::strcmp(DISK_CACHE_ENABLE_PREF, NS_ConvertUCS2toUTF8(data).get())) { @@ -269,7 +271,10 @@ nsCacheProfilePrefObserver::Observe(nsISupports * subject, // XXX ideally, there should be somekind of user notification that the pref change // XXX won't take effect until the next time the profile changes (browser launch) #endif - } else if (!nsCRT::strcmp(MEMORY_CACHE_ENABLE_PREF, NS_ConvertUCS2toUTF8(data).get())) { + } else +#endif // !NECKO_DISK_CACHE + + if (!nsCRT::strcmp(MEMORY_CACHE_ENABLE_PREF, NS_ConvertUCS2toUTF8(data).get())) { rv = prefBranch->GetBoolPref(MEMORY_CACHE_ENABLE_PREF, &mMemoryCacheEnabled); if (NS_FAILED(rv)) return rv; @@ -301,6 +306,7 @@ nsCacheProfilePrefObserver::ReadPrefs() nsCOMPtr prefBranch = do_QueryInterface(prefService, &rv); if (NS_FAILED(rv)) return rv; +#ifdef NECKO_DISK_CACHE // read disk cache device prefs rv = prefBranch->GetBoolPref(DISK_CACHE_ENABLE_PREF, &mDiskCacheEnabled); if (NS_FAILED(rv)) rv2 = rv; @@ -326,6 +332,7 @@ nsCacheProfilePrefObserver::ReadPrefs() if (directory) mDiskCacheParentDirectory = do_QueryInterface(directory, &rv); } +#endif // !NECKO_DISK_CACHE // read memory cache device prefs rv = prefBranch->GetBoolPref(MEMORY_CACHE_ENABLE_PREF, &mMemoryCacheEnabled); @@ -472,8 +479,10 @@ nsCacheService::Shutdown() delete mMemoryDevice; mMemoryDevice = nsnull; +#ifdef NECKO_DISK_CACHE delete mDiskDevice; mDiskDevice = nsnull; +#endif } return NS_OK; } @@ -537,6 +546,7 @@ nsCacheService::EvictEntriesForClient(const char * clientID, nsAutoLock lock(mCacheServiceLock); nsresult rv = NS_OK; +#ifdef NECKO_DISK_CACHE if (storagePolicy == nsICache::STORE_ANYWHERE || storagePolicy == nsICache::STORE_ON_DISK) { @@ -549,6 +559,7 @@ nsCacheService::EvictEntriesForClient(const char * clientID, if (NS_FAILED(rv)) return rv; } } +#endif // !NECKO_DISK_CACHE if (storagePolicy == nsICache::STORE_ANYWHERE || storagePolicy == nsICache::STORE_IN_MEMORY) { @@ -610,6 +621,7 @@ NS_IMETHODIMP nsCacheService::VisitEntries(nsICacheVisitor *visitor) if (NS_FAILED(rv)) return rv; } +#ifdef NECKO_DISK_CACHE if (mEnableDiskDevice) { if (!mDiskDevice) { rv = CreateDiskDevice(); @@ -618,6 +630,7 @@ NS_IMETHODIMP nsCacheService::VisitEntries(nsICacheVisitor *visitor) rv = mDiskDevice->Visit(visitor); if (NS_FAILED(rv)) return rv; } +#endif // !NECKO_DISK_CACHE // XXX notify any shutdown process that visitation is complete for THIS visitor. // XXX keep queue of visitors @@ -638,6 +651,7 @@ NS_IMETHODIMP nsCacheService::EvictEntries(nsCacheStoragePolicy storagePolicy) nsresult nsCacheService::CreateDiskDevice() { +#ifdef NECKO_DISK_CACHE if (!mEnableDiskDevice) return NS_ERROR_NOT_AVAILABLE; if (mDiskDevice) return NS_OK; @@ -661,6 +675,10 @@ nsCacheService::CreateDiskDevice() mDiskDevice = nsnull; } return rv; +#else // !NECKO_DISK_CACHE + NS_NOTREACHED("nsCacheService::CreateDiskDevice"); + return NS_ERROR_NOT_IMPLEMENTED; +#endif } @@ -936,6 +954,7 @@ nsCacheService::SearchCacheDevices(nsCString * key, nsCacheStoragePolicy policy) if (!entry && ((policy == nsICache::STORE_ANYWHERE) || (policy == nsICache::STORE_ON_DISK))) { +#ifdef NECKO_DISK_CACHE if (mEnableDiskDevice) { if (!mDiskDevice) { nsresult rv = CreateDiskDevice(); @@ -945,6 +964,7 @@ nsCacheService::SearchCacheDevices(nsCString * key, nsCacheStoragePolicy policy) entry = mDiskDevice->FindEntry(key); } +#endif // !NECKO_DISK_CACHE } return entry; @@ -958,6 +978,7 @@ nsCacheService::EnsureEntryHasDevice(nsCacheEntry * entry) if (device) return device; nsresult rv = NS_OK; +#ifdef NECKO_DISK_CACHE if (entry->IsStreamData() && entry->IsAllowedOnDisk() && mEnableDiskDevice) { // this is the default if (!mDiskDevice) { @@ -972,6 +993,7 @@ nsCacheService::EnsureEntryHasDevice(nsCacheEntry * entry) device = mDiskDevice; } } +#endif // !NECKO_DISK_CACHE // if we can't use mDiskDevice, try mMemoryDevice if (!device && mEnableMemoryDevice && entry->IsAllowedInMemory()) { @@ -1074,6 +1096,7 @@ nsCacheService::OnProfileShutdown(PRBool cleanse) if (!gService) return; nsAutoLock lock(gService->mCacheServiceLock); +#ifdef NECKO_DISK_CACHE if (gService->mDiskDevice) { if (cleanse) gService->mDiskDevice->EvictEntries(nsnull); @@ -1084,6 +1107,7 @@ nsCacheService::OnProfileShutdown(PRBool cleanse) gService->mDiskDevice->Shutdown(); gService->mEnableDiskDevice = PR_FALSE; } +#endif // !NECKO_DISK_CACHE #if 0 if (gService->mMemoryDevice) { gService->mMemoryDevice->Shutdown(); @@ -1104,6 +1128,7 @@ nsCacheService::OnProfileChanged() gService->mEnableDiskDevice = gService->mObserver->DiskCacheEnabled(); gService->mEnableMemoryDevice = gService->mObserver->MemoryCacheEnabled(); +#ifdef NECKO_DISK_CACHE if (gService->mDiskDevice) { gService->mDiskDevice->SetCacheParentDirectory(gService->mObserver->DiskCacheParentDirectory()); gService->mDiskDevice->SetCapacity(gService->mObserver->DiskCacheCapacity()); @@ -1116,6 +1141,7 @@ nsCacheService::OnProfileChanged() // XXX delete mDiskDevice? } } +#endif // !NECKO_DISK_CACHE if (gService->mMemoryDevice) { gService->mMemoryDevice->SetCapacity(gService->mObserver->MemoryCacheCapacity()); @@ -1144,9 +1170,11 @@ nsCacheService::SetDiskCacheCapacity(PRInt32 capacity) if (!gService) return; nsAutoLock lock(gService->mCacheServiceLock); +#ifdef NECKO_DISK_CACHE if (gService->mDiskDevice) { gService->mDiskDevice->SetCapacity(capacity); } +#endif // !NECKO_DISK_CACHE gService->mEnableDiskDevice = gService->mObserver->DiskCacheEnabled(); } diff --git a/mozilla/netwerk/necko-config.h.in b/mozilla/netwerk/necko-config.h.in new file mode 100644 index 00000000000..d410f4bb940 --- /dev/null +++ b/mozilla/netwerk/necko-config.h.in @@ -0,0 +1,55 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: NPL 1.1/GPL 2.0/LGPL 2.1 + * + * 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 the Initial Developer are Copyright (C) 2003 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the NPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the NPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _NECKO_CONFIG_H_ +#define _NECKO_CONFIG_H_ + +#undef NECKO_DISK_CACHE + +#undef NECKO_SMALL_BUFFERS + +#undef NECKO_PROTOCOL_about +#undef NECKO_PROTOCOL_data +#undef NECKO_PROTOCOL_file +#undef NECKO_PROTOCOL_ftp +#undef NECKO_PROTOCOL_gopher +#undef NECKO_PROTOCOL_http +#undef NECKO_PROTOCOL_jar +#undef NECKO_PROTOCOL_keyword +#undef NECKO_PROTOCOL_res +#undef NECKO_PROTOCOL_viewsource + +#endif diff --git a/mozilla/netwerk/protocol/keyword/src/Makefile.in b/mozilla/netwerk/protocol/keyword/src/Makefile.in index 0c3f19bca33..111d37ea2bc 100644 --- a/mozilla/netwerk/protocol/keyword/src/Makefile.in +++ b/mozilla/netwerk/protocol/keyword/src/Makefile.in @@ -27,7 +27,7 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk MODULE = necko -LIBRARY_NAME = nkkwd_s +LIBRARY_NAME = nkkeyword_s REQUIRES = xpcom \ string \ pref \