diff --git a/configure.in b/configure.in index 35b2be12398f..070ab2865a6a 100644 --- a/configure.in +++ b/configure.in @@ -4716,7 +4716,6 @@ case "${target}" in MOZ_THEME_FASTSTRIPE=1 MOZ_TREE_FREETYPE=1 MOZ_MEMORY=1 - MOZ_SPELLCHECK= MOZ_RAW=1 ;; esac diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp index b69f0b9d4947..c0c6fc867043 100644 --- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -4579,9 +4579,6 @@ nsGlobalWindow::Dump(const nsAString& aStr) nsMemory::Free(cstr); } -#if defined(ANDROID) && defined(DEBUG) - __android_log_print(ANDROID_LOG_INFO, "GeckoDump", "%s", cstr); -#endif return NS_OK; } diff --git a/editor/libeditor/base/Makefile.in b/editor/libeditor/base/Makefile.in index 01f4108f31a6..66b7463345a3 100644 --- a/editor/libeditor/base/Makefile.in +++ b/editor/libeditor/base/Makefile.in @@ -46,10 +46,6 @@ ifdef ENABLE_TESTS DIRS += tests endif -ifdef MOZ_SPELLCHECK -DEFINES += -DMOZ_SPELLCHECK -endif - MODULE = editor LIBRARY_NAME = editorbase_s LIBXUL_LIBRARY = 1 diff --git a/editor/libeditor/base/nsEditor.cpp b/editor/libeditor/base/nsEditor.cpp index dd55c0c32caf..b65677beea5f 100644 --- a/editor/libeditor/base/nsEditor.cpp +++ b/editor/libeditor/base/nsEditor.cpp @@ -50,13 +50,9 @@ #include "nsReadableUtils.h" #include "nsIObserverService.h" #include "mozilla/Services.h" - -#ifdef MOZ_SPELLCHECK #include "mozISpellCheckingEngine.h" #include "nsIEditorSpellCheck.h" #include "mozInlineSpellChecker.h" -#include "nsIInlineSpellChecker.h" -#endif #include "nsIDOMText.h" #include "nsIDOMElement.h" @@ -111,6 +107,7 @@ #include "nsEditorUtils.h" #include "nsEditorEventListener.h" #include "nsISelectionDisplay.h" +#include "nsIInlineSpellChecker.h" #include "nsINameSpaceManager.h" #include "nsIHTMLDocument.h" #include "nsIParserService.h" @@ -314,14 +311,12 @@ nsEditor::PostCreate() NotifyDocumentListeners(eDocumentCreated); NotifyDocumentListeners(eDocumentStateChanged); -#ifdef MOZ_SPELLCHECK nsCOMPtr obs = mozilla::services::GetObserverService(); if (obs) { obs->AddObserver(this, SPELLCHECK_DICTIONARY_UPDATE_NOTIFICATION, false); } -#endif } // update nsTextStateManager and caret if we have focus @@ -434,13 +429,11 @@ nsEditor::PreDestroy(bool aDestroyingFrames) if (mDidPreDestroy) return NS_OK; -#ifdef MOZ_SPELLCHECK nsCOMPtr obs = mozilla::services::GetObserverService(); if (obs) { obs->RemoveObserver(this, SPELLCHECK_DICTIONARY_UPDATE_NOTIFICATION); } -#endif // Let spellchecker clean up its observers etc. It is important not to // actually free the spellchecker here, since the spellchecker could have @@ -1301,7 +1294,6 @@ nsEditor::MarkNodeDirty(nsIDOMNode* aNode) NS_IMETHODIMP nsEditor::GetInlineSpellChecker(bool autoCreate, nsIInlineSpellChecker ** aInlineSpellChecker) { -#ifdef MOZ_SPELLCHECK NS_ENSURE_ARG_POINTER(aInlineSpellChecker); if (mDidPreDestroy) { @@ -1334,15 +1326,11 @@ NS_IMETHODIMP nsEditor::GetInlineSpellChecker(bool autoCreate, NS_IF_ADDREF(*aInlineSpellChecker = mInlineSpellChecker); return NS_OK; -#else - return NS_ERROR_FAILURE; -#endif } NS_IMETHODIMP nsEditor::Observe(nsISupports* aSubj, const char *aTopic, const PRUnichar *aData) { -#ifdef MOZ_SPELLCHECK NS_ASSERTION(!strcmp(aTopic, SPELLCHECK_DICTIONARY_UPDATE_NOTIFICATION), "Unexpected observer topic"); @@ -1366,9 +1354,6 @@ NS_IMETHODIMP nsEditor::Observe(nsISupports* aSubj, const char *aTopic, } return NS_OK; -#else - return NS_OK; -#endif } NS_IMETHODIMP nsEditor::SyncRealTimeSpell() diff --git a/other-licenses/android/APKOpen.cpp b/other-licenses/android/APKOpen.cpp index a76002e14ee5..646ca9d2461a 100644 --- a/other-licenses/android/APKOpen.cpp +++ b/other-licenses/android/APKOpen.cpp @@ -624,10 +624,6 @@ report_mapping(char *name, void *base, uint32_t len, uint32_t offset) extern "C" void simple_linker_init(void); -extern "C" struct timeval timings[2]; -#define TIMING_RELOC 0 -#define TIMING_CONSTRUCTORS 1 - static void loadLibs(const char *apkName) { @@ -720,9 +716,6 @@ loadLibs(const char *apkName) (usage2.ru_utime.tv_sec - usage1.ru_utime.tv_sec)*1000 + (usage2.ru_utime.tv_usec - usage1.ru_utime.tv_usec)/1000, (usage2.ru_stime.tv_sec - usage1.ru_stime.tv_sec)*1000 + (usage2.ru_stime.tv_usec - usage1.ru_stime.tv_usec)/1000, usage2.ru_majflt-usage1.ru_majflt); - __android_log_print(ANDROID_LOG_ERROR, "GeckoLibLoad", "Spent %dms on relocations, %dms on constructors", - timings[TIMING_RELOC].tv_sec * 1000 + timings[TIMING_RELOC].tv_usec / 1000, - timings[TIMING_CONSTRUCTORS].tv_sec * 1000 + timings[TIMING_CONSTRUCTORS].tv_usec / 1000); StartupTimeline_Record(LINKER_INITIALIZED, &t0); StartupTimeline_Record(LIBRARIES_LOADED, &t1); diff --git a/other-licenses/android/dlfcn.c b/other-licenses/android/dlfcn.c index 4295669d5f5e..bbde8bf41df5 100644 --- a/other-licenses/android/dlfcn.c +++ b/other-licenses/android/dlfcn.c @@ -43,6 +43,7 @@ static const char *dl_errors[] = { #define unlikely(expr) __builtin_expect (expr, 0) static pthread_mutex_t dl_lock = PTHREAD_MUTEX_INITIALIZER; +extern int extractLibs; static void set_dlerror(int err) { @@ -53,6 +54,9 @@ static void set_dlerror(int err) void *__wrap_dlopen(const char *filename, int flag) { + if (extractLibs) + return dlopen(filename, flag); + soinfo *ret; pthread_mutex_lock(&dl_lock); @@ -84,6 +88,9 @@ void *moz_mapped_dlopen(const char *filename, int flag, const char *__wrap_dlerror(void) { + if (extractLibs) + return dlerror(); + const char *tmp = dl_err_str; dl_err_str = NULL; return (const char *)tmp; @@ -91,6 +98,9 @@ const char *__wrap_dlerror(void) void *__wrap_dlsym(void *handle, const char *symbol) { + if (extractLibs) + return dlsym(handle, symbol); + soinfo *found; Elf32_Sym *sym; unsigned bind; @@ -173,6 +183,9 @@ int __wrap_dladdr(void *addr, Dl_info *info) int __wrap_dlclose(void *handle) { + if (extractLibs) + return dlclose(handle); + pthread_mutex_lock(&dl_lock); (void)unload_library((soinfo*)handle); pthread_mutex_unlock(&dl_lock); diff --git a/other-licenses/android/linker.c b/other-licenses/android/linker.c index 4021f95a30e5..7dd2a3d188e9 100644 --- a/other-licenses/android/linker.c +++ b/other-licenses/android/linker.c @@ -96,10 +96,6 @@ static soinfo *sonext = &libdl_info; static soinfo *somain; /* main process, always the one after libdl_info */ #endif -/* Keep track of cumulative time spent in relocations and static constructors */ -#define TIMING_RELOC 0 -#define TIMING_CONSTRUCTORS 1 -struct timeval timings[2] = { { 0, 0 }, { 0, 0 } }; /* Set up for the buddy allocator managing the non-prelinked libraries. */ static struct ba_bits ba_nonprelink_bitmap[(LIBLAST - LIBBASE) / LIBINC]; @@ -1321,11 +1317,9 @@ soinfo *find_library(const char *name) } } - if (strncmp(name, getenv("CACHE_PATH"), strlen(getenv("CACHE_PATH")))) { - si = dlopen(name, RTLD_LAZY); - if (si) - return si; - } + si = dlopen(name, RTLD_LAZY); + if (si) + return si; TRACE("[ %5d '%s' has not been loaded yet. Locating...]\n", pid, name); si = load_library(name); @@ -1986,7 +1980,6 @@ static int link_image(soinfo *si, unsigned wr_offset) unsigned *d; Elf32_Phdr *phdr = si->phdr; int phnum = si->phnum; - struct timeval t0, t1; INFO("[ %5d linking %s ]\n", pid, si->name); DEBUG("%5d si->base = 0x%08x si->flags = 0x%08x\n", pid, @@ -2188,6 +2181,8 @@ static int link_image(soinfo *si, unsigned wr_offset) memset(preloads, 0, sizeof(preloads)); for(i = 0; ldpreload_names[i] != NULL; i++) { soinfo *lsi = find_library(ldpreload_names[i]); + if(lsi == 0) + lsi = dlopen(ldpreload_names[i], RTLD_LAZY); if(lsi == 0) { strlcpy(tmp_err_buf, linker_get_error(), sizeof(tmp_err_buf)); DL_ERR("%5d could not load needed library '%s' for '%s' (%s)", @@ -2202,7 +2197,9 @@ static int link_image(soinfo *si, unsigned wr_offset) for(d = si->dynamic; *d; d += 2) { if(d[0] == DT_NEEDED){ DEBUG("%5d %s needs %s\n", pid, si->name, si->strtab + d[1]); - soinfo *lsi = find_library(si->strtab + d[1]); + soinfo *lsi = dlopen(si->strtab + d[1], RTLD_LAZY); + if(lsi == 0) + lsi = find_library(si->strtab + d[1]); if(lsi == 0) { strlcpy(tmp_err_buf, linker_get_error(), sizeof(tmp_err_buf)); DL_ERR("%5d could not load needed library '%s' for '%s' (%s)", @@ -2221,7 +2218,6 @@ static int link_image(soinfo *si, unsigned wr_offset) } } - gettimeofday(&t0, 0); #ifndef ANDROID_NO_RUNTIME_RELOC /* Initialize GOT[1] and GOT[2], which are used by the PLT trampoline */ Elf32_Addr *got = (Elf32_Addr *)si->plt_got; @@ -2268,10 +2264,6 @@ static int link_image(soinfo *si, unsigned wr_offset) si->flags |= FLAG_LINKED; DEBUG("[ %5d finished linking %s ]\n", pid, si->name); - gettimeofday(&t1, 0); - timings[TIMING_RELOC].tv_usec += t1.tv_usec - t0.tv_usec; - timings[TIMING_RELOC].tv_sec += t1.tv_sec - t0.tv_sec; - #if 0 /* This is the way that the old dynamic linker did protection of * non-writable areas. It would scan section headers and find where @@ -2306,12 +2298,7 @@ static int link_image(soinfo *si, unsigned wr_offset) */ if (getuid() != geteuid() || getgid() != getegid()) nullify_closed_stdio (); - gettimeofday(&t0, 0); call_constructors(si); - gettimeofday(&t1, 0); - timings[TIMING_CONSTRUCTORS].tv_usec += t1.tv_usec - t0.tv_usec; - timings[TIMING_CONSTRUCTORS].tv_sec += t1.tv_sec - t0.tv_sec; - notify_gdb_of_load(si); return 0; diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in index b0de288183db..7d5c61ec6cb7 100644 --- a/toolkit/library/Makefile.in +++ b/toolkit/library/Makefile.in @@ -304,6 +304,7 @@ endif ifeq ($(MOZ_WIDGET_TOOLKIT),android) COMPONENT_LIBS += widget_android +STATIC_LIBS += skia_npapi endif ifeq ($(MOZ_WIDGET_TOOLKIT),gonk) @@ -312,10 +313,7 @@ endif STATIC_LIBS += thebes gl ycbcr -ifeq ($(OS_TARGET),Android) COMPONENT_LIBS += profiler -STATIC_LIBS += skia_npapi -endif STATIC_LIBS += angle diff --git a/widget/src/android/AndroidBridge.cpp b/widget/src/android/AndroidBridge.cpp index c808a96b7246..3dcac11a3913 100644 --- a/widget/src/android/AndroidBridge.cpp +++ b/widget/src/android/AndroidBridge.cpp @@ -105,8 +105,8 @@ bool AndroidBridge::Init(JNIEnv *jEnv, jclass jGeckoAppShellClass) { + ALOG_BRIDGE("AndroidBridge::Init"); jEnv->GetJavaVM(&mJavaVM); - ALOG_BRIDGE("AndroidBridge::Init1"); mJNIEnv = nsnull; mThread = nsnull;