Features (10)

Deprecation Reports

Category: JavaScript

A new feature of the Reporting API gives developers more insight into the functioning of their code on client machines. Deprecation reports allow deprecation warnings, currently only available in developer tool consoles, to be sent to the back end, or captured in callbacks using ReportingObserver.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 5652647952515072,
  "milestone": 69,
  "name": "Deprecation Reports",
  "summary": "A new feature of the Reporting API gives developers more insight into the functioning of their code on client machines. Deprecation reports allow deprecation warnings, currently only available in developer tool consoles, to be sent to the back end, or captured in callbacks using ReportingObserver."
}
RTCRtpSender / RTCRtpReceiver.getCapabilities()

Category: JavaScript

The getCapabilities() method returns the most optimistic view of the capabilities of the system for sending media of the given kind. It does not reserve any resources, ports, or other state but is meant to provide a way to discover the types of capabilities of the browser including which codecs or RTP extensions may be supported.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 6206698196828160,
  "milestone": 69,
  "name": "RTCRtpSender / RTCRtpReceiver.getCapabilities()",
  "summary": "The getCapabilities() method returns the most optimistic view of the capabilities of the system for sending media of the given kind. It does not reserve any resources, ports, or other state but is meant to provide a way to discover the types of capabilities of the browser including which codecs or RTP extensions may be supported."
}
Add RTCRtpParameters.headerExtensions

Category: JavaScript

This change adds support for the RTCRtpParameters.headerExtensions dictionary entry which is returned by RTCRtpSender.getParameters(). This is a read-only field that allows inspection of the parameters that are set on a PeerConnection after negotiation.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 6675724865896448,
  "milestone": 69,
  "name": "Add RTCRtpParameters.headerExtensions",
  "summary": "This change adds support for the RTCRtpParameters.headerExtensions dictionary entry which is returned by RTCRtpSender.getParameters(). This is a read-only field that allows inspection of the parameters that are set on a PeerConnection after negotiation. "
}
window.confirm() will not activate parent page

Category: JavaScript

If a document in a background tab calls window.confirm() then the call to confirm() will return immediately with false, and no dialog will be shown to the user. If the tab is active, then the call will show a dialog. Specifically, this removes the ability to use window.confirm() to bring a tab to the front against the user’s will.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 5140698722467840,
  "milestone": 69,
  "name": "window.confirm() will not activate parent page",
  "summary": "If a document in a background tab calls window.confirm() then the call to confirm() will return immediately with false, and no dialog will be shown to the user. If the tab is active, then the call will show a dialog. Specifically, this removes the ability to use window.confirm() to bring a tab to the front against the user’s will.\r\n"
}
Remove document.createTouchList

Category: JavaScript

The document.createTouchList() method is being removed because the Touch() constructor has been supported since Chrome 48.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 5185332291043328,
  "milestone": 69,
  "name": "Remove document.createTouchList",
  "summary": "The document.createTouchList() method is being removed because the Touch() constructor has been supported since Chrome 48."
}
WebAssembly Sign Extension Opcodes

Category: JavaScript

Add sign extension opcodes to WebAssembly. This makes some code sequences shorter and allows us to provide only zero extended versions of atomic opcodes for threads.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 4961472689995776,
  "milestone": 69,
  "name": "WebAssembly Sign Extension Opcodes",
  "summary": "Add sign extension opcodes to WebAssembly. This makes some code sequences shorter and allows us to provide only zero extended versions of atomic opcodes for threads.\r\n"
}
WebRTC RTCRtpTransceiver in Unified Plan

Category: JavaScript

When spec-complaint SDP format "Unified Plan" is used, RTCRtpTransceiver describes each sender-receiver pair that is added to the RTCPeerConnection. This represents the components used to send and receive media. Exposing the transceiver gives the application the ability to receive media early and provides more control over the generated SDP. APIs that are shipping include RTCRtpTransceiver, RTCPeerConnection.addTransceiver() and RTCPeerConnection.getTransceivers().

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 4749621767176192,
  "milestone": 69,
  "name": "WebRTC RTCRtpTransceiver in Unified Plan",
  "summary": "When spec-complaint SDP format \"Unified Plan\" is used, RTCRtpTransceiver describes each sender-receiver pair that is added to the RTCPeerConnection. This represents the components used to send and receive media. Exposing the transceiver gives the application the ability to receive media early and provides more control over the generated SDP. APIs that are shipping include RTCRtpTransceiver, RTCPeerConnection.addTransceiver() and RTCPeerConnection.getTransceivers()."
}
WebAssembly Import/Export Mutable Globals

Category: JavaScript

