Implement WebXR lighting estimation API

This implements the API outlined in the explainer here:
https://github.com/immersive-web/lighting-estimation

Initial components of this implementation were done by bialpio@.

Bug: 1034135
Change-Id: I98ba7d3e7c166c6ac2254efae4f5b79e4bb95f48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1965850
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Piotr Bialecki <bialpio@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Commit-Queue: Will Cassella <cassew@google.com>
Cr-Commit-Position: refs/heads/master@{#732270}
diff --git a/resources/chromium/webxr-test.js b/resources/chromium/webxr-test.js
index 54788b4..ca62754 100644
--- a/resources/chromium/webxr-test.js
+++ b/resources/chromium/webxr-test.js
@@ -551,8 +551,11 @@
 
   // Mojo function implementations.
 
+  _injectAdditionalFrameData(options, frameData) {
+  }
+
   // XRFrameDataProvider implementation.
-  getFrameData() {
+  getFrameData(options) {
     let mojo_space_reset = this.send_mojo_space_reset_;
     this.send_mojo_space_reset_ = false;
     if (this.pose_) {
@@ -577,18 +580,21 @@
     now += diff;
     now *= 1000000;
 
+    let frameData = {
+      pose: this.pose_,
+      mojoSpaceReset: mojo_space_reset,
+      inputState: input_state,
+      timeDelta: {
+        microseconds: now,
+      },
+      frameId: this.next_frame_id_++,
+      bufferHolder: null,
+      bufferSize: {},
+    };
+    this._injectAdditionalFrameData(options, frameData);
+
     return Promise.resolve({
-      frameData: {
-        pose: this.pose_,
-        mojoSpaceReset: mojo_space_reset,
-        inputState: input_state,
-        timeDelta: {
-          microseconds: now,
-        },
-        frameId: this.next_frame_id_++,
-        bufferHolder: null,
-        bufferSize: {}
-      }
+      frameData: frameData,
     });
   }