summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-27 14:28:35 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-27 14:28:35 +0000
commit616d494697cd87234a27666cb4cf20dd33f96c34 (patch)
tree11166521556f7646f1103c808d599adf9379421a
parentea0b3b4b360db0c3973056338a5bad37cad23811 (diff)
downloadchromium_src-616d494697cd87234a27666cb4cf20dd33f96c34.zip
chromium_src-616d494697cd87234a27666cb4cf20dd33f96c34.tar.gz
chromium_src-616d494697cd87234a27666cb4cf20dd33f96c34.tar.bz2
[Android] Abandon bundling DevTools frontends for mobile apps
From now, DevTools frontends are only served from the cloud using Blink revision number. This enabled all mobile Chromium apps (Chrome, Chromium TestShell, WebView) to be inspectable from chrome://inspect. An exception is made for Content Shell, as it will be used for running layout tests (including Inspector layout tests) on Android and thus it needs the frontend to be bundled. BUG=138925 TBR=jochen (to work around not formally having Android owners for chrome/browser/chrome_browser_main_android.*) Review URL: https://chromiumcodereview.appspot.com/17389005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208913 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--android_webview/android_webview.gyp2
-rw-r--r--android_webview/browser/aw_devtools_delegate.cc8
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java8
-rw-r--r--chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellActivity.java2
-rw-r--r--chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellApplication.java1
-rw-r--r--chrome/browser/android/dev_tools_server.cc41
-rw-r--r--chrome/browser/android/dev_tools_server.h4
-rw-r--r--chrome/browser/chrome_browser_main_android.cc15
-rw-r--r--chrome/browser/chrome_browser_main_android.h1
-rw-r--r--chrome/browser/devtools/devtools_adb_bridge.cc6
-rw-r--r--chrome/browser/devtools/devtools_adb_bridge.h3
-rw-r--r--chrome/chrome_android.gypi2
-rw-r--r--content/shell/shell_devtools_delegate.cc2
-rw-r--r--webkit/common/user_agent/user_agent_util.h2
14 files changed, 39 insertions, 58 deletions
diff --git a/android_webview/android_webview.gyp b/android_webview/android_webview.gyp
index 801546e..f8ed864 100644
--- a/android_webview/android_webview.gyp
+++ b/android_webview/android_webview.gyp
@@ -28,7 +28,6 @@
'target_name': 'android_webview_pak',
'type': 'none',
'dependencies': [
- '<(DEPTH)/content/browser/devtools/devtools_resources.gyp:devtools_resources',
'<(DEPTH)/content/content_resources.gyp:content_resources',
'<(DEPTH)/net/net.gyp:net_resources',
'<(DEPTH)/ui/ui.gyp:ui_resources',
@@ -45,7 +44,6 @@
'<(SHARED_INTERMEDIATE_DIR)/content/content_resources.pak',
'<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
'<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak',
- '<(SHARED_INTERMEDIATE_DIR)/webkit/devtools_resources.pak',
'<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak',
'<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources_100_percent.pak',
],
diff --git a/android_webview/browser/aw_devtools_delegate.cc b/android_webview/browser/aw_devtools_delegate.cc
index 49a5ff4..0e0e026 100644
--- a/android_webview/browser/aw_devtools_delegate.cc
+++ b/android_webview/browser/aw_devtools_delegate.cc
@@ -15,8 +15,11 @@
#include "content/public/common/url_constants.h"
#include "net/socket/unix_domain_socket_posix.h"
#include "ui/base/resource/resource_bundle.h"
+#include "webkit/common/user_agent/user_agent_util.h"
namespace {
+const char kFrontEndURL[] =
+ "http://chrome-devtools-frontend.appspot.com/serve_rev/%s/devtools.html";
const char kSocketNameFormat[] = "webview_devtools_remote_%d";
}
@@ -29,7 +32,8 @@ AwDevToolsDelegate::AwDevToolsDelegate(content::BrowserContext* browser_context)
base::StringPrintf(kSocketNameFormat, getpid()),
"",
base::Bind(&content::CanUserConnectToDevTools)),
- "",
+ base::StringPrintf(kFrontEndURL,
+ webkit_glue::GetWebKitRevision().c_str()),
this);
}
@@ -189,7 +193,7 @@ std::string AwDevToolsDelegate::GetDiscoveryPageHTML() {
}
bool AwDevToolsDelegate::BundlesFrontendResources() {
- return true;
+ return false;
}
base::FilePath AwDevToolsDelegate::GetDebugFrontendDir() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java b/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
index f5777aa..37f943d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
@@ -11,9 +11,8 @@ public class DevToolsServer {
private int mNativeDevToolsServer = 0;
- public DevToolsServer(boolean useBundledFrontendResources,
- String socketName) {
- mNativeDevToolsServer = nativeInitRemoteDebugging(useBundledFrontendResources, socketName);
+ public DevToolsServer(String socketNamePrefix) {
+ mNativeDevToolsServer = nativeInitRemoteDebugging(socketNamePrefix);
}
public void destroy() {
@@ -29,8 +28,7 @@ public class DevToolsServer {
nativeSetRemoteDebuggingEnabled(mNativeDevToolsServer, enabled);
}
- private native int nativeInitRemoteDebugging(boolean useBundledFrontendResources,
- String socketName);
+ private native int nativeInitRemoteDebugging(String socketNamePrefix);
private native void nativeDestroyRemoteDebugging(int devToolsServer);
private native boolean nativeIsRemoteDebuggingEnabled(int devToolsServer);
private native void nativeSetRemoteDebuggingEnabled(int devToolsServer, boolean enabled);
diff --git a/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellActivity.java b/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellActivity.java
index 9e87746..f67833e 100644
--- a/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellActivity.java
+++ b/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellActivity.java
@@ -75,7 +75,7 @@ public class ChromiumTestShellActivity extends ChromiumActivity {
mWindow.restoreInstanceState(savedInstanceState);
mTabManager.setWindow(mWindow);
- mDevToolsServer = new DevToolsServer(true, "chromium_testshell_devtools_remote");
+ mDevToolsServer = new DevToolsServer("chromium_testshell");
mDevToolsServer.setRemoteDebuggingEnabled(true);
}
diff --git a/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellApplication.java b/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellApplication.java
index e0b8d50..afdb3e5 100644
--- a/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellApplication.java
+++ b/chrome/android/testshell/java/src/org/chromium/chrome/testshell/ChromiumTestShellApplication.java
@@ -22,7 +22,6 @@ public class ChromiumTestShellApplication extends Application {
"en-US.pak",
"resources.pak",
"chrome_100_percent.pak",
- "devtools_resources.pak",
};
@Override
diff --git a/chrome/browser/android/dev_tools_server.cc b/chrome/browser/android/dev_tools_server.cc
index 8602490..d7f9617 100644
--- a/chrome/browser/android/dev_tools_server.cc
+++ b/chrome/browser/android/dev_tools_server.cc
@@ -16,11 +16,11 @@
#include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/devtools/devtools_adb_bridge.h"
#include "chrome/browser/history/top_sites.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/android/tab_model/tab_model.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
-#include "chrome/common/chrome_version_info.h"
#include "content/public/browser/android/devtools_auth.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_http_handler.h"
@@ -33,21 +33,21 @@
#include "net/socket/unix_domain_socket_posix.h"
#include "net/url_request/url_request_context_getter.h"
#include "ui/base/resource/resource_bundle.h"
+#include "webkit/common/user_agent/user_agent_util.h"
namespace {
const char kFrontEndURL[] =
- "http://chrome-devtools-frontend.appspot.com/static/%s/devtools.html";
-const char kDefaultSocketName[] = "chrome_devtools_remote";
+ "http://chrome-devtools-frontend.appspot.com/serve_rev/%s/devtools.html";
+const char kDefaultSocketNamePrefix[] = "chrome";
const char kTetheringSocketName[] = "chrome_devtools_tethering_%d_%d";
// Delegate implementation for the devtools http handler on android. A new
// instance of this gets created each time devtools is enabled.
class DevToolsServerDelegate : public content::DevToolsHttpHandlerDelegate {
public:
- explicit DevToolsServerDelegate(bool use_bundled_frontend_resources)
- : use_bundled_frontend_resources_(use_bundled_frontend_resources),
- last_tethering_socket_(0) {
+ DevToolsServerDelegate()
+ : last_tethering_socket_(0) {
}
virtual std::string GetDiscoveryPageHTML() OVERRIDE {
@@ -62,7 +62,7 @@ class DevToolsServerDelegate : public content::DevToolsHttpHandlerDelegate {
}
virtual bool BundlesFrontendResources() OVERRIDE {
- return use_bundled_frontend_resources_;
+ return false;
}
virtual base::FilePath GetDebugFrontendDir() OVERRIDE {
@@ -124,7 +124,6 @@ class DevToolsServerDelegate : public content::DevToolsHttpHandlerDelegate {
top_sites->SyncWithHistory();
}
- bool use_bundled_frontend_resources_;
int last_tethering_socket_;
DISALLOW_COPY_AND_ASSIGN(DevToolsServerDelegate);
@@ -133,8 +132,8 @@ class DevToolsServerDelegate : public content::DevToolsHttpHandlerDelegate {
} // namespace
DevToolsServer::DevToolsServer()
- : use_bundled_frontend_resources_(false),
- socket_name_(kDefaultSocketName),
+ : socket_name_(base::StringPrintf(kDevToolsChannelNameFormat,
+ kDefaultSocketNamePrefix)),
protocol_handler_(NULL) {
// Override the default socket name if one is specified on the command line.
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
@@ -144,10 +143,9 @@ DevToolsServer::DevToolsServer()
}
}
-DevToolsServer::DevToolsServer(bool use_bundled_frontend_resources,
- const std::string& socket_name)
- : use_bundled_frontend_resources_(use_bundled_frontend_resources),
- socket_name_(socket_name),
+DevToolsServer::DevToolsServer(const std::string& socket_name_prefix)
+ : socket_name_(base::StringPrintf(kDevToolsChannelNameFormat,
+ socket_name_prefix.c_str())),
protocol_handler_(NULL) {
}
@@ -159,17 +157,14 @@ void DevToolsServer::Start() {
if (protocol_handler_)
return;
- chrome::VersionInfo version_info;
-
protocol_handler_ = content::DevToolsHttpHandler::Start(
new net::UnixDomainSocketWithAbstractNamespaceFactory(
socket_name_,
base::StringPrintf("%s_%d", socket_name_.c_str(), getpid()),
base::Bind(&content::CanUserConnectToDevTools)),
- use_bundled_frontend_resources_ ?
- "" :
- base::StringPrintf(kFrontEndURL, version_info.Version().c_str()),
- new DevToolsServerDelegate(use_bundled_frontend_resources_));
+ base::StringPrintf(kFrontEndURL,
+ webkit_glue::GetWebKitRevision().c_str()),
+ new DevToolsServerDelegate());
}
void DevToolsServer::Stop() {
@@ -191,11 +186,9 @@ bool RegisterDevToolsServer(JNIEnv* env) {
static jint InitRemoteDebugging(JNIEnv* env,
jobject obj,
- jboolean use_bundled_frontend_resources,
- jstring socketName) {
+ jstring socket_name_prefix) {
DevToolsServer* server = new DevToolsServer(
- use_bundled_frontend_resources,
- base::android::ConvertJavaStringToUTF8(env, socketName));
+ base::android::ConvertJavaStringToUTF8(env, socket_name_prefix));
return reinterpret_cast<jint>(server);
}
diff --git a/chrome/browser/android/dev_tools_server.h b/chrome/browser/android/dev_tools_server.h
index 775f0c0..72ddc89 100644
--- a/chrome/browser/android/dev_tools_server.h
+++ b/chrome/browser/android/dev_tools_server.h
@@ -17,8 +17,7 @@ class DevToolsHttpHandler;
class DevToolsServer {
public:
DevToolsServer();
- DevToolsServer(bool use_bundled_frontend_resources,
- const std::string& socket_name);
+ explicit DevToolsServer(const std::string& socket_name_prefix);
~DevToolsServer();
// Opens linux abstract socket to be ready for remote debugging.
@@ -30,7 +29,6 @@ class DevToolsServer {
bool IsStarted() const;
private:
- bool use_bundled_frontend_resources_;
std::string socket_name_;
content::DevToolsHttpHandler* protocol_handler_;
diff --git a/chrome/browser/chrome_browser_main_android.cc b/chrome/browser/chrome_browser_main_android.cc
index f08ce27..b83a09e 100644
--- a/chrome/browser/chrome_browser_main_android.cc
+++ b/chrome/browser/chrome_browser_main_android.cc
@@ -84,21 +84,6 @@ void ChromeBrowserMainPartsAndroid::PreEarlyInitialization() {
ChromeBrowserMainParts::PreEarlyInitialization();
}
-int ChromeBrowserMainPartsAndroid::PreCreateThreads() {
- TRACE_EVENT0("startup", "ChromeBrowserMainPartsAndroid::PreCreateThreads")
- // PreCreateThreads initializes ResourceBundle instance.
- const int result = ChromeBrowserMainParts::PreCreateThreads();
-
- // Add devtools_resources.pak which is used in Chromium TestShell.
- base::FilePath paks_path;
- PathService::Get(ui::DIR_RESOURCE_PAKS_ANDROID, &paks_path);
- ResourceBundle::GetSharedInstance().AddOptionalDataPackFromPath(
- paks_path.Append(FILE_PATH_LITERAL("devtools_resources.pak")),
- ui::SCALE_FACTOR_NONE);
-
- return result;
-}
-
void ChromeBrowserMainPartsAndroid::ShowMissingLocaleMessageBox() {
NOTREACHED();
}
diff --git a/chrome/browser/chrome_browser_main_android.h b/chrome/browser/chrome_browser_main_android.h
index 1439ac2..b498db5 100644
--- a/chrome/browser/chrome_browser_main_android.h
+++ b/chrome/browser/chrome_browser_main_android.h
@@ -18,7 +18,6 @@ class ChromeBrowserMainPartsAndroid : public ChromeBrowserMainParts {
// content::BrowserMainParts overrides.
virtual void PreProfileInit() OVERRIDE;
virtual void PreEarlyInitialization() OVERRIDE;
- virtual int PreCreateThreads() OVERRIDE;
// ChromeBrowserMainParts overrides.
virtual void ShowMissingLocaleMessageBox() OVERRIDE;
diff --git a/chrome/browser/devtools/devtools_adb_bridge.cc b/chrome/browser/devtools/devtools_adb_bridge.cc
index fb006f1..c903b5a 100644
--- a/chrome/browser/devtools/devtools_adb_bridge.cc
+++ b/chrome/browser/devtools/devtools_adb_bridge.cc
@@ -38,7 +38,6 @@ using net::WebSocket;
namespace {
static const char kDevToolsAdbBridgeThreadName[] = "Chrome_DevToolsADBThread";
-static const char kDevToolsChannelPattern[] = "devtools_remote";
static const char kHostDevicesCommand[] = "host:devices";
static const char kDeviceModelCommand[] =
"host:transport:%s|shell:getprop ro.product.model";
@@ -274,7 +273,8 @@ class AdbPagesCommand : public base::RefCounted<AdbPagesCommand> {
socket_to_package_.clear();
std::vector<std::string> entries;
Tokenize(response, "\n", &entries);
- const std::string channel_pattern = kDevToolsChannelPattern;
+ const std::string channel_pattern =
+ base::StringPrintf(kDevToolsChannelNameFormat, "");
for (size_t i = 1; i < entries.size(); ++i) {
std::vector<std::string> fields;
Tokenize(entries[i], " ", &fields);
@@ -309,6 +309,8 @@ class AdbPagesCommand : public base::RefCounted<AdbPagesCommand> {
} // namespace
+const char kDevToolsChannelNameFormat[] = "%s_devtools_remote";
+
class AgentHostDelegate;
typedef std::map<std::string, AgentHostDelegate*> AgentHostDelegates;
diff --git a/chrome/browser/devtools/devtools_adb_bridge.h b/chrome/browser/devtools/devtools_adb_bridge.h
index e2ef879..a828cb1 100644
--- a/chrome/browser/devtools/devtools_adb_bridge.h
+++ b/chrome/browser/devtools/devtools_adb_bridge.h
@@ -22,6 +22,9 @@ class Thread;
class Profile;
+// The format used for constructing DevTools server socket names.
+extern const char kDevToolsChannelNameFormat[];
+
class DevToolsAdbBridge {
public:
typedef base::Callback<void(int result,
diff --git a/chrome/chrome_android.gypi b/chrome/chrome_android.gypi
index 078c23b..8237fac 100644
--- a/chrome/chrome_android.gypi
+++ b/chrome/chrome_android.gypi
@@ -68,7 +68,6 @@
'native_lib_target': 'libchromiumtestshell',
'additional_input_paths': [
'<@(chrome_android_pak_output_resources)',
- '<(chrome_android_pak_output_folder)/devtools_resources.pak',
],
},
'includes': [ '../build/java_apk.gypi', ],
@@ -155,7 +154,6 @@
'destination': '<(chrome_android_pak_output_folder)',
'files': [
'<@(chrome_android_pak_input_resources)',
- '<(SHARED_INTERMEDIATE_DIR)/webkit/devtools_resources.pak',
],
}
],
diff --git a/content/shell/shell_devtools_delegate.cc b/content/shell/shell_devtools_delegate.cc
index 2d7b15e..d6fe39c 100644
--- a/content/shell/shell_devtools_delegate.cc
+++ b/content/shell/shell_devtools_delegate.cc
@@ -59,6 +59,8 @@ namespace content {
ShellDevToolsDelegate::ShellDevToolsDelegate(BrowserContext* browser_context)
: browser_context_(browser_context) {
+ // Note that Content Shell always used bundled DevTools frontend,
+ // even on Android, because the shell is used for running layout tests.
devtools_http_handler_ =
DevToolsHttpHandler::Start(CreateSocketFactory(), std::string(), this);
}
diff --git a/webkit/common/user_agent/user_agent_util.h b/webkit/common/user_agent/user_agent_util.h
index 3fbdf54..e23b809 100644
--- a/webkit/common/user_agent/user_agent_util.h
+++ b/webkit/common/user_agent/user_agent_util.h
@@ -22,6 +22,8 @@ WEBKIT_USER_AGENT_EXPORT std::string GetWebKitVersion();
WEBKIT_USER_AGENT_EXPORT int GetWebKitMajorVersion();
WEBKIT_USER_AGENT_EXPORT int GetWebKitMinorVersion();
+WEBKIT_USER_AGENT_EXPORT std::string GetWebKitRevision();
+
// Helper function to generate a full user agent string from a short
// product name.
WEBKIT_USER_AGENT_EXPORT std::string BuildUserAgentFromProduct(