blob: 393a41c1a8a3942f30f158d4b20ff6b694361909 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/app/android/library_loader_hooks.h"
#include "base/android/reached_code_profiler.h"
#include "base/logging.h"
#include "base/trace_event/trace_event.h"
#include "content/common/content_constants_internal.h"
#include "services/tracing/public/cpp/trace_startup.h"
namespace content {
bool LibraryLoaded(JNIEnv* env,
jclass clazz,
base::android::LibraryProcessType library_process_type) {
if (library_process_type ==
base::android::LibraryProcessType::PROCESS_BROWSER ||
library_process_type ==
base::android::LibraryProcessType::PROCESS_CHILD) {
base::android::InitReachedCodeProfilerAtStartup(library_process_type);
}
// Enable startup tracing asap to avoid early TRACE_EVENT calls being ignored.
tracing::EnableStartupTracingIfNeeded();
// Android's main browser loop is custom so we set the browser name here as
// early as possible if this is the browser process or main webview process.
if (library_process_type ==
base::android::LibraryProcessType::PROCESS_BROWSER ||
library_process_type ==
base::android::LibraryProcessType::PROCESS_WEBVIEW) {
base::trace_event::TraceLog::GetInstance()->set_process_name("Browser");
}
base::trace_event::TraceLog::GetInstance()->SetProcessSortIndex(
kTraceEventBrowserProcessSortIndex);
// Can only use event tracing after setting up the command line.
TRACE_EVENT0("jni", "JNI_OnLoad continuation");
logging::LoggingSettings settings;
settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
logging::InitLogging(settings);
// To view log output with IDs and timestamps use "adb logcat -v threadtime".
logging::SetLogItems(false, // Process ID
false, // Thread ID
false, // Timestamp
false); // Tick count
VLOG(0) << "Chromium logging enabled: level = " << logging::GetMinLogLevel()
<< ", default verbosity = " << logging::GetVlogVerbosity();
return true;
}
} // namespace content