1) Removing plugin, xmlextras, and psm from static build. These soon will be built as dynamic shared objects and loaded on demand.

2) Removing a assertion because sometime browser.startup.homepage pref isn't defined.
3) adding a load library failure callback for ui display
4) using -Os -Og.  about a 300k win!
5) adding a win32 x86 build option

minimo only.  npodb
This commit is contained in:
dougt%meer.net 2005-09-16 02:57:27 +00:00
Родитель 73b567a10f
Коммит cf5095eaa5
16 изменённых файлов: 346 добавлений и 222 удалений

Просмотреть файл

@ -41,6 +41,6 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = components chrome customization base
DIRS = config components chrome customization base
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -1,176 +1,179 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# 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 Minimo.
#
# The Initial Developer of the Original Code is
# Doug Turner <dougt@meer.net>.
# Portions created by the Initial Developer are Copyright (C) 2005
# 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 MPL, 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 MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MOZILLA_INTERNAL_API = 1
PROGRAM = minimo$(BIN_SUFFIX)
MODULE = minimo
REQUIRES = xpcom \
appshell \
string \
embed_base \
webbrwsr \
webshell \
windowwatcher \
profile \
necko \
docshell \
dom \
widget \
uriloader \
shistory \
webbrowserpersist \
gfx \
layout \
content \
profdirserviceprovider \
pref \
pipnss \
intl \
embedcomponents \
appcomps \
phone \
$(NULL) \
CPPSRCS = Minimo.cpp \
WindowCreator.cpp \
SplashScreen.cpp \
nsConsoleWriter.cpp \
$(NULL) \
# this should move into the toolkit!
LOCAL_INCLUDES = -I$(srcdir) -I$(topsrcdir)/xpfe/browser/src/
CPPSRCS += nsBrowserStatusFilter.cpp
ifdef WINCE
RCINCLUDE = wince/SplashScreen.rc
endif
EXTRA_DSO_LIBS = embed_base_s profdirserviceprovider_s
LIBS = $(EXTRA_DSO_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
$(XPCOM_LIBS) \
$(NSPR_LIBS) \
$(MOZ_JS_LIBS) \
$(NULL)
ifdef MOZ_ENABLE_GTK2
LIBS += $(XLDFLAGS) \
$(XLIBS) \
$(NULL)
endif
include $(topsrcdir)/config/config.mk
ifdef WINCE
LOCAL_INCLUDES += -I$(srcdir)/wince
OS_LIBS += $(call EXPAND_LIBNAME, aygshell cellcore uuid ole32 oleaut32)
endif
ifdef BUILD_STATIC_LIBS
ifdef WINCE
FINAL_PLATFORM=wince
else
FINAL_PLATFORM=linux
endif
FINAL_LINK_COMPS=$(topsrcdir)/minimo/base/$(FINAL_PLATFORM)/minimo-link-comps
FINAL_LINK_COMP_NAMES=$(topsrcdir)/minimo/base/$(FINAL_PLATFORM)/minimo-link-names
FINAL_LINK_LIBS=$(topsrcdir)/minimo/base/$(FINAL_PLATFORM)/minimo-link-libs
include $(topsrcdir)/config/static-config.mk
EXTRA_DEPS += $(STATIC_EXTRA_DEPS)
EXTRA_DSO_LIBS += $(STATIC_EXTRA_DSO_LIBS)
EXTRA_LIBS += $(EXTRA_DSO_LIBS) $(STATIC_EXTRA_LIBS)
DEFINES += $(STATIC_DEFINES)
CPPSRCS += $(STATIC_CPPSRCS)
endif # BUILD_STATIC_LIBS
include $(topsrcdir)/config/rules.mk
ifdef MOZ_ENABLE_GTK2
CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS)
EXTRA_LIBS += $(TK_LIBS)
endif
ifdef BUILD_STATIC_LIBS
include $(topsrcdir)/config/static-rules.mk
endif
export::
$(NSINSTALL) $(topsrcdir)/xpfe/browser/src/nsBrowserStatusFilter.cpp .
GARBAGE += nsBrowserStatusFilter.cpp
ifdef WINCE
package::
bash $(srcdir)/../config/wince_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
installer_only::
bash $(srcdir)/../config/wince_buildinstaller.sh $(MOZ_BUILD_ROOT) $(srcdir)
installer::
bash $(srcdir)/../config/wince_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
bash $(srcdir)/../config/wince_buildinstaller.sh $(MOZ_BUILD_ROOT) $(srcdir)
else
package::
bash $(srcdir)/../config/linux_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
installer::
bash $(srcdir)/../config/linux_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
endif
libs::
make package
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# 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 Minimo.
#
# The Initial Developer of the Original Code is
# Doug Turner <dougt@meer.net>.
# Portions created by the Initial Developer are Copyright (C) 2005
# 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 MPL, 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 MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MOZILLA_INTERNAL_API = 1
PROGRAM = minimo$(BIN_SUFFIX)
MODULE = minimo
REQUIRES = xpcom \
appshell \
string \
embed_base \
webbrwsr \
webshell \
windowwatcher \
profile \
necko \
docshell \
dom \
widget \
uriloader \
shistory \
webbrowserpersist \
gfx \
layout \
content \
profdirserviceprovider \
pref \
pipnss \
intl \
embedcomponents \
appcomps \
phone \
$(NULL) \
CPPSRCS = Minimo.cpp \
WindowCreator.cpp \
SplashScreen.cpp \
nsConsoleWriter.cpp \
$(NULL) \
# this should move into the toolkit!
LOCAL_INCLUDES = -I$(srcdir) -I$(topsrcdir)/xpfe/browser/src/
CPPSRCS += nsBrowserStatusFilter.cpp
ifdef WINCE
RCINCLUDE = wince/SplashScreen.rc
endif
EXTRA_DSO_LIBS = embed_base_s profdirserviceprovider_s
LIBS = $(EXTRA_DSO_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
$(XPCOM_LIBS) \
$(NSPR_LIBS) \
$(MOZ_JS_LIBS) \
$(NULL)
ifdef MOZ_ENABLE_GTK2
LIBS += $(XLDFLAGS) \
$(XLIBS) \
$(NULL)
endif
include $(topsrcdir)/config/config.mk
ifdef WINCE
LOCAL_INCLUDES += -I$(srcdir)/wince
OS_LIBS += $(call EXPAND_LIBNAME, aygshell cellcore uuid ole32 oleaut32)
endif
ifdef BUILD_STATIC_LIBS
ifdef WINCE
FINAL_PLATFORM=wince
else
ifeq ($(OS_ARCH),WINNT)
FINAL_PLATFORM=winnt
else
FINAL_PLATFORM=linux
endif
endif
FINAL_LINK_COMPS=$(topsrcdir)/minimo/base/$(FINAL_PLATFORM)/minimo-link-comps
FINAL_LINK_COMP_NAMES=$(topsrcdir)/minimo/base/$(FINAL_PLATFORM)/minimo-link-names
FINAL_LINK_LIBS=$(topsrcdir)/minimo/base/$(FINAL_PLATFORM)/minimo-link-libs
include $(topsrcdir)/config/static-config.mk
EXTRA_DEPS += $(STATIC_EXTRA_DEPS)
EXTRA_DSO_LIBS += $(STATIC_EXTRA_DSO_LIBS)
EXTRA_LIBS += $(EXTRA_DSO_LIBS) $(STATIC_EXTRA_LIBS)
DEFINES += $(STATIC_DEFINES)
CPPSRCS += $(STATIC_CPPSRCS)
endif # BUILD_STATIC_LIBS
include $(topsrcdir)/config/rules.mk
ifdef MOZ_ENABLE_GTK2
CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS)
EXTRA_LIBS += $(TK_LIBS)
endif
ifdef BUILD_STATIC_LIBS
include $(topsrcdir)/config/static-rules.mk
endif
export::
$(NSINSTALL) $(topsrcdir)/xpfe/browser/src/nsBrowserStatusFilter.cpp .
GARBAGE += nsBrowserStatusFilter.cpp
ifdef WINCE
package::
bash $(srcdir)/../config/wince_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
installer_only::
bash $(srcdir)/../config/wince_buildinstaller.sh $(MOZ_BUILD_ROOT) $(srcdir)
installer::
bash $(srcdir)/../config/wince_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
bash $(srcdir)/../config/wince_buildinstaller.sh $(MOZ_BUILD_ROOT) $(srcdir)
else
package::
bash $(srcdir)/../config/linux_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
installer::
bash $(srcdir)/../config/linux_package.sh $(MOZ_BUILD_ROOT) $(srcdir)
endif

