Commit 291602e7 authored by Matt Falkenhagen's avatar Matt Falkenhagen Committed by Commit Bot

ServiceWorkerOnUI: Fix background sync on Android.

This fixes the tests on Android and enables it in testing, following up
on r695883.

Bug: 824858
TBR: bcwhite
Change-Id: I04ea9c9d44f7b0eea933354c44b7c8116e9f9f35
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1799645
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarPeter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695922}
parent 05d74ba1
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/task/post_task.h" #include "base/task/post_task.h"
#include "content/public/android/content_jni_headers/BackgroundSyncNetworkObserver_jni.h" #include "content/public/android/content_jni_headers/BackgroundSyncNetworkObserver_jni.h"
#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/service_worker_context.h"
using base::android::JavaParamRef; using base::android::JavaParamRef;
...@@ -17,11 +18,11 @@ namespace content { ...@@ -17,11 +18,11 @@ namespace content {
scoped_refptr<BackgroundSyncNetworkObserverAndroid::Observer> scoped_refptr<BackgroundSyncNetworkObserverAndroid::Observer>
BackgroundSyncNetworkObserverAndroid::Observer::Create( BackgroundSyncNetworkObserverAndroid::Observer::Create(
base::RepeatingCallback<void(network::mojom::ConnectionType)> callback) { base::RepeatingCallback<void(network::mojom::ConnectionType)> callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
scoped_refptr<BackgroundSyncNetworkObserverAndroid::Observer> observer( scoped_refptr<BackgroundSyncNetworkObserverAndroid::Observer> observer(
new BackgroundSyncNetworkObserverAndroid::Observer(callback)); new BackgroundSyncNetworkObserverAndroid::Observer(callback));
base::PostTask( RunOrPostTaskOnThread(
FROM_HERE, {BrowserThread::UI}, FROM_HERE, BrowserThread::UI,
base::BindOnce(&BackgroundSyncNetworkObserverAndroid::Observer::Init, base::BindOnce(&BackgroundSyncNetworkObserverAndroid::Observer::Init,
observer)); observer));
return observer; return observer;
...@@ -51,8 +52,8 @@ void BackgroundSyncNetworkObserverAndroid::Observer:: ...@@ -51,8 +52,8 @@ void BackgroundSyncNetworkObserverAndroid::Observer::
const JavaParamRef<jobject>& jcaller, const JavaParamRef<jobject>& jcaller,
jint new_connection_type) { jint new_connection_type) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
base::PostTask( RunOrPostTaskOnThread(
FROM_HERE, {BrowserThread::IO}, FROM_HERE, ServiceWorkerContext::GetCoreThreadId(),
base::BindOnce(callback_, static_cast<network::mojom::ConnectionType>( base::BindOnce(callback_, static_cast<network::mojom::ConnectionType>(
new_connection_type))); new_connection_type)));
} }
...@@ -60,13 +61,13 @@ void BackgroundSyncNetworkObserverAndroid::Observer:: ...@@ -60,13 +61,13 @@ void BackgroundSyncNetworkObserverAndroid::Observer::
BackgroundSyncNetworkObserverAndroid::Observer::Observer( BackgroundSyncNetworkObserverAndroid::Observer::Observer(
base::RepeatingCallback<void(network::mojom::ConnectionType)> callback) base::RepeatingCallback<void(network::mojom::ConnectionType)> callback)
: callback_(callback) { : callback_(callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
} }
BackgroundSyncNetworkObserverAndroid::BackgroundSyncNetworkObserverAndroid( BackgroundSyncNetworkObserverAndroid::BackgroundSyncNetworkObserverAndroid(
const base::Closure& network_changed_callback) const base::Closure& network_changed_callback)
: BackgroundSyncNetworkObserver(network_changed_callback) { : BackgroundSyncNetworkObserver(network_changed_callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
observer_ = Observer::Create( observer_ = Observer::Create(
base::Bind(&BackgroundSyncNetworkObserverAndroid::OnConnectionChanged, base::Bind(&BackgroundSyncNetworkObserverAndroid::OnConnectionChanged,
...@@ -74,7 +75,7 @@ BackgroundSyncNetworkObserverAndroid::BackgroundSyncNetworkObserverAndroid( ...@@ -74,7 +75,7 @@ BackgroundSyncNetworkObserverAndroid::BackgroundSyncNetworkObserverAndroid(
} }
BackgroundSyncNetworkObserverAndroid::~BackgroundSyncNetworkObserverAndroid() { BackgroundSyncNetworkObserverAndroid::~BackgroundSyncNetworkObserverAndroid() {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
} }
void BackgroundSyncNetworkObserverAndroid::RegisterWithNetworkConnectionTracker( void BackgroundSyncNetworkObserverAndroid::RegisterWithNetworkConnectionTracker(
......
...@@ -5264,6 +5264,8 @@ ...@@ -5264,6 +5264,8 @@
"ServiceWorkerOnUI": [ "ServiceWorkerOnUI": [
{ {
"platforms": [ "platforms": [
"android",
"android_webview",
"chromeos", "chromeos",
"linux", "linux",
"mac", "mac",
......
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