Import Cobalt 21.master.0.260628
diff --git a/src/starboard/raspi/2/skia/configuration.cc b/src/starboard/raspi/2/skia/configuration.cc
new file mode 100644
index 0000000..0ffdf45
--- /dev/null
+++ b/src/starboard/raspi/2/skia/configuration.cc
@@ -0,0 +1,73 @@
+// Copyright 2020 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/raspi/2/skia/configuration.h"
+
+#include "cobalt/extension/configuration.h"
+#include "starboard/common/configuration_defaults.h"
+
+namespace starboard {
+namespace raspi {
+namespace skia {
+
+namespace {
+
+int CobaltSkiaGlyphAtlasWidth() {
+  return 2048;
+}
+
+int CobaltSkiaGlyphAtlasHeight() {
+  return 2048;
+}
+
+const char* CobaltRasterizerType() {
+  return "hardware";
+}
+
+const CobaltExtensionConfigurationApi kConfigurationApi = {
+    kCobaltExtensionConfigurationName,
+    1,
+    &common::CobaltUserOnExitStrategyDefault,
+    &common::CobaltRenderDirtyRegionOnlyDefault,
+    &common::CobaltEglSwapIntervalDefault,
+    &common::CobaltFallbackSplashScreenUrlDefault,
+    &common::CobaltEnableQuicDefault,
+    &common::CobaltSkiaCacheSizeInBytesDefault,
+    &common::CobaltOffscreenTargetCacheSizeInBytesDefault,
+    &common::CobaltEncodedImageCacheSizeInBytesDefault,
+    &common::CobaltImageCacheSizeInBytesDefault,
+    &common::CobaltLocalTypefaceCacheSizeInBytesDefault,
+    &common::CobaltRemoteTypefaceCacheSizeInBytesDefault,
+    &common::CobaltMeshCacheSizeInBytesDefault,
+    &common::CobaltSoftwareSurfaceCacheSizeInBytesDefault,
+    &common::CobaltImageCacheCapacityMultiplierWhenPlayingVideoDefault,
+    &CobaltSkiaGlyphAtlasWidth,
+    &CobaltSkiaGlyphAtlasHeight,
+    &common::CobaltJsGarbageCollectionThresholdInBytesDefault,
+    &common::CobaltReduceCpuMemoryByDefault,
+    &common::CobaltReduceGpuMemoryByDefault,
+    &common::CobaltGcZealDefault,
+    &CobaltRasterizerType,
+    &common::CobaltEnableJitDefault,
+};
+
+}  // namespace
+
+const void* GetConfigurationApi() {
+  return &kConfigurationApi;
+}
+
+}  // namespace skia
+}  // namespace raspi
+}  // namespace starboard
diff --git a/src/starboard/raspi/2/skia/configuration.h b/src/starboard/raspi/2/skia/configuration.h
new file mode 100644
index 0000000..4ce8394
--- /dev/null
+++ b/src/starboard/raspi/2/skia/configuration.h
@@ -0,0 +1,28 @@
+// Copyright 2020 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef STARBOARD_RASPI_2_SKIA_CONFIGURATION_H_
+#define STARBOARD_RASPI_2_SKIA_CONFIGURATION_H_
+
+namespace starboard {
+namespace raspi {
+namespace skia {
+
+const void* GetConfigurationApi();
+
+}  // namespace skia
+}  // namespace raspi
+}  // namespace starboard
+
+#endif  // STARBOARD_RASPI_2_SKIA_CONFIGURATION_H_
diff --git a/src/starboard/raspi/2/skia/starboard_platform.gyp b/src/starboard/raspi/2/skia/starboard_platform.gyp
index 1a1111d..8057cd1 100644
--- a/src/starboard/raspi/2/skia/starboard_platform.gyp
+++ b/src/starboard/raspi/2/skia/starboard_platform.gyp
@@ -15,4 +15,16 @@
   'includes': [
     '../../shared/starboard_platform.gypi',
   ],
+  'target_defaults': {
+    'sources': [
+      '<(DEPTH)/starboard/raspi/2/skia/configuration.cc',
+      '<(DEPTH)/starboard/raspi/2/skia/configuration.h',
+      '<(DEPTH)/starboard/raspi/2/skia/system_get_extensions.cc',
+    ],
+    'sources!': [
+      '<(DEPTH)/starboard/raspi/shared/configuration.cc',
+      '<(DEPTH)/starboard/raspi/shared/configuration.h',
+      '<(DEPTH)/starboard/raspi/shared/system_get_extensions.cc',
+    ],
+  },
 }
diff --git a/src/starboard/raspi/2/skia/system_get_extensions.cc b/src/starboard/raspi/2/skia/system_get_extensions.cc
new file mode 100644
index 0000000..01e50ba
--- /dev/null
+++ b/src/starboard/raspi/2/skia/system_get_extensions.cc
@@ -0,0 +1,26 @@
+// Copyright 2020 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/system.h"
+
+#include "cobalt/extension/configuration.h"
+#include "starboard/common/string.h"
+#include "starboard/raspi/2/skia/configuration.h"
+
+const void* SbSystemGetExtension(const char* name) {
+  if (SbStringCompareAll(name, kCobaltExtensionConfigurationName) == 0) {
+    return starboard::raspi::skia::GetConfigurationApi();
+  }
+  return NULL;
+}