diff --git a/externs/browser/html5.js b/externs/browser/html5.js
index 6c7d5886fcd..114259ca7f9 100644
--- a/externs/browser/html5.js
+++ b/externs/browser/html5.js
@@ -3275,6 +3275,28 @@ BroadcastChannel.prototype.onmessage;
*/
BroadcastChannel.prototype.name;
+/**
+ * StaticRange class.
+ * @constructor
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/StaticRange
+ */
+function StaticRange() {}
+
+/** @type {boolean} */
+StaticRange.prototype.collapsed;
+
+/** @type {Node} */
+StaticRange.prototype.endContainer;
+
+/** @type {number} */
+StaticRange.prototype.endOffset;
+
+/** @type {Node} */
+StaticRange.prototype.startContainer;
+
+/** @type {number} */
+StaticRange.prototype.startOffset;
+
/**
* HTML5 DataTransfer class.
*
diff --git a/externs/browser/w3c_event.js b/externs/browser/w3c_event.js
index 836ca490e39..226e29942d9 100644
--- a/externs/browser/w3c_event.js
+++ b/externs/browser/w3c_event.js
@@ -549,10 +549,9 @@ InputEventInit.prototype.inputType;
/** @type {undefined|?DataTransfer} */
InputEventInit.prototype.dataTransfer;
+/** @type {undefined|function():!Array} */
+InputEventInit.prototype.getTargetRanges;
-// TODO(charleyroy): Add getTargetRanges() once a consensus has been made
-// regarding how to structure these values. See
-// https://github.com/w3c/input-events/issues/38.
/**
* @constructor
* @extends {UIEvent}
@@ -575,6 +574,8 @@ InputEvent.prototype.inputType;
/** @type {?DataTransfer} */
InputEvent.prototype.dataTransfer;
+/** @type {function():!Array} */
+InputEvent.prototype.getTargetRanges;
/**
* @record