Allows WebAssembly modules to import and export mutable globals. This building block will allow efficient passing of values like shadow stacks pointers between dynamically liked modules (especially in the multi-threaded case).

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 5754634769530880,
  "milestone": 69,
  "name": "WebAssembly Import/Export Mutable Globals",
  "summary": "Allows WebAssembly modules to import and export mutable globals. This building block will allow efficient passing of values like shadow stacks pointers between dynamically liked modules (especially in the multi-threaded case).\r\n"
}
Array.prototype.{flat,flatMap}

Category: JavaScript

JavaScript arrays are getting two new methods. `Array.prototype.flat()` returns a new array with all sub-array elements concatenated into it recursively up to the specified depth. The sub-array elements become members of the new array. `Array.prototype.flatMap()` first maps each element using a mapping function, then flattens the result into a new array. This method is functionally equivalent to a map followed by a flatten of depth 1.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 6629507075145728,
  "milestone": 69,
  "name": "Array.prototype.{flat,flatMap}",
  "summary": "JavaScript arrays are getting two new methods. `Array.prototype.flat()` returns a new array with all sub-array elements concatenated into it recursively up to the specified depth. The sub-array elements become members of the new array. `Array.prototype.flatMap()` first maps each element using a mapping function, then flattens the result into a new array. This method is functionally equivalent to a map followed by a flatten of depth 1."
}
ReportingObserver

Category: JavaScript

A new feature of the Reporting API gives developers more insight into the functioning of their code on client machines. The ReportingObserver API allows JavaScript to capture reports in callback, which can be used to save custom reporting data to page analytics.

JSON data
{
  "category": "JavaScript",
  "flag_name": null,
  "id": 4691191559880704,
  "milestone": 69,
  "name": "ReportingObserver",
  "summary": "A new feature of the Reporting API gives developers more insight into the functioning of their code on client machines. The ReportingObserver API allows JavaScript to capture reports in callback, which can be used to save custom reporting data to page analytics."
}

API Changes (25)

  • [string] deprecate String::Utf8Length
  • [explicit isolates] Remove nearly all GetIsolates in api.cc
  • [heap-profiler] Allow embedder to specify edge names
  • [wasm] Prepare API changes for WebAssembly.instantiateStreaming
  • [unified-heap] Add finalization trigger
  • [embedder-tracing] Deprecate NumberOfWrappersToTrace
  • [promise] Implement Swallowed Rejection Hook.
  • [scanner] Drop lonely byte support as it's unused by blink anyway.
  • [sfi] Reduce FunctionTokenPosition and ExpectedNofProperties to 16 bits.
  • [heap] Forcing external strings to be registered in the external string table.
  • [API] Expand BigInt API
  • [wasm] Move wire bytes to the NativeModule
  • [api] Properly define BufferReference instead of CallerOwnedBuffer
  • [SAB] Fix flake in Atomics.wait
  • [api] Switch from `SetBuildEmbedderGraphCallback` to `AddBuildEmbedderGraphCallback`
  • [ptr-compr] Support 31-bit Smis in lower half-word on 64-bit architectures.
  • [api] Add `AtomicsWaitCallback` for diagnostics
  • [cpu-profiler] Deprecate v8::TracingCpuProfiler
  • [cpu-profiler] Remove deprecated Isolate::GetCpuProfiler method.
  • [api] Add option to consume code cache on module compilation
  • [api] Allow escaping `MaybeLocal` handles on `EscapableHandleScope`
  • [log][api] introduce public CodeEventListener API
  • Adding an API to enable and disable the memory savings mode.
  • Update V8 version to 6.9
  • [cpu-profiler] Add a new profiling mode with a more detailed call tree.
JSON data
[
  {
    "author": {
      "name": "Dan Elphick",
      "email": "delphick@chromium.org",
      "time": "Mon Jul 16 21:01:31 2018"
    },
    "commit": "3dd5c6fe38355b8323597341409b37f931de5a85",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Mon Jul 16 21:53:26 2018"
    },
    "subject": "[string] deprecate String::Utf8Length",
    "milestone": 69
  },
  {
    "author": {
      "name": "Dan Elphick",
      "email": "delphick@chromium.org",
      "time": "Mon Jul 16 13:28:49 2018"
    },
    "commit": "8a011b57d8b26e9cfe1c20a2ef26adb14be6ecc2",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Mon Jul 16 14:33:24 2018"
    },
    "subject": "[explicit isolates] Remove nearly all GetIsolates in api.cc",
    "milestone": 69
  },
  {
    "author": {
      "name": "Joyee Cheung",
      "email": "joyee@igalia.com",
      "time": "Thu Jul 12 07:52:20 2018"
    },
    "commit": "6ee834532d6f924f6057584085fa79b4777c396a",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu Jul 12 13:42:18 2018"
    },
    "subject": "[heap-profiler] Allow embedder to specify edge names",
    "milestone": 69
  },
  {
    "author": {
      "name": "Andreas Haas",
      "email": "ahaas@chromium.org",
      "time": "Fri Jul 06 10:42:15 2018"
    },
    "commit": "7971f9d6f747708b2847aa5a485cbff1f7a446ea",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu Jul 12 09:06:28 2018"
    },
    "subject": "[wasm] Prepare API changes for WebAssembly.instantiateStreaming",
    "milestone": 69
  },
  {
    "author": {
      "name": "Michael Lippautz",
      "email": "mlippautz@chromium.org",
      "time": "Wed Jul 11 11:23:10 2018"
    },
    "commit": "8de19ddbcf872c2c0928ea2d02d4f086bee0eafa",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed Jul 11 12:25:40 2018"
    },
    "subject": "[unified-heap] Add finalization trigger",
    "milestone": 69
  },
  {
    "author": {
      "name": "Michael Lippautz",
      "email": "mlippautz@chromium.org",
      "time": "Fri Jul 06 12:25:51 2018"
    },
    "commit": "848f989e3d5e77f8ff8ab463dba94b1ba631be3e",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Mon Jul 09 08:06:49 2018"
    },
    "subject": "[embedder-tracing] Deprecate NumberOfWrappersToTrace",
    "milestone": 69
  },
  {
    "author": {
      "name": "Benedikt Meurer",
      "email": "bmeurer@chromium.org",
      "time": "Thu Jul 05 13:18:34 2018"
    },
    "commit": "907d7bcd18c13a04a14eea6699e54167494bf9f9",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Mon Jul 09 06:06:39 2018"
    },
    "subject": "[promise] Implement Swallowed Rejection Hook.",
    "milestone": 69
  },
  {
    "author": {
      "name": "Toon Verwaest",
      "email": "verwaest@chromium.org",
      "time": "Thu Jul 05 13:09:58 2018"
    },
    "commit": "c7ad1ddd44e2f1424be75f032232ac826c88c7bc",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu Jul 05 14:22:44 2018"
    },
    "subject": "[scanner] Drop lonely byte support as it's unused by blink anyway.",
    "milestone": 69
  },
  {
    "author": {
      "name": "Ross McIlroy",
      "email": "rmcilroy@chromium.org",
      "time": "Wed Jul 04 15:21:47 2018"
    },
    "commit": "ce409375b3d2a179508a5dfe4d50d9fdf052c803",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed Jul 04 16:53:37 2018"
    },
    "subject": "[sfi] Reduce FunctionTokenPosition and ExpectedNofProperties to 16 bits.",
    "milestone": 69
  },
  {
    "author": {
      "name": "Rodrigo Bruno",
      "email": "rfbpb@google.com",
      "time": "Wed Jul 04 09:31:54 2018"
    },
    "commit": "c5c4b588f18900a6c9659690a71b0affcf7bc33a",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed Jul 04 10:55:26 2018"
    },
    "subject": "[heap] Forcing external strings to be registered in the external string table.",
    "milestone": 69
  },
  {
    "author": {
      "name": "Anna Henningsen",
      "email": "anna@addaleax.net",
      "time": "Thu Jun 28 17:13:40 2018"
    },
    "commit": "477df066dbb82c86ac9edbc037a84896fd9b3dea",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Mon Jul 02 05:39:36 2018"
    },
    "subject": "[API] Expand BigInt API",
    "milestone": 69
  },
  {
    "author": {
      "name": "Clemens Hammacher",
      "email": "clemensh@chromium.org",
      "time": "Fri Jun 22 14:34:47 2018"
    },
    "commit": "9635e1a3037bbc9355eb4cbb84b9f2415c270fc1",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Fri Jun 22 15:45:59 2018"
    },
    "subject": "[wasm] Move wire bytes to the NativeModule",
    "milestone": 69
  },
  {
    "author": {
      "name": "Clemens Hammacher",
      "email": "clemensh@chromium.org",
      "time": "Thu Jun 21 10:27:53 2018"
    },
    "commit": "e90af2c7026aa28dbfe80924e3517316dd1c3f46",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu Jun 21 13:17:18 2018"
    },
    "subject": "[api] Properly define BufferReference instead of CallerOwnedBuffer",
    "milestone": 69
  },
  {
    "author": {
      "name": "Anna Henningsen",
      "email": "anna@addaleax.net",
      "time": "Mon Jun 11 22:10:25 2018"
    },
    "commit": "4da05e97ad419fe924f5d18cc16b57c387434f38",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Tue Jun 12 15:46:37 2018"
    },
    "subject": "[SAB] Fix flake in Atomics.wait",
    "milestone": 69
  },
  {
    "author": {
      "name": "Anna Henningsen",
      "email": "anna@addaleax.net",
      "time": "Fri Jun 01 20:27:43 2018"
    },
    "commit": "555c811c0d44d9aaaccf8e76059ed24537b3f012",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed Jun 06 09:46:57 2018"
    },
    "subject": "[api] Switch from `SetBuildEmbedderGraphCallback` to `AddBuildEmbedderGraphCallback`",
    "milestone": 69
  },
  {
    "author": {
      "name": "Igor Sheludko",
      "email": "ishell@chromium.org",
      "time": "Tue Jun 05 10:45:41 2018"
    },
    "commit": "d123f30b6df5507b2acda8e85ad63e05de8ca8a7",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Tue Jun 05 11:37:35 2018"
    },
    "subject": "[ptr-compr] Support 31-bit Smis in lower half-word on 64-bit architectures.",
    "milestone": 69
  },
  {
    "author": {
      "name": "Anna Henningsen",
      "email": "anna@addaleax.net",
      "time": "Fri Jun 01 08:47:41 2018"
    },
    "commit": "5eaa03b2d3f9ff743173de030416dae16094ef39",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Tue Jun 05 10:11:13 2018"
    },
    "subject": "[api] Add `AtomicsWaitCallback` for diagnostics",
    "milestone": 69
  },
  {
    "author": {
      "name": "Alexei Filippov",
      "email": "alph@chromium.org",
      "time": "Wed May 30 21:08:03 2018"
    },
    "commit": "60a858deb189f1013f721219d1459d46f8da53b4",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu May 31 23:34:43 2018"
    },
    "subject": "[cpu-profiler] Deprecate v8::TracingCpuProfiler",
    "milestone": 69
  },
  {
    "author": {
      "name": "Alexei Filippov",
      "email": "alph@chromium.org",
      "time": "Wed May 30 20:51:23 2018"
    },
    "commit": "90569cb053f8f9e49fc9cb9351a22a36f3680c90",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed May 30 22:16:28 2018"
    },
    "subject": "[cpu-profiler] Remove deprecated Isolate::GetCpuProfiler method.",
    "milestone": 69
  },
  {
    "author": {
      "name": "jgruber",
      "email": "jgruber@chromium.org",
      "time": "Wed May 30 06:41:11 2018"
    },
    "commit": "70b5fd3b6ec1281e8502c1304cffa70c8558c706",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed May 30 07:32:48 2018"
    },
    "subject": "[api] Add option to consume code cache on module compilation",
    "milestone": 69
  },
  {
    "author": {
      "name": "Anna Henningsen",
      "email": "anna@addaleax.net",
      "time": "Wed May 23 15:19:45 2018"
    },
    "commit": "0fd549f88545ddeea46e53e6446586825fbfcd3f",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Tue May 29 14:51:18 2018"
    },
    "subject": "[api] Allow escaping `MaybeLocal` handles on `EscapableHandleScope`",
    "milestone": 69
  },
  {
    "author": {
      "name": "Yang Guo",
      "email": "yangguo@chromium.org",
      "time": "Mon May 28 08:33:07 2018"
    },
    "commit": "aa6ce3ee617b2f324bea3a5d8e3263aee4cde6d7",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Mon May 28 09:27:24 2018"
    },
    "subject": "[log][api] introduce public CodeEventListener API",
    "milestone": 69
  },
  {
    "author": {
      "name": "Hannes Payer",
      "email": "hpayer@chromium.org",
      "time": "Thu May 24 17:18:34 2018"
    },
    "commit": "fb436a5e153876c55b725d04db582ad37b225d83",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu May 24 18:25:32 2018"
    },
    "subject": "Adding an API to enable and disable the memory savings mode.",
    "milestone": 69
  },
  {
    "author": {
      "name": "Michael Hablich",
      "email": "hablich@chromium.org",
      "time": "Thu May 24 10:28:02 2018"
    },
    "commit": "9a03c0f3fb07560c08ef1a4fde9779fc7efd01d8",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Thu May 24 10:31:20 2018"
    },
    "subject": "Update V8 version to 6.9",
    "milestone": 69
  },
  {
    "author": {
      "name": "Peter Marshall",
      "email": "petermarshall@chromium.org",
      "time": "Wed May 23 08:26:10 2018"
    },
    "commit": "ecae80cdb350dde1e654c531b56f5b6c44dc8c77",
    "committer": {
      "name": "Commit Bot",
      "email": "commit-bot@chromium.org",
      "time": "Wed May 23 09:23:40 2018"
    },
    "subject": "[cpu-profiler] Add a new profiling mode with a more detailed call tree.",
    "milestone": 69
  }
]