DevTools 新功能(Chrome 109)

Published on

Translated to: English, Español, Português, Pусский, 日本語

感谢 流浪大法师 提供的翻译

有兴趣帮忙改进 DevTools 吗?请注册并参与 Google 用户体验调研

Recorder: 为步骤提供新的复制选项,支持页面内重放,步骤支持鼠标右键弹出菜单

Recorder 面板支持新的复制选项

Recorder 面板里面打开一个用户流程。之前,当您重放该用户流程时,DevTools 会始终通过跳转或重新加载页面的方式来执行此次的重放。

有了这次更新,Recorder 面板就可以分别展示各个跳转(navigation)步骤。您可以鼠标右键并删除它来执行页面内重放!

除此之外,您还可以对步骤进行鼠标右键操作并将其复制到 Recorder 面板的剪贴板中,而不再是导出整个用户流程。它也适用于 Chrome 扩展。例如,尝试将步骤复制为 Nightwatch Test 脚本。有了这个功能,您可以轻松地更新任何已有脚本。

现在,您可以在步骤上的任何位置通过鼠标右键的方式来弹出菜单。在此之前,您只能通过点击 3 个点按钮的方式来弹出步骤菜单。

Chromium 议题:1322313, 1351649, 1322313, 1339767

在 Performance 面板里显示实际的函数名称

Performance 面板现在会读取 sourcemap, 在 trace 中显示实际的函数名称和它们的源文件。

在 Performance 面板里面,对比显示压缩前的函数名称与压缩后的函数名称。

在这个例子里面,处在生产环境下的源文件会被压缩。例如,在这个 demo 中,sayHi 函数被压缩为 ntakeABreak 函数被压缩为 o

显示压缩前与压缩后的文件。

在此之前,当您在 Performance 面板中记录 trace 时,trace 只会显示您压缩后的函数名称。这使得调试变得更加困难。

有了这次更新,DevTools 现在就可以读取 sourcemap 并显示实际的函数名称和源文件位置。

Chromium 议题:1364601, 1364601

Console & Sources 面板新增快捷键

Sources 面板里面,您可以通过以下方式切换选项卡:

在 MacOS 系统里面,使用 Function + Command + Arrow upArrow down

在 Windows 和 Linux 系统里面,使用 Control + Page upPage down

此外,您可以在 MacOS 系统里面使用 Ctrl + NCtrl + P 来上下选择自动填充建议,类似于 Emacs。例如,您可以在 Console 面板里面输入 window. 并使用这些快捷键来上下选择自动填充建议。

此外,DevTools 现在只会在行尾响应用于自动填充的 Arrow Right。例如,当您在代码的中间位置编辑某些内容时,会弹出自动填充对话框。当您按下 Arrow Right时,您很可能想要将光标设置到下一个位置,而不是自动填充。这个 UX 上的变动可以更好地服务于您的工作流程。

Chromium 议题:1167965, 1172535, 1371585. 1369503

改善 JavaScript 调试体验

以下是这个版本针对 JavaScript 调试的一些改进:

  • new.target 指的是一个元属性,它可以让您检测到调用函数或构造函数是否使用 new 操作符的这种情况。您现在可以通过在 Console 面板里面打印出 new.target 的方式来检查它的值。在此之前,当您输入 new.target 时,它就会返回错误。 在调试 new.target 的值时,对比显示之前和之后的 new target。
  • WeakRef 对象允许您持有另一个对象的弱引用,而不会阻止该对象被垃圾回收。DevTools 现在会在调试期间在控制台里面直接显示一个 inline preview,并且对弱引用进行评估。在此之前,您必须显式地调用“deref”来解析它。 在调试 WeakRef 的值时,对比显示之前和之后的 WeakRef。
  • 修复了 shadowed 变量的 inline preview。在此之前,显示的值是不正确的。 对比显示之前和之后 shadowed 变量的 inline preview。
  • Sources 面板的 Scope 窗格中,对 Generatorasync 函数中的变量名进行反混淆。

