Commit 97e7f7fd authored by Alexandre Elias's avatar Alexandre Elias Committed by Commit Bot

Revert "Expose Add/RemoveActionCallback to java"

This reverts commit 4f2ac337.

Reason: new BrowsingDataBridgeTests are flaky.

TBR=dullweber,twellington,yfriedman
BUG=749373

Change-Id: Id6923b1a9481af00871354efbe1a80280456a33a
Reviewed-on: https://chromium-review.googlesource.com/590770Reviewed-by: default avatarAlexandre Elias <aelias@chromium.org>
Commit-Queue: Alexandre Elias <aelias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490611}
parent 3d1ed49b
......@@ -2697,7 +2697,6 @@ if (is_android) {
"test/android/javatests/src/org/chromium/base/test/util/TestFileUtil.java",
"test/android/javatests/src/org/chromium/base/test/util/TestThread.java",
"test/android/javatests/src/org/chromium/base/test/util/TimeoutScale.java",
"test/android/javatests/src/org/chromium/base/test/util/UserActionTester.java",
"test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java",
"test/android/javatests/src/org/chromium/base/test/util/parameter/CommandLineParameter.java",
"test/android/javatests/src/org/chromium/base/test/util/parameter/SkipCommandLineParameterization.java",
......
......@@ -6,7 +6,6 @@ package org.chromium.base.metrics;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
/**
......@@ -50,36 +49,5 @@ public class RecordUserAction {
});
}
/**
* Interface to a class that receives a callback for each UserAction that is recorded.
*/
public interface UserActionCallback {
@CalledByNative("UserActionCallback")
void onActionRecorded(String action);
}
private static long sNativeActionCallback;
/**
* Register a callback that is executed for each recorded UserAction.
* Only one callback can be registered at a time.
* The callback has to be unregistered using removeActionCallbackForTesting().
*/
public static void setActionCallbackForTesting(UserActionCallback callback) {
assert sNativeActionCallback == 0;
sNativeActionCallback = nativeAddActionCallbackForTesting(callback);
}
/**
* Unregister the UserActionCallback.
*/
public static void removeActionCallbackForTesting() {
assert sNativeActionCallback != 0;
nativeRemoveActionCallbackForTesting(sNativeActionCallback);
sNativeActionCallback = 0;
}
private static native void nativeRecordUserAction(String action);
private static native long nativeAddActionCallbackForTesting(UserActionCallback callback);
private static native void nativeRemoveActionCallbackForTesting(long callbackId);
}
......@@ -3,19 +3,9 @@
// found in the LICENSE file.
#include "base/android/jni_string.h"
#include "base/bind.h"
#include "base/callback.h"
#include "base/metrics/user_metrics.h"
#include "jni/RecordUserAction_jni.h"
namespace {
struct ActionCallbackWrapper {
base::ActionCallback action_callback;
};
} // namespace
namespace base {
namespace android {
......@@ -25,33 +15,5 @@ static void RecordUserAction(JNIEnv* env,
RecordComputedAction(ConvertJavaStringToUTF8(env, j_action));
}
static void OnActionRecorded(const JavaRef<jobject>& callback,
const std::string& action) {
JNIEnv* env = AttachCurrentThread();
Java_UserActionCallback_onActionRecorded(
env, callback, ConvertUTF8ToJavaString(env, action));
}
static jlong AddActionCallbackForTesting(
JNIEnv* env,
const JavaParamRef<jclass>& clazz,
const JavaParamRef<jobject>& callback) {
// Create a wrapper for the ActionCallback, so it can life on the heap until
// RemoveActionCallbackForTesting() is called.
auto* wrapper = new ActionCallbackWrapper{base::Bind(
&OnActionRecorded, ScopedJavaGlobalRef<jobject>(env, callback))};
base::AddActionCallback(wrapper->action_callback);
return reinterpret_cast<intptr_t>(wrapper);
}
static void RemoveActionCallbackForTesting(JNIEnv* env,
const JavaParamRef<jclass>& clazz,
jlong callback_id) {
DCHECK(callback_id);
auto* wrapper = reinterpret_cast<ActionCallbackWrapper*>(callback_id);
base::RemoveActionCallback(wrapper->action_callback);
delete wrapper;
}
} // namespace android
} // namespace base
// Copyright 2017 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.
package org.chromium.base.test.util;
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordUserAction;
import java.util.ArrayList;
import java.util.List;
/**
* A util class that records UserActions.
*/
public class UserActionTester implements RecordUserAction.UserActionCallback {
private List<String> mActions;
public UserActionTester() {
mActions = new ArrayList<>();
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
RecordUserAction.setActionCallbackForTesting(UserActionTester.this);
}
});
}
public void tearDown() {
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
RecordUserAction.removeActionCallbackForTesting();
}
});
}
@Override
public void onActionRecorded(String action) {
mActions.add(action);
}
public List<String> getActions() {
return mActions;
}
@Override
public String toString() {
return "Actions: " + mActions.toString();
}
}
......@@ -306,7 +306,7 @@ public class ClearBrowsingDataPreferences extends PreferenceFragment
}
/**
* Notifies subclasses that browsing data is about to be cleared.
* Notify subclasses that browsing data is about to be cleared.
*/
protected void onClearBrowsingData() {}
......
......@@ -1614,7 +1614,6 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java",
"javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtilsTest.java",
"javatests/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferencesTest.java",
"javatests/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataBridgeTest.java",
"javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java",
"javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasicTest.java",
"javatests/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerNativeTest.java",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment