[dawn][wire] Removes InjectDevice.

- Updated SampleUtils to use WireHelper.
- Added swap chain utility function in WireHelper.

Change-Id: Ic830d4251f48cc3ae57d129040965aa8f3fb8b5b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/175784
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
diff --git a/generator/templates/mock_api.cpp b/generator/templates/mock_api.cpp
index d01b443..b66b27e 100644
--- a/generator/templates/mock_api.cpp
+++ b/generator/templates/mock_api.cpp
@@ -65,7 +65,11 @@
 
     {% for type in by_category["structure"] if type.has_free_members_function %}
         table->{{as_varName(type.name, Name("free members"))}} = []({{as_cType(type.name)}} {{as_varName(type.name)}}) {
-            dawn::WarningLog() << "No mock available for {{as_varName(type.name, Name('free members'))}}";
+            static bool calledOnce = false;
+            if (!calledOnce) {
+                calledOnce = true;
+                dawn::WarningLog() << "No mock available for {{as_varName(type.name, Name('free members'))}}";
+            }
         };
     {% endfor %}
 }