From 7c205906d5d47cfaa9a7e4729bbd71821e3bb5bd Mon Sep 17 00:00:00 2001
From: murgatroid99 <mlumish@google.com>
Date: Tue, 9 Aug 2016 10:07:42 -0700
Subject: [PATCH] Removed GPR_POSIX_FILE, and changed the files that used it

---
 BUILD                                         |  9 +--
 CMakeLists.txt                                |  6 +-
 Makefile                                      |  9 +--
 binding.gyp                                   |  3 +-
 build.yaml                                    |  3 +-
 config.m4                                     |  3 +-
 gRPC-Core.podspec                             |  3 +-
 grpc.gemspec                                  |  3 +-
 include/grpc/impl/codegen/port_platform.h     |  6 --
 package.xml                                   |  3 +-
 ...dentials_posix.c => credentials_generic.c} | 24 ++++----
 .../google_default/credentials_windows.c      | 61 -------------------
 .../google_default_credentials.h              | 12 ++++
 src/python/grpcio/grpc_core_dependencies.py   |  3 +-
 test/core/security/credentials_test.c         | 22 +++----
 tools/doxygen/Doxyfile.core.internal          |  3 +-
 tools/run_tests/sources_and_headers.json      |  3 +-
 vsprojects/vcxproj/grpc/grpc.vcxproj          |  4 +-
 vsprojects/vcxproj/grpc/grpc.vcxproj.filters  |  5 +-
 19 files changed, 49 insertions(+), 136 deletions(-)
 rename src/core/lib/security/credentials/google_default/{credentials_posix.c => credentials_generic.c} (82%)
 delete mode 100644 src/core/lib/security/credentials/google_default/credentials_windows.c

