diff --git a/docs/reference.md b/docs/reference.md
index ad1ef27..8fc86fd 100644
--- a/docs/reference.md
+++ b/docs/reference.md
@@ -3729,10 +3729,6 @@
         Expands to the list of system libraries to link to. Each will be
         prefixed by the "lib_switch".
 
-        As a special case to support Mac, libraries with names ending in
-        ".framework" will be added to the {{libs}} with "-framework" preceding
-        it, and the lib prefix will be ignored.
-
         Example: "-lfoo -lbar"
 
     {{output_dir}}
@@ -5699,12 +5695,6 @@
       "lib_dirs" so the given library is found. Your BUILD.gn file should not
       specify the switch (like "-l"): this will be encoded in the "lib_switch"
       of the tool.
-
-  Apple frameworks
-      System libraries ending in ".framework" will be special-cased: the switch
-      "-framework" will be prepended instead of the lib_switch, and the
-      ".framework" suffix will be trimmed. This is to support the way Mac links
-      framework dependencies.
 ```
 
 #### **Ordering of flags and values**
@@ -7347,7 +7337,7 @@
     group("a") {
       metadata = {
         my_files = [ "foo.cpp" ]
-        my_files_barrier [ ":b" ]
+        my_files_barrier = [ ":b" ]
       }
 
       deps = [ ":b", ":c" ]
@@ -7367,7 +7357,8 @@
 
     generated_file("metadata") {
       outputs = [ "$root_build_dir/my_files.json" ]
-      data_keys = [ "my_files", "my_extra_files" ]
+      data_keys = [ "my_files" ]
+      walk_keys = [ "my_files_barrier" ]
 
       deps = [ ":a" ]
     }
diff --git a/src/gn/format_test_data/048.gn b/src/gn/format_test_data/048.gn
index 7d39efb..2584b75 100644
--- a/src/gn/format_test_data/048.gn
+++ b/src/gn/format_test_data/048.gn
@@ -6,7 +6,7 @@
       "src/AddressBook/GTMABAddressBook.m",
     ]
 
-    libs = [
+    frameworks = [
       "AddressBook.framework",
       "AppKit.framework",
     ]
diff --git a/src/gn/format_test_data/048.golden b/src/gn/format_test_data/048.golden
index 7d39efb..2584b75 100644
--- a/src/gn/format_test_data/048.golden
+++ b/src/gn/format_test_data/048.golden
@@ -6,7 +6,7 @@
       "src/AddressBook/GTMABAddressBook.m",
     ]
 
-    libs = [
+    frameworks = [
       "AddressBook.framework",
       "AppKit.framework",
     ]
diff --git a/src/gn/function_toolchain.cc b/src/gn/function_toolchain.cc
index 0ff5d34..ac63c2e 100644
--- a/src/gn/function_toolchain.cc
+++ b/src/gn/function_toolchain.cc
@@ -661,10 +661,6 @@
         Expands to the list of system libraries to link to. Each will be
         prefixed by the "lib_switch".
 
-        As a special case to support Mac, libraries with names ending in
-        ".framework" will be added to the {{libs}} with "-framework" preceding
-        it, and the lib prefix will be ignored.
-
         Example: "-lfoo -lbar"
 
     {{output_dir}}
diff --git a/src/gn/ninja_binary_target_writer.cc b/src/gn/ninja_binary_target_writer.cc
index e12e836..4379ca0 100644
--- a/src/gn/ninja_binary_target_writer.cc
+++ b/src/gn/ninja_binary_target_writer.cc
@@ -333,17 +333,9 @@
   for (size_t i = 0; i < all_libs.size(); i++) {
     const LibFile& lib_file = all_libs[i];
     const std::string& lib_value = lib_file.value();
-    std::string_view framework_name = GetFrameworkName(lib_value);
     if (lib_file.is_source_file()) {
       out << " " << tool->linker_arg();
       path_output_.WriteFile(out, lib_file.source_file());
-    } else if (!framework_name.empty()) {
-      // Special-case libraries ending in ".framework" to support Mac: Add the
-      // -framework switch and don't add the extension to the output.
-      // TODO(crbug.com/gn/119): remove this once all code has been ported to
-      // use "frameworks" and "framework_dirs" instead.
-      out << " " << tool->framework_switch();
-      EscapeStringToStream(out, framework_name, lib_escape_opts);
     } else {
       out << " " << tool->lib_switch();
       EscapeStringToStream(out, lib_value, lib_escape_opts);
diff --git a/src/gn/value_extractors.cc b/src/gn/value_extractors.cc
index 74ea345..9eb7593 100644
--- a/src/gn/value_extractors.cc
+++ b/src/gn/value_extractors.cc
@@ -8,6 +8,7 @@
 
 #include "gn/build_settings.h"
 #include "gn/err.h"
+#include "gn/frameworks_utils.h"
 #include "gn/label.h"
 #include "gn/source_dir.h"
 #include "gn/source_file.h"
@@ -80,6 +81,11 @@
   bool operator()(const Value& v, LibFile* out, Err* err) const {
     if (!v.VerifyTypeIs(Value::STRING, err))
       return false;
+    if (!GetFrameworkName(v.string_value()).empty()) {
+      *err = Err(v, "Unsupported value in libs.",
+                 "Use frameworks to list framework dependencies.");
+      return false;
+    }
     if (v.string_value().find('/') == std::string::npos) {
       *out = LibFile(v.string_value());
     } else {
diff --git a/src/gn/variables.cc b/src/gn/variables.cc
index daabdb5..b543dd2 100644
--- a/src/gn/variables.cc
+++ b/src/gn/variables.cc
@@ -1408,12 +1408,6 @@
       "lib_dirs" so the given library is found. Your BUILD.gn file should not
       specify the switch (like "-l"): this will be encoded in the "lib_switch"
       of the tool.
-
-  Apple frameworks
-      System libraries ending in ".framework" will be special-cased: the switch
-      "-framework" will be prepended instead of the lib_switch, and the
-      ".framework" suffix will be trimmed. This is to support the way Mac links
-      framework dependencies.
 )" COMMON_ORDERING_HELP LIBS_AND_LIB_DIRS_ORDERING_HELP
     R"(
 Examples
