Commit 5447e2e6 authored by Anna Malova's avatar Anna Malova Committed by Commit Bot

Convert JavaNegotiateResultWrapper to use OnceCallback.

Bug: 1007815
Change-Id: I0ff57980ab4420b8a3b8619dba3e4a3113159498
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2080259Reviewed-by: default avatarAsanka Herath <asanka@chromium.org>
Commit-Queue: Anna Malova <amalova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#746032}
parent 997d73f6
......@@ -31,10 +31,9 @@ namespace android {
JavaNegotiateResultWrapper::JavaNegotiateResultWrapper(
const scoped_refptr<base::TaskRunner>& callback_task_runner,
const base::Callback<void(int, const std::string&)>& thread_safe_callback)
base::OnceCallback<void(int, const std::string&)> thread_safe_callback)
: callback_task_runner_(callback_task_runner),
thread_safe_callback_(thread_safe_callback) {
}
thread_safe_callback_(std::move(thread_safe_callback)) {}
JavaNegotiateResultWrapper::~JavaNegotiateResultWrapper() {
}
......@@ -53,7 +52,8 @@ void JavaNegotiateResultWrapper::SetResult(JNIEnv* env,
// simplifies the logic. In practice the result will only ever come back on
// the original thread in an obscure error case.
callback_task_runner_->PostTask(
FROM_HERE, base::BindOnce(thread_safe_callback_, result, raw_token));
FROM_HERE,
base::BindOnce(std::move(thread_safe_callback_), result, raw_token));
// We will always get precisely one call to set result for each call to
// getNextAuthToken, so we can now delete the callback object, and must
// do so to avoid a memory leak.
......@@ -125,9 +125,9 @@ int HttpAuthNegotiateAndroid::GenerateAuthToken(
completion_callback_ = std::move(callback);
scoped_refptr<base::SingleThreadTaskRunner> callback_task_runner =
base::ThreadTaskRunnerHandle::Get();
base::Callback<void(int, const std::string&)> thread_safe_callback =
base::Bind(&HttpAuthNegotiateAndroid::SetResultInternal,
weak_factory_.GetWeakPtr());
base::OnceCallback<void(int, const std::string&)> thread_safe_callback =
base::BindOnce(&HttpAuthNegotiateAndroid::SetResultInternal,
weak_factory_.GetWeakPtr());
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jstring> java_server_auth_token =
ConvertUTF8ToJavaString(env, server_auth_token_);
......@@ -143,7 +143,7 @@ int HttpAuthNegotiateAndroid::GenerateAuthToken(
// Java, so the Java code must simply be written to guarantee that the
// callback is, in the end, called.
JavaNegotiateResultWrapper* callback_wrapper = new JavaNegotiateResultWrapper(
callback_task_runner, thread_safe_callback);
callback_task_runner, std::move(thread_safe_callback));
Java_HttpNegotiateAuthenticator_getNextAuthToken(
env, java_authenticator_, reinterpret_cast<intptr_t>(callback_wrapper),
java_spn, java_server_auth_token, can_delegate());
......
......@@ -41,12 +41,11 @@ namespace android {
class NET_EXPORT_PRIVATE JavaNegotiateResultWrapper {
public:
scoped_refptr<base::TaskRunner> callback_task_runner_;
base::Callback<void(int, const std::string&)> thread_safe_callback_;
base::OnceCallback<void(int, const std::string&)> thread_safe_callback_;
JavaNegotiateResultWrapper(
const scoped_refptr<base::TaskRunner>& callback_task_runner,
const base::Callback<void(int, const std::string&)>&
thread_safe_callback);
base::OnceCallback<void(int, const std::string&)> thread_safe_callback);
void SetResult(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
......
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