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

Unified Diff: components/devtools_bridge/android/java/src/org/chromium/components/devtools_bridge/DevToolsBridgeServiceBase.java

Issue 1142463003: Remove devtools_bridge component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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/devtools_bridge/android/java/src/org/chromium/components/devtools_bridge/DevToolsBridgeServiceBase.java
diff --git a/components/devtools_bridge/android/java/src/org/chromium/components/devtools_bridge/DevToolsBridgeServiceBase.java b/components/devtools_bridge/android/java/src/org/chromium/components/devtools_bridge/DevToolsBridgeServiceBase.java
deleted file mode 100644
index f893592db2a91af60aac4999fc2f5c8bc4aa414e..0000000000000000000000000000000000000000
--- a/components/devtools_bridge/android/java/src/org/chromium/components/devtools_bridge/DevToolsBridgeServiceBase.java
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright 2014 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.components.devtools_bridge;
-
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.IBinder;
-import android.os.Looper;
-import android.support.v4.content.WakefulBroadcastReceiver;
-
-import com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener;
-
-/**
- * Base class for a service which hosts DevToolsBridgeServer. It relies on Cloud Messages
- * intents rebroadcasted via MultiplexingGcmListener. It intentionally doesn't inherit from
- * MultiplexingGcmListener.AbstractListener because this service may not be IntentService
- * due to lifetime management restrictions of it.
- *
- * Service lives while any intent being processed or any client connected.
- * TODO(serya): Service lifetime management code should be moved here from DevToolsBridgeServer.
- */
-public abstract class DevToolsBridgeServiceBase extends Service {
- private static final String WAKELOCK_KEY = "DevToolsBridgeService.WAKELOCK";
-
- /**
- * Delivers intents from MultiplexingGcmListener to the service making sure
- * wakelock is kept during the process.
- */
- protected abstract static class ReceiverBase extends WakefulBroadcastReceiver {
- private final Class<? extends DevToolsBridgeServiceBase> mConcreteServiceClass;
-
- protected ReceiverBase(Class<? extends DevToolsBridgeServiceBase> concreteServiceClass) {
- mConcreteServiceClass = concreteServiceClass;
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- // Pass all intent extras to the service.
- Intent startIntent = new Intent(context, mConcreteServiceClass);
- startIntent.setAction(intent.getAction());
- if (intent.getExtras() != null) startIntent.putExtras(intent.getExtras());
- startWakefulService(context, startIntent);
- }
- }
-
- private DevToolsBridgeServer mServer;
- private ServiceLifetimeManager mLifetimeManager;
-
- private Runnable mSessionHandlingTask;
-
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
-
- @Override
- public void onCreate() {
- super.onCreate();
- mServer = new DevToolsBridgeServer(new ServerDelegate());
- mLifetimeManager = new ServiceLifetimeManager(this, WAKELOCK_KEY);
- }
-
- @Override
- public void onDestroy() {
- mServer.dispose();
-
- super.onDestroy();
- }
-
- @Override
- public final int onStartCommand(Intent intent, int flags, int startId) {
- Runnable intentHandlingTask = mLifetimeManager.startTask(startId);
- if (MultiplexingGcmListener.Intents.ACTION.equals(intent.getAction())) {
- handleGCMIntent(intent);
- } else {
- onHandleIntent(intent);
- }
- ReceiverBase.completeWakefulIntent(intent);
- intentHandlingTask.run(); // Stops self if no other task started.
- return START_NOT_STICKY;
- }
-
- private void handleGCMIntent(Intent intent) {
- if (intent.getBooleanExtra(MultiplexingGcmListener.Intents.EXTRA_OP_MESSAGE, false)) {
- mServer.handleCloudMessage(intent, mLifetimeManager.startTask());
- } else if (intent.getBooleanExtra(
- MultiplexingGcmListener.Intents.EXTRA_OP_REGISTERED, false)) {
- mServer.updateCloudMessagesId(
- intent.getStringExtra(MultiplexingGcmListener.Intents.EXTRA_DATA_REG_ID),
- startTask());
- } else if (intent.getBooleanExtra(
- MultiplexingGcmListener.Intents.EXTRA_OP_UNREGISTERED, false)) {
- mServer.updateCloudMessagesId("", startTask());
- }
- }
-
- /**
- * Unlike similar method in IntentService this one runs on service thread.
- * Cloud Messages intents are handled separately.
- */
- protected void onHandleIntent(Intent intent) {
- assert calledOnServiceThread();
- }
-
- protected abstract void querySocketName(DevToolsBridgeServer.QuerySocketCallback callback);
- protected abstract void onFirstSessionStarted();
- protected abstract void onLastSessionStopped();
- protected void onSessionCountChange(int sessionCount) {}
-
- protected DevToolsBridgeServer server() {
- return mServer;
- }
-
- protected Runnable startTask() {
- return mLifetimeManager.startTask();
- }
-
- protected boolean calledOnServiceThread() {
- return Looper.myLooper() == getMainLooper();
- }
-
- private class ServerDelegate implements DevToolsBridgeServer.Delegate {
- @Override
- public Context getContext() {
- return DevToolsBridgeServiceBase.this;
- }
-
- @Override
- public void onSessionCountChange(int sessionCount) {
- assert calledOnServiceThread();
- if (sessionCount > 0 && mSessionHandlingTask == null) {
- mSessionHandlingTask = startTask();
- DevToolsBridgeServiceBase.this.onFirstSessionStarted();
- } else if (sessionCount == 0 && mSessionHandlingTask != null) {
- mSessionHandlingTask.run();
- mSessionHandlingTask = null;
- DevToolsBridgeServiceBase.this.onLastSessionStopped();
- } else {
- DevToolsBridgeServiceBase.this.onSessionCountChange(sessionCount);
- }
- }
-
- @Override
- public void querySocketName(DevToolsBridgeServer.QuerySocketCallback callback) {
- DevToolsBridgeServiceBase.this.querySocketName(callback);
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698