Chromium 议题:1267690, 1246863 1371322, 1311637

其他的更新

以下是此版本中一些值得注意的修复:

  • 针对 Styles 面板中的非活跃 CSS 属性 - 行内高度和宽度,弹性和网格属性,支持更多的提示信息。
  • 修复语法高亮的问题。自从 DevTools 的 code editor 升级以来,它就不再正常工作。
  • Recorder 面板中,在失焦事件之后,正确地捕获 input change 事件。
  • Recorder 面板中,为了更好的调试体验,更新 Puppeteer 重放脚本。
  • 针对远程调试,在 Recorder 面板中,支持记录和重放。
  • 修复 var() 中存在特殊 CSS 变量名会导致解析失败的问题。在此之前,DevTools 不支持解析带有转义字符的变量,例如 var(--fo\ o)

【实验阶段】优化断点管理界面的 UX

要启用该实验特性,请在 Settings > Experiments 下勾选 Enable re-designed Breakpoint Sidebar Pane in the Sources Panel

遇到需要查看所有断点的情况,目前的 Breakpoints 窗格所能够提供的视觉辅助实属有限。此外,常用的操作被隐藏在右键菜单中。

处于实验阶段的 UX redesign 目的在于结构化 Breakpoints 面板,并允许开发人员快速访问常用功能,特别是在编辑和删除断点的情况下。

这里有一些亮点:

  • 两个暂停选项都在 Breakpoints 面板中,并用文本标记,以便于理解。
  • 断点可以按文件分组,按行/列号排序,并可折叠。
  • Breakpoint 面板中,把鼠标悬停在断点或文件名上,面板会新增删除和编辑断点的选项。

阅读我们的 RFC (closed) 的全部更改,并在这里提供您的反馈。

对比显示重构前后的 Breakpoint 面板。

Chromium 议题:1346231, 1324904

【实验阶段】自动格式化

要启用实验,请在 Settings > Experiments 下勾选 Automatically pretty print in the Sources panel

Sources 面板现在会自动对那些文件内容处于压缩状态的源文件进行格式化。您可以单击 pretty print button { } 来取消。

在此之前,Sources 面板默认会显示压缩内容。开发人员需要手动单击 pretty print 按钮来格式化内容。此外,格式化内容不会显示在同一个文件中,而是显示在另一个 ::formatted 选项卡中。

显示格式化之前与格式化之后的文件。

Chromium 议题:1164184

下载 Chrome 预览版本

您可以考虑把 Chrome Canary 版, 开发者版(Dev)测试版(Beta) 设置为默认开发浏览器。这些预览版本能让你抢先体验处于 DevTools 开发阶段的新功能、测试最新的网络平台 API ,让您抢先在用户之前发现您网站上的问题!

联系 Chrome DevTools 团队

您可以透过一下渠道讨论这篇文章的新功能和改进,或一切关于 DevTools 的一切。

  • 提交建议或意见回馈:crbug.com.
  • 报告 DevTools 问题:打开 DevTools,按 更多选项图标   More   > 帮助 > 报告 DevTools 问题
  • 在推特上,发推文: @ChromeDevTools.
  • 在我们的 What's new in DevTools YouTube 视频底下留言。

更多 DevTools 的功能

欲查询完整的 DevTools 已发布的功能,请参考 What's New In DevTools 英文系列。以下是部分已翻译成中文的内容。

Chrome 111

Chrome 110

Chrome 109

Chrome 108

Chrome 107

Chrome 106

Chrome 105

Chrome 104

Chrome 103

Chrome 102

Chrome 101

Chrome 100

Chrome 99

Chrome 98

Chrome 97

Chrome 96

Chrome 95

Chrome 94

Chrome 93

Chrome 92

Published on 改进文章

Back

Discovering the capable web

Next

Chrome 110 beta

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.