Index: third_party/WebKit/Source/modules/background_fetch/BackgroundFetchTypeConverters.cpp |
diff --git a/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchTypeConverters.cpp b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchTypeConverters.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..54f0c422e3fb3abed772c324e0b464d10f62e912 |
--- /dev/null |
+++ b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchTypeConverters.cpp |
@@ -0,0 +1,75 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "modules/background_fetch/BackgroundFetchTypeConverters.h" |
+ |
+#include <utility> |
+#include "modules/background_fetch/BackgroundFetchRegistration.h" |
+#include "platform/heap/HeapAllocator.h" |
+ |
+namespace mojo { |
+ |
+blink::BackgroundFetchRegistration* |
+TypeConverter<blink::BackgroundFetchRegistration*, |
+ blink::mojom::blink::BackgroundFetchRegistrationPtr>:: |
+ Convert(const blink::mojom::blink::BackgroundFetchRegistrationPtr& |
+ mojoRegistration) { |
+ if (!mojoRegistration) |
+ return nullptr; |
+ |
+ blink::HeapVector<blink::IconDefinition> icons; |
+ icons.reserveInitialCapacity(mojoRegistration->icons.size()); |
+ |
+ for (const auto& iconPtr : mojoRegistration->icons) |
+ icons.push_back(iconPtr.To<blink::IconDefinition>()); |
+ |
+ return new blink::BackgroundFetchRegistration( |
+ mojoRegistration->tag, std::move(icons), |
+ mojoRegistration->total_download_size, mojoRegistration->title); |
+} |
+ |
+blink::mojom::blink::BackgroundFetchOptionsPtr TypeConverter< |
+ blink::mojom::blink::BackgroundFetchOptionsPtr, |
+ blink::BackgroundFetchOptions>::Convert(const blink::BackgroundFetchOptions& |
+ options) { |
+ blink::mojom::blink::BackgroundFetchOptionsPtr mojoOptions = |
+ blink::mojom::blink::BackgroundFetchOptions::New(); |
+ |
+ WTF::Vector<blink::mojom::blink::IconDefinitionPtr> mojoIcons; |
+ mojoIcons.reserveInitialCapacity(options.icons().size()); |
+ |
+ for (const auto& icon : options.icons()) |
+ mojoIcons.push_back(blink::mojom::blink::IconDefinition::From(icon)); |
+ |
+ mojoOptions->icons = std::move(mojoIcons); |
+ mojoOptions->total_download_size = options.totalDownloadSize(); |
+ mojoOptions->title = options.title(); |
+ |
+ return mojoOptions; |
+} |
+ |
+blink::IconDefinition |
+TypeConverter<blink::IconDefinition, blink::mojom::blink::IconDefinitionPtr>:: |
+ Convert(const blink::mojom::blink::IconDefinitionPtr& mojoDefinition) { |
+ blink::IconDefinition definition; |
+ definition.setSrc(mojoDefinition->src); |
+ definition.setSizes(mojoDefinition->sizes); |
+ definition.setType(mojoDefinition->type); |
+ |
+ return definition; |
+} |
+ |
+blink::mojom::blink::IconDefinitionPtr TypeConverter< |
+ blink::mojom::blink::IconDefinitionPtr, |
+ blink::IconDefinition>::Convert(const blink::IconDefinition& definition) { |
+ blink::mojom::blink::IconDefinitionPtr mojoDefinition = |
+ blink::mojom::blink::IconDefinition::New(); |
+ mojoDefinition->src = definition.src(); |
+ mojoDefinition->sizes = definition.sizes(); |
+ mojoDefinition->type = definition.type(); |
+ |
+ return mojoDefinition; |
+} |
+ |
+} // namespace mojo |