Add and implement a flag to use tab target in content_shell and web test runner.
Bug: 1370050 Change-Id: I69a6b8c62b0c0911dc185f27491139316f408c4e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3982255 Commit-Queue: Mike West <mkwst@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Auto-Submit: Danil Somsikov <dsv@chromium.org> Reviewed-by: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#1064201}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
06e1f7099a
commit
9f37e85be7
content
shell
web_test
@ -11,6 +11,7 @@
|
||||
#include "base/base64.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/containers/cxx20_erase.h"
|
||||
#include "base/guid.h"
|
||||
@ -38,6 +39,7 @@
|
||||
#include "content/shell/browser/shell_browser_main_parts.h"
|
||||
#include "content/shell/browser/shell_content_browser_client.h"
|
||||
#include "content/shell/browser/shell_devtools_manager_delegate.h"
|
||||
#include "content/shell/common/shell_switches.h"
|
||||
#include "net/http/http_response_headers.h"
|
||||
#include "net/traffic_annotation/network_traffic_annotation.h"
|
||||
#include "services/network/public/cpp/resource_request.h"
|
||||
@ -225,7 +227,10 @@ void ShellDevToolsBindings::ReadyToCommitNavigation(
|
||||
void ShellDevToolsBindings::AttachInternal() {
|
||||
if (agent_host_)
|
||||
agent_host_->DetachClient(this);
|
||||
agent_host_ = DevToolsAgentHost::GetOrCreateFor(inspected_contents_);
|
||||
agent_host_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kContentShellDevToolsTabTarget)
|
||||
? DevToolsAgentHost::GetOrCreateForTab(inspected_contents_)
|
||||
: DevToolsAgentHost::GetOrCreateFor(inspected_contents_);
|
||||
agent_host_->AttachClient(this);
|
||||
if (inspect_element_at_x_ != -1) {
|
||||
agent_host_->InspectElement(inspected_contents_->GetFocusedFrame(),
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include "content/shell/browser/shell_devtools_frontend.h"
|
||||
|
||||
#include "base/command_line.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
@ -13,14 +14,19 @@
|
||||
#include "content/shell/browser/shell_browser_context.h"
|
||||
#include "content/shell/browser/shell_devtools_bindings.h"
|
||||
#include "content/shell/browser/shell_devtools_manager_delegate.h"
|
||||
#include "content/shell/common/shell_switches.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
namespace {
|
||||
static GURL GetFrontendURL() {
|
||||
int port = ShellDevToolsManagerDelegate::GetHttpHandlerPort();
|
||||
const char* queryString = base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kContentShellDevToolsTabTarget)
|
||||
? "?targetType=tab"
|
||||
: "";
|
||||
return GURL(base::StringPrintf(
|
||||
"http://127.0.0.1:%d/devtools/devtools_app.html", port));
|
||||
"http://127.0.0.1:%d/devtools/devtools_app.html%s", port, queryString));
|
||||
}
|
||||
} // namespace
|
||||
|
||||
|
@ -30,6 +30,11 @@ const char kContentShellHostWindowSize[] = "content-shell-host-window-size";
|
||||
// Hides toolbar from content_shell's host window.
|
||||
const char kContentShellHideToolbar[] = "content-shell-hide-toolbar";
|
||||
|
||||
// Let DevTools front-end talk to the target of type "tab" rather than
|
||||
// "frame" when inspecting a WebContents.
|
||||
const char kContentShellDevToolsTabTarget[] =
|
||||
"content-shell-devtools-tab-target";
|
||||
|
||||
// Runs Content Shell in web test mode, injecting test-only behaviour for
|
||||
// blink web tests.
|
||||
const char kRunWebTests[] = "run-web-tests";
|
||||
|
@ -15,6 +15,7 @@ extern const char kDisableSystemFontCheck[];
|
||||
extern const char kExposeInternalsForTesting[];
|
||||
extern const char kContentShellHostWindowSize[];
|
||||
extern const char kContentShellHideToolbar[];
|
||||
extern const char kContentShellDevToolsTabTarget[];
|
||||
extern const char kRunWebTests[];
|
||||
|
||||
// Helper that returns true if kRunWebTests is present in the command line,
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/shell/browser/shell.h"
|
||||
#include "content/shell/common/shell_switches.h"
|
||||
#include "content/web_test/browser/web_test_control_host.h"
|
||||
#include "content/web_test/common/web_test_switches.h"
|
||||
#include "net/base/filename_util.h"
|
||||
@ -88,6 +89,10 @@ GURL WebTestDevToolsBindings::MapTestURLIfNeeded(const GURL& test_url,
|
||||
if (is_debug_dev_tools)
|
||||
url_string += "&debugFrontend=true";
|
||||
url_string += "&test=" + test_url_string;
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kContentShellDevToolsTabTarget)) {
|
||||
url_string += "&targetType=tab";
|
||||
}
|
||||
return GURL(url_string);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user