Просмотреть файл

@ -43,6 +43,8 @@
#include "nsStaticComponents.h"
#endif
#define MINIMO_PROPERTIES_URL "chrome://minimo/locale/minimo.properties"
// Global variables
const static char* start_url = "chrome://minimo/content/minimo.xul";
//const static char* start_url = "http://www.meer.net/~dougt/test.html";
@ -64,6 +66,7 @@ public:
nsCOMPtr<nsIAppShell> mAppShell;
int mWindowCount;
int mSeenLoadLibraryFailure;
};
@ -71,7 +74,8 @@ ApplicationObserver::ApplicationObserver(nsIAppShell* aAppShell)
{
mAppShell = aAppShell;
mWindowCount = 0;
mSeenLoadLibraryFailure = 0;
nsCOMPtr<nsIObserverService> os = do_GetService("@mozilla.org/observer-service;1");
@ -81,6 +85,9 @@ ApplicationObserver::ApplicationObserver(nsIAppShell* aAppShell)
os->AddObserver(this, "xul-window-registered", PR_FALSE);
os->AddObserver(this, "xul-window-destroyed", PR_FALSE);
os->AddObserver(this, "xul-window-visible", PR_FALSE);
os->AddObserver(this, "xpcom-loader", PR_FALSE);
}
ApplicationObserver::~ApplicationObserver()
@ -131,7 +138,43 @@ ApplicationObserver::Observe(nsISupports *aSubject, const char *aTopic, const PR
if (mWindowCount == 0)
mAppShell->Exit();
}
else if (!strcmp(aTopic, "xpcom-loader"))
{
if (mWindowCount == 0 || mSeenLoadLibraryFailure != 0)
return NS_OK;
mSeenLoadLibraryFailure++;
nsIFile* file = (nsIFile*) aSubject;
nsAutoString filePath;
file->GetPath(filePath);
nsCOMPtr<nsIStringBundleService> bundleService = do_GetService(NS_STRINGBUNDLE_CONTRACTID);
if (!bundleService)
return NS_ERROR_FAILURE;
nsCOMPtr<nsIStringBundle> bundle;
bundleService->CreateBundle(MINIMO_PROPERTIES_URL, getter_AddRefs(bundle));
if (!bundle)
return NS_ERROR_FAILURE;
const PRUnichar *formatStrings[] = { filePath.get() };
nsXPIDLString message;
bundle->FormatStringFromName(NS_LITERAL_STRING("loadFailed").get(),
formatStrings,
NS_ARRAY_LENGTH(formatStrings),
getter_Copies(message));
nsXPIDLString title;
bundle->GetStringFromName(NS_LITERAL_STRING("loadFailedTitle").get(), getter_Copies(title));
nsCOMPtr<nsIPromptService> promptService = do_GetService("@mozilla.org/embedcomp/prompt-service;1");
promptService->Alert(nsnull, title.get(), message.get());
}
return NS_OK;
}
@ -221,8 +264,6 @@ public:
};
#include "nsIWindowWatcher.h"
nsBadCertListener::nsBadCertListener()
{
}
@ -233,7 +274,6 @@ nsBadCertListener::~nsBadCertListener()
NS_IMPL_ISUPPORTS1(nsBadCertListener, nsIBadCertListener)
#define MINIMO_PROPERTIES_URL "chrome://minimo/locale/minimo.properties"
NS_IMETHODIMP
@ -515,7 +555,7 @@ PRBool DoesProcessAlreadyExist() {return PR_FALSE;}
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifdef WINCE
#define HACKY_PRE_LOAD_LIBRARY 1
// #define HACKY_PRE_LOAD_LIBRARY 1
#endif
#ifdef HACKY_PRE_LOAD_LIBRARY
@ -527,18 +567,10 @@ typedef struct _library
_library Libraries[] =
{
{ L"js3250.dll", NULL },
{ L"nspr4.dll", NULL },
{ L"nss3.dll", NULL },
{ L"nssckbi.dll", NULL },
{ L"plc4.dll", NULL },
{ L"plds4.dll", NULL },
{ L"shunt.dll", NULL },
{ L"smime3.dll", NULL },
{ L"softokn3.dll", NULL },
{ L"ssl3.dll", NULL },
{ L"xpcom.dll", NULL },
{ L"xpcom_core.dll", NULL },
{ L"nss3.dll", NULL },
{ L"softokn3.dll", NULL },
{ L"nssckbi.dll", NULL },
{ L"ssl3.dll", NULL },
{ NULL, NULL },
};
@ -577,6 +609,7 @@ int main(int argc, char *argv[])
#else
NS_InitEmbedding(nsnull, nsnull);
#endif
// Choose the new profile
if (NS_FAILED(StartupProfile()))
return 1;
@ -586,6 +619,22 @@ int main(int argc, char *argv[])
NS_TIMELINE_ENTER("appStartup");
nsCOMPtr<nsIAppShell> appShell = do_CreateInstance(kAppShellCID);
if (!appShell)
{
// if we can't get the nsIAppShell, then we should auto reg.
nsCOMPtr<nsIComponentRegistrar> registrar;
NS_GetComponentRegistrar(getter_AddRefs(registrar));
if (!registrar)
return -1;
registrar->AutoRegister(nsnull);
appShell = do_CreateInstance(kAppShellCID);
if (!appShell)
return 1;
}
appShell->Create(nsnull, nsnull);
ApplicationObserver *appObserver = new ApplicationObserver(appShell);

