node: Propagate toggles into EnumerateAdapters

Change-Id: I10869595793de585a8f73d4f7a229515575731f0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/140302
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/dawn/node/binding/GPU.cpp b/src/dawn/node/binding/GPU.cpp
index 643da53..9a3ff79 100644
--- a/src/dawn/node/binding/GPU.cpp
+++ b/src/dawn/node/binding/GPU.cpp
@@ -21,6 +21,7 @@
 #include <vector>
 
 #include "src/dawn/node/binding/GPUAdapter.h"
+#include "src/dawn/node/binding/TogglesLoader.h"
 
 #if defined(_WIN32)
 #include <Windows.h>
@@ -119,7 +120,17 @@
         return promise;
     }
 
-    auto adapters = instance_.EnumerateAdapters();
+    RequestAdapterOptions nativeOptions;
+    if (options.powerPreference.has_value()) {
+        // TODO(dneto): Assign power preference
+    }
+
+    // Propagate toggles.
+    TogglesLoader togglesLoader(flags_);
+    DawnTogglesDescriptor togglesDescriptor = togglesLoader.GetDescriptor();
+    nativeOptions.nextInChain = &togglesDescriptor;
+
+    auto adapters = instance_.EnumerateAdapters(&nativeOptions);
     if (adapters.empty()) {
         promise.Resolve({});
         return promise;