Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Unified Diff: chrome/browser/resources/inspect/inspect.js

Issue 23441060: DevTools: Improve design of WebViews available for inspection in chrome://inspect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/inspect/inspect.js
diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resources/inspect/inspect.js
index b9c1bee964878c91e11ed7aef72948de8bd33d76..f47f00d1430b80aef4a554c04f18423b5a27c921 100644
--- a/chrome/browser/resources/inspect/inspect.js
+++ b/chrome/browser/resources/inspect/inspect.js
@@ -282,8 +282,9 @@ function populateDeviceLists(devices) {
// it is impossible to activate existing DevTools window.
page.hasNoUniqueId = page.attached &&
majorChromeVersion < MIN_VERSION_TARGET_ID;
+ var iconProperty = page.description ? 'description' : 'faviconUrl';
var row = addTargetToList(
- page, pageList, ['faviconUrl', 'name', 'url', 'description']);
+ page, pageList, [iconProperty, 'name', 'url'], device);
if (isChrome) {
if (majorChromeVersion >= MIN_VERSION_TAB_ACTIVATE) {
row.appendChild(createActionLink(
@@ -381,7 +382,54 @@ function addWebViewDescription(webview, list) {
return row;
}
-function addTargetToList(data, list, properties) {
+function addWebViewThumbnail(webview, row, device) {
+ if (!device.adbScreenWidth || !device.adbScreenHeight)
+ return;
+
+ var maxScreenRectSize = 50;
+ var screenRectWidth;
+ var screenRectHeight;
+
+ var aspectRatio = device.adbScreenWidth / device.adbScreenHeight;
+ if (aspectRatio < 1) {
+ screenRectWidth = Math.round(maxScreenRectSize * aspectRatio);
+ screenRectHeight = maxScreenRectSize;
+ } else {
+ screenRectWidth = maxScreenRectSize;
+ screenRectHeight = Math.round(maxScreenRectSize / aspectRatio);
+ }
+
+ var thumbnail = document.createElement('div');
+ thumbnail.className = 'webview-thumbnail';
+ var thumbnailWidth = 3 * screenRectWidth;
+ thumbnail.style.width = thumbnailWidth + 'px';
+ row.appendChild(thumbnail);
+ row.style.paddingLeft = thumbnailWidth + 6 + 'px';
+
+ var screenRect = document.createElement('div');
+ screenRect.className = 'screen-rect';
+ screenRect.style.width = screenRectWidth + 'px';
+ screenRect.style.height = screenRectHeight + 'px';
+ thumbnail.appendChild(screenRect);
+
+ if (webview.empty || !webview.attached)
+ return;
+
+ var viewRect = document.createElement('div');
+ viewRect.className = 'view-rect';
+ if (!webview.visible)
+ viewRect.classList.add('hidden');
+ function percent(ratio) {
+ return ratio * 100 + '%';
+ }
+ viewRect.style.left = percent(webview.screenX / device.adbScreenWidth);
+ viewRect.style.top = percent(webview.screenY / device.adbScreenHeight);
+ viewRect.style.width = percent(webview.width / device.adbScreenWidth);
+ viewRect.style.height = percent(webview.height / device.adbScreenHeight);
+ screenRect.appendChild(viewRect);
+}
+
+function addTargetToList(data, list, properties, opt_device) {
var row = document.createElement('div');
row.className = 'row';
@@ -396,6 +444,8 @@ function addTargetToList(data, list, properties) {
else if (data['description']) {
try {
description = JSON.parse(data['description']);
+ if (opt_device)
+ addWebViewThumbnail(description, row, opt_device);
} catch (e) {}
}
}

Powered by Google App Engine
This is Rietveld 408576698