Просмотреть файл

@ -10,7 +10,6 @@ rdf
htmlpars
gfx_gtk
imglib2
gkplugin
widget_gtk2
gklayout
docshell
@ -22,9 +21,6 @@ nsappshell
chrome
mork
toolkitcomps
pipboot
pipnss
pippki
xmlextras
transformiix
websrvcs

Просмотреть файл

@ -10,7 +10,6 @@ nsRDFModule
nsParserModule
nsGfxGTKModule
nsImageLib2Module
nsPluginModule
nsWidgetGtk2Module
nsLayoutModule
docshell_provider
@ -22,9 +21,6 @@ appshell
nsChromeModule
nsMorkModule
nsToolkitCompsModule
BOOT
NSS
PKI
nsXMLExtrasModule
TransformiixModule
nsWebServicesModule

Просмотреть файл

@ -20,14 +20,9 @@ appshell
chrome
mork
tkitcmps
xmlextra
t8iix
websrvcs
gkplugin
softkey
pipboot
pipnss
pippki
phone
snav
ssr

Просмотреть файл

@ -1,4 +1,3 @@
unicharutil_s
ucvutil_s
gfxshared_s
gkgfx

Просмотреть файл

@ -9,7 +9,6 @@ nsRDFModule
nsParserModule
nsGfxModule
nsImageLib2Module
nsPluginModule
nsWidgetModule
nsLayoutModule
docshell_provider
@ -21,13 +20,9 @@ appshell
nsChromeModule
nsMorkModule
nsToolkitCompsModule
nsXMLExtrasModule
TransformiixModule
nsWebServicesModule
SoftKeyBoardModule
BOOT
NSS
PKI
nsPhoneSupportModule
SpatialNavigationModule
SSRModule

