Index: content/shell/android/java/src/org/chromium/content_shell/ContentShellActivity.java |
diff --git a/content/shell/android/java/src/org/chromium/content_shell/ContentShellActivity.java b/content/shell/android/java/src/org/chromium/content_shell/ContentShellActivity.java |
index bddb70f316753ae564bb10700aea9dad876fadb3..a0d16829fbf76858160b687877671df15ec3d32b 100644 |
--- a/content/shell/android/java/src/org/chromium/content_shell/ContentShellActivity.java |
+++ b/content/shell/android/java/src/org/chromium/content_shell/ContentShellActivity.java |
@@ -5,7 +5,10 @@ |
package org.chromium.content_shell; |
import android.app.Activity; |
+import android.content.BroadcastReceiver; |
+import android.content.Context; |
import android.content.Intent; |
+import android.content.IntentFilter; |
import android.os.Bundle; |
import android.text.TextUtils; |
import android.util.Log; |
@@ -17,6 +20,7 @@ import org.chromium.content.browser.ActivityContentVideoViewDelegate; |
import org.chromium.content.browser.ContentVideoView; |
import org.chromium.content.browser.ContentView; |
import org.chromium.content.browser.DeviceUtils; |
+import org.chromium.content.browser.TracingIntentHandler; |
import org.chromium.content.common.CommandLine; |
import org.chromium.ui.gfx.ActivityNativeWindow; |
@@ -29,11 +33,16 @@ public class ContentShellActivity extends ChromiumActivity { |
private static final String TAG = ContentShellActivity.class.getName(); |
private static final String ACTIVE_SHELL_URL_KEY = "activeUrl"; |
+ private static final String ACTION_START_TRACE = |
+ "org.chromium.content_shell.action.PROFILE_START"; |
+ private static final String ACTION_STOP_TRACE = |
+ "org.chromium.content_shell.action.PROFILE_STOP"; |
public static final String DEFAULT_SHELL_URL = "http://www.google.com"; |
public static final String COMMAND_LINE_ARGS_KEY = "commandLineArgs"; |
private ShellManager mShellManager; |
private ActivityNativeWindow mActivityNativeWindow; |
+ private BroadcastReceiver mReceiver; |
@Override |
protected void onCreate(Bundle savedInstanceState) { |
@@ -129,6 +138,7 @@ public class ContentShellActivity extends ChromiumActivity { |
if (view != null) view.onActivityPause(); |
super.onPause(); |
+ unregisterReceiver(mReceiver); |
} |
@Override |
@@ -137,6 +147,27 @@ public class ContentShellActivity extends ChromiumActivity { |
ContentView view = getActiveContentView(); |
if (view != null) view.onActivityResume(); |
+ IntentFilter intentFilter = new IntentFilter(ACTION_START_TRACE); |
+ intentFilter.addAction(ACTION_STOP_TRACE); |
+ mReceiver = new BroadcastReceiver() { |
+ @Override |
+ public void onReceive(Context context, Intent intent) { |
+ String action = intent.getAction(); |
+ String extra = intent.getStringExtra("file"); |
+ if (ACTION_START_TRACE.equals(action)) { |
+ if (extra.isEmpty()) { |
+ Log.e(TAG, "Can not start tracing without specifing saving location"); |
+ } else { |
+ TracingIntentHandler.beginTracing(extra); |
+ Log.i(TAG, "start tracing"); |
+ } |
+ } else if (ACTION_STOP_TRACE.equals(action)) { |
+ Log.i(TAG, "stop tracing"); |
+ TracingIntentHandler.endTracing(); |
+ } |
+ } |
+ }; |
+ registerReceiver(mReceiver, intentFilter); |
} |
@Override |