diff options
author | Andras Becsi <andras.becsi@digia.com> | 2014-03-18 13:16:26 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-20 15:55:39 +0100 |
commit | 3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch) | |
tree | 92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/content/app | |
parent | e90d7c4b152c56919d963987e2503f9909a666d2 (diff) | |
download | qtwebengine-chromium-3f0f86b0caed75241fa71c95a5d73bc0164348c5.tar.gz |
Update to new stable branch 1750
This also includes an updated ninja and chromium dependencies
needed on Windows.
Change-Id: Icd597d80ed3fa4425933c9f1334c3c2e31291c42
Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'chromium/content/app')
-rw-r--r-- | chromium/content/app/android/child_process_service.cc | 2 | ||||
-rw-r--r-- | chromium/content/app/android/content_main.cc | 2 | ||||
-rw-r--r-- | chromium/content/app/android/library_loader_hooks.cc | 102 | ||||
-rw-r--r-- | chromium/content/app/content_main_runner.cc | 34 |
4 files changed, 97 insertions, 43 deletions
diff --git a/chromium/content/app/android/child_process_service.cc b/chromium/content/app/android/child_process_service.cc index 4d5de1d5589..308246ef96c 100644 --- a/chromium/content/app/android/child_process_service.cc +++ b/chromium/content/app/android/child_process_service.cc @@ -126,7 +126,7 @@ void InitChildProcess(JNIEnv* env, } void ExitChildProcess(JNIEnv* env, jclass clazz) { - LOG(INFO) << "ChildProcessService: Exiting child process."; + VLOG(0) << "ChildProcessService: Exiting child process."; LibraryLoaderExitHook(); _exit(0); } diff --git a/chromium/content/app/android/content_main.cc b/chromium/content/app/android/content_main.cc index bfc372f71f3..00074b88340 100644 --- a/chromium/content/app/android/content_main.cc +++ b/chromium/content/app/android/content_main.cc @@ -32,7 +32,7 @@ namespace content { static void InitApplicationContext(JNIEnv* env, jclass clazz, jobject context) { base::android::ScopedJavaLocalRef<jobject> scoped_context(env, context); - base::android::InitApplicationContext(scoped_context); + base::android::InitApplicationContext(env, scoped_context); } static jint Start(JNIEnv* env, jclass clazz) { diff --git a/chromium/content/app/android/library_loader_hooks.cc b/chromium/content/app/android/library_loader_hooks.cc index 725491d67fe..b412c3abfee 100644 --- a/chromium/content/app/android/library_loader_hooks.cc +++ b/chromium/content/app/android/library_loader_hooks.cc @@ -5,6 +5,7 @@ #include "content/public/app/android_library_loader_hooks.h" #include "base/android/base_jni_registrar.h" +#include "base/android/command_line_android.h" #include "base/android/jni_android.h" #include "base/android/jni_registrar.h" #include "base/android/jni_string.h" @@ -14,31 +15,76 @@ #include "base/debug/trace_event.h" #include "base/files/file_path.h" #include "base/logging.h" +#include "base/metrics/histogram.h" #include "base/strings/string_util.h" #include "base/tracked_objects.h" #include "content/app/android/app_jni_registrar.h" #include "content/browser/android/browser_jni_registrar.h" #include "content/child/android/child_jni_registrar.h" -#include "content/common/android/command_line.h" #include "content/common/android/common_jni_registrar.h" #include "content/public/common/content_switches.h" #include "content/public/common/result_codes.h" #include "jni/LibraryLoader_jni.h" #include "media/base/android/media_jni_registrar.h" #include "net/android/net_jni_registrar.h" -#include "ui/android/ui_jni_registrar.h" +#include "ui/base/android/ui_base_jni_registrar.h" +#include "ui/gfx/android/gfx_jni_registrar.h" #include "ui/gl/android/gl_jni_registrar.h" #include "ui/shell_dialogs/android/shell_dialogs_jni_registrar.h" +namespace content { + namespace { base::AtExitManager* g_at_exit_manager = NULL; +const char* g_library_version_number = ""; } -namespace content { +bool EnsureJniRegistered(JNIEnv* env) { + static bool g_jni_init_done = false; + + if (!g_jni_init_done) { + if (!base::android::RegisterJni(env)) + return false; + + if (!gfx::android::RegisterJni(env)) + return false; + + if (!net::android::RegisterJni(env)) + return false; + + if (!ui::android::RegisterJni(env)) + return false; + + if (!ui::gl::android::RegisterJni(env)) + return false; + + if (!ui::shell_dialogs::RegisterJni(env)) + return false; + + if (!content::android::RegisterChildJni(env)) + return false; + + if (!content::android::RegisterCommonJni(env)) + return false; + + if (!content::android::RegisterBrowserJni(env)) + return false; + + if (!content::android::RegisterAppJni(env)) + return false; + + if (!media::RegisterJni(env)) + return false; + + g_jni_init_done = true; + } + + return true; +} static jint LibraryLoaded(JNIEnv* env, jclass clazz, jobjectArray init_command_line) { - InitNativeCommandLineFromJavaArray(env, init_command_line); + base::android::InitNativeCommandLineFromJavaArray(env, init_command_line); CommandLine* command_line = CommandLine::ForCurrentProcess(); @@ -70,39 +116,23 @@ static jint LibraryLoaded(JNIEnv* env, jclass clazz, VLOG(0) << "Chromium logging enabled: level = " << logging::GetMinLogLevel() << ", default verbosity = " << logging::GetVlogVerbosity(); - if (!base::android::RegisterJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!net::android::RegisterJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!ui::android::RegisterJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!ui::gl::android::RegisterJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!ui::shell_dialogs::RegisterJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!content::android::RegisterChildJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!content::android::RegisterCommonJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!content::android::RegisterBrowserJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!content::android::RegisterAppJni(env)) - return RESULT_CODE_FAILED_TO_REGISTER_JNI; - - if (!media::RegisterJni(env)) + if (!EnsureJniRegistered(env)) return RESULT_CODE_FAILED_TO_REGISTER_JNI; return 0; } +static void RecordContentAndroidLinkerHistogram( + JNIEnv* env, + jclass clazz, + jboolean loaded_at_fixed_address_failed, + jboolean is_low_memory_device) { + UMA_HISTOGRAM_BOOLEAN("ContentAndroidLinker.LoadedAtFixedAddressFailed", + loaded_at_fixed_address_failed); + UMA_HISTOGRAM_BOOLEAN("ContentAndroidLinker.IsLowMemoryDevice", + is_low_memory_device); +} + void LibraryLoaderExitHook() { if (g_at_exit_manager) { delete g_at_exit_manager; @@ -117,4 +147,12 @@ bool RegisterLibraryLoaderEntryHook(JNIEnv* env) { return RegisterNativesImpl(env); } +void SetVersionNumber(const char* version_number) { + g_library_version_number = strdup(version_number); +} + +jstring GetVersionNumber(JNIEnv* env, jclass clazz) { + return env->NewStringUTF(g_library_version_number); +} + } // namespace content diff --git a/chromium/content/app/content_main_runner.cc b/chromium/content/app/content_main_runner.cc index da27afaaf01..776417d58f9 100644 --- a/chromium/content/app/content_main_runner.cc +++ b/chromium/content/app/content_main_runner.cc @@ -133,13 +133,15 @@ void EnableThemeSupportOnAllWindowStations() { HWINSTA winsta0 = ::OpenWindowStationA("WinSta0", FALSE, GENERIC_READ); if (!winsta0) { - DLOG(INFO) << "Unable to open to WinSta0, we: "<< ::GetLastError(); + DVLOG(0) << "Unable to open to WinSta0, we: "<< ::GetLastError(); return; } if (!::SetProcessWindowStation(winsta0)) { // Could not set the alternate window station. There is a possibility // that the theme wont be correctly initialized. NOTREACHED() << "Unable to switch to WinSta0, we: "<< ::GetLastError(); + ::CloseWindowStation(winsta0); + return; } HWND window = ::CreateWindowExW(0, L"Static", L"", WS_POPUP | WS_DISABLED, @@ -406,6 +408,27 @@ int RunZygote(const MainFunctionParams& main_function_params, #endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) #if !defined(OS_IOS) +static void RegisterMainThreadFactories() { +#if !defined(CHROME_MULTIPLE_DLL_BROWSER) + UtilityProcessHost::RegisterUtilityMainThreadFactory( + CreateInProcessUtilityThread); + RenderProcessHost::RegisterRendererMainThreadFactory( + CreateInProcessRendererThread); + GpuProcessHost::RegisterGpuMainThreadFactory( + CreateInProcessGpuThread); +#else + CommandLine& command_line = *CommandLine::ForCurrentProcess(); + if (command_line.HasSwitch(switches::kSingleProcess)) { + LOG(FATAL) << + "--single-process is not supported in chrome multiple dll browser."; + } + if (command_line.HasSwitch(switches::kInProcessGPU)) { + LOG(FATAL) << + "--in-process-gpu is not supported in chrome multiple dll browser."; + } +#endif +} + // Run the FooMain() for a given process type. // If |process_type| is empty, runs BrowserMain(). // Returns the exit code for this process. @@ -430,14 +453,7 @@ int RunNamedProcessTypeMain( #endif // !CHROME_MULTIPLE_DLL_BROWSER }; -#if !defined(CHROME_MULTIPLE_DLL_BROWSER) - UtilityProcessHost::RegisterUtilityMainThreadFactory( - CreateInProcessUtilityThread); - RenderProcessHost::RegisterRendererMainThreadFactory( - CreateInProcessRendererThread); - GpuProcessHost::RegisterGpuMainThreadFactory( - CreateInProcessGpuThread); -#endif + RegisterMainThreadFactories(); for (size_t i = 0; i < arraysize(kMainFunctions); ++i) { if (process_type == kMainFunctions[i].name) { |