Просмотреть файл

@ -0,0 +1,30 @@
xpc3250
uconv
i18n
necko
jar50
rdf
xppref32
caps
gkparser
gkgfxwin
imglib2
gkwidget
gklayout
docshell
embedcomponents
webbrwsr
texteditor
txmgr
appshell
chrome
mork
tkitcmps
xmlextras
transformiix
websrvcs
softkey
phone
snav
ssr
devicesupport

Просмотреть файл

@ -0,0 +1,3 @@
ucvutil_s
gfxshared_s
gkgfx

Просмотреть файл

@ -0,0 +1,30 @@
xpconnect
nsUConvModule
nsI18nModule
necko_core_and_primary_protocols
nsJarModule
nsPrefModule
nsSecurityManagerModule
nsRDFModule
nsParserModule
nsGfxModule
nsImageLib2Module
nsWidgetModule
nsLayoutModule
docshell_provider
embedcomponents
Browser_Embedding_Module
nsEditorModule
nsTransactionManagerModule
appshell
nsChromeModule
nsMorkModule
nsToolkitCompsModule
nsXMLExtrasModule
TransformiixModule
nsWebServicesModule
SoftKeyBoardModule
nsPhoneSupportModule
SpatialNavigationModule
SSRModule
DeviceSupportModule

