Commit 05ffc6b5 authored by vkuzkokov's avatar vkuzkokov Committed by Commit bot

[DevTools] Skip WebView instances without open pages

BUG=448707

Review URL: https://codereview.chromium.org/818773005

Cr-Commit-Position: refs/heads/master@{#311492}
parent 979c57f8
...@@ -9,6 +9,8 @@ var MIN_VERSION_TAB_ACTIVATE = 30; ...@@ -9,6 +9,8 @@ var MIN_VERSION_TAB_ACTIVATE = 30;
var WEBRTC_SERIAL = 'WEBRTC'; var WEBRTC_SERIAL = 'WEBRTC';
var queryParamsObject = {}; var queryParamsObject = {};
var browserInspector;
var browserInspectorTitle;
(function() { (function() {
var queryParams = window.location.search; var queryParams = window.location.search;
...@@ -20,6 +22,13 @@ for (var i = 0; i < params.length; ++i) { ...@@ -20,6 +22,13 @@ for (var i = 0; i < params.length; ++i) {
queryParamsObject[pair[0]] = pair[1]; queryParamsObject[pair[0]] = pair[1];
} }
if ('trace' in queryParamsObject || 'tracing' in queryParamsObject) {
browserInspector = 'chrome://tracing';
browserInspectorTitle = 'trace';
} else {
browserInspector = queryParamsObject['browser-inspector'];
browserInspectorTitle = 'inspect';
}
})(); })();
function sendCommand(command, args) { function sendCommand(command, args) {
...@@ -133,6 +142,14 @@ function alreadyDisplayed(element, data) { ...@@ -133,6 +142,14 @@ function alreadyDisplayed(element, data) {
return false; return false;
} }
function updateBrowserVisibility(browserSection) {
var icon = browserSection.querySelector('.used-for-port-forwarding');
browserSection.hidden = !browserSection.querySelector('.open') &&
!browserSection.querySelector('.row') &&
!browserInspector &&
(!icon || icon.hidden);
}
function populateRemoteTargets(devices) { function populateRemoteTargets(devices) {
if (!devices) if (!devices)
return; return;
...@@ -296,15 +313,6 @@ function populateRemoteTargets(devices) { ...@@ -296,15 +313,6 @@ function populateRemoteTargets(devices) {
browserSection.appendChild(warningSection); browserSection.appendChild(warningSection);
} }
var browserInspector;
var browserInspectorTitle;
if ('trace' in queryParamsObject || 'tracing' in queryParamsObject) {
browserInspector = 'chrome://tracing';
browserInspectorTitle = 'trace';
} else {
browserInspector = queryParamsObject['browser-inspector'];
browserInspectorTitle = 'inspect';
}
if (browserInspector) { if (browserInspector) {
var link = document.createElement('span'); var link = document.createElement('span');
link.classList.add('action'); link.classList.add('action');
...@@ -322,34 +330,34 @@ function populateRemoteTargets(devices) { ...@@ -322,34 +330,34 @@ function populateRemoteTargets(devices) {
browserSection.appendChild(pageList); browserSection.appendChild(pageList);
} }
if (incompatibleVersion || alreadyDisplayed(browserSection, browser)) if (!incompatibleVersion && !alreadyDisplayed(browserSection, browser)) {
continue; pageList.textContent = '';
for (var p = 0; p < browser.pages.length; p++) {
pageList.textContent = ''; var page = browser.pages[p];
for (var p = 0; p < browser.pages.length; p++) { // Attached targets have no unique id until Chrome 26. For such
var page = browser.pages[p]; // targets it is impossible to activate existing DevTools window.
// Attached targets have no unique id until Chrome 26. For such targets page.hasNoUniqueId = page.attached &&
// it is impossible to activate existing DevTools window. majorChromeVersion && majorChromeVersion < MIN_VERSION_TARGET_ID;
page.hasNoUniqueId = page.attached && var row = addTargetToList(page, pageList, ['name', 'url']);
(majorChromeVersion && majorChromeVersion < MIN_VERSION_TARGET_ID); if (page['description'])
var row = addTargetToList(page, pageList, ['name', 'url']); addWebViewDetails(row, page);
if (page['description']) else
addWebViewDetails(row, page); addFavicon(row, page);
else if (majorChromeVersion >= MIN_VERSION_TAB_ACTIVATE) {
addFavicon(row, page); addActionLink(row, 'focus tab',
if (majorChromeVersion >= MIN_VERSION_TAB_ACTIVATE) { sendTargetCommand.bind(null, 'activate', page), false);
addActionLink(row, 'focus tab', }
sendTargetCommand.bind(null, 'activate', page), false); if (majorChromeVersion) {
} addActionLink(row, 'reload',
if (majorChromeVersion) { sendTargetCommand.bind(null, 'reload', page), page.attached);
addActionLink(row, 'reload', }
sendTargetCommand.bind(null, 'reload', page), page.attached); if (majorChromeVersion >= MIN_VERSION_TAB_CLOSE) {
} addActionLink(row, 'close',
if (majorChromeVersion >= MIN_VERSION_TAB_CLOSE) { sendTargetCommand.bind(null, 'close', page), false);
addActionLink(row, 'close', }
sendTargetCommand.bind(null, 'close', page), false);
} }
} }
updateBrowserVisibility(browserSection);
} }
} }
} }
...@@ -910,6 +918,7 @@ function populatePortStatus(devicesStatusMap) { ...@@ -910,6 +918,7 @@ function populatePortStatus(devicesStatusMap) {
var icon = browserSection.querySelector('.used-for-port-forwarding'); var icon = browserSection.querySelector('.used-for-port-forwarding');
if (icon) if (icon)
icon.hidden = (browserSection.id !== deviceStatus.browserId); icon.hidden = (browserSection.id !== deviceStatus.browserId);
updateBrowserVisibility(browserSection);
} }
Array.prototype.forEach.call( Array.prototype.forEach.call(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment