Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java

Issue 2690163008: Route through a JobService when receiving a message for the GCM Driver (Closed)
Patch Set: Route through a JobService when receiving a message for the GCM Driver Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java
diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java b/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java
index 5d11c73bc21385c0b9e80faf938950ae4396e8e1..b914c9bdbf073654e5d8b3f2f386d5f3d8a83932 100644
--- a/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java
+++ b/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java
@@ -6,7 +6,6 @@ package org.chromium.components.gcm_driver;
import android.content.Context;
import android.os.AsyncTask;
-import android.os.Bundle;
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
@@ -15,8 +14,6 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
/**
* This class is the Java counterpart to the C++ GCMDriverAndroid class.
@@ -115,41 +112,16 @@ public class GCMDriver {
}
// The caller of this function is responsible for ensuring the browser process is initialized.
- public static void onMessageReceived(String appId, String senderId, Bundle extras) {
- // TODO(johnme): Store message and redeliver later if Chrome is killed before delivery.
+ public static void dispatchMessage(GCMMessage message) {
ThreadUtils.assertOnUiThread();
+
if (sInstance == null) {
- // Change of behaviour, throw exception instead of failing silently with Log.e.
throw new RuntimeException("Failed to instantiate GCMDriver.");
}
- final String bundleSubtype = "subtype";
- final String bundleSenderId = "from";
- final String bundleCollapseKey = "collapse_key";
- final String bundleRawData = "rawData";
- final String bundleGcmplex = "com.google.ipc.invalidation.gcmmplex.";
-
- String collapseKey = extras.getString(bundleCollapseKey); // May be null.
- byte[] rawData = extras.getByteArray(bundleRawData); // May be null.
-
- List<String> dataKeysAndValues = new ArrayList<String>();
- for (String key : extras.keySet()) {
- // TODO(johnme): Check there aren't other keys that we need to exclude.
- if (key.equals(bundleSubtype) || key.equals(bundleSenderId)
- || key.equals(bundleCollapseKey) || key.equals(bundleRawData)
- || key.startsWith(bundleGcmplex)) {
- continue;
- }
- Object value = extras.get(key);
- if (!(value instanceof String)) {
- continue;
- }
- dataKeysAndValues.add(key);
- dataKeysAndValues.add((String) value);
- }
- sInstance.nativeOnMessageReceived(sInstance.mNativeGCMDriverAndroid,
- appId, senderId, collapseKey, rawData,
- dataKeysAndValues.toArray(new String[dataKeysAndValues.size()]));
+ sInstance.nativeOnMessageReceived(sInstance.mNativeGCMDriverAndroid, message.getAppId(),
+ message.getSenderId(), message.getCollapseKey(), message.getRawData(),
+ message.getDataKeysAndValuesArray());
}
@VisibleForTesting

Powered by Google App Engine
This is Rietveld 408576698