summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/devtools
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/chrome/browser/devtools
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/devtools')
-rw-r--r--chromium/chrome/browser/devtools/BUILD.gn9
-rw-r--r--chromium/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc1
-rw-r--r--chromium/chrome/browser/devtools/device/adb/mock_adb_server.cc12
-rw-r--r--chromium/chrome/browser/devtools/device/android_device_manager.cc5
-rw-r--r--chromium/chrome/browser/devtools/device/cast_device_provider.cc5
-rw-r--r--chromium/chrome/browser/devtools/device/devtools_device_discovery.cc5
-rw-r--r--chromium/chrome/browser/devtools/device/port_forwarding_controller.cc11
-rw-r--r--chromium/chrome/browser/devtools/device/tcp_device_provider.cc6
-rw-r--r--chromium/chrome/browser/devtools/device/usb/android_usb_browsertest.cc3
-rw-r--r--chromium/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc5
-rw-r--r--chromium/chrome/browser/devtools/devtools_browser_context_manager.cc2
-rw-r--r--chromium/chrome/browser/devtools/devtools_file_helper.cc10
-rw-r--r--chromium/chrome/browser/devtools/devtools_file_system_indexer.cc15
-rw-r--r--chromium/chrome/browser/devtools/devtools_file_watcher_unittest.cc2
-rw-r--r--chromium/chrome/browser/devtools/devtools_sanity_browsertest.cc64
-rw-r--r--chromium/chrome/browser/devtools/devtools_ui_bindings.cc21
-rw-r--r--chromium/chrome/browser/devtools/devtools_window.cc56
-rw-r--r--chromium/chrome/browser/devtools/devtools_window.h6
-rw-r--r--chromium/chrome/browser/devtools/protocol/DEPS1
-rw-r--r--chromium/chrome/browser/devtools/protocol/browser_handler.cc5
-rw-r--r--chromium/chrome/browser/devtools/protocol/security_handler.cc1
-rw-r--r--chromium/chrome/browser/devtools/remote_debugging_server.cc13
22 files changed, 150 insertions, 108 deletions
diff --git a/chromium/chrome/browser/devtools/BUILD.gn b/chromium/chrome/browser/devtools/BUILD.gn
index e094572221e..7a6188b2df4 100644
--- a/chromium/chrome/browser/devtools/BUILD.gn
+++ b/chromium/chrome/browser/devtools/BUILD.gn
@@ -92,6 +92,15 @@ static_library("devtools") {
deps = [
"//base",
+
+ # To prevent circular GN dependencies, this target does not depend on
+ # //chrome/browser:browser, even though it has a real build dependency on
+ # it. However, depending on the order in which this target and
+ # //chrome/browser:browser are built it's possible that the connectors
+ # proto header (which //chrome/browser:browser depends on) is not generated
+ # yet causing devtools not to compile. Adding this indirect dependency to
+ # the proto to fix that.
+ "//components/enterprise/common/proto:connectors_proto",
"//content/public/browser",
"//net",
"//services/viz/privileged/mojom/compositing",
diff --git a/chromium/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc b/chromium/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc
index c0bcc02d0c2..b425918e39d 100644
--- a/chromium/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc
+++ b/chromium/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc
@@ -3,7 +3,6 @@
// found in the LICENSE file.
#include "base/run_loop.h"
-#include "base/logging.h"
#include "chrome/browser/devtools/device/adb/adb_device_provider.h"
#include "chrome/browser/devtools/device/adb/mock_adb_server.h"
#include "chrome/browser/devtools/device/devtools_android_bridge.h"
diff --git a/chromium/chrome/browser/devtools/device/adb/mock_adb_server.cc b/chromium/chrome/browser/devtools/device/adb/mock_adb_server.cc
index 816aebdd877..489f125562d 100644
--- a/chromium/chrome/browser/devtools/device/adb/mock_adb_server.cc
+++ b/chromium/chrome/browser/devtools/device/adb/mock_adb_server.cc
@@ -18,7 +18,6 @@
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
@@ -651,17 +650,16 @@ void MockAndroidConnection::SendHTTPResponse(const std::string& body) {
void StartMockAdbServer(FlushMode flush_mode) {
base::RunLoop run_loop;
- base::PostTaskAndReply(
- FROM_HERE, {BrowserThread::IO},
- base::BindOnce(&StartMockAdbServerOnIOThread, flush_mode),
+ content::GetIOThreadTaskRunner({})->PostTaskAndReply(
+ FROM_HERE, base::BindOnce(&StartMockAdbServerOnIOThread, flush_mode),
run_loop.QuitClosure());
run_loop.Run();
}
void StopMockAdbServer() {
base::RunLoop run_loop;
- base::PostTaskAndReply(FROM_HERE, {BrowserThread::IO},
- base::BindOnce(&StopMockAdbServerOnIOThread),
- run_loop.QuitClosure());
+ content::GetIOThreadTaskRunner({})->PostTaskAndReply(
+ FROM_HERE, base::BindOnce(&StopMockAdbServerOnIOThread),
+ run_loop.QuitClosure());
run_loop.Run();
}
diff --git a/chromium/chrome/browser/devtools/device/android_device_manager.cc b/chromium/chrome/browser/devtools/device/android_device_manager.cc
index 02a50e12c56..e3716a6f5da 100644
--- a/chromium/chrome/browser/devtools/device/android_device_manager.cc
+++ b/chromium/chrome/browser/devtools/device/android_device_manager.cc
@@ -17,7 +17,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
-#include "base/task/post_task.h"
#include "base/task/thread_pool.h"
#include "base/threading/thread.h"
#include "base/threading/thread_task_runner_handle.h"
@@ -382,8 +381,8 @@ class DevicesRequest : public base::RefCountedThreadSafe<DevicesRequest> {
void OnCountDevices(const base::Callback<void(int)>& callback,
int device_count) {
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(callback, device_count));
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(callback, device_count));
}
} // namespace
diff --git a/chromium/chrome/browser/devtools/device/cast_device_provider.cc b/chromium/chrome/browser/devtools/device/cast_device_provider.cc
index 8cae795aa7e..553d95dab45 100644
--- a/chromium/chrome/browser/devtools/device/cast_device_provider.cc
+++ b/chromium/chrome/browser/devtools/device/cast_device_provider.cc
@@ -14,7 +14,6 @@
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/local_discovery/service_discovery_shared_client.h"
#include "content/public/browser/browser_task_traits.h"
@@ -156,8 +155,8 @@ void CastDeviceProvider::QueryDevices(const SerialsCallback& callback) {
if (!lister_delegate_) {
lister_delegate_.reset(new DeviceListerDelegate(
weak_factory_.GetWeakPtr(), base::ThreadTaskRunnerHandle::Get()));
- base::PostTask(FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(&DeviceListerDelegate::StartDiscovery,
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&DeviceListerDelegate::StartDiscovery,
lister_delegate_->AsWeakPtr()));
}
std::set<net::HostPortPair> targets;
diff --git a/chromium/chrome/browser/devtools/device/devtools_device_discovery.cc b/chromium/chrome/browser/devtools/device/devtools_device_discovery.cc
index 952af2c6614..bd3cefdedef 100644
--- a/chromium/chrome/browser/devtools/device/devtools_device_discovery.cc
+++ b/chromium/chrome/browser/devtools/device/devtools_device_discovery.cc
@@ -16,7 +16,6 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/task/post_task.h"
#include "base/values.h"
#include "chrome/browser/devtools/devtools_window.h"
#include "content/public/browser/browser_task_traits.h"
@@ -46,8 +45,8 @@ const char kPageReloadCommand[] = "{'method': 'Page.reload', id: 1}";
const char kWebViewSocketPrefix[] = "webview_devtools_remote";
static void ScheduleTaskDefault(const base::Closure& task) {
- base::PostDelayedTask(FROM_HERE, {BrowserThread::UI}, task,
- base::TimeDelta::FromMilliseconds(kPollingIntervalMs));
+ content::GetUIThreadTaskRunner({})->PostDelayedTask(
+ FROM_HERE, task, base::TimeDelta::FromMilliseconds(kPollingIntervalMs));
}
// ProtocolCommand ------------------------------------------------------------
diff --git a/chromium/chrome/browser/devtools/device/port_forwarding_controller.cc b/chromium/chrome/browser/devtools/device/port_forwarding_controller.cc
index 65421861737..3b54c9d9c5c 100644
--- a/chromium/chrome/browser/devtools/device/port_forwarding_controller.cc
+++ b/chromium/chrome/browser/devtools/device/port_forwarding_controller.cc
@@ -17,7 +17,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_checker.h"
#include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/profiles/profile.h"
@@ -236,8 +235,8 @@ class SocketTunnel {
adb_thread_runner_(base::ThreadTaskRunnerHandle::Get()) {
ResolveHostCallback resolve_host_callback = base::BindOnce(
&SocketTunnel::OnResolveHostComplete, base::Unretained(this));
- base::PostTask(FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(&ResolveHost, profile, host, port,
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&ResolveHost, profile, host, port,
std::move(resolve_host_callback)));
}
@@ -495,9 +494,6 @@ void PortForwardingController::Connection::SendCommand(
pending_responses_[id] =
base::Bind(&Connection::ProcessBindResponse,
base::Unretained(this), port);
-#if BUILDFLAG(DEBUG_DEVTOOLS)
- port_status_[port] = kStatusConnecting;
-#endif // BUILDFLAG(DEBUG_DEVTOOLS)
} else {
auto it = port_status_.find(port);
if (it != port_status_.end() && it->second == kStatusError) {
@@ -509,9 +505,6 @@ void PortForwardingController::Connection::SendCommand(
pending_responses_[id] =
base::Bind(&Connection::ProcessUnbindResponse,
base::Unretained(this), port);
-#if BUILDFLAG(DEBUG_DEVTOOLS)
- port_status_[port] = kStatusDisconnecting;
-#endif // BUILDFLAG(DEBUG_DEVTOOLS)
}
web_socket_->SendFrame(SerializeCommand(id, method, std::move(params)));
diff --git a/chromium/chrome/browser/devtools/device/tcp_device_provider.cc b/chromium/chrome/browser/devtools/device/tcp_device_provider.cc
index 52c3216c503..d1634123e61 100644
--- a/chromium/chrome/browser/devtools/device/tcp_device_provider.cc
+++ b/chromium/chrome/browser/devtools/device/tcp_device_provider.cc
@@ -12,12 +12,12 @@
#include "base/single_thread_task_runner.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/devtools/device/adb/adb_client_socket.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "net/base/completion_repeating_callback.h"
#include "net/base/net_errors.h"
@@ -47,8 +47,8 @@ class ResolveHostAndOpenSocket final : public network::ResolveHostClientBase {
const AdbClientSocket::SocketCallback& callback)
: callback_(callback) {
mojo::Remote<network::mojom::HostResolver> resolver;
- base::PostTask(FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(
[](mojo::PendingReceiver<network::mojom::HostResolver>
pending_receiver) {
g_browser_process->system_network_context_manager()
diff --git a/chromium/chrome/browser/devtools/device/usb/android_usb_browsertest.cc b/chromium/chrome/browser/devtools/device/usb/android_usb_browsertest.cc
index 6d38d17048b..f5bede887f1 100644
--- a/chromium/chrome/browser/devtools/device/usb/android_usb_browsertest.cc
+++ b/chromium/chrome/browser/devtools/device/usb/android_usb_browsertest.cc
@@ -17,7 +17,6 @@
#include "base/run_loop.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/devtools/device/adb/mock_adb_server.h"
#include "chrome/browser/devtools/device/devtools_android_bridge.h"
@@ -527,7 +526,7 @@ class AndroidUsbDiscoveryTest : public InProcessBrowserTest {
void ScheduleDeviceCountRequest(const base::Closure& request) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
scheduler_invoked_++;
- base::PostTask(FROM_HERE, {BrowserThread::UI}, request);
+ content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE, request);
}
virtual std::unique_ptr<FakeUsbDeviceManager> CreateFakeUsbManager() {
diff --git a/chromium/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc b/chromium/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc
index fcc10845fc9..a6452ed6bf9 100644
--- a/chromium/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc
+++ b/chromium/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc
@@ -10,7 +10,6 @@
#include "base/bind.h"
#include "base/no_destructor.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/device_service.h"
@@ -193,8 +192,8 @@ void UsbDeviceManagerHelper::EnsureUsbDeviceManagerConnection() {
return;
}
- base::PostTask(FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(&BindDeviceServiceOnUIThread,
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&BindDeviceServiceOnUIThread,
device_manager_.BindNewPipeAndPassReceiver()));
device_manager_.set_disconnect_handler(
diff --git a/chromium/chrome/browser/devtools/devtools_browser_context_manager.cc b/chromium/chrome/browser/devtools/devtools_browser_context_manager.cc
index cc6da5ee753..3974183c25b 100644
--- a/chromium/chrome/browser/devtools/devtools_browser_context_manager.cc
+++ b/chromium/chrome/browser/devtools/devtools_browser_context_manager.cc
@@ -35,7 +35,7 @@ content::BrowserContext* DevToolsBrowserContextManager::CreateBrowserContext() {
ProfileManager::GetActiveUserProfile()->GetOriginalProfile();
Profile* otr_profile = original_profile->GetOffTheRecordProfile(
- Profile::OTRProfileID::CreateUnique("Devtools::BrowserContext"));
+ Profile::OTRProfileID::CreateUniqueForDevTools());
const std::string& context_id = otr_profile->UniqueId();
otr_profiles_[context_id] = otr_profile;
otr_profile->AddObserver(this);
diff --git a/chromium/chrome/browser/devtools/devtools_file_helper.cc b/chromium/chrome/browser/devtools/devtools_file_helper.cc
index 1b441f5cc4d..98ab93a0e0b 100644
--- a/chromium/chrome/browser/devtools/devtools_file_helper.cc
+++ b/chromium/chrome/browser/devtools/devtools_file_helper.cc
@@ -17,7 +17,7 @@
#include "base/task/post_task.h"
#include "base/task/thread_pool.h"
#include "base/threading/sequenced_task_runner_handle.h"
-#include "base/value_conversions.h"
+#include "base/util/values/values_util.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/devtools/devtools_file_watcher.h"
#include "chrome/browser/download/download_prefs.h"
@@ -245,9 +245,9 @@ void DevToolsFileHelper::Save(const std::string& url,
const base::Value* path_value;
if (file_map->Get(base::MD5String(url), &path_value)) {
- // Ignore base::GetValueAsFilePath() failure since we handle empty
- // |initial_path| below.
- ignore_result(base::GetValueAsFilePath(*path_value, &initial_path));
+ base::Optional<base::FilePath> path = util::ValueToFilePath(*path_value);
+ if (path)
+ initial_path = std::move(*path);
}
if (initial_path.empty()) {
@@ -301,7 +301,7 @@ void DevToolsFileHelper::SaveAsFileSelected(const std::string& url,
DictionaryPrefUpdate update(profile_->GetPrefs(),
prefs::kDevToolsEditedFiles);
base::DictionaryValue* files_map = update.Get();
- files_map->SetKey(base::MD5String(url), base::CreateFilePathValue(path));
+ files_map->SetKey(base::MD5String(url), util::FilePathToValue(path));
std::string file_system_path = path.AsUTF8Unsafe();
callback.Run(file_system_path);
file_task_runner_->PostTask(FROM_HERE, BindOnce(&WriteToFile, path, content));
diff --git a/chromium/chrome/browser/devtools/devtools_file_system_indexer.cc b/chromium/chrome/browser/devtools/devtools_file_system_indexer.cc
index 0f7479de0c5..542b35f637d 100644
--- a/chromium/chrome/browser/devtools/devtools_file_system_indexer.cc
+++ b/chromium/chrome/browser/devtools/devtools_file_system_indexer.cc
@@ -20,7 +20,6 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/lazy_thread_pool_task_runner.h"
-#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
@@ -322,8 +321,8 @@ void DevToolsFileSystemIndexer::FileSystemIndexingJob::CollectFilesToIndex() {
}
if (file_path.empty()) {
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- BindOnce(total_work_callback_, file_path_times_.size()));
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, BindOnce(total_work_callback_, file_path_times_.size()));
indexing_it_ = file_path_times_.begin();
IndexFiles();
return;
@@ -359,7 +358,7 @@ void DevToolsFileSystemIndexer::FileSystemIndexingJob::IndexFiles() {
return;
if (indexing_it_ == file_path_times_.end()) {
g_trigram_index.Get().NormalizeVectors();
- base::PostTask(FROM_HERE, {BrowserThread::UI}, done_callback_);
+ content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE, done_callback_);
return;
}
FilePath file_path = indexing_it_->first;
@@ -451,8 +450,8 @@ void DevToolsFileSystemIndexer::FileSystemIndexingJob::ReportWorked() {
++files_indexed_;
if (should_send_worked_nitification) {
last_worked_notification_time_ = current_time;
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- BindOnce(worked_callback_, files_indexed_));
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, BindOnce(worked_callback_, files_indexed_));
files_indexed_ = 0;
}
}
@@ -515,6 +514,6 @@ void DevToolsFileSystemIndexer::SearchInPathOnImplSequence(
if (path.IsParent(*it))
result.push_back(it->AsUTF8Unsafe());
}
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- BindOnce(callback, std::move(result)));
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, BindOnce(callback, std::move(result)));
}
diff --git a/chromium/chrome/browser/devtools/devtools_file_watcher_unittest.cc b/chromium/chrome/browser/devtools/devtools_file_watcher_unittest.cc
index b40aa6978a9..a67aa887196 100644
--- a/chromium/chrome/browser/devtools/devtools_file_watcher_unittest.cc
+++ b/chromium/chrome/browser/devtools/devtools_file_watcher_unittest.cc
@@ -71,7 +71,7 @@ TEST_F(DevToolsFileWatcherTest, BasicUsage) {
}
expected_removed_paths_.insert(added_path.AsUTF8Unsafe());
- base::DeleteFile(added_path, false);
+ base::DeleteFile(added_path);
while (!expected_removed_paths_.empty()) {
task_environment_.RunUntilIdle();
base::PlatformThread::Sleep(TestTimeouts::tiny_timeout());
diff --git a/chromium/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chromium/chrome/browser/devtools/devtools_sanity_browsertest.cc
index 86d3a035d4e..53722ab2dbd 100644
--- a/chromium/chrome/browser/devtools/devtools_sanity_browsertest.cc
+++ b/chromium/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -24,7 +24,6 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/task/post_task.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/test_timeouts.h"
#include "base/threading/thread_restrictions.h"
@@ -37,6 +36,7 @@
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/extensions/unpacked_installer.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
@@ -114,7 +114,6 @@
#include "chromeos/constants/chromeos_switches.h"
#endif
-using content::BrowserThread;
using content::DevToolsAgentHost;
using content::DevToolsAgentHostObserver;
using content::NavigationController;
@@ -217,7 +216,7 @@ void SwitchToExtensionPanel(DevToolsWindow* window,
class DevToolsSanityTest : public InProcessBrowserTest {
public:
- DevToolsSanityTest() : window_(NULL) {}
+ DevToolsSanityTest() : window_(nullptr) {}
void SetUpOnMainThread() override {
host_resolver()->AddRule("*", "127.0.0.1");
@@ -258,6 +257,14 @@ class DevToolsSanityTest : public InProcessBrowserTest {
is_docked);
}
+ void OpenDevToolsWindowOnOffTheRecordTab(const std::string& test_page) {
+ GURL url = spawned_test_server()->GetURL("").Resolve(test_page);
+ auto* otr_browser = OpenURLOffTheRecord(browser()->profile(), url);
+
+ window_ = DevToolsWindowTesting::OpenDevToolsWindowSync(
+ otr_browser->tab_strip_model()->GetWebContentsAt(0), false);
+ }
+
WebContents* GetInspectedTab() {
return browser()->tab_strip_model()->GetWebContentsAt(0);
}
@@ -611,7 +618,7 @@ class DevToolsExperimentalExtensionTest : public DevToolsExtensionTest {
class WorkerDevToolsSanityTest : public InProcessBrowserTest {
public:
- WorkerDevToolsSanityTest() : window_(NULL) {}
+ WorkerDevToolsSanityTest() : window_(nullptr) {}
protected:
class WorkerCreationObserver : public DevToolsAgentHostObserver {
@@ -632,7 +639,7 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
if (host->GetType() == DevToolsAgentHost::kTypeSharedWorker &&
host->GetURL().path().rfind(path_) != std::string::npos) {
*out_host_ = host;
- base::PostTask(FROM_HERE, {BrowserThread::UI}, quit_);
+ content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE, quit_);
delete this;
}
}
@@ -854,6 +861,25 @@ IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest,
RunTest("waitForTestResultsInConsole", std::string());
}
+// Tests that chrome.devtools extension is correctly exposed.
+IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest, TestExtensionOnNewTab) {
+ // Not really required by this test, but the underlying code happens
+ // to expect it.
+ ASSERT_TRUE(embedded_test_server()->Start());
+ // Install the dynamically-generated devtools extension.
+ const Extension* devtools_extension = LoadExtensionForTest(
+ "Devtools Extension", "panel_devtools_page.html", "");
+ ASSERT_TRUE(devtools_extension);
+ extensions::util::SetIsIncognitoEnabled(devtools_extension->id(),
+ browser()->profile(), true);
+
+ OpenDevToolsWindowOnOffTheRecordTab(chrome::kChromeUINewTabURL);
+
+ // Wait for the extension's panel to finish loading -- it'll output 'PASS'
+ // when it's installed. waitForTestResultsInConsole waits until that 'PASS'.
+ RunTestFunction(window_, "waitForTestResultsInConsole");
+}
+
// Tests that http Iframes within the visible devtools panel for the devtools
// extension are rendered in their own processes and not in the devtools process
// or the extension's process. This is tested because this is one of the
@@ -1115,8 +1141,9 @@ IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest,
// Tests that iframes to a non-devtools extension embedded in a devtools
// extension will be isolated from devtools and the devtools extension.
// http://crbug.com/570483
+// Disabled due to flakiness https://crbug.com/1062802
IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest,
- NonDevToolsExtensionInDevToolsExtension) {
+ DISABLED_NonDevToolsExtensionInDevToolsExtension) {
ASSERT_TRUE(embedded_test_server()->Start());
// Install the dynamically-generated non-devtools extension.
@@ -1510,8 +1537,13 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest,
// Tests that debugger works correctly if pause event occurs when DevTools
// frontend is being loaded.
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest,
- TestPauseWhenLoadingDevTools) {
+// Flaky on win and linux: crbug.com/1092924.
+#if defined(OS_WIN) || defined(OS_LINUX)
+#define MAYBE_TestPauseWhenLoadingDevTools DISABLED_TestPauseWhenLoadingDevTools
+#else
+#define MAYBE_TestPauseWhenLoadingDevTools TestPauseWhenLoadingDevTools
+#endif
+IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, MAYBE_TestPauseWhenLoadingDevTools) {
RunTest("testPauseWhenLoadingDevTools", kPauseWhenLoadingDevTools);
}
@@ -1600,7 +1632,13 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestNetworkPushTime) {
CloseDevToolsWindow();
}
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestDOMWarnings) {
+#if defined(OS_WIN)
+// Flaky on Windows: https://crbug.com/1087320
+#define MAYBE_TestDOMWarnings DISABLED_TestDOMWarnings
+#else
+#define MAYBE_TestDOMWarnings TestDOMWarnings
+#endif
+IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, MAYBE_TestDOMWarnings) {
RunTest("testDOMWarnings", kDOMWarningsTestPage);
}
@@ -1687,6 +1725,14 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, testKeyEventUnhandled) {
CloseDevToolsWindow();
}
+// Tests that the keys that are forwarded from the browser update
+// when their shortcuts change
+IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, testForwardedKeysChanged) {
+ OpenDevToolsWindow("about:blank", true);
+ RunTestFunction(window_, "testForwardedKeysChanged");
+ CloseDevToolsWindow();
+}
+
// Test that showing a certificate in devtools does not crash the process.
// Disabled on windows as this opens a modal in its own thread, which leads to a
// test timeout.
diff --git a/chromium/chrome/browser/devtools/devtools_ui_bindings.cc b/chromium/chrome/browser/devtools/devtools_ui_bindings.cc
index 3af6ba32420..7986d2e6ecb 100644
--- a/chromium/chrome/browser/devtools/devtools_ui_bindings.cc
+++ b/chromium/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -103,6 +103,10 @@ static const char kDevToolsKeyboardShortcutFiredHistogram[] =
"DevTools.KeyboardShortcutFired";
static const char kDevToolsIssuesPanelOpenedFromHistogram[] =
"DevTools.IssuesPanelOpenedFrom";
+static const char kDevToolsKeybindSetSettingChanged[] =
+ "DevTools.KeybindSetSettingChanged";
+static const char kDevToolsDualScreenDeviceEmulatedHistogram[] =
+ "DevTools.DualScreenDeviceEmulated";
static const char kRemotePageActionInspect[] = "inspect";
static const char kRemotePageActionReload[] = "reload";
@@ -1237,13 +1241,17 @@ void DevToolsUIBindings::RecordEnumeratedHistogram(const std::string& name,
// Each histogram name must follow a different code path in
// order to UMA_HISTOGRAM_EXACT_LINEAR work correctly.
if (name == kDevToolsActionTakenHistogram)
- UMA_HISTOGRAM_EXACT_LINEAR(name, sample, boundary_value);
+ base::UmaHistogramExactLinear(name, sample, boundary_value);
else if (name == kDevToolsPanelShownHistogram)
- UMA_HISTOGRAM_EXACT_LINEAR(name, sample, boundary_value);
+ base::UmaHistogramExactLinear(name, sample, boundary_value);
else if (name == kDevToolsKeyboardShortcutFiredHistogram)
- UMA_HISTOGRAM_EXACT_LINEAR(name, sample, boundary_value);
+ base::UmaHistogramExactLinear(name, sample, boundary_value);
else if (name == kDevToolsIssuesPanelOpenedFromHistogram)
- UMA_HISTOGRAM_EXACT_LINEAR(name, sample, boundary_value);
+ base::UmaHistogramExactLinear(name, sample, boundary_value);
+ else if (name == kDevToolsKeybindSetSettingChanged)
+ base::UmaHistogramExactLinear(name, sample, boundary_value);
+ else if (name == kDevToolsDualScreenDeviceEmulatedHistogram)
+ base::UmaHistogramExactLinear(name, sample, boundary_value);
else
frontend_host_->BadMessageRecieved();
}
@@ -1551,12 +1559,7 @@ void DevToolsUIBindings::ReadyToCommitNavigation(
}
void DevToolsUIBindings::DocumentOnLoadCompletedInMainFrame() {
- // In the DEBUG_DEVTOOLS mode, the DocumentOnLoadCompletedInMainFrame event
- // arrives before the LoadCompleted event, thus it should not trigger the
- // frontend load handling.
-#if !BUILDFLAG(DEBUG_DEVTOOLS)
FrontendLoaded();
-#endif
}
void DevToolsUIBindings::DidNavigateMainFrame() {
diff --git a/chromium/chrome/browser/devtools/devtools_window.cc b/chromium/chrome/browser/devtools/devtools_window.cc
index 817fd22ff31..f85ed231165 100644
--- a/chromium/chrome/browser/devtools/devtools_window.cc
+++ b/chromium/chrome/browser/devtools/devtools_window.cc
@@ -37,7 +37,6 @@
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "components/javascript_dialogs/app_modal_dialog_manager.h"
-#include "components/performance_manager/embedder/performance_manager_registry.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "components/sessions/content/session_tab_helper.h"
@@ -170,7 +169,7 @@ content::WebContents* DevToolsToolboxDelegate::OpenURLFromTab(
const content::OpenURLParams& params) {
DCHECK(source == web_contents());
if (!params.url.SchemeIs(content::kChromeDevToolsScheme))
- return NULL;
+ return nullptr;
source->GetController().LoadURLWithParams(
content::NavigationController::LoadURLParams(params));
return source;
@@ -205,12 +204,12 @@ BrowserWindow* DevToolsToolboxDelegate::GetInspectedBrowserWindow() {
WebContents* inspected_contents =
inspected_contents_observer_->web_contents();
if (!inspected_contents)
- return NULL;
- Browser* browser = NULL;
+ return nullptr;
+ Browser* browser = nullptr;
int tab = 0;
if (FindInspectedBrowserAndTabIndex(inspected_contents, &browser, &tab))
return browser->window();
- return NULL;
+ return nullptr;
}
// static
@@ -227,9 +226,9 @@ GURL DecorateFrontendURL(const GURL& base_url) {
switches::kDevToolsFlags);
}
-#if BUILDFLAG(DEBUG_DEVTOOLS)
- url_string += "&debugFrontend=true";
-#endif // BUILDFLAG(DEBUG_DEVTOOLS)
+ if (command_line->HasSwitch(switches::kCustomDevtoolsFrontend)) {
+ url_string += "&debugFrontend=true";
+ }
return GURL(url_string);
}
@@ -456,18 +455,18 @@ content::WebContents* DevToolsWindow::GetInTabWebContents(
DevToolsWindow* window = GetInstanceForInspectedWebContents(
inspected_web_contents);
if (!window || window->life_stage_ == kClosing)
- return NULL;
+ return nullptr;
// Not yet loaded window is treated as docked, but we should not present it
// until we decided on docking.
bool is_docked_set = window->life_stage_ == kLoadCompleted ||
window->life_stage_ == kIsDockedSet;
if (!is_docked_set)
- return NULL;
+ return nullptr;
// Undocked window should have toolbox web contents.
if (!window->is_docked_ && !window->toolbox_web_contents_)
- return NULL;
+ return nullptr;
if (out_strategy)
out_strategy->CopyFrom(window->contents_resizing_strategy_);
@@ -480,13 +479,13 @@ content::WebContents* DevToolsWindow::GetInTabWebContents(
DevToolsWindow* DevToolsWindow::GetInstanceForInspectedWebContents(
WebContents* inspected_web_contents) {
if (!inspected_web_contents || !g_devtools_window_instances.IsCreated())
- return NULL;
+ return nullptr;
DevToolsWindows* instances = g_devtools_window_instances.Pointer();
for (auto it(instances->begin()); it != instances->end(); ++it) {
if ((*it)->GetInspectedWebContents() == inspected_web_contents)
return *it;
}
- return NULL;
+ return nullptr;
}
// static
@@ -732,7 +731,7 @@ void DevToolsWindow::InspectElement(
scoped_refptr<DevToolsAgentHost> agent(
DevToolsAgentHost::GetOrCreateFor(web_contents));
agent->InspectElement(inspected_frame_host, x, y);
- bool should_measure_time = FindDevToolsWindow(agent.get()) == NULL;
+ bool should_measure_time = !FindDevToolsWindow(agent.get());
base::TimeTicks start_time = base::TimeTicks::Now();
// TODO(loislo): we should initiate DevTools window opening from within
// renderer. Otherwise, we still can hit a race condition here.
@@ -800,7 +799,7 @@ void DevToolsWindow::Show(const DevToolsToggleAction& action) {
return;
if (is_docked_) {
DCHECK(can_dock_);
- Browser* inspected_browser = NULL;
+ Browser* inspected_browser = nullptr;
int inspected_tab_index = -1;
FindInspectedBrowserAndTabIndex(GetInspectedWebContents(),
&inspected_browser,
@@ -959,8 +958,6 @@ DevToolsWindow::DevToolsWindow(FrontendType frontend_type,
zoom::ZoomController::CreateForWebContents(main_web_contents_);
zoom::ZoomController::FromWebContents(main_web_contents_)
->SetShowsNotificationBubble(false);
- performance_manager::PerformanceManagerRegistry::GetInstance()
- ->CreatePageNodeForWebContents(main_web_contents_);
g_devtools_window_instances.Get().push_back(this);
@@ -1101,26 +1098,26 @@ GURL DevToolsWindow::GetDevToolsURL(Profile* profile,
DevToolsWindow* DevToolsWindow::FindDevToolsWindow(
DevToolsAgentHost* agent_host) {
if (!agent_host || !g_devtools_window_instances.IsCreated())
- return NULL;
+ return nullptr;
DevToolsWindows* instances = g_devtools_window_instances.Pointer();
for (auto it(instances->begin()); it != instances->end(); ++it) {
if ((*it)->bindings_->IsAttachedTo(agent_host))
return *it;
}
- return NULL;
+ return nullptr;
}
// static
DevToolsWindow* DevToolsWindow::AsDevToolsWindow(
content::WebContents* web_contents) {
if (!web_contents || !g_devtools_window_instances.IsCreated())
- return NULL;
+ return nullptr;
DevToolsWindows* instances = g_devtools_window_instances.Pointer();
for (auto it(instances->begin()); it != instances->end(); ++it) {
if ((*it)->main_web_contents_ == web_contents)
return *it;
}
- return NULL;
+ return nullptr;
}
WebContents* DevToolsWindow::OpenURLFromTab(
@@ -1366,7 +1363,7 @@ void DevToolsWindow::SetIsDocked(bool dock_requested) {
// Removing the only WebContents from the tab strip of browser_ will
// eventually lead to the destruction of browser_ as well, which is why it's
// okay to just null the raw pointer here.
- browser_ = NULL;
+ browser_ = nullptr;
owned_main_web_contents_ = tab_strip_model->DetachWebContentsAt(
tab_strip_model->GetIndexOfWebContents(main_web_contents_));
@@ -1475,7 +1472,7 @@ void DevToolsWindow::ShowCertificateViewer(const std::string& cert_chain) {
WebContents* inspected_contents =
is_docked_ ? GetInspectedWebContents() : main_web_contents_;
- Browser* browser = NULL;
+ Browser* browser = nullptr;
int tab = 0;
if (!FindInspectedBrowserAndTabIndex(inspected_contents, &browser, &tab))
return;
@@ -1549,11 +1546,12 @@ void DevToolsWindow::CreateDevToolsBrowser() {
}
BrowserWindow* DevToolsWindow::GetInspectedBrowserWindow() {
- Browser* browser = NULL;
+ Browser* browser = nullptr;
int tab;
- return FindInspectedBrowserAndTabIndex(GetInspectedWebContents(),
- &browser, &tab) ?
- browser->window() : NULL;
+ return FindInspectedBrowserAndTabIndex(GetInspectedWebContents(), &browser,
+ &tab)
+ ? browser->window()
+ : nullptr;
}
void DevToolsWindow::DoAction(const DevToolsToggleAction& action) {
@@ -1589,7 +1587,7 @@ void DevToolsWindow::DoAction(const DevToolsToggleAction& action) {
void DevToolsWindow::UpdateBrowserToolbar() {
BrowserWindow* inspected_window = GetInspectedBrowserWindow();
if (inspected_window)
- inspected_window->UpdateToolbar(NULL);
+ inspected_window->UpdateToolbar(nullptr);
}
void DevToolsWindow::UpdateBrowserWindow() {
@@ -1601,7 +1599,7 @@ void DevToolsWindow::UpdateBrowserWindow() {
WebContents* DevToolsWindow::GetInspectedWebContents() {
return inspected_contents_observer_
? inspected_contents_observer_->web_contents()
- : NULL;
+ : nullptr;
}
void DevToolsWindow::LoadCompleted() {
diff --git a/chromium/chrome/browser/devtools/devtools_window.h b/chromium/chrome/browser/devtools/devtools_window.h
index e89f2698aeb..d593dad9323 100644
--- a/chromium/chrome/browser/devtools/devtools_window.h
+++ b/chromium/chrome/browser/devtools/devtools_window.h
@@ -58,15 +58,15 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate,
content::WebContents* web_contents);
// Return the DevToolsWindow for the given WebContents if one exists,
- // otherwise NULL.
+ // otherwise nullptr.
static DevToolsWindow* GetInstanceForInspectedWebContents(
content::WebContents* inspected_web_contents);
// Return the docked DevTools WebContents for the given inspected WebContents
- // if one exists and should be shown in browser window, otherwise NULL.
+ // if one exists and should be shown in browser window, otherwise nullptr.
// This method will return only fully initialized window ready to be
// presented in UI.
- // If |out_strategy| is not NULL, it will contain resizing strategy.
+ // If |out_strategy| is not nullptr, it will contain resizing strategy.
// For immediately-ready-to-use but maybe not yet fully initialized DevTools
// use |GetInstanceForInspectedRenderViewHost| instead.
static content::WebContents* GetInTabWebContents(
diff --git a/chromium/chrome/browser/devtools/protocol/DEPS b/chromium/chrome/browser/devtools/protocol/DEPS
index 76297a762e6..109e3a5657e 100644
--- a/chromium/chrome/browser/devtools/protocol/DEPS
+++ b/chromium/chrome/browser/devtools/protocol/DEPS
@@ -1,5 +1,4 @@
specific_include_rules = {
- # TODO(mash): Fix. https://crbug.com/758061
"window_manager_handler\.cc": [
"+ash/shell.h",
"+ash/wm/overview/overview_controller.h",
diff --git a/chromium/chrome/browser/devtools/protocol/browser_handler.cc b/chromium/chrome/browser/devtools/protocol/browser_handler.cc
index 3ba37138d18..1f8425dec8d 100644
--- a/chromium/chrome/browser/devtools/protocol/browser_handler.cc
+++ b/chromium/chrome/browser/devtools/protocol/browser_handler.cc
@@ -9,7 +9,6 @@
#include "base/bind.h"
#include "base/memory/ref_counted_memory.h"
-#include "base/task/post_task.h"
#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
#include "chrome/browser/devtools/devtools_dock_tile.h"
#include "chrome/browser/lifetime/application_lifetime.h"
@@ -112,8 +111,8 @@ Response BrowserHandler::GetWindowBounds(
}
Response BrowserHandler::Close() {
- base::PostTask(
- FROM_HERE, {content::BrowserThread::UI}, base::BindOnce([]() {
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce([]() {
if (ChromeDevToolsManagerDelegate::GetInstance())
ChromeDevToolsManagerDelegate::GetInstance()->BrowserCloseRequested();
chrome::ExitIgnoreUnloadHandlers();
diff --git a/chromium/chrome/browser/devtools/protocol/security_handler.cc b/chromium/chrome/browser/devtools/protocol/security_handler.cc
index 03b2d85aa6c..c44998a5ca9 100644
--- a/chromium/chrome/browser/devtools/protocol/security_handler.cc
+++ b/chromium/chrome/browser/devtools/protocol/security_handler.cc
@@ -47,7 +47,6 @@ std::string SecurityLevelToProtocolSecurityState(
return protocol::Security::SecurityStateEnum::Insecure;
return protocol::Security::SecurityStateEnum::Neutral;
case security_state::SECURE_WITH_POLICY_INSTALLED_CERT:
- case security_state::EV_SECURE:
case security_state::SECURE:
return protocol::Security::SecurityStateEnum::Secure;
case security_state::DANGEROUS:
diff --git a/chromium/chrome/browser/devtools/remote_debugging_server.cc b/chromium/chrome/browser/devtools/remote_debugging_server.cc
index e57ed9c6da7..4a5a033c65b 100644
--- a/chromium/chrome/browser/devtools/remote_debugging_server.cc
+++ b/chromium/chrome/browser/devtools/remote_debugging_server.cc
@@ -16,9 +16,11 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/common/chrome_paths.h"
+#include "chrome/common/chrome_switches.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_socket_factory.h"
#include "content/public/common/content_switches.h"
+#include "net/base/filename_util.h"
#include "net/base/net_errors.h"
#include "net/log/net_log_source.h"
#include "net/socket/tcp_server_socket.h"
@@ -108,10 +110,13 @@ RemoteDebuggingServer::RemoteDebuggingServer() {
}
base::FilePath debug_frontend_dir;
-#if BUILDFLAG(DEBUG_DEVTOOLS)
- base::PathService::Get(chrome::DIR_INSPECTOR_DEBUG, &debug_frontend_dir);
-#endif
-
+ if (command_line.HasSwitch(::switches::kCustomDevtoolsFrontend)) {
+ GURL custom_devtools_frontend_url(command_line.GetSwitchValueASCII(
+ ::switches::kCustomDevtoolsFrontend));
+ if (custom_devtools_frontend_url.SchemeIsFile()) {
+ net::FileURLToFilePath(custom_devtools_frontend_url, &debug_frontend_dir);
+ }
+ }
content::DevToolsAgentHost::StartRemoteDebuggingServer(
std::make_unique<TCPServerSocketFactory>(port), output_dir,
debug_frontend_dir);