diff --git a/DEPS b/DEPS index b04c56b5a0..52886edd21 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ vars = { 'chromium_git': 'https://chromium.googlesource.com', - 'chromium_revision': 'c1878a272a87bd797949717bebdfdbc1e6f0c143', + 'chromium_revision': 'b4155a0bbd8b968baa44f8c9656e86e351b4e50a', 'boringssl_git': 'https://boringssl.googlesource.com', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client @@ -15,7 +15,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. - 'boringssl_revision': '467d3220f86c2fd26107783f1e3762ba5ecad9da', + 'boringssl_revision': '1e5cb820de99c754b57ab4321e1456ac6bdc1a78', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling lss # and whatever else without interference from each other. @@ -23,26 +23,25 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '6bd7ec034804d7ece286366393fab685e91595c1', + 'catapult_revision': '9e7bc18ce70595be32d8534b4309aff83ac78434', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. 'libfuzzer_revision': '16f5f743c188c836d32cdaf349d5d3effb8a3518', } - deps = { # TODO(kjellander): Move this to be Android-only once the libevent dependency # in base/third_party/libevent is solved. 'src/base': - Var('chromium_git') + '/chromium/src/base' + '@' + 'b05612a7f430f5cd0573b35a151a0cd013b20ded', + Var('chromium_git') + '/chromium/src/base' + '@' + '4545fc1f631d4259ee10a9b2972160831cd08a53', 'src/build': - Var('chromium_git') + '/chromium/src/build' + '@' + '4763c94e5e5696e8db6a755c163ff251de728348', + Var('chromium_git') + '/chromium/src/build' + '@' + 'f671d3baeb64d9dba628ad582e867cf1aebc0207', 'src/buildtools': Var('chromium_git') + '/chromium/buildtools.git' + '@' + '98f00fa10dbad2cdbb2e297a66c3d6d5bc3994f3', 'src/testing': - Var('chromium_git') + '/chromium/src/testing' + '@' + '5fef37b05e0b251bfa7bd428405a4db9c5957139', + Var('chromium_git') + '/chromium/src/testing' + '@' + 'dbbebc0d545834b83dbacf6b20188c7ed2ba45fe', 'src/third_party': - Var('chromium_git') + '/chromium/src/third_party' + '@' + '9577054f45a7102b259c16560ea22191893b9bb6', + Var('chromium_git') + '/chromium/src/third_party' + '@' + '744b88f9a83ead5dd946581462acd3c8b289113a', 'src/third_party/boringssl/src': Var('boringssl_git') + '/boringssl.git' + '@' + Var('boringssl_revision'), 'src/third_party/catapult': @@ -52,20 +51,18 @@ deps = { 'src/third_party/ffmpeg': Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + '28a5cdde5c32bcf66715343c10f74e85713f7aaf', 'src/third_party/googletest/src': - Var('chromium_git') + '/external/github.com/google/googletest.git' + '@' + '42bc671f47b122fad36db5eccbc06868afdf7862', + Var('chromium_git') + '/external/github.com/google/googletest.git' + '@' + '8c7f93fedaca1b0158e67af0f5dd63a044066eab', 'src/third_party/jsoncpp/source': Var('chromium_git') + '/external/github.com/open-source-parsers/jsoncpp.git' + '@' + 'f572e8e42e22cfcf5ab0aea26574f408943edfa4', # from svn 248 - # Used for building libFuzzers (only supports Linux). 'src/third_party/libFuzzer/src': Var('chromium_git') + '/chromium/llvm-project/llvm/lib/Fuzzer.git' + '@' + Var('libfuzzer_revision'), - 'src/third_party/libjpeg_turbo': Var('chromium_git') + '/chromium/deps/libjpeg_turbo.git' + '@' + 'a1750dbc79a8792dde3d3f7d7d8ac28ba01ac9dd', 'src/third_party/libsrtp': Var('chromium_git') + '/chromium/deps/libsrtp.git' + '@' + 'ccf84786f8ef803cb9c75e919e5a3976b9f5a672', 'src/third_party/libvpx/source/libvpx': - Var('chromium_git') + '/webm/libvpx.git' + '@' + 'b3bf91bdc60220c004a22d21c867cc392e684b81', + Var('chromium_git') + '/webm/libvpx.git' + '@' + 'ac8f58f6ab73fea7948f40eaf608f832964d8a58', 'src/third_party/libyuv': Var('chromium_git') + '/libyuv/libyuv.git' + '@' + '945ea1b7463004581502ebbcfc5a0b2f54ff6867', 'src/third_party/openh264/src': @@ -77,21 +74,19 @@ deps = { 'src/third_party/yasm/source/patched-yasm': Var('chromium_git') + '/chromium/deps/yasm/patched-yasm.git' + '@' + '7da28c6c7c6a1387217352ce02b31754deb54d2a', 'src/tools': - Var('chromium_git') + '/chromium/src/tools' + '@' + '352772c07f1ab117bbb228ec8e857870cb123e0f', + Var('chromium_git') + '/chromium/src/tools' + '@' + 'e095601b862720c85a699c2ce05e78a1b890df35', 'src/tools/gyp': Var('chromium_git') + '/external/gyp.git' + '@' + 'eb296f67da078ec01f5e3a9ea9cdc6d26d680161', 'src/tools/swarming_client': Var('chromium_git') + '/external/swarming.client.git' + '@' + Var('swarming_revision'), - # WebRTC-only dependencies (not present in Chromium). 'src/third_party/gflags': Var('chromium_git') + '/external/webrtc/deps/third_party/gflags' + '@' + '892576179b45861b53e04a112996a738309cf364', 'src/third_party/gflags/src': Var('chromium_git') + '/external/github.com/gflags/gflags' + '@' + '03bebcb065c83beff83d50ae025a55a4bf94dfca', 'src/third_party/gtest-parallel': - Var('chromium_git') + '/external/github.com/google/gtest-parallel' + '@' + '21b383f81a2214307a5cece839206418a2ba820b', + Var('chromium_git') + '/external/github.com/google/gtest-parallel' + '@' + 'c95bf7d82c30e57560be91890aa968d9bc4cedae', } - deps_os = { 'android': { 'src/third_party/android_tools': @@ -99,7 +94,7 @@ deps_os = { 'src/third_party/ced/src': Var('chromium_git') + '/external/github.com/google/compact_enc_det.git' + '@' + 'e21eb6aed10b9f6e2727f136c52420033214d458', 'src/third_party/icu': - Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'c844075aa0f1758d04f9192825f1b1e7e607992e', + Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '87232d8d763692d4b8303f0194472a82c829a6a9', 'src/third_party/jsr-305/src': Var('chromium_git') + '/external/jsr-305.git' + '@' + '642c508235471f7220af6d5df2d3210e3bfc0919', 'src/third_party/junit/src': @@ -114,7 +109,6 @@ deps_os = { Var('chromium_git') + '/external/robolectric.git' + '@' + '2a0b6ba221c14f3371813a676ce06143353e448d', 'src/third_party/ub-uiautomator/lib': Var('chromium_git') + '/chromium/third_party/ub-uiautomator.git' + '@' + '00270549ce3161ae72ceb24712618ea28b4f9434', - # Gradle 3.5.0. Used for testing Android Studio project generation for WebRTC. 'src/webrtc/examples/androidtests/third_party/gradle': Var('chromium_git') + '/external/github.com/gradle/gradle.git' + '@' + @@ -122,7 +116,7 @@ deps_os = { }, 'ios': { 'src/ios': - Var('chromium_git') + '/chromium/src/ios' + '@' + 'ecec75065b2b62f57b9ba0c14cac5dc8a51ad515', + Var('chromium_git') + '/chromium/src/ios' + '@' + '411732c0b91e4116dc6123c20042891ed4619e55', }, 'unix': { 'src/third_party/lss': @@ -132,13 +126,11 @@ deps_os = { # Dependencies used by libjpeg-turbo 'src/third_party/yasm/binaries': Var('chromium_git') + '/chromium/deps/yasm/binaries.git' + '@' + '52f9b3f4b0aa06da24ef8b123058bb61ee468881', - # WebRTC-only dependency (not present in Chromium). 'src/third_party/winsdk_samples': Var('chromium_git') + '/external/webrtc/deps/third_party/winsdk_samples_v71' + '@' + '2d31a1cbecc86359e6ec041fb9ff6c082babd073', }, } - pre_deps_hooks = [ { # Remove any symlinks from before 177567c518b121731e507e9b9c4049c4dc96e4c8. @@ -148,7 +140,6 @@ pre_deps_hooks = [ 'action': ['python', 'src/cleanup_links.py'], }, ] - hooks = [ { # Check for legacy named top-level dir (named 'trunk'). @@ -526,11 +517,9 @@ hooks = [ 'src/resources'], }, ] - recursedeps = [ # buildtools provides clang_format, libc++, and libc++abi. 'src/buildtools', # android_tools manages the NDK. 'src/third_party/android_tools', ] - diff --git a/webrtc/modules/audio_device/android/audio_manager.cc b/webrtc/modules/audio_device/android/audio_manager.cc index d56e9c1bef..6925c3d614 100644 --- a/webrtc/modules/audio_device/android/audio_manager.cc +++ b/webrtc/modules/audio_device/android/audio_manager.cc @@ -83,10 +83,11 @@ AudioManager::AudioManager() j_native_registration_ = j_environment_->RegisterNatives( "org/webrtc/voiceengine/WebRtcAudioManager", native_methods, arraysize(native_methods)); - j_audio_manager_.reset( - new JavaAudioManager(j_native_registration_.get(), - j_native_registration_->NewObject( - "", "(J)V", PointerTojlong(this)))); + j_audio_manager_.reset(new JavaAudioManager( + j_native_registration_.get(), + j_native_registration_->NewObject( + "", "(Landroid/content/Context;J)V", + JVM::GetInstance()->context(), PointerTojlong(this)))); } AudioManager::~AudioManager() { diff --git a/webrtc/modules/audio_device/android/audio_record_jni.cc b/webrtc/modules/audio_device/android/audio_record_jni.cc index 2a9eacf838..b826ef6883 100644 --- a/webrtc/modules/audio_device/android/audio_record_jni.cc +++ b/webrtc/modules/audio_device/android/audio_record_jni.cc @@ -90,10 +90,11 @@ AudioRecordJni::AudioRecordJni(AudioManager* audio_manager) j_native_registration_ = j_environment_->RegisterNatives( "org/webrtc/voiceengine/WebRtcAudioRecord", native_methods, arraysize(native_methods)); - j_audio_record_.reset( - new JavaAudioRecord(j_native_registration_.get(), - j_native_registration_->NewObject( - "", "(J)V", PointerTojlong(this)))); + j_audio_record_.reset(new JavaAudioRecord( + j_native_registration_.get(), + j_native_registration_->NewObject( + "", "(Landroid/content/Context;J)V", + JVM::GetInstance()->context(), PointerTojlong(this)))); // Detach from this thread since we want to use the checker to verify calls // from the Java based audio thread. thread_checker_java_.DetachFromThread(); diff --git a/webrtc/modules/audio_device/android/audio_track_jni.cc b/webrtc/modules/audio_device/android/audio_track_jni.cc index 83c01c969a..72e056f368 100644 --- a/webrtc/modules/audio_device/android/audio_track_jni.cc +++ b/webrtc/modules/audio_device/android/audio_track_jni.cc @@ -89,10 +89,11 @@ AudioTrackJni::AudioTrackJni(AudioManager* audio_manager) j_native_registration_ = j_environment_->RegisterNatives( "org/webrtc/voiceengine/WebRtcAudioTrack", native_methods, arraysize(native_methods)); - j_audio_track_.reset( - new JavaAudioTrack(j_native_registration_.get(), - j_native_registration_->NewObject( - "", "(J)V", PointerTojlong(this)))); + j_audio_track_.reset(new JavaAudioTrack( + j_native_registration_.get(), + j_native_registration_->NewObject( + "", "(Landroid/content/Context;J)V", + JVM::GetInstance()->context(), PointerTojlong(this)))); // Detach from this thread since we want to use the checker to verify calls // from the Java based audio thread. thread_checker_java_.DetachFromThread(); diff --git a/webrtc/modules/audio_device/android/ensure_initialized.cc b/webrtc/modules/audio_device/android/ensure_initialized.cc index b82d4b7a4c..9bc08ab196 100644 --- a/webrtc/modules/audio_device/android/ensure_initialized.cc +++ b/webrtc/modules/audio_device/android/ensure_initialized.cc @@ -17,6 +17,7 @@ // Note: this dependency is dangerous since it reaches into Chromium's base. // There's a risk of e.g. macro clashes. This file may only be used in tests. RTC_PUSH_IGNORING_WUNDEF() +#include "base/android/context_utils.h" #include "base/android/jni_android.h" RTC_POP_IGNORING_WUNDEF() #include "webrtc/base/checks.h" @@ -34,9 +35,10 @@ void EnsureInitializedOnce() { JNIEnv* jni = ::base::android::AttachCurrentThread(); JavaVM* jvm = NULL; RTC_CHECK_EQ(0, jni->GetJavaVM(&jvm)); + jobject context = ::base::android::GetApplicationContext().obj(); // Initialize the Java environment (currently only used by the audio manager). - webrtc::JVM::Initialize(jvm); + webrtc::JVM::Initialize(jvm, context); } void EnsureInitialized() { diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java index 76ec4c5ede..24b8ab8340 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java @@ -20,7 +20,6 @@ import android.media.AudioTrack; import android.os.Build; import java.util.Timer; import java.util.TimerTask; -import org.webrtc.ContextUtils; import org.webrtc.Logging; // WebRtcAudioManager handles tasks that uses android.media.AudioManager. @@ -136,6 +135,7 @@ public class WebRtcAudioManager { } private final long nativeAudioManager; + private final Context context; private final AudioManager audioManager; private boolean initialized = false; @@ -156,11 +156,11 @@ public class WebRtcAudioManager { private final VolumeLogger volumeLogger; - WebRtcAudioManager(long nativeAudioManager) { + WebRtcAudioManager(Context context, long nativeAudioManager) { Logging.d(TAG, "ctor" + WebRtcAudioUtils.getThreadInfo()); + this.context = context; this.nativeAudioManager = nativeAudioManager; - audioManager = - (AudioManager) ContextUtils.getApplicationContext().getSystemService(Context.AUDIO_SERVICE); + audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); if (DEBUG) { WebRtcAudioUtils.logDeviceInfo(TAG); } @@ -224,14 +224,12 @@ public class WebRtcAudioManager { // Gets the current earpiece state. private boolean hasEarpiece() { - return ContextUtils.getApplicationContext().getPackageManager().hasSystemFeature( - PackageManager.FEATURE_TELEPHONY); + return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY); } // Returns true if low-latency audio output is supported. private boolean isLowLatencyOutputSupported() { - return ContextUtils.getApplicationContext().getPackageManager().hasSystemFeature( - PackageManager.FEATURE_AUDIO_LOW_LATENCY); + return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_LOW_LATENCY); } // Returns true if low-latency audio input is supported. @@ -250,8 +248,7 @@ public class WebRtcAudioManager { @TargetApi(23) private boolean isProAudioSupported() { return WebRtcAudioUtils.runningOnMarshmallowOrHigher() - && ContextUtils.getApplicationContext().getPackageManager().hasSystemFeature( - PackageManager.FEATURE_AUDIO_PRO); + && context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_PRO); } // Returns the native output sample rate for this device's output stream. diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java index ba93ea1fb2..762a903f0d 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java @@ -19,7 +19,6 @@ import android.os.Process; import java.lang.System; import java.nio.ByteBuffer; import java.util.concurrent.TimeUnit; -import org.webrtc.ContextUtils; import org.webrtc.Logging; import org.webrtc.ThreadUtils; @@ -48,6 +47,7 @@ public class WebRtcAudioRecord { private static final long AUDIO_RECORD_THREAD_JOIN_TIMEOUT_MS = 2000; private final long nativeAudioRecord; + private final Context context; private WebRtcAudioEffects effects = null; @@ -139,8 +139,9 @@ public class WebRtcAudioRecord { } } - WebRtcAudioRecord(long nativeAudioRecord) { + WebRtcAudioRecord(Context context, long nativeAudioRecord) { Logging.d(TAG, "ctor" + WebRtcAudioUtils.getThreadInfo()); + this.context = context; this.nativeAudioRecord = nativeAudioRecord; if (DEBUG) { WebRtcAudioUtils.logDeviceInfo(TAG); @@ -168,8 +169,7 @@ public class WebRtcAudioRecord { private int initRecording(int sampleRate, int channels) { Logging.d(TAG, "initRecording(sampleRate=" + sampleRate + ", channels=" + channels + ")"); - if (!WebRtcAudioUtils.hasPermission( - ContextUtils.getApplicationContext(), android.Manifest.permission.RECORD_AUDIO)) { + if (!WebRtcAudioUtils.hasPermission(context, android.Manifest.permission.RECORD_AUDIO)) { reportWebRtcAudioRecordInitError("RECORD_AUDIO permission is missing"); return -1; } diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java index 796a0821c5..65c52077c8 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java @@ -19,7 +19,6 @@ import android.media.AudioTrack; import android.os.Process; import java.lang.Thread; import java.nio.ByteBuffer; -import org.webrtc.ContextUtils; import org.webrtc.Logging; public class WebRtcAudioTrack { @@ -37,6 +36,7 @@ public class WebRtcAudioTrack { // Average number of callbacks per second. private static final int BUFFERS_PER_SECOND = 1000 / CALLBACK_BUFFER_SIZE_MS; + private final Context context; private final long nativeAudioTrack; private final AudioManager audioManager; @@ -165,11 +165,11 @@ public class WebRtcAudioTrack { } } - WebRtcAudioTrack(long nativeAudioTrack) { + WebRtcAudioTrack(Context context, long nativeAudioTrack) { Logging.d(TAG, "ctor" + WebRtcAudioUtils.getThreadInfo()); + this.context = context; this.nativeAudioTrack = nativeAudioTrack; - audioManager = - (AudioManager) ContextUtils.getApplicationContext().getSystemService(Context.AUDIO_SERVICE); + audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); if (DEBUG) { WebRtcAudioUtils.logDeviceInfo(TAG); } diff --git a/webrtc/modules/utility/include/jvm_android.h b/webrtc/modules/utility/include/jvm_android.h index 1fa5f9e6be..51a0bd841a 100644 --- a/webrtc/modules/utility/include/jvm_android.h +++ b/webrtc/modules/utility/include/jvm_android.h @@ -118,7 +118,8 @@ class JNIEnvironment { // JNIEnv* jni = ::base::android::AttachCurrentThread(); // JavaVM* jvm = NULL; // jni->GetJavaVM(&jvm); -// webrtc::JVM::Initialize(jvm); +// jobject context = ::base::android::GetApplicationContext(); +// webrtc::JVM::Initialize(jvm, context); // // // Header (.h) file of example class called User. // std::unique_ptr env; @@ -144,12 +145,9 @@ class JNIEnvironment { // JVM::Uninitialize(); class JVM { public: - // Stores global handles to the Java VM interface. + // Stores global handles to the Java VM interface and the application context. // Should be called once on a thread that is attached to the JVM. - static void Initialize(JavaVM* jvm); - // TODO(sakal): Remove once downstream dependencies have been updated. - // Deprecated old signature with Android context. - static void Initialize(JavaVM* jvm, jobject context) { Initialize(jvm); } + static void Initialize(JavaVM* jvm, jobject context); // Clears handles stored in Initialize(). Must be called on same thread as // Initialize(). static void Uninitialize(); @@ -170,9 +168,10 @@ class JVM { // TODO(henrika): can we make these private? JavaVM* jvm() const { return jvm_; } + jobject context() const { return context_; } protected: - JVM(JavaVM* jvm); + JVM(JavaVM* jvm, jobject context); ~JVM(); private: @@ -180,6 +179,7 @@ class JVM { rtc::ThreadChecker thread_checker_; JavaVM* const jvm_; + jobject context_; }; } // namespace webrtc diff --git a/webrtc/modules/utility/source/jvm_android.cc b/webrtc/modules/utility/source/jvm_android.cc index 2228d3ad25..9d08688700 100644 --- a/webrtc/modules/utility/source/jvm_android.cc +++ b/webrtc/modules/utility/source/jvm_android.cc @@ -217,10 +217,10 @@ std::string JNIEnvironment::JavaToStdString(const jstring& j_string) { } // static -void JVM::Initialize(JavaVM* jvm) { +void JVM::Initialize(JavaVM* jvm, jobject context) { ALOGD("JVM::Initialize%s", GetThreadInfo().c_str()); RTC_CHECK(!g_jvm); - g_jvm = new JVM(jvm); + g_jvm = new JVM(jvm, context); } // static @@ -237,9 +237,11 @@ JVM* JVM::GetInstance() { return g_jvm; } -JVM::JVM(JavaVM* jvm) : jvm_(jvm) { +JVM::JVM(JavaVM* jvm, jobject context) + : jvm_(jvm) { ALOGD("JVM::JVM%s", GetThreadInfo().c_str()); RTC_CHECK(jni()) << "AttachCurrentThread() must be called on this thread."; + context_ = NewGlobalRef(jni(), context); LoadClasses(jni()); } @@ -247,6 +249,7 @@ JVM::~JVM() { ALOGD("JVM::~JVM%s", GetThreadInfo().c_str()); RTC_DCHECK(thread_checker_.CalledOnValidThread()); FreeClassReferences(jni()); + DeleteGlobalRef(jni(), context_); } std::unique_ptr JVM::environment() { diff --git a/webrtc/pc/test/androidtestinitializer.cc b/webrtc/pc/test/androidtestinitializer.cc index f070104177..3f2ebd4c3b 100644 --- a/webrtc/pc/test/androidtestinitializer.cc +++ b/webrtc/pc/test/androidtestinitializer.cc @@ -19,6 +19,7 @@ // Since we use Chromes build system for creating the gtest binary, this should // be fine. RTC_PUSH_IGNORING_WUNDEF() +#include "base/android/context_utils.h" #include "base/android/jni_android.h" RTC_POP_IGNORING_WUNDEF() @@ -40,10 +41,11 @@ void EnsureInitializedOnce() { JNIEnv* jni = ::base::android::AttachCurrentThread(); JavaVM* jvm = NULL; RTC_CHECK_EQ(0, jni->GetJavaVM(&jvm)); + jobject context = ::base::android::GetApplicationContext().obj(); RTC_CHECK(rtc::InitializeSSL()) << "Failed to InitializeSSL()"; - webrtc::JVM::Initialize(jvm); + webrtc::JVM::Initialize(jvm, context); } } // anonymous namespace diff --git a/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java b/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java index b7d85f04e3..28b3ca72ab 100644 --- a/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java +++ b/webrtc/sdk/android/api/org/webrtc/PeerConnectionFactory.java @@ -10,7 +10,6 @@ package org.webrtc; -import android.content.Context; import java.util.List; /** @@ -31,7 +30,6 @@ public class PeerConnectionFactory { private static final String TAG = "PeerConnectionFactory"; private final long nativeFactory; - private static Context applicationContext; private static Thread networkThread; private static Thread workerThread; private static Thread signalingThread; @@ -54,19 +52,14 @@ public class PeerConnectionFactory { // Must be called at least once before creating a PeerConnectionFactory // (for example, at application startup time). - public static native void nativeInitializeAndroidGlobals( - Context context, boolean videoHwAcceleration); - - public static void initializeAndroidGlobals(Context context, boolean videoHwAcceleration) { - ContextUtils.initialize(context); - nativeInitializeAndroidGlobals(context, videoHwAcceleration); - } + public static native void initializeAndroidGlobals( + android.content.Context context, boolean videoHwAcceleration); // Older signature of initializeAndroidGlobals. The extra parameters are now meaningless. @Deprecated public static boolean initializeAndroidGlobals(Object context, boolean initializeAudio, boolean initializeVideo, boolean videoHwAcceleration) { - initializeAndroidGlobals((Context) context, videoHwAcceleration); + initializeAndroidGlobals((android.content.Context) context, videoHwAcceleration); return true; } diff --git a/webrtc/sdk/android/src/jni/peerconnection_jni.cc b/webrtc/sdk/android/src/jni/peerconnection_jni.cc index 8c20337179..708e65db46 100644 --- a/webrtc/sdk/android/src/jni/peerconnection_jni.cc +++ b/webrtc/sdk/android/src/jni/peerconnection_jni.cc @@ -1139,7 +1139,7 @@ JOW(jlong, PeerConnectionFactory_nativeCreateObserver)( return (jlong)new PCOJava(jni, j_observer); } -JOW(void, PeerConnectionFactory_nativeInitializeAndroidGlobals) +JOW(void, PeerConnectionFactory_initializeAndroidGlobals) (JNIEnv* jni, jclass, jobject context, @@ -1149,7 +1149,7 @@ JOW(void, PeerConnectionFactory_nativeInitializeAndroidGlobals) if (!factory_static_initialized) { RTC_DCHECK(j_application_context == nullptr); j_application_context = NewGlobalRef(jni, context); - webrtc::JVM::Initialize(GetJVM()); + webrtc::JVM::Initialize(GetJVM(), context); factory_static_initialized = true; } } diff --git a/webrtc/test/BUILD.gn b/webrtc/test/BUILD.gn index 728269bb85..aa6f322313 100644 --- a/webrtc/test/BUILD.gn +++ b/webrtc/test/BUILD.gn @@ -532,17 +532,3 @@ rtc_source_set("audio_codec_mocks") { "//testing/gmock", ] } - -if (!build_with_chromium && is_android) { - android_library("native_test_java") { - testonly = true - java_files = [ - "android/org/webrtc/native_test/RTCNativeUnitTest.java", - "android/org/webrtc/native_test/RTCNativeUnitTestActivity.java", - ] - deps = [ - "//testing/android/native_test:native_test_java", - "//webrtc/base:base_java", - ] - } -} diff --git a/webrtc/test/android/AndroidManifest.xml b/webrtc/test/android/AndroidManifest.xml deleted file mode 100644 index b5157a75df..0000000000 --- a/webrtc/test/android/AndroidManifest.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webrtc/test/android/org/webrtc/native_test/RTCNativeUnitTest.java b/webrtc/test/android/org/webrtc/native_test/RTCNativeUnitTest.java deleted file mode 100644 index dede7edd1f..0000000000 --- a/webrtc/test/android/org/webrtc/native_test/RTCNativeUnitTest.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -package org.webrtc.native_test; - -import android.app.Activity; -import org.chromium.native_test.NativeUnitTest; -import org.webrtc.ContextUtils; - -/** - * Native unit test that calls ContextUtils.initialize for WebRTC. - */ -public class RTCNativeUnitTest extends NativeUnitTest { - @Override - public void preCreate(Activity activity) { - super.preCreate(activity); - ContextUtils.initialize(activity.getApplicationContext()); - } -} diff --git a/webrtc/test/android/org/webrtc/native_test/RTCNativeUnitTestActivity.java b/webrtc/test/android/org/webrtc/native_test/RTCNativeUnitTestActivity.java deleted file mode 100644 index 2a413682fe..0000000000 --- a/webrtc/test/android/org/webrtc/native_test/RTCNativeUnitTestActivity.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -package org.webrtc.native_test; - -import android.app.Activity; -import android.os.Bundle; - -/** - * Activity that uses RTCNativeUnitTest to run the tests. - */ -public class RTCNativeUnitTestActivity extends Activity { - private RTCNativeUnitTest mTest = new RTCNativeUnitTest(); - - @Override - public void onCreate(Bundle savedInstanceState) { - mTest.preCreate(this); - super.onCreate(savedInstanceState); - mTest.postCreate(this); - } - - @Override - public void onStart() { - super.onStart(); - mTest.postStart(this, false); - } -} diff --git a/webrtc/webrtc.gni b/webrtc/webrtc.gni index d4acaf5268..745a66576c 100644 --- a/webrtc/webrtc.gni +++ b/webrtc/webrtc.gni @@ -266,10 +266,6 @@ template("rtc_test") { if (defined(invoker.public_configs)) { public_configs += invoker.public_configs } - if (!build_with_chromium && is_android) { - android_manifest = "//webrtc/test/android/AndroidManifest.xml" - deps += [ "//webrtc/test:native_test_java" ] - } } }