summaryrefslogtreecommitdiff
path: root/chromium/content/app
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2014-03-18 13:16:26 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-20 15:55:39 +0100
commit3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch)
tree92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/content/app
parente90d7c4b152c56919d963987e2503f9909a666d2 (diff)
downloadqtwebengine-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.cc2
-rw-r--r--chromium/content/app/android/content_main.cc2
-rw-r--r--chromium/content/app/android/library_loader_hooks.cc102
-rw-r--r--chromium/content/app/content_main_runner.cc34
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) {