diff --git a/BUILD b/BUILD
index c874341a98..056e91a9e2 100644
--- a/BUILD
+++ b/BUILD
@@ -436,8 +436,7 @@ cc_library(
     "src/core/lib/security/credentials/credentials.c",
     "src/core/lib/security/credentials/credentials_metadata.c",
     "src/core/lib/security/credentials/fake/fake_credentials.c",
-    "src/core/lib/security/credentials/google_default/credentials_posix.c",
-    "src/core/lib/security/credentials/google_default/credentials_windows.c",
+    "src/core/lib/security/credentials/google_default/credentials_generic.c",
     "src/core/lib/security/credentials/google_default/google_default_credentials.c",
     "src/core/lib/security/credentials/iam/iam_credentials.c",
     "src/core/lib/security/credentials/jwt/json_token.c",
@@ -843,8 +842,7 @@ cc_library(
     "src/core/lib/security/credentials/credentials.c",
     "src/core/lib/security/credentials/credentials_metadata.c",
     "src/core/lib/security/credentials/fake/fake_credentials.c",
-    "src/core/lib/security/credentials/google_default/credentials_posix.c",
-    "src/core/lib/security/credentials/google_default/credentials_windows.c",
+    "src/core/lib/security/credentials/google_default/credentials_generic.c",
     "src/core/lib/security/credentials/google_default/google_default_credentials.c",
     "src/core/lib/security/credentials/iam/iam_credentials.c",
     "src/core/lib/security/credentials/jwt/json_token.c",
@@ -1932,8 +1930,7 @@ objc_library(
     "src/core/lib/security/credentials/credentials.c",
     "src/core/lib/security/credentials/credentials_metadata.c",
     "src/core/lib/security/credentials/fake/fake_credentials.c",
-    "src/core/lib/security/credentials/google_default/credentials_posix.c",
-    "src/core/lib/security/credentials/google_default/credentials_windows.c",
+    "src/core/lib/security/credentials/google_default/credentials_generic.c",
     "src/core/lib/security/credentials/google_default/google_default_credentials.c",
     "src/core/lib/security/credentials/iam/iam_credentials.c",
     "src/core/lib/security/credentials/jwt/json_token.c",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fdb730b983..ac7218236e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -397,8 +397,7 @@ add_library(grpc
   src/core/lib/security/credentials/credentials.c
   src/core/lib/security/credentials/credentials_metadata.c
   src/core/lib/security/credentials/fake/fake_credentials.c
-  src/core/lib/security/credentials/google_default/credentials_posix.c
-  src/core/lib/security/credentials/google_default/credentials_windows.c
+  src/core/lib/security/credentials/google_default/credentials_generic.c
   src/core/lib/security/credentials/google_default/google_default_credentials.c
   src/core/lib/security/credentials/iam/iam_credentials.c
   src/core/lib/security/credentials/jwt/json_token.c
@@ -676,8 +675,7 @@ add_library(grpc_cronet
   src/core/lib/security/credentials/credentials.c
   src/core/lib/security/credentials/credentials_metadata.c
   src/core/lib/security/credentials/fake/fake_credentials.c
-  src/core/lib/security/credentials/google_default/credentials_posix.c
-  src/core/lib/security/credentials/google_default/credentials_windows.c
+  src/core/lib/security/credentials/google_default/credentials_generic.c
   src/core/lib/security/credentials/google_default/google_default_credentials.c
   src/core/lib/security/credentials/iam/iam_credentials.c
   src/core/lib/security/credentials/jwt/json_token.c
diff --git a/Makefile b/Makefile
index 8b6af559e0..e85633f8eb 100644
--- a/Makefile
+++ b/Makefile
@@ -2645,8 +2645,7 @@ LIBGRPC_SRC = \
     src/core/lib/security/credentials/credentials.c \
     src/core/lib/security/credentials/credentials_metadata.c \
     src/core/lib/security/credentials/fake/fake_credentials.c \
-    src/core/lib/security/credentials/google_default/credentials_posix.c \
-    src/core/lib/security/credentials/google_default/credentials_windows.c \
+    src/core/lib/security/credentials/google_default/credentials_generic.c \
     src/core/lib/security/credentials/google_default/google_default_credentials.c \
     src/core/lib/security/credentials/iam/iam_credentials.c \
     src/core/lib/security/credentials/jwt/json_token.c \
@@ -2944,8 +2943,7 @@ LIBGRPC_CRONET_SRC = \
     src/core/lib/security/credentials/credentials.c \
     src/core/lib/security/credentials/credentials_metadata.c \
     src/core/lib/security/credentials/fake/fake_credentials.c \
-    src/core/lib/security/credentials/google_default/credentials_posix.c \
-    src/core/lib/security/credentials/google_default/credentials_windows.c \
+    src/core/lib/security/credentials/google_default/credentials_generic.c \
     src/core/lib/security/credentials/google_default/google_default_credentials.c \
     src/core/lib/security/credentials/iam/iam_credentials.c \
     src/core/lib/security/credentials/jwt/json_token.c \
@@ -15188,8 +15186,7 @@ src/core/lib/security/credentials/composite/composite_credentials.c: $(OPENSSL_D
 src/core/lib/security/credentials/credentials.c: $(OPENSSL_DEP)
 src/core/lib/security/credentials/credentials_metadata.c: $(OPENSSL_DEP)
 src/core/lib/security/credentials/fake/fake_credentials.c: $(OPENSSL_DEP)
-src/core/lib/security/credentials/google_default/credentials_posix.c: $(OPENSSL_DEP)
-src/core/lib/security/credentials/google_default/credentials_windows.c: $(OPENSSL_DEP)
+src/core/lib/security/credentials/google_default/credentials_generic.c: $(OPENSSL_DEP)
 src/core/lib/security/credentials/google_default/google_default_credentials.c: $(OPENSSL_DEP)
 src/core/lib/security/credentials/iam/iam_credentials.c: $(OPENSSL_DEP)
 src/core/lib/security/credentials/jwt/json_token.c: $(OPENSSL_DEP)
diff --git a/binding.gyp b/binding.gyp
index a078e5cca8..b03da7cb58 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -682,8 +682,7 @@
         'src/core/lib/security/credentials/credentials.c',
         'src/core/lib/security/credentials/credentials_metadata.c',
         'src/core/lib/security/credentials/fake/fake_credentials.c',
-        'src/core/lib/security/credentials/google_default/credentials_posix.c',
-        'src/core/lib/security/credentials/google_default/credentials_windows.c',
+        'src/core/lib/security/credentials/google_default/credentials_generic.c',
         'src/core/lib/security/credentials/google_default/google_default_credentials.c',
         'src/core/lib/security/credentials/iam/iam_credentials.c',
         'src/core/lib/security/credentials/jwt/json_token.c',
diff --git a/build.yaml b/build.yaml
index 39514bdef0..e3afcd643b 100644
--- a/build.yaml
+++ b/build.yaml
@@ -466,8 +466,7 @@ filegroups:
   - src/core/lib/security/credentials/credentials.c
   - src/core/lib/security/credentials/credentials_metadata.c
   - src/core/lib/security/credentials/fake/fake_credentials.c
-  - src/core/lib/security/credentials/google_default/credentials_posix.c
-  - src/core/lib/security/credentials/google_default/credentials_windows.c
+  - src/core/lib/security/credentials/google_default/credentials_generic.c
   - src/core/lib/security/credentials/google_default/google_default_credentials.c
   - src/core/lib/security/credentials/iam/iam_credentials.c
   - src/core/lib/security/credentials/jwt/json_token.c
diff --git a/config.m4 b/config.m4
index 69f06274d7..7a06923e59 100644
--- a/config.m4
+++ b/config.m4
@@ -201,8 +201,7 @@ if test "$PHP_GRPC" != "no"; then
     src/core/lib/security/credentials/credentials.c \
     src/core/lib/security/credentials/credentials_metadata.c \
     src/core/lib/security/credentials/fake/fake_credentials.c \
-    src/core/lib/security/credentials/google_default/credentials_posix.c \
-    src/core/lib/security/credentials/google_default/credentials_windows.c \
+    src/core/lib/security/credentials/google_default/credentials_generic.c \
     src/core/lib/security/credentials/google_default/google_default_credentials.c \
     src/core/lib/security/credentials/iam/iam_credentials.c \
     src/core/lib/security/credentials/jwt/json_token.c \
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 753dabebe4..b7a5e72a2a 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -533,8 +533,7 @@ Pod::Spec.new do |s|
                       'src/core/lib/security/credentials/credentials.c',
                       'src/core/lib/security/credentials/credentials_metadata.c',
                       'src/core/lib/security/credentials/fake/fake_credentials.c',
-                      'src/core/lib/security/credentials/google_default/credentials_posix.c',
-                      'src/core/lib/security/credentials/google_default/credentials_windows.c',
+                      'src/core/lib/security/credentials/google_default/credentials_generic.c',
                       'src/core/lib/security/credentials/google_default/google_default_credentials.c',
                       'src/core/lib/security/credentials/iam/iam_credentials.c',
                       'src/core/lib/security/credentials/jwt/json_token.c',
diff --git a/grpc.gemspec b/grpc.gemspec
index bb7913bf66..d231bf1db9 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -452,8 +452,7 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/lib/security/credentials/credentials.c )
   s.files += %w( src/core/lib/security/credentials/credentials_metadata.c )
   s.files += %w( src/core/lib/security/credentials/fake/fake_credentials.c )
-  s.files += %w( src/core/lib/security/credentials/google_default/credentials_posix.c )
-  s.files += %w( src/core/lib/security/credentials/google_default/credentials_windows.c )
+  s.files += %w( src/core/lib/security/credentials/google_default/credentials_generic.c )
   s.files += %w( src/core/lib/security/credentials/google_default/google_default_credentials.c )
   s.files += %w( src/core/lib/security/credentials/iam/iam_credentials.c )
   s.files += %w( src/core/lib/security/credentials/jwt/json_token.c )
diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h
index f65f56db87..c2b467a1bc 100644
--- a/include/grpc/impl/codegen/port_platform.h
+++ b/include/grpc/impl/codegen/port_platform.h
@@ -125,7 +125,6 @@
 #define GPR_LINUX_LOG 1
 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
 #define GPR_LINUX_ENV 1
-#define GPR_POSIX_FILE 1
 #define GPR_POSIX_TMPFILE 1
 #define GPR_POSIX_STRING 1
 #define GPR_POSIX_SUBPROCESS 1
@@ -149,7 +148,6 @@
 #define GPR_GCC_SYNC 1
 #define GPR_GCC_TLS 1
 #define GPR_POSIX_ENV 1
-#define GPR_POSIX_FILE 1
 #define GPR_POSIX_TMPFILE 1
 #define GPR_POSIX_LOG
 #define GPR_POSIX_STRING 1
@@ -181,7 +179,6 @@
 #ifndef GRPC_LINUX_EVENTFD
 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1
 #endif
-#define GPR_POSIX_FILE 1
 #define GPR_POSIX_TMPFILE 1
 #define GPR_POSIX_STRING 1
 #define GPR_POSIX_SUBPROCESS 1
@@ -213,7 +210,6 @@
 #define GPR_GCC_ATOMIC 1
 #define GPR_POSIX_LOG 1
 #define GPR_POSIX_ENV 1
-#define GPR_POSIX_FILE 1
 #define GPR_POSIX_TMPFILE 1
 #define GPR_POSIX_STRING 1
 #define GPR_POSIX_SUBPROCESS 1
@@ -237,7 +233,6 @@
 #define GPR_GCC_TLS 1
 #define GPR_POSIX_LOG 1
 #define GPR_POSIX_ENV 1
-#define GPR_POSIX_FILE 1
 #define GPR_POSIX_TMPFILE 1
 #define GPR_POSIX_STRING 1
 #define GPR_POSIX_SUBPROCESS 1
@@ -267,7 +262,6 @@
 #define GPR_GCC_TLS 1
 #define GPR_POSIX_LOG 1
 #define GPR_POSIX_ENV 1
-#define GPR_POSIX_FILE 1
 #define GPR_POSIX_TMPFILE 1
 #define GPR_POSIX_STRING 1
 #define GPR_POSIX_SUBPROCESS 1
diff --git a/package.xml b/package.xml
index 3d5a83dc79..dd59cfd330 100644
--- a/package.xml
+++ b/package.xml
@@ -460,8 +460,7 @@
     <file baseinstalldir="/" name="src/core/lib/security/credentials/credentials.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/security/credentials/credentials_metadata.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/security/credentials/fake/fake_credentials.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/credentials_posix.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/credentials_windows.c" role="src" />
+    <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/credentials_generic.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/google_default_credentials.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/security/credentials/iam/iam_credentials.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/security/credentials/jwt/json_token.c" role="src" />
diff --git a/src/core/lib/security/credentials/google_default/credentials_posix.c b/src/core/lib/security/credentials/google_default/credentials_generic.c
similarity index 82%
rename from src/core/lib/security/credentials/google_default/credentials_posix.c
rename to src/core/lib/security/credentials/google_default/credentials_generic.c
index 42c9d7f997..02a6e9e9dd 100644
--- a/src/core/lib/security/credentials/google_default/credentials_posix.c
+++ b/src/core/lib/security/credentials/google_default/credentials_generic.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,10 @@
  *
  */
 
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_FILE
-
 #include "src/core/lib/security/credentials/google_default/google_default_credentials.h"
 
+#ifdef GRPC_GOOGLE_CREDENTIALS_GENERIC
+
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.h>
@@ -46,16 +44,16 @@
 
 char *grpc_get_well_known_google_credentials_file_path_impl(void) {
   char *result = NULL;
-  char *home = gpr_getenv("HOME");
-  if (home == NULL) {
-    gpr_log(GPR_ERROR, "Could not get HOME environment variable.");
+  char *base = gpr_getenv(GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR);
+  if (base == NULL) {
+    gpr_log(GPR_ERROR, "Could not get " GRPC_GOOGLE_CREDENTIALS_ENV_VAR
+            " environment variable.");
     return NULL;
   }
-  gpr_asprintf(&result, "%s/.config/%s/%s", home,
-               GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY,
-               GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE);
-  gpr_free(home);
+  gpr_asprintf(&result, "%s/%s", base,
+               GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX);
+  gpr_free(base);
   return result;
 }
 
-#endif /* GPR_POSIX_FILE */
+#endif /* GRPC_GOOGLE_CREDENTIALS_GENERIC */
diff --git a/src/core/lib/security/credentials/google_default/credentials_windows.c b/src/core/lib/security/credentials/google_default/credentials_windows.c
deleted file mode 100644
index 208b8fd9ad..0000000000
--- a/src/core/lib/security/credentials/google_default/credentials_windows.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *
- * Copyright 2015, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_WINDOWS
-
-#include "src/core/lib/security/credentials/google_default/google_default_credentials.h"
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
-
-char *grpc_get_well_known_google_credentials_file_path_impl(void) {
-  char *result = NULL;
-  char *appdata_path = gpr_getenv("APPDATA");
-  if (appdata_path == NULL) {
-    gpr_log(GPR_ERROR, "Could not get APPDATA environment variable.");
-    return NULL;
-  }
-  gpr_asprintf(&result, "%s/%s/%s", appdata_path,
-               GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY,
-               GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE);
-  gpr_free(appdata_path);
-  return result;
-}
-
-#endif /* GPR_WINDOWS */
diff --git a/src/core/lib/security/credentials/google_default/google_default_credentials.h b/src/core/lib/security/credentials/google_default/google_default_credentials.h
index fac4377e2c..bc816bcb77 100644
--- a/src/core/lib/security/credentials/google_default/google_default_credentials.h
+++ b/src/core/lib/security/credentials/google_default/google_default_credentials.h
@@ -34,12 +34,24 @@
 #ifndef GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H
 #define GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H
 
+#include <grpc/support/port_platform.h>
+
 #include "src/core/lib/security/credentials/credentials.h"
 
 #define GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY "gcloud"
 #define GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE \
   "application_default_credentials.json"
 
+#ifdef GPR_WINDOWS
+#define GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR "APPDATA"
+#define GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY "/" GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE
+#define GRPC_GOOGLE_CREDENTIALS_GENERIC 1
+#else
+#define GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR "HOME"
+#define GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX ".config/" GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY "/" GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE
+#define GRPC_GOOGLE_CREDENTIALS_GENERIC 1
+#endif
+
 void grpc_flush_cached_google_default_credentials(void);
 
 #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H \
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 78fa428903..ab7b461178 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -195,8 +195,7 @@ CORE_SOURCE_FILES = [
   'src/core/lib/security/credentials/credentials.c',
   'src/core/lib/security/credentials/credentials_metadata.c',
   'src/core/lib/security/credentials/fake/fake_credentials.c',
-  'src/core/lib/security/credentials/google_default/credentials_posix.c',
-  'src/core/lib/security/credentials/google_default/credentials_windows.c',
+  'src/core/lib/security/credentials/google_default/credentials_generic.c',
   'src/core/lib/security/credentials/google_default/google_default_credentials.c',
   'src/core/lib/security/credentials/iam/iam_credentials.c',
   'src/core/lib/security/credentials/jwt/json_token.c',
diff --git a/test/core/security/credentials_test.c b/test/core/security/credentials_test.c
index 7043953154..d4dd500580 100644
--- a/test/core/security/credentials_test.c
+++ b/test/core/security/credentials_test.c
@@ -1124,28 +1124,20 @@ static void test_metadata_plugin_failure(void) {
 }
 
 static void test_get_well_known_google_credentials_file_path(void) {
-#ifdef GPR_POSIX_FILE
   char *path;
-  char *old_home = gpr_getenv("HOME");
-  gpr_setenv("HOME", "/tmp");
+  char *home = gpr_getenv("HOME");
+  char *appdata = gpr_getenv("APPDATA");
   path = grpc_get_well_known_google_credentials_file_path();
   GPR_ASSERT(path != NULL);
-  GPR_ASSERT(0 == strcmp("/tmp/.config/" GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY
-                         "/" GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE,
-                         path));
-  gpr_free(path);
-#if defined(GPR_POSIX_ENV) || defined(GPR_LINUX_ENV)
   unsetenv("HOME");
+  unsetenv("APPDATA");
   path = grpc_get_well_known_google_credentials_file_path();
   GPR_ASSERT(path == NULL);
-#endif /* GPR_POSIX_ENV || GPR_LINUX_ENV */
-  gpr_setenv("HOME", old_home);
-  gpr_free(old_home);
-#else /* GPR_POSIX_FILE */
-  char *path = grpc_get_well_known_google_credentials_file_path();
-  GPR_ASSERT(path != NULL);
+  gpr_setenv("HOME", home);
+  gpr_setenv("APPDATA", appdata);
+  gpr_free(home);
+  gpr_free(appdata);
   gpr_free(path);
-#endif
 }
 
 int main(int argc, char **argv) {
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 8f2f011eaf..24c78091c7 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1071,8 +1071,7 @@ src/core/lib/security/credentials/composite/composite_credentials.c \
 src/core/lib/security/credentials/credentials.c \
 src/core/lib/security/credentials/credentials_metadata.c \
 src/core/lib/security/credentials/fake/fake_credentials.c \
-src/core/lib/security/credentials/google_default/credentials_posix.c \
-src/core/lib/security/credentials/google_default/credentials_windows.c \
+src/core/lib/security/credentials/google_default/credentials_generic.c \
 src/core/lib/security/credentials/google_default/google_default_credentials.c \
 src/core/lib/security/credentials/iam/iam_credentials.c \
 src/core/lib/security/credentials/jwt/json_token.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 8c1cd249ba..534abdda09 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -6275,8 +6275,7 @@
       "src/core/lib/security/credentials/credentials_metadata.c", 
       "src/core/lib/security/credentials/fake/fake_credentials.c", 
       "src/core/lib/security/credentials/fake/fake_credentials.h", 
-      "src/core/lib/security/credentials/google_default/credentials_posix.c", 
-      "src/core/lib/security/credentials/google_default/credentials_windows.c", 
+      "src/core/lib/security/credentials/google_default/credentials_generic.c", 
       "src/core/lib/security/credentials/google_default/google_default_credentials.c", 
       "src/core/lib/security/credentials/google_default/google_default_credentials.h", 
       "src/core/lib/security/credentials/iam/iam_credentials.c", 
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index 69ec3c0a08..d09c07d0cb 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -702,9 +702,7 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\fake\fake_credentials.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_posix.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_windows.c">
+    <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_generic.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\google_default_credentials.c">
     </ClCompile>
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index d72c32046a..d5ac3d4422 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -361,10 +361,7 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\fake\fake_credentials.c">
       <Filter>src\core\lib\security\credentials\fake</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_posix.c">
-      <Filter>src\core\lib\security\credentials\google_default</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_windows.c">
+    <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_generic.c">
       <Filter>src\core\lib\security\credentials\google_default</Filter>
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\google_default_credentials.c">
-- 
GitLab