Просмотреть файл

@ -225,7 +225,11 @@ function MiniNavStartup()
browserInit(currentTab);
gSelectedTab=currentTab;
var homepage = gPrefs.getCharPref("browser.startup.homepage");
var homepage = "www.mozilla.org";
try {
homepage = gPrefs.getCharPref("browser.startup.homepage");
} catch(ex) {}
var BrowserStatusHandler = new nsBrowserStatusHandler();
BrowserStatusHandler.init();
@ -281,12 +285,16 @@ function loadURI(uri)
function BrowserLoadURL()
{
try {
loadURI(gURLBar.value);
content.focus();
}
catch(e) {
}
if (!gURLBar)
return;
var url = gURLBar.value;
if (url.substring(0,7) == "http://")
url = "http://" + url;
loadURI(gURLBar.value);
content.focus();
}
function BrowserBack()

Просмотреть файл

@ -6,3 +6,5 @@ securityWarningTitle=Security Warning
confirmUnknownIssuer=There are problems with the trust of a certificate. This means that you may not be making a safe connection. Do you want to continue?
confirmMismatch=The hostname mentioned in the server's certificate is not the hostname that was used as a destination address for the current connection. This means that you may not be making a safe connection. Do you want to continue?
confirmCertExpired=The certificate presented by the server is no longer valid because the validity period has expired. This means that the website you are connecting to hasn't renewed their certificate. This ususally isn't a major security problem. Do you want to continue?
loadFailed=Failed to library (%S). This may mean that some functionality will be lost.
loadFailedTitle=Load Library Failed

Просмотреть файл

@ -26,7 +26,7 @@ mk_add_options TARGET_DEVICE=device
# code generation options (optimize for size)
ac_add_options --enable-strip
ac_add_options --disable-debug
ac_add_options --enable-optimize=-O1
ac_add_options --enable-optimize="-Os -Og"
# enable static build
ac_add_options --disable-shared

Просмотреть файл

@ -0,0 +1,11 @@
mk_add_options MOZ_CO_PROJECT=minimo
ac_add_options --enable-application=minimo
ac_add_options --disable-native-uconv
ac_add_options --enable-debug
ac_add_options --disable-optimize
# enable static build
ac_add_options --disable-shared
ac_add_options --enable-static

Просмотреть файл

@ -31,7 +31,6 @@ cp -a bin/xpcom_core.dll minimo
cp -a bin/nss3.dll minimo
cp -a bin/nssckbi.dll minimo
cp -a bin/smime3.dll minimo
cp -a bin/softokn3.dll minimo
cp -a bin/ssl3.dll minimo
@ -56,6 +55,14 @@ cp -a bin/components/nsDictionary.js minimo/components
cp -a bin/components/nsInterfaceInfoToIDL.js minimo/components
cp -a bin/components/nsXmlRpcClient.js minimo/components
cp -a bin/components/pipboot.dll minimo/components
cp -a bin/components/pipnss.dll minimo/components
cp -a bin/components/t8iix.dll minimo/components
cp -a bin/components/websrvcs.dll minimo/components
cp -a bin/components/xmlextra.dll minimo/components
cp -a bin/components/gkplugin.dll minimo/components
cp -a bin/extensions/spatial-navigation@extensions.mozilla.org/components/* minimo/components
mkdir -p minimo/greprefs