diff --git a/garnet/bin/cmc/meta/example.cml b/garnet/bin/cmc/meta/example.cml
index b483d4a3ab6476a473d7cba1b5172e3de6cc7b7e..e1e911585d253afe43275adc60680f0e1fab7dd9 100644
--- a/garnet/bin/cmc/meta/example.cml
+++ b/garnet/bin/cmc/meta/example.cml
@@ -29,11 +29,11 @@
   "children": [
     {
       "name": "logger",
-      "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+      "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
     },
     {
       "name": "netstack",
-      "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
+      "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
     },
   ],
   "facets": {
diff --git a/garnet/bin/cmc/src/cml.rs b/garnet/bin/cmc/src/cml.rs
index 5ed1aa768bfab422dbe9f427b01797d2ecd05c59..d74d720eac6ff31e170ca6a5ce943c62f7638322 100644
--- a/garnet/bin/cmc/src/cml.rs
+++ b/garnet/bin/cmc/src/cml.rs
@@ -56,7 +56,7 @@ pub struct To {
 #[derive(Deserialize, Debug)]
 pub struct Child {
     pub name: String,
-    pub uri: String,
+    pub url: String,
     pub startup: Option<String>,
 }
 
diff --git a/garnet/bin/cmc/src/compile.rs b/garnet/bin/cmc/src/compile.rs
index d84d66281ee6cb5a43c53ae924c14349b47e9379..9010e856d9be1a254911cc05379f51d375a29469 100644
--- a/garnet/bin/cmc/src/compile.rs
+++ b/garnet/bin/cmc/src/compile.rs
@@ -154,7 +154,7 @@ fn translate_children(children_in: &Vec<cml::Child>) -> Result<Vec<cm::Child>, E
                 return Err(Error::internal(format!("invalid startup")));
             }
         };
-        out_children.push(cm::Child { name: child.name.clone(), uri: child.uri.clone(), startup });
+        out_children.push(cm::Child { name: child.name.clone(), url: child.url.clone(), startup });
     }
     Ok(out_children)
 }
@@ -328,7 +328,7 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     },
                 ]
             }),
@@ -358,7 +358,7 @@ mod tests {
     "children": [
         {
             "name": "logger",
-            "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+            "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
             "startup": "lazy"
         }
     ]
@@ -386,15 +386,15 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     },
                     {
                         "name": "echo_server",
-                        "uri": "fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm"
                     },
                     {
                         "name": "netstack",
-                        "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm"
                     }
                 ]
             }),
@@ -438,17 +438,17 @@ mod tests {
     "children": [
         {
             "name": "logger",
-            "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+            "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
             "startup": "lazy"
         },
         {
             "name": "echo_server",
-            "uri": "fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm",
+            "url": "fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm",
             "startup": "lazy"
         },
         {
             "name": "netstack",
-            "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
+            "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
             "startup": "lazy"
         }
     ]
@@ -459,16 +459,16 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                     },
                     {
                         "name": "gmail",
-                        "uri": "https://www.google.com/gmail",
+                        "url": "https://www.google.com/gmail",
                         "startup": "eager",
                     },
                     {
                         "name": "echo",
-                        "uri": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo.cm",
                         "startup": "lazy",
                     },
                 ]
@@ -477,17 +477,17 @@ mod tests {
     "children": [
         {
             "name": "logger",
-            "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+            "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
             "startup": "lazy"
         },
         {
             "name": "gmail",
-            "uri": "https://www.google.com/gmail",
+            "url": "https://www.google.com/gmail",
             "startup": "eager"
         },
         {
             "name": "echo",
-            "uri": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo.cm",
+            "url": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo.cm",
             "startup": "lazy"
         }
     ]
@@ -541,11 +541,11 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     },
                     {
                         "name": "netstack",
-                        "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm"
                     }
                 ],
                 "facets": {
@@ -597,12 +597,12 @@ mod tests {
     "children": [
         {
             "name": "logger",
-            "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+            "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
             "startup": "lazy"
         },
         {
             "name": "netstack",
-            "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
+            "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
             "startup": "lazy"
         }
     ],
diff --git a/garnet/bin/cmc/src/validate.rs b/garnet/bin/cmc/src/validate.rs
index 949fba9c40e99b22dd7ee8a7b99b4891b7c3e352..7bc41b60b8bf4588909c8f066e1e1040042dee7e 100644
--- a/garnet/bin/cmc/src/validate.rs
+++ b/garnet/bin/cmc/src/validate.rs
@@ -692,12 +692,12 @@ mod tests {
                 "children": [
                     {
                         "name": "system-logger2",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     },
                     {
                         "name": "abc123_-",
-                        "uri": "https://www.google.com/gmail",
+                        "url": "https://www.google.com/gmail",
                         "startup": "eager"
                     }
                 ]
@@ -708,14 +708,14 @@ mod tests {
             input = json!({
                 "children": [ {} ]
             }),
-            result = Err(Error::validate_schema(CM_SCHEMA, "This property is required at /children/0/name, This property is required at /children/0/startup, This property is required at /children/0/uri")),
+            result = Err(Error::validate_schema(CM_SCHEMA, "This property is required at /children/0/name, This property is required at /children/0/startup, This property is required at /children/0/url")),
         },
         test_cm_children_bad_name => {
             input = json!({
                 "children": [
                     {
                         "name": "bad^",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     }
                 ]
@@ -827,7 +827,7 @@ mod tests {
                 "children": [
                     {
                         "name": "abcdefghijklmnopqrstuvwxyz0123456789_-.",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     }
                 ]
@@ -839,7 +839,7 @@ mod tests {
                 "children": [
                     {
                         "name": "#bad",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     }
                 ]
@@ -851,48 +851,48 @@ mod tests {
                 "children": [
                     {
                         "name": "a".repeat(101),
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     }
                 ]
             }),
             result = Err(Error::validate_schema(CM_SCHEMA, "MaxLength condition is not met at /children/0/name")),
         },
-        test_cm_uri => {
+        test_cm_url => {
             input = json!({
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "my+awesome-scheme.2://abc123!@#$%.com",
+                        "url": "my+awesome-scheme.2://abc123!@#$%.com",
                         "startup": "lazy"
                     }
                 ]
             }),
             result = Ok(()),
         },
-        test_cm_uri_invalid => {
+        test_cm_url_invalid => {
             input = json!({
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://",
+                        "url": "fuchsia-pkg://",
                         "startup": "lazy"
                     }
                 ]
             }),
-            result = Err(Error::validate_schema(CM_SCHEMA, "Pattern condition is not met at /children/0/uri")),
+            result = Err(Error::validate_schema(CM_SCHEMA, "Pattern condition is not met at /children/0/url")),
         },
-        test_cm_uri_too_long => {
+        test_cm_url_too_long => {
             input = json!({
                 "children": [
                     {
                         "name": "logger",
-                        "uri": &format!("fuchsia-pkg://{}", "a".repeat(4083)),
+                        "url": &format!("fuchsia-pkg://{}", "a".repeat(4083)),
                         "startup": "lazy"
                     }
                 ]
             }),
-            result = Err(Error::validate_schema(CM_SCHEMA, "MaxLength condition is not met at /children/0/uri")),
+            result = Err(Error::validate_schema(CM_SCHEMA, "MaxLength condition is not met at /children/0/url")),
         },
     }
 
@@ -907,7 +907,7 @@ mod tests {
             "children": [
                 {
                     'name': 'logger',
-                    'uri': 'fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm',
+                    'url': 'fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm',
                 },
             ],
         }"##;
@@ -960,7 +960,7 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     }
                 ]
             }),
@@ -974,7 +974,7 @@ mod tests {
                 "children": [
                     {
                         "name": "abcdefghijklmnopqrstuvwxyz0123456789_-.",
-                        "uri": "https://www.google.com/gmail"
+                        "url": "https://www.google.com/gmail"
                     }
                 ]
             }),
@@ -1004,7 +1004,7 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     }
                 ]
             }),
@@ -1049,15 +1049,15 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     },
                     {
                         "name": "scenic",
-                        "uri": "fuchsia-pkg://fuchsia.com/scenic/stable#meta/scenic.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/scenic/stable#meta/scenic.cm"
                     },
                     {
                         "name": "echo_server",
-                        "uri": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo_server.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo_server.cm"
                     }
                 ]
             }),
@@ -1079,11 +1079,11 @@ mod tests {
                 "children": [
                     {
                         "name": "abcdefghijklmnopqrstuvwxyz0123456789_-from",
-                        "uri": "https://www.google.com/gmail"
+                        "url": "https://www.google.com/gmail"
                     },
                     {
                         "name": "abcdefghijklmnopqrstuvwxyz0123456789_-to",
-                        "uri": "https://www.google.com/gmail"
+                        "url": "https://www.google.com/gmail"
                     },
                 ]
             }),
@@ -1152,7 +1152,7 @@ mod tests {
                 } ],
                 "children": [ {
                     "name": "logger",
-                    "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                    "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                 } ]
             }),
             result = Err(Error::validate("\"#missing\" is an \"offer\" target but it does not appear in \"children\"")),
@@ -1179,7 +1179,7 @@ mod tests {
                     ],
                 } ],
                 "children": [ {
-                    "name": "logger", "uri": "fuchsia-pkg://fuchsia.com/logger#meta/logger.cm",
+                    "name": "logger", "url": "fuchsia-pkg://fuchsia.com/logger#meta/logger.cm",
                 } ],
             }),
             result = Err(Error::validate("Offer target \"#logger\" is same as source")),
@@ -1206,11 +1206,11 @@ mod tests {
                 "children": [
                     {
                         "name": "scenic",
-                        "uri": "fuchsia-pkg://fuchsia.com/scenic/stable#meta/scenic.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/scenic/stable#meta/scenic.cm"
                     },
                     {
                         "name": "echo_server",
-                        "uri": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo_server.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo_server.cm"
                     }
                 ]
             }),
@@ -1223,16 +1223,16 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                     },
                     {
                         "name": "gmail",
-                        "uri": "https://www.google.com/gmail",
+                        "url": "https://www.google.com/gmail",
                         "startup": "eager",
                     },
                     {
                         "name": "echo",
-                        "uri": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/echo/stable#meta/echo.cm",
                         "startup": "lazy",
                     },
                 ]
@@ -1243,18 +1243,18 @@ mod tests {
             input = json!({
                 "children": [ {} ]
             }),
-            result = Err(Error::validate_schema(CML_SCHEMA, "This property is required at /children/0/name, This property is required at /children/0/uri")),
+            result = Err(Error::validate_schema(CML_SCHEMA, "This property is required at /children/0/name, This property is required at /children/0/url")),
         },
         test_cml_children_duplicate_names => {
            input = json!({
                "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm"
                     },
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/beta#meta/logger.cm"
+                        "url": "fuchsia-pkg://fuchsia.com/logger/beta#meta/logger.cm"
                     }
                 ]
             }),
@@ -1265,7 +1265,7 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "zzz",
                     },
                 ],
@@ -1353,7 +1353,7 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                     },
                 ]
             }),
@@ -1364,7 +1364,7 @@ mod tests {
                 "children": [
                     {
                         "name": "abcdefghijklmnopqrstuvwxyz0123456789_-.",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                     },
                 ]
             }),
@@ -1375,7 +1375,7 @@ mod tests {
                 "children": [
                     {
                         "name": "#bad",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                     },
                 ]
             }),
@@ -1386,44 +1386,44 @@ mod tests {
                 "children": [
                     {
                         "name": "a".repeat(101),
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                     }
                 ]
             }),
             result = Err(Error::validate_schema(CML_SCHEMA, "MaxLength condition is not met at /children/0/name")),
         },
-        test_cml_uri => {
+        test_cml_url => {
             input = json!({
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "my+awesome-scheme.2://abc123!@#$%.com",
+                        "url": "my+awesome-scheme.2://abc123!@#$%.com",
                     },
                 ]
             }),
             result = Ok(()),
         },
-        test_cml_uri_invalid => {
+        test_cml_url_invalid => {
             input = json!({
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://",
+                        "url": "fuchsia-pkg://",
                     },
                 ]
             }),
-            result = Err(Error::validate_schema(CML_SCHEMA, "Pattern condition is not met at /children/0/uri")),
+            result = Err(Error::validate_schema(CML_SCHEMA, "Pattern condition is not met at /children/0/url")),
         },
-        test_cml_uri_too_long => {
+        test_cml_url_too_long => {
             input = json!({
                 "children": [
                     {
                         "name": "logger",
-                        "uri": &format!("fuchsia-pkg://{}", "a".repeat(4083)),
+                        "url": &format!("fuchsia-pkg://{}", "a".repeat(4083)),
                     },
                 ]
             }),
-            result = Err(Error::validate_schema(CML_SCHEMA, "MaxLength condition is not met at /children/0/uri")),
+            result = Err(Error::validate_schema(CML_SCHEMA, "MaxLength condition is not met at /children/0/url")),
         },
     }
 
diff --git a/garnet/bin/cmc/tests/golden_debug.cm b/garnet/bin/cmc/tests/golden_debug.cm
index 67760cc11bd8346b7e430b0e97f7d31a78979762..e52ce8f1aef956f6fabb646b61ebbbb1c14e6644 100644
--- a/garnet/bin/cmc/tests/golden_debug.cm
+++ b/garnet/bin/cmc/tests/golden_debug.cm
@@ -42,12 +42,12 @@
     "children": [
         {
             "name": "logger",
-            "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+            "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
             "startup": "lazy"
         },
         {
             "name": "netstack",
-            "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
+            "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
             "startup": "lazy"
         }
     ],
diff --git a/garnet/bin/cmc/tests/golden_release.cm b/garnet/bin/cmc/tests/golden_release.cm
index 365eab763803c8962217db1fd00c16153e69129c..c779cf7759260ff242d78295ddaff557505fc1cf 100644
--- a/garnet/bin/cmc/tests/golden_release.cm
+++ b/garnet/bin/cmc/tests/golden_release.cm
@@ -1 +1 @@
-{"program":{"binary":"bin/example"},"uses":[{"service":{"source_path":"/fonts/CoolFonts","target_path":"/svc/fuchsia.fonts.Provider"}}],"exposes":[{"directory":{"source":{"myself":{}},"source_path":"/volumes/blobfs","target_path":"/volumes/blobfs"}}],"offers":[{"service":{"source":{"child":{"name":"logger"}},"source_path":"/svc/fuchsia.logger.Log","targets":[{"target_path":"/svc/fuchsia.logger.Log","child_name":"netstack"}]}}],"children":[{"name":"logger","uri":"fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm","startup":"lazy"},{"name":"netstack","uri":"fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm","startup":"lazy"}],"facets":{"author":"Fuchsia","year":2018}}
\ No newline at end of file
+{"program":{"binary":"bin/example"},"uses":[{"service":{"source_path":"/fonts/CoolFonts","target_path":"/svc/fuchsia.fonts.Provider"}}],"exposes":[{"directory":{"source":{"myself":{}},"source_path":"/volumes/blobfs","target_path":"/volumes/blobfs"}}],"offers":[{"service":{"source":{"child":{"name":"logger"}},"source_path":"/svc/fuchsia.logger.Log","targets":[{"target_path":"/svc/fuchsia.logger.Log","child_name":"netstack"}]}}],"children":[{"name":"logger","url":"fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm","startup":"lazy"},{"name":"netstack","url":"fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm","startup":"lazy"}],"facets":{"author":"Fuchsia","year":2018}}
\ No newline at end of file
diff --git a/garnet/bin/cmc/tests/integration_test.rs b/garnet/bin/cmc/tests/integration_test.rs
index 7f1e3dc3397e30706778cd4888050b2aa52d49de..2ad7adfc203c3b6e63a6dfaece75361a116cd1d4 100644
--- a/garnet/bin/cmc/tests/integration_test.rs
+++ b/garnet/bin/cmc/tests/integration_test.rs
@@ -42,12 +42,12 @@ fn main() {
         let children = vec![
             ChildDecl {
                 name: Some("logger".to_string()),
-                uri: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
+                url: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
                 startup: Some(StartupMode::Lazy),
             },
             ChildDecl {
                 name: Some("netstack".to_string()),
-                uri: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
+                url: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
                 startup: Some(StartupMode::Lazy),
             },
         ];
diff --git a/garnet/lib/rust/cm_fidl_translator/src/lib.rs b/garnet/lib/rust/cm_fidl_translator/src/lib.rs
index 63d1a9d9f1ab691438be568578e9c23fd3de6ac1..18e1c1007a08f181f675f7a3599f041837158cab 100644
--- a/garnet/lib/rust/cm_fidl_translator/src/lib.rs
+++ b/garnet/lib/rust/cm_fidl_translator/src/lib.rs
@@ -172,7 +172,7 @@ impl CmInto<fsys::ChildDecl> for cm::Child {
     fn cm_into(self) -> Result<fsys::ChildDecl, Error> {
         Ok(fsys::ChildDecl {
             name: Some(self.name),
-            uri: Some(self.uri),
+            url: Some(self.url),
             startup: Some(startup_from_str(&self.startup)?),
         })
     }
@@ -504,7 +504,7 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     }
                 ]
@@ -527,7 +527,7 @@ mod tests {
                 let children = vec![
                     fsys::ChildDecl{
                         name: Some("logger".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
                         startup: Some(fsys::StartupMode::Lazy),
                     },
                 ];
@@ -592,12 +592,12 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy",
                     },
                     {
                         "name": "netstack",
-                        "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
                         "startup": "eager",
                     }
                 ],
@@ -644,12 +644,12 @@ mod tests {
                 let children = vec![
                     fsys::ChildDecl{
                         name: Some("logger".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
                         startup: Some(fsys::StartupMode::Lazy),
                     },
                     fsys::ChildDecl{
                         name: Some("netstack".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
                         startup: Some(fsys::StartupMode::Eager),
                     },
                 ];
@@ -664,12 +664,12 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     },
                     {
                         "name": "echo_server",
-                        "uri": "fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm",
                         "startup": "eager"
                     }
                 ]
@@ -678,12 +678,12 @@ mod tests {
                 let children = vec![
                     fsys::ChildDecl{
                         name: Some("logger".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
                         startup: Some(fsys::StartupMode::Lazy),
                     },
                     fsys::ChildDecl{
                         name: Some("echo_server".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/echo_server/stable#meta/echo_server.cm".to_string()),
                         startup: Some(fsys::StartupMode::Eager),
                     },
                 ];
@@ -772,12 +772,12 @@ mod tests {
                 "children": [
                     {
                         "name": "logger",
-                        "uri": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm",
                         "startup": "lazy"
                     },
                     {
                         "name": "netstack",
-                        "uri": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
+                        "url": "fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm",
                         "startup": "eager"
                     }
                 ],
@@ -823,12 +823,12 @@ mod tests {
                 let children = vec![
                     fsys::ChildDecl {
                         name: Some("logger".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/logger/stable#meta/logger.cm".to_string()),
                         startup: Some(fsys::StartupMode::Lazy),
                     },
                     fsys::ChildDecl {
                         name: Some("netstack".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
                         startup: Some(fsys::StartupMode::Eager),
                     },
                 ];
diff --git a/garnet/lib/rust/cm_fidl_validator/src/lib.rs b/garnet/lib/rust/cm_fidl_validator/src/lib.rs
index 02e34d7ed61cbb84d0932fb3bdd6ee969f227798..a4e66d5630efe4bd023ee5f52f46177a0b0065bd 100644
--- a/garnet/lib/rust/cm_fidl_validator/src/lib.rs
+++ b/garnet/lib/rust/cm_fidl_validator/src/lib.rs
@@ -14,10 +14,10 @@ use {
 lazy_static! {
     static ref PATH: Identifier = Identifier::new(r"^(/[^/]+)+$", 1024);
     static ref NAME: Identifier = Identifier::new(r"^[0-9a-z_\-\.]+$", 100);
-    static ref URI: Identifier = Identifier::new(r"^[0-9a-z\+\-\.]+://.+$", 4096);
+    static ref URL: Identifier = Identifier::new(r"^[0-9a-z\+\-\.]+://.+$", 4096);
 }
 
-/// Enum type that can represent any error encountered during validation.
+/// Enum type that can represent any error encountered durlng validation.
 #[derive(Debug)]
 pub enum Error {
     MissingField(String, String),
@@ -83,7 +83,7 @@ impl fmt::Display for Error {
     }
 }
 
-/// Represents a list of errors encountered during validation.
+/// Represents a list of errors encountered durlng validation.
 #[derive(Debug)]
 pub struct ErrorList {
     errs: Vec<Error>,
@@ -203,7 +203,7 @@ impl<'a> ValidationContext<'a> {
                 self.errors.push(Error::duplicate_field("ChildDecl", "name", name));
             }
         }
-        URI.check(child.uri.as_ref(), "ChildDecl", "uri", &mut self.errors);
+        URL.check(child.url.as_ref(), "ChildDecl", "url", &mut self.errors);
         if child.startup.is_none() {
             self.errors.push(Error::missing_field("ChildDecl", "startup"));
         }
@@ -585,19 +585,19 @@ mod tests {
             result = Err(ErrorList::new(vec![Error::field_too_long("FooDecl", "foo")])),
         },
 
-        // uri
-        test_identifier_uri_valid => {
-            identifier = &URI,
+        // url
+        test_identifier_url_valid => {
+            identifier = &URL,
             input = "my+awesome-scheme.2://abc123!@#$%.com",
             result = Ok(()),
         },
-        test_identifier_uri_invalid => {
-            identifier = &URI,
+        test_identifier_url_invalid => {
+            identifier = &URL,
             input = "fuchsia-pkg://",
             result = Err(ErrorList::new(vec![Error::invalid_field("FooDecl", "foo")])),
         },
-        test_identifier_uri_too_long => {
-            identifier = &URI,
+        test_identifier_url_too_long => {
+            identifier = &URL,
             input = &format!("fuchsia-pkg://{}", "a".repeat(4083)),
             result = Err(ErrorList::new(vec![Error::field_too_long("FooDecl", "foo")])),
         },
@@ -893,7 +893,7 @@ mod tests {
                 decl.children = Some(vec![
                     ChildDecl{
                         name: Some("netstack".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
                         startup: Some(StartupMode::Lazy),
                     },
                 ]);
@@ -973,7 +973,7 @@ mod tests {
                 ]);
                 decl.children = Some(vec![ChildDecl{
                     name: Some("logger".to_string()),
-                    uri: Some("fuchsia-pkg://fuchsia.com/logger#meta/logger.cm".to_string()),
+                    url: Some("fuchsia-pkg://fuchsia.com/logger#meta/logger.cm".to_string()),
                     startup: Some(StartupMode::Lazy),
                 }]);
                 decl
@@ -1019,7 +1019,7 @@ mod tests {
                 decl.children = Some(vec![
                     ChildDecl{
                         name: Some("netstack".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
+                        url: Some("fuchsia-pkg://fuchsia.com/netstack/stable#meta/netstack.cm".to_string()),
                         startup: Some(StartupMode::Eager),
                     },
                 ]);
@@ -1069,14 +1069,14 @@ mod tests {
                 let mut decl = new_component_decl();
                 decl.children = Some(vec![ChildDecl{
                     name: None,
-                    uri: None,
+                    url: None,
                     startup: None,
                 }]);
                 decl
             },
             result = Err(ErrorList::new(vec![
                 Error::missing_field("ChildDecl", "name"),
-                Error::missing_field("ChildDecl", "uri"),
+                Error::missing_field("ChildDecl", "url"),
                 Error::missing_field("ChildDecl", "startup"),
             ])),
         },
@@ -1085,14 +1085,14 @@ mod tests {
                 let mut decl = new_component_decl();
                 decl.children = Some(vec![ChildDecl{
                     name: Some("^bad".to_string()),
-                    uri: Some("bad-scheme&://blah".to_string()),
+                    url: Some("bad-scheme&://blah".to_string()),
                     startup: Some(StartupMode::Lazy),
                 }]);
                 decl
             },
             result = Err(ErrorList::new(vec![
                 Error::invalid_field("ChildDecl", "name"),
-                Error::invalid_field("ChildDecl", "uri"),
+                Error::invalid_field("ChildDecl", "url"),
             ])),
         },
         test_validate_children_long_identifiers => {
@@ -1100,14 +1100,14 @@ mod tests {
                 let mut decl = new_component_decl();
                 decl.children = Some(vec![ChildDecl{
                     name: Some("a".repeat(1025)),
-                    uri: Some(format!("fuchsia-pkg://{}", "a".repeat(4083))),
+                    url: Some(format!("fuchsia-pkg://{}", "a".repeat(4083))),
                     startup: Some(StartupMode::Lazy),
                 }]);
                 decl
             },
             result = Err(ErrorList::new(vec![
                 Error::field_too_long("ChildDecl", "name"),
-                Error::field_too_long("ChildDecl", "uri"),
+                Error::field_too_long("ChildDecl", "url"),
             ])),
         },
     }
diff --git a/garnet/lib/rust/cm_json/cm_schema.json b/garnet/lib/rust/cm_json/cm_schema.json
index dcb561e0b5d90dd39fad9fb590feacab79fdae10..363f11489cc2f7d463989b145773b838734c9d13 100644
--- a/garnet/lib/rust/cm_json/cm_schema.json
+++ b/garnet/lib/rust/cm_json/cm_schema.json
@@ -8,7 +8,7 @@
       "minLength": 1,
       "maxLength": 1024
     },
-    "uri-clause": {
+    "url-clause": {
       "type": "string",
       "pattern": "^[0-9a-z+\\-\\.]+://.+$",
       "minLength": 1,
@@ -304,7 +304,7 @@
         "type": "object",
         "required": [
           "name",
-          "uri",
+          "url",
           "startup"
         ],
         "properties": {
@@ -312,8 +312,8 @@
             "allOf": [{ "$ref": "#/definitions/name-clause" }],
             "title": "Child component name"
           },
-          "uri": {
-            "allOf": [{ "$ref": "#/definitions/uri-clause" }],
+          "url": {
+            "allOf": [{ "$ref": "#/definitions/url-clause" }],
             "title": "Child component URI"
           },
           "startup": {
diff --git a/garnet/lib/rust/cm_json/cml_schema.json b/garnet/lib/rust/cm_json/cml_schema.json
index beecf629a28037d39f9c2b56e4ef0a38f4e88dc6..e671279ab8da71a121a93ee1da98e5a36cd4d490 100644
--- a/garnet/lib/rust/cm_json/cml_schema.json
+++ b/garnet/lib/rust/cm_json/cml_schema.json
@@ -13,7 +13,7 @@
       "minLength": 1,
       "maxLength": 1024
     },
-    "uri-clause": {
+    "url-clause": {
       "type": "string",
       "pattern": "^[0-9a-z+\\-\\.]+://.+$",
       "minLength": 1,
@@ -266,7 +266,7 @@
         "type": "object",
         "required": [
           "name",
-          "uri"
+          "url"
         ],
         "properties": {
           "name": {
@@ -278,10 +278,10 @@
               "System-logger"
             ]
           },
-          "uri": {
+          "url": {
             "title": "Child component URI",
             "description": "The URI that identifies the child component.",
-            "allOf": [{ "$ref": "#/definitions/uri-clause" }],
+            "allOf": [{ "$ref": "#/definitions/url-clause" }],
             "examples": [
               "fuchsia-pkg://fuchsia.com/echo_server_cpp#meta/echo_server.cml"
             ]
diff --git a/garnet/lib/rust/cm_json/src/cm.rs b/garnet/lib/rust/cm_json/src/cm.rs
index c4928341804eafd857f12d2c76adc9f89769de93..8364b1d665fbe67552f36e0ad87be4a5bd5b56c8 100644
--- a/garnet/lib/rust/cm_json/src/cm.rs
+++ b/garnet/lib/rust/cm_json/src/cm.rs
@@ -25,7 +25,7 @@ pub struct Document {
 #[derive(Serialize, Deserialize, Debug)]
 pub struct Child {
     pub name: String,
-    pub uri: String,
+    pub url: String,
     pub startup: String,
 }
 
diff --git a/garnet/lib/rust/cm_rust/src/lib.rs b/garnet/lib/rust/cm_rust/src/lib.rs
index 1d067de8d384ce7fa29571207c8bea49c268dd45..680dff83ce954d585eec406b39044b0ef30c0670 100644
--- a/garnet/lib/rust/cm_rust/src/lib.rs
+++ b/garnet/lib/rust/cm_rust/src/lib.rs
@@ -312,7 +312,7 @@ fidl_into_struct!(OfferTarget, OfferTarget, fsys::OfferTarget, fsys::OfferTarget
 fidl_into_struct!(ChildDecl, ChildDecl, fsys::ChildDecl, fsys::ChildDecl,
                   {
                       name: String,
-                      uri: String,
+                      url: String,
                       startup: fsys::StartupMode,
                   });
 
@@ -824,13 +824,13 @@ mod tests {
                children: Some(vec![
                     fsys::ChildDecl {
                         name: Some("netstack".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/netstack#meta/netstack.cm"
+                        url: Some("fuchsia-pkg://fuchsia.com/netstack#meta/netstack.cm"
                                   .to_string()),
                         startup: Some(fsys::StartupMode::Lazy),
                     },
                     fsys::ChildDecl {
                         name: Some("echo".to_string()),
-                        uri: Some("fuchsia-pkg://fuchsia.com/echo#meta/echo.cm"
+                        url: Some("fuchsia-pkg://fuchsia.com/echo#meta/echo.cm"
                                   .to_string()),
                         startup: Some(fsys::StartupMode::Eager),
                     },
@@ -898,12 +898,12 @@ mod tests {
                     children: vec![
                         ChildDecl {
                             name: "netstack".to_string(),
-                            uri: "fuchsia-pkg://fuchsia.com/netstack#meta/netstack.cm".to_string(),
+                            url: "fuchsia-pkg://fuchsia.com/netstack#meta/netstack.cm".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "echo".to_string(),
-                            uri: "fuchsia-pkg://fuchsia.com/echo#meta/echo.cm".to_string(),
+                            url: "fuchsia-pkg://fuchsia.com/echo#meta/echo.cm".to_string(),
                             startup: fsys::StartupMode::Eager,
                         },
                     ],
diff --git a/sdk/fidl/fuchsia.sys2/constants.fidl b/sdk/fidl/fuchsia.sys2/constants.fidl
index c19a1f33278d6a27a1abe9952c056a50e475a3f4..17d0b023ea4d91b481ab7a8a9c19f5202cf49c35 100644
--- a/sdk/fidl/fuchsia.sys2/constants.fidl
+++ b/sdk/fidl/fuchsia.sys2/constants.fidl
@@ -8,7 +8,7 @@ const uint32 MAX_FACET_NAME_LENGTH = 100;
 const uint32 MAX_CHILD_NAME_LENGTH = 100;
 const uint32 MAX_STORAGE_NAME_LENGTH = 100;
 const uint32 MAX_PATH_LENGTH = 1024;
-const uint32 MAX_URI_LENGTH = 4096;
+const uint32 MAX_URL_LENGTH = 4096;
 const uint32 MAX_MONIKER_LENGTH = 4096;
 
 // Error produced when a component terminates unexpected.
diff --git a/sdk/fidl/fuchsia.sys2/decls/child_decl.fidl b/sdk/fidl/fuchsia.sys2/decls/child_decl.fidl
index 750711e9c2735db44f2036b24e0aadcb12e08001..f6619a2455715291f77b98b5d6e4f59755132801 100644
--- a/sdk/fidl/fuchsia.sys2/decls/child_decl.fidl
+++ b/sdk/fidl/fuchsia.sys2/decls/child_decl.fidl
@@ -19,16 +19,16 @@ table ChildDecl {
     /// following characters: [a-z0-9-_.].
     1: string:MAX_CHILD_NAME_LENGTH name;
 
-    /// The child component's URI.
+    /// The child component's URL.
     ///
-    /// Must be non-empty and a well-formed URI.
-    2: string:MAX_URI_LENGTH uri;
+    /// Must be non-empty and a well-formed URL.
+    2: string:MAX_URL_LENGTH url;
 
     /// The startup mode for the component instance.
     3: StartupMode startup;
 
     // TODO(CP-154): Provide a way to supply parameters to the child, possibly
-    // as command-line arguments, by URI, or maybe in some other way which is
+    // as command-line arguments, by URL, or maybe in some other way which is
     // orthogonal to other inputs to mitigate confused deputy issues.  Perhaps
     // as a dictionary like we do for runners?
 };
diff --git a/sdk/fidl/fuchsia.sys2/runtime/component.fidl b/sdk/fidl/fuchsia.sys2/runtime/component.fidl
index d3ef89a453e33f303996f98a648e35bdb60dd982..55fd94f7c71b58233461532c03bdf9e81c39ea7c 100644
--- a/sdk/fidl/fuchsia.sys2/runtime/component.fidl
+++ b/sdk/fidl/fuchsia.sys2/runtime/component.fidl
@@ -9,10 +9,10 @@ library fuchsia.sys2;
 // This object provides the component's declaration, access to its package's
 // content, and relevant metadata.
 table Component {
-    // The resolved URI of the component.
-    // This is the canonical URI obtained by the component resolver after
+    // The resolved URL of the component.
+    // This is the canonical URL obtained by the component resolver after
     // after following redirects and resolving relative paths.
-    1: string resolved_uri;
+    1: string resolved_url;
 
     // The component's declaration.
     // This information is typically obtained from the component's manifest
@@ -25,7 +25,7 @@ table Component {
     //
     // This is null if the component is not represented as a package.
     // In that case, it is the runner's responsibility to load the component's
-    // resource from the |resolved_uri|.  This mechanism is used for web
+    // resource from the |resolved_url|.  This mechanism is used for web
     // applications.
     //
     // TODO(CP-154): It might be better to return a package loader interface
diff --git a/sdk/fidl/fuchsia.sys2/runtime/component_resolver.fidl b/sdk/fidl/fuchsia.sys2/runtime/component_resolver.fidl
index ebe5f1bfa9fc0321719a8e2e08ed5133bbcbe652..6d414d0b5ad0910d82586d117abdde9aab80833d 100644
--- a/sdk/fidl/fuchsia.sys2/runtime/component_resolver.fidl
+++ b/sdk/fidl/fuchsia.sys2/runtime/component_resolver.fidl
@@ -6,32 +6,32 @@ library fuchsia.sys2;
 
 using zx;
 
-// An interface for resolving a URI to a component.
+// An interface for resolving a URL to a component.
 //
 // This interface is implemented by components that provide support
-// for loading components with a particular URI scheme.   For example,
+// for loading components with a particular URL scheme.   For example,
 // the Fuchsia package component resolver exposes a service with this
-// interface to resolve component URIs using the "fuchsia-pkg://" scheme.
+// interface to resolve component URLs using the "fuchsia-pkg://" scheme.
 //
-// To use a resolver to resolve URIs within your realm, register it
+// To use a resolver to resolve URLs within your realm, register it
 // in your realm's manifest.  (TODO: explain in more detail)
 //
 // Note: The component manager is the only intended direct client of this
 // interface.
 [Discoverable]
 protocol ComponentResolver {
-    // Resolves a component with the given URI.
+    // Resolves a component with the given URL.
     //
-    // |component_uri| is the unescaped URI of the component to resolve.
+    // |component_url| is the unescaped URL of the component to resolve.
     //
     // If successful, returns |ZX_OK| and information about the component
     // that was resolved.
     //
     // On failure, returns null |info| and...
-    // - |ZX_ERR_INVALID_ARGS|: The component's URI was malformed.
+    // - |ZX_ERR_INVALID_ARGS|: The component's URL was malformed.
     // - |ZX_ERR_NOT_FOUND|: The component does not exist.
     // - |ZX_ERR_UNAVAILABLE|: The resolver was unable to retrieve or parse
     //   the component's resources.
-    Resolve(string component_uri)
+    Resolve(string component_url)
         -> (zx.status status, Component component);
 };
diff --git a/sdk/fidl/fuchsia.sys2/runtime/component_runner.fidl b/sdk/fidl/fuchsia.sys2/runtime/component_runner.fidl
index 3a8cf600a152fed60d3deb73463c5ac736a3257c..4b34fe0cbfd130a0c7b798824910414f9f8e0c04 100644
--- a/sdk/fidl/fuchsia.sys2/runtime/component_runner.fidl
+++ b/sdk/fidl/fuchsia.sys2/runtime/component_runner.fidl
@@ -14,7 +14,7 @@ using fuchsia.io;
 // the Dart virtual machine exposes a service with this interface to run
 // Dart programs.
 //
-// To specify the runner needed to run your component, set the "runner_uri"
+// To specify the runner needed to run your component, set the "runner_url"
 // property in your component's manifest.
 //
 // Note: The component manager is the only intended direct client of this
@@ -32,10 +32,10 @@ protocol ComponentRunner {
 
 // Parameters for starting a new component instance.
 table ComponentStartInfo {
-    // The resolved URI of the component.
-    // This is the canonical URI obtained by the component resolver after
+    // The resolved URL of the component.
+    // This is the canonical URL obtained by the component resolver after
     // after following redirects and resolving relative paths.
-    1: string resolved_uri;
+    1: string resolved_url;
 
     // The component's program declaration.
     // This information originates from |ComponentDecl.program|.
diff --git a/sdk/fidl/fuchsia.sys2/runtime/package.fidl b/sdk/fidl/fuchsia.sys2/runtime/package.fidl
index 5f1a6f25a26c0e478719bfabb927c97412a4d4c6..89026043cbbaada087fb3fc563a5fe1a76b0d7e2 100644
--- a/sdk/fidl/fuchsia.sys2/runtime/package.fidl
+++ b/sdk/fidl/fuchsia.sys2/runtime/package.fidl
@@ -10,8 +10,8 @@ using fuchsia.io;
 //
 // This object provides access to a package's content and relevant metadata.
 table Package {
-    // The URI of the package itself.
-    1: string package_uri;
+    // The URL of the package itself.
+    1: string package_url;
 
     // The package's content directory.
     2: fuchsia.io.Directory package_dir;
diff --git a/src/sys/component_manager/src/elf_runner/mod.rs b/src/sys/component_manager/src/elf_runner/mod.rs
index 15f8f3d9a9d5a6a73308c1f0dc4d975c7322b730..0baa507d01910a9dbbf01c555fff9eb58efd819d 100644
--- a/src/sys/component_manager/src/elf_runner/mod.rs
+++ b/src/sys/component_manager/src/elf_runner/mod.rs
@@ -21,10 +21,10 @@ use {
 /// Runs components with ELF binaries.
 pub struct ElfRunner {}
 
-fn get_resolved_uri(start_info: &fsys::ComponentStartInfo) -> Result<String, Error> {
-    match &start_info.resolved_uri {
-        Some(uri) => Ok(uri.to_string()),
-        _ => Err(err_msg("missing uri")),
+fn get_resolved_url(start_info: &fsys::ComponentStartInfo) -> Result<String, Error> {
+    match &start_info.resolved_url {
+        Some(url) => Ok(url.to_string()),
+        _ => Err(err_msg("missing url")),
     }
 }
 
@@ -81,20 +81,20 @@ fn handle_info_from_fd(fd: i32) -> Result<Option<fproc::HandleInfo>, Error> {
 }
 
 async fn load_launch_info(
-    uri: String,
+    url: String,
     start_info: fsys::ComponentStartInfo,
     launcher: &fproc::LauncherProxy,
 ) -> Result<fproc::LaunchInfo, Error> {
     let bin_path =
-        get_program_binary(&start_info).map_err(|e| RunnerError::invalid_args(uri.as_ref(), e))?;
+        get_program_binary(&start_info).map_err(|e| RunnerError::invalid_args(url.as_ref(), e))?;
     let bin_arg = &[String::from(bin_path.to_str().ok_or(err_msg("invalid binary path"))?)];
     let args = get_program_args(&start_info)?;
 
-    let name = PathBuf::from(uri)
+    let name = PathBuf::from(url)
         .file_name()
-        .ok_or(err_msg("invalid uri"))?
+        .ok_or(err_msg("invalid url"))?
         .to_str()
-        .ok_or(err_msg("invalid uri"))?
+        .ok_or(err_msg("invalid url"))?
         .to_string();
 
     // Make a non-Option namespace
@@ -161,16 +161,16 @@ impl ElfRunner {
     }
 
     async fn start_async(&self, start_info: fsys::ComponentStartInfo) -> Result<(), RunnerError> {
-        let resolved_uri =
-            get_resolved_uri(&start_info).map_err(|e| RunnerError::invalid_args("", e))?;
+        let resolved_url =
+            get_resolved_url(&start_info).map_err(|e| RunnerError::invalid_args("", e))?;
 
         let launcher = connect_to_service::<fproc::LauncherMarker>()
             .context("failed to connect to launcher service")
-            .map_err(|e| RunnerError::component_load_error(resolved_uri.as_ref(), e))?;
+            .map_err(|e| RunnerError::component_load_error(resolved_url.as_ref(), e))?;
 
         // Load the component
-        let mut launch_info = await!(load_launch_info(resolved_uri.clone(), start_info, &launcher))
-            .map_err(|e| RunnerError::component_load_error(resolved_uri.as_ref(), e))?;
+        let mut launch_info = await!(load_launch_info(resolved_url.clone(), start_info, &launcher))
+            .map_err(|e| RunnerError::component_load_error(resolved_url.as_ref(), e))?;
 
         // Launch the component
         await!(async {
@@ -180,7 +180,7 @@ impl ElfRunner {
             }
             Ok(())
         })
-        .map_err(|e| RunnerError::component_launch_error(resolved_uri, e))?;
+        .map_err(|e| RunnerError::component_launch_error(resolved_url, e))?;
 
         Ok(())
     }
@@ -218,7 +218,7 @@ mod tests {
             };
 
             let start_info = fsys::ComponentStartInfo {
-                resolved_uri: Some(
+                resolved_url: Some(
                     "fuchsia-pkg://fuchsia.com/hello_world_hippo#meta/hello_world.cm".to_string(),
                 ),
                 program: Some(fdata::Dictionary {
@@ -248,7 +248,7 @@ mod tests {
             }),
             ns: None,
             outgoing_dir: None,
-            resolved_uri: None,
+            resolved_url: None,
         }
     }
 
@@ -262,7 +262,7 @@ mod tests {
                 program: Some(fdata::Dictionary { entries: vec![] }),
                 ns: None,
                 outgoing_dir: None,
-                resolved_uri: None,
+                resolved_url: None,
             })
             .unwrap()
         );
diff --git a/src/sys/component_manager/src/fuchsia_boot_resolver.rs b/src/sys/component_manager/src/fuchsia_boot_resolver.rs
index 0891669c4fecd5e10eee4c29708d3bc319a4cfa2..d3b8a421a0bfd023927f3ae94695a22804c95020 100644
--- a/src/sys/component_manager/src/fuchsia_boot_resolver.rs
+++ b/src/sys/component_manager/src/fuchsia_boot_resolver.rs
@@ -14,9 +14,9 @@ use {
 
 pub static SCHEME: &str = "fuchsia-boot";
 
-/// Resolves component URIs with the "fuchsia-boot" scheme.
+/// Resolves component URLs with the "fuchsia-boot" scheme.
 ///
-/// URI syntax:
+/// URL syntax:
 /// - fuchsia-boot:///directory#meta/component.cm
 pub struct FuchsiaBootResolver {}
 
@@ -27,35 +27,35 @@ impl FuchsiaBootResolver {
 
     async fn resolve_async<'a>(
         &'a self,
-        component_uri: &'a str,
+        component_url: &'a str,
     ) -> Result<fsys::Component, ResolverError> {
-        // Parse URI.
-        let uri = BootUri::parse(component_uri)
-            .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
-        let res = uri.resource().ok_or(ResolverError::uri_missing_resource_error(component_uri))?;
-        let res_path = PathBuf::from(uri.path()).join(PathBuf::from(res));
+        // Parse URL.
+        let url = BootUri::parse(component_url)
+            .map_err(|e| ResolverError::component_not_available(component_url, e))?;
+        let res = url.resource().ok_or(ResolverError::url_missing_resource_error(component_url))?;
+        let res_path = PathBuf::from(url.path()).join(PathBuf::from(res));
         let res_path_str =
-            res_path.to_str().ok_or(ResolverError::uri_missing_resource_error(component_uri))?;
+            res_path.to_str().ok_or(ResolverError::url_missing_resource_error(component_url))?;
 
         // Read component manifest from resource into a component decl.
         let cm_file = io_util::open_file_in_namespace(&res_path_str)
-            .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::component_not_available(component_url, e))?;
         let cm_str = await!(io_util::read_file(&cm_file))
-            .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::component_not_available(component_url, e))?;
         let component_decl = translate(&cm_str)
-            .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::component_not_available(component_url, e))?;
 
         // Set up the fuchsia-boot path as the component's "package" namespace.
-        let package_path = uri.path();
+        let package_path = url.path();
         let path_proxy = io_util::open_directory_in_namespace(&package_path)
-            .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::component_not_available(component_url, e))?;
         let package = fsys::Package {
-            package_uri: Some(uri.root_uri().to_string()),
+            package_url: Some(url.root_uri().to_string()),
             package_dir: Some(ClientEnd::new(path_proxy.into_channel().unwrap().into_zx_channel())),
         };
 
         Ok(fsys::Component {
-            resolved_uri: Some(component_uri.to_string()),
+            resolved_url: Some(component_url.to_string()),
             decl: Some(component_decl),
             package: Some(package),
         })
@@ -65,9 +65,9 @@ impl FuchsiaBootResolver {
 impl Resolver for FuchsiaBootResolver {
     fn resolve<'a>(
         &'a self,
-        component_uri: &'a str,
+        component_url: &'a str,
     ) -> FutureObj<'a, Result<fsys::Component, ResolverError>> {
-        FutureObj::new(Box::new(self.resolve_async(component_uri)))
+        FutureObj::new(Box::new(self.resolve_async(component_url)))
     }
 }
 
@@ -88,7 +88,7 @@ mod tests {
             .unwrap();
             assert_eq!(
                 "fuchsia-boot:///pkg#meta/component_manager_tests_hello_world.cm",
-                component.resolved_uri.unwrap()
+                component.resolved_url.unwrap()
             );
             let program = fdata::Dictionary {
                 entries: vec![fdata::Entry {
@@ -106,7 +106,7 @@ mod tests {
                 storage: None,
             };
             assert_eq!(component_decl, component.decl.unwrap());
-            assert_eq!("fuchsia-boot:///pkg", component.package.unwrap().package_uri.unwrap());
+            assert_eq!("fuchsia-boot:///pkg", component.package.unwrap().package_url.unwrap());
         });
     }
 }
diff --git a/src/sys/component_manager/src/fuchsia_pkg_resolver.rs b/src/sys/component_manager/src/fuchsia_pkg_resolver.rs
index 6fa3022b1a7816bcebbdcbfd9a4b540a2a0d2484..d9eea389139328eddabc861bb5fe64328462b2cc 100644
--- a/src/sys/component_manager/src/fuchsia_pkg_resolver.rs
+++ b/src/sys/component_manager/src/fuchsia_pkg_resolver.rs
@@ -18,7 +18,7 @@ use {
 
 pub static SCHEME: &str = "fuchsia-pkg";
 
-/// Resolves component URIs with the "fuchsia-pkg" scheme. See the fuchsia_pkg_uri crate for URI
+/// Resolves component URLs with the "fuchsia-pkg" scheme. See the fuchsia_pkg_uri crate for URL
 /// syntax.
 pub struct FuchsiaPkgResolver {
     pkg_resolver: PackageResolverProxy,
@@ -31,33 +31,33 @@ impl FuchsiaPkgResolver {
 
     async fn resolve_async<'a>(
         &'a self,
-        component_uri: &'a str,
+        component_url: &'a str,
     ) -> Result<fsys::Component, ResolverError> {
-        // Parse URI.
-        let fuchsia_pkg_uri = PkgUri::parse(component_uri)
-            .map_err(|e| ResolverError::uri_parse_error(component_uri, e))?;
+        // Parse URL.
+        let fuchsia_pkg_uri = PkgUri::parse(component_url)
+            .map_err(|e| ResolverError::url_parse_error(component_url, e))?;
         fuchsia_pkg_uri
             .resource()
-            .ok_or(ResolverError::uri_missing_resource_error(component_uri))?;
-        let package_uri = fuchsia_pkg_uri.root_uri().to_string();
+            .ok_or(ResolverError::url_missing_resource_error(component_url))?;
+        let package_url = fuchsia_pkg_uri.root_uri().to_string();
         let cm_path: PathBuf = fuchsia_pkg_uri.resource().unwrap().into();
 
         // Resolve package.
         let (package_dir_c, package_dir_s) = zx::Channel::create()
-            .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::component_not_available(component_url, e))?;
         let selectors: [&str; 0] = [];
         let mut update_policy = UpdatePolicy { fetch_if_absent: true, allow_old_versions: false };
         let status = await!(self.pkg_resolver.resolve(
-            &package_uri,
+            &package_url,
             &mut selectors.iter().map(|s| *s),
             &mut update_policy,
             ServerEnd::new(package_dir_s)
         ))
-        .map_err(|e| ResolverError::component_not_available(component_uri, e))?;
+        .map_err(|e| ResolverError::component_not_available(component_url, e))?;
         let status = zx::Status::from_raw(status);
         if status != zx::Status::OK {
             return Err(ResolverError::component_not_available(
-                component_uri,
+                component_url,
                 format_err!("{}", status),
             ));
         }
@@ -67,18 +67,18 @@ impl FuchsiaPkgResolver {
             .into_proxy()
             .expect("failed to create directory proxy");
         let file = io_util::open_file(&dir, &cm_path)
-            .map_err(|e| ResolverError::manifest_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::manifest_not_available(component_url, e))?;
         let cm_str = await!(io_util::read_file(&file))
-            .map_err(|e| ResolverError::manifest_not_available(component_uri, e))?;
+            .map_err(|e| ResolverError::manifest_not_available(component_url, e))?;
         let component_decl = cm_fidl_translator::translate(&cm_str)
-            .map_err(|e| ResolverError::manifest_invalid(component_uri, e))?;
+            .map_err(|e| ResolverError::manifest_invalid(component_url, e))?;
         let package_dir = ClientEnd::new(
             dir.into_channel().expect("could not convert proxy to channel").into_zx_channel(),
         );
         let package =
-            fsys::Package { package_uri: Some(package_uri), package_dir: Some(package_dir) };
+            fsys::Package { package_url: Some(package_url), package_dir: Some(package_dir) };
         Ok(fsys::Component {
-            resolved_uri: Some(component_uri.to_string()),
+            resolved_url: Some(component_url.to_string()),
             decl: Some(component_decl),
             package: Some(package),
         })
@@ -88,9 +88,9 @@ impl FuchsiaPkgResolver {
 impl Resolver for FuchsiaPkgResolver {
     fn resolve<'a>(
         &'a self,
-        component_uri: &'a str,
+        component_url: &'a str,
     ) -> FutureObj<'a, Result<fsys::Component, ResolverError>> {
-        FutureObj::new(Box::new(self.resolve_async(component_uri)))
+        FutureObj::new(Box::new(self.resolve_async(component_url)))
     }
 }
 
@@ -135,11 +135,11 @@ mod tests {
 
         fn resolve(
             &self,
-            package_uri: &str,
+            package_url: &str,
             dir: fidl::endpoints::ServerEnd<fidl_fuchsia_io::DirectoryMarker>,
         ) -> Result<(), zx::Status> {
-            let package_uri = PkgUri::parse(&package_uri).expect("bad uri");
-            if package_uri.name().unwrap() != "hello_world" {
+            let package_url = PkgUri::parse(&package_url).expect("bad url");
+            if package_url.name().unwrap() != "hello_world" {
                 return Err(zx::Status::NOT_FOUND);
             }
             let path = Path::new("/pkg");
@@ -151,15 +151,15 @@ mod tests {
     async fn resolve_test() {
         let pkg_resolver = MockPackageResolver::start();
         let resolver = FuchsiaPkgResolver::new(pkg_resolver);
-        let uri = "fuchsia-pkg://fuchsia.com/hello_world#\
+        let url = "fuchsia-pkg://fuchsia.com/hello_world#\
                    meta/component_manager_tests_hello_world.cm";
-        let component = await!(resolver.resolve_async(uri)).expect("resolve failed");
+        let component = await!(resolver.resolve_async(url)).expect("resolve failed");
 
         // Check that both the returned component manifest and the component manifest in
         // the returned package dir match the expected value. This also tests that
         // the resolver returned the right package dir.
-        let fsys::Component { resolved_uri, decl, package } = component;
-        assert_eq!(resolved_uri.unwrap(), uri);
+        let fsys::Component { resolved_url, decl, package } = component;
+        assert_eq!(resolved_url.unwrap(), url);
         let program = fdata::Dictionary {
             entries: vec![fdata::Entry {
                 key: "binary".to_string(),
@@ -177,8 +177,8 @@ mod tests {
         };
         assert_eq!(decl.unwrap(), expected_decl);
 
-        let fsys::Package { package_uri, package_dir } = package.unwrap();
-        assert_eq!(package_uri.unwrap(), "fuchsia-pkg://fuchsia.com/hello_world");
+        let fsys::Package { package_url, package_dir } = package.unwrap();
+        assert_eq!(package_url.unwrap(), "fuchsia-pkg://fuchsia.com/hello_world");
         let dir_proxy = package_dir.unwrap().into_proxy().unwrap();
         let path = PathBuf::from("meta/component_manager_tests_hello_world.cm");
         let file_proxy = io_util::open_file(&dir_proxy, &path).expect("could not open cm");
@@ -190,12 +190,12 @@ mod tests {
     }
 
     macro_rules! test_resolve_error {
-        ($resolver:ident, $uri:expr, $resolver_error_expected:ident) => {
-            let uri = $uri;
-            let res = await!($resolver.resolve_async(uri));
+        ($resolver:ident, $url:expr, $resolver_error_expected:ident) => {
+            let url = $url;
+            let res = await!($resolver.resolve_async(url));
             match res.err().expect("unexpected success") {
-                ResolverError::$resolver_error_expected { uri: u, .. } => {
-                    assert_eq!(u, uri);
+                ResolverError::$resolver_error_expected { url: u, .. } => {
+                    assert_eq!(u, url);
                 }
                 e => panic!("unexpected error {:?}", e),
             }
@@ -209,12 +209,12 @@ mod tests {
         test_resolve_error!(
             resolver,
             "fuchsia-pkg:///hello_world#meta/component_manager_tests_hello_world.cm",
-            UriParseError
+            UrlParseError
         );
         test_resolve_error!(
             resolver,
             "fuchsia-pkg://fuchsia.com/hello_world",
-            UriMissingResourceError
+            UrlMissingResourceError
         );
         test_resolve_error!(
             resolver,
diff --git a/src/sys/component_manager/src/main.rs b/src/sys/component_manager/src/main.rs
index c45c7300e6d4c74a35c425c50198ce49755a4700..11b481a737a7bd737092244cb6245e7e209b15e1 100644
--- a/src/sys/component_manager/src/main.rs
+++ b/src/sys/component_manager/src/main.rs
@@ -23,16 +23,16 @@ use {
 const NUM_THREADS: usize = 2;
 
 struct Opt {
-    pub root_component_uri: String,
+    pub root_component_url: String,
 }
 
 fn parse_args() -> Result<Opt, Error> {
     let mut args: Vec<String> = env::args().collect();
     if args.len() != 2 {
-        println!("Usage: {} <root-component-uri>", &args[0]);
+        println!("Usage: {} <root-component-url>", &args[0]);
         return Err(failure::err_msg("Invalid arguments"));
     }
-    Ok(Opt { root_component_uri: args.remove(1) })
+    Ok(Opt { root_component_url: args.remove(1) })
 }
 
 fn main() -> Result<(), Error> {
@@ -45,7 +45,7 @@ fn main() -> Result<(), Error> {
 
     let resolver_registry = startup::available_resolvers()?;
     let params = ModelParams {
-        root_component_uri: opt.root_component_uri,
+        root_component_url: opt.root_component_url,
         root_resolver_registry: resolver_registry,
         root_default_runner: Box::new(ElfRunner::new()),
     };
diff --git a/src/sys/component_manager/src/model/component.rs b/src/sys/component_manager/src/model/component.rs
index 685e762dbd4a5523afc1cf8532070d161ea9e587..be94955fb9db5fcdd6fae64b9495ce37df4d9386 100644
--- a/src/sys/component_manager/src/model/component.rs
+++ b/src/sys/component_manager/src/model/component.rs
@@ -20,7 +20,7 @@ type ChildRealmMap = HashMap<ChildMoniker, Arc<Realm>>;
 /// The realm's properties influence the runtime behavior of the subtree of component instances
 /// that it contains, including component resolution, execution, and service discovery.
 pub struct Realm {
-    /// The registry for resolving component URIs within the realm.
+    /// The registry for resolving component URLs within the realm.
     pub resolver_registry: Arc<ResolverRegistry>,
     /// The default runner (nominally runs ELF binaries) for executing components
     /// within the realm that do not explicitly specify a runner.
@@ -37,7 +37,7 @@ impl Realm {
     pub async fn resolve_decl(&self) -> Result<(), ModelError> {
         let mut state = await!(self.instance.state.lock());
         if state.decl.is_none() {
-            let component = await!(self.resolver_registry.resolve(&self.instance.component_uri))?;
+            let component = await!(self.resolver_registry.resolve(&self.instance.component_url))?;
             state.populate_decl(component.decl, &self)?;
         }
         Ok(())
@@ -53,7 +53,7 @@ impl Realm {
                 default_runner: self.default_runner.clone(),
                 abs_moniker: abs_moniker,
                 instance: Instance {
-                    component_uri: child.uri.clone(),
+                    component_url: child.url.clone(),
                     startup: child.startup,
                     state: Mutex::new(InstanceState {
                         execution: None,
@@ -70,7 +70,7 @@ impl Realm {
 
 impl InstanceState {
     /// Populates the component declaration of this realm's Instance with `decl`, if not already
-    /// populated. `uri` should be the URI for this component, and is used in error generation.
+    /// populated. `url` should be the URL for this component, and is used in error generation.
     pub fn populate_decl(
         &mut self,
         decl: Option<fsys::ComponentDecl>,
@@ -81,7 +81,7 @@ impl InstanceState {
                 return Err(ModelError::ComponentInvalid);
             }
             let decl = decl.unwrap().try_into().map_err(|e| {
-                ModelError::manifest_invalid(realm.instance.component_uri.clone(), e)
+                ModelError::manifest_invalid(realm.instance.component_url.clone(), e)
             })?;
             self.child_realms = Some(realm.make_child_realms(&decl));
             self.decl = Some(decl);
@@ -92,8 +92,8 @@ impl InstanceState {
 
 /// An instance of a component.
 pub struct Instance {
-    /// The component's URI.
-    pub component_uri: String,
+    /// The component's URL.
+    pub component_url: String,
     /// The mode of startup (lazy or eager).
     pub startup: fsys::StartupMode,
     /// The component's mutable state.
@@ -113,21 +113,21 @@ pub struct InstanceState {
 /// The execution state for a component instance that has started running.
 // TODO: Hold the component instance's controller.
 pub struct Execution {
-    pub resolved_uri: String,
+    pub resolved_url: String,
     pub namespace: IncomingNamespace,
     pub outgoing_dir: DirectoryProxy,
 }
 
 impl Execution {
     pub fn start_from(
-        resolved_uri: Option<String>,
+        resolved_url: Option<String>,
         namespace: IncomingNamespace,
         outgoing_dir: DirectoryProxy,
     ) -> Result<Self, ModelError> {
-        if resolved_uri.is_none() {
+        if resolved_url.is_none() {
             return Err(ModelError::ComponentInvalid);
         }
-        let uri = resolved_uri.unwrap();
-        Ok(Execution { resolved_uri: uri, namespace, outgoing_dir })
+        let url = resolved_url.unwrap();
+        Ok(Execution { resolved_url: url, namespace, outgoing_dir })
     }
 }
diff --git a/src/sys/component_manager/src/model/error.rs b/src/sys/component_manager/src/model/error.rs
index f408c1c8bb0d65a5debaec68ba0c79b082f2a826..b63b923c6bcdaf89e7eca4327c737dc3f35f91f5 100644
--- a/src/sys/component_manager/src/model/error.rs
+++ b/src/sys/component_manager/src/model/error.rs
@@ -16,7 +16,7 @@ pub enum ModelError {
     ComponentInvalid,
     #[fail(display = "component manifest invalid")]
     ManifestInvalid {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
@@ -51,8 +51,8 @@ impl ModelError {
         ModelError::NamespaceCreationFailed { err: err.into() }
     }
 
-    pub fn manifest_invalid(uri: impl Into<String>, err: impl Into<Error>) -> ModelError {
-        ModelError::ManifestInvalid { uri: uri.into(), err: err.into() }
+    pub fn manifest_invalid(url: impl Into<String>, err: impl Into<Error>) -> ModelError {
+        ModelError::ManifestInvalid { url: url.into(), err: err.into() }
     }
 
     pub fn capability_discovery_error(err: impl Into<Error>) -> ModelError {
diff --git a/src/sys/component_manager/src/model/model.rs b/src/sys/component_manager/src/model/model.rs
index 6eb1e855ee2ca18ef99e85f8379d1ad4e0016358..74cd95f6f333561329c9ba00b4e09721d466f66e 100644
--- a/src/sys/component_manager/src/model/model.rs
+++ b/src/sys/component_manager/src/model/model.rs
@@ -20,8 +20,8 @@ use {
 /// Parameters for initializing a component model, particularly the root of the component
 /// instance tree.
 pub struct ModelParams {
-    /// The URI of the root component.
-    pub root_component_uri: String,
+    /// The URL of the root component.
+    pub root_component_url: String,
     /// The component resolver registry used in the root realm.
     /// In particular, it will be used to resolve the root component itself.
     pub root_resolver_registry: ResolverRegistry,
@@ -51,7 +51,7 @@ impl Model {
                 default_runner: Arc::new(params.root_default_runner),
                 abs_moniker: AbsoluteMoniker::root(),
                 instance: Instance {
-                    component_uri: params.root_component_uri,
+                    component_url: params.root_component_url,
                     // Started by main().
                     startup: fsys::StartupMode::Lazy,
                     state: Mutex::new(InstanceState {
@@ -142,7 +142,7 @@ impl Model {
             Some(_) => {}
             None => {
                 let component =
-                    await!(realm.resolver_registry.resolve(&realm.instance.component_uri))?;
+                    await!(realm.resolver_registry.resolve(&realm.instance.component_url))?;
                 state.populate_decl(component.decl, &*realm)?;
                 let decl = state.decl.as_ref().unwrap();
                 if decl.program.is_some() {
@@ -151,7 +151,7 @@ impl Model {
                     let mut namespace = IncomingNamespace::new(component.package)?;
                     let ns = await!(namespace.populate(self.clone(), &realm.abs_moniker, decl))?;
                     let execution = Execution::start_from(
-                        component.resolved_uri,
+                        component.resolved_url,
                         namespace,
                         DirectoryProxy::from_channel(
                             fasync::Channel::from_channel(outgoing_dir_client).unwrap(),
@@ -159,7 +159,7 @@ impl Model {
                     )?;
 
                     let start_info = fsys::ComponentStartInfo {
-                        resolved_uri: Some(execution.resolved_uri.clone()),
+                        resolved_url: Some(execution.resolved_url.clone()),
                         program: data::clone_option_dictionary(&decl.program),
                         ns: Some(ns),
                         outgoing_dir: Some(ServerEnd::new(outgoing_dir_server)),
diff --git a/src/sys/component_manager/src/model/resolver.rs b/src/sys/component_manager/src/model/resolver.rs
index 9022bd4aec47db96a8842beefea0ff0d471b1ecf..1a90233b1f63a5779e8a5c058efd5fa60bf6c2c1 100644
--- a/src/sys/component_manager/src/model/resolver.rs
+++ b/src/sys/component_manager/src/model/resolver.rs
@@ -11,17 +11,17 @@ use {
     url::Url,
 };
 
-/// Resolves a component URI to its content.
+/// Resolves a component URL to its content.
 /// TODO: Consider defining an internal representation for `fsys::Component` so as to
 /// further isolate the `Model` from FIDL interfacting concerns.
 pub trait Resolver {
     fn resolve<'a>(
         &'a self,
-        component_uri: &'a str,
+        component_url: &'a str,
     ) -> FutureObj<'a, Result<fsys::Component, ResolverError>>;
 }
 
-/// Resolves a component URI using a resolver selected based on the URI's scheme.
+/// Resolves a component URL using a resolver selected based on the URL's scheme.
 pub struct ResolverRegistry {
     resolvers: HashMap<String, Box<dyn Resolver + Send + Sync + 'static>>,
 }
@@ -43,18 +43,18 @@ impl ResolverRegistry {
 impl Resolver for ResolverRegistry {
     fn resolve<'a>(
         &'a self,
-        component_uri: &'a str,
+        component_url: &'a str,
     ) -> FutureObj<'a, Result<fsys::Component, ResolverError>> {
-        match Url::parse(component_uri) {
-            Ok(parsed_uri) => {
-                if let Some(ref resolver) = self.resolvers.get(parsed_uri.scheme()) {
-                    resolver.resolve(component_uri)
+        match Url::parse(component_url) {
+            Ok(parsed_url) => {
+                if let Some(ref resolver) = self.resolvers.get(parsed_url.scheme()) {
+                    resolver.resolve(component_url)
                 } else {
                     FutureObj::new(Box::new(future::err(ResolverError::SchemeNotRegistered)))
                 }
             }
-            Err(e) => FutureObj::new(Box::new(future::err(ResolverError::uri_parse_error(
-                component_uri,
+            Err(e) => FutureObj::new(Box::new(future::err(ResolverError::url_parse_error(
+                component_url,
                 e,
             )))),
         }
@@ -64,55 +64,55 @@ impl Resolver for ResolverRegistry {
 /// Errors produced by `Resolver`.
 #[derive(Debug, Fail)]
 pub enum ResolverError {
-    #[fail(display = "component not available with uri \"{}\": {}", uri, err)]
+    #[fail(display = "component not available with url \"{}\": {}", url, err)]
     ComponentNotAvailable {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
-    #[fail(display = "component manifest not available for uri \"{}\": {}", uri, err)]
+    #[fail(display = "component manifest not available for url \"{}\": {}", url, err)]
     ManifestNotAvailable {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
-    #[fail(display = "component manifest invalid for uri \"{}\": {}", uri, err)]
+    #[fail(display = "component manifest invalid for url \"{}\": {}", url, err)]
     ManifestInvalid {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
     #[fail(display = "scheme not registered")]
     SchemeNotRegistered,
-    #[fail(display = "failed to parse uri \"{}\": {}", uri, err)]
-    UriParseError {
-        uri: String,
+    #[fail(display = "failed to parse url \"{}\": {}", url, err)]
+    UrlParseError {
+        url: String,
         #[fail(cause)]
         err: Error,
     },
-    #[fail(display = "uri missing resource \"{}\"", uri)]
-    UriMissingResourceError { uri: String },
+    #[fail(display = "url missing resource \"{}\"", url)]
+    UrlMissingResourceError { url: String },
 }
 
 impl ResolverError {
-    pub fn component_not_available(uri: impl Into<String>, err: impl Into<Error>) -> ResolverError {
-        ResolverError::ComponentNotAvailable { uri: uri.into(), err: err.into() }
+    pub fn component_not_available(url: impl Into<String>, err: impl Into<Error>) -> ResolverError {
+        ResolverError::ComponentNotAvailable { url: url.into(), err: err.into() }
     }
 
-    pub fn manifest_not_available(uri: impl Into<String>, err: impl Into<Error>) -> ResolverError {
-        ResolverError::ManifestNotAvailable { uri: uri.into(), err: err.into() }
+    pub fn manifest_not_available(url: impl Into<String>, err: impl Into<Error>) -> ResolverError {
+        ResolverError::ManifestNotAvailable { url: url.into(), err: err.into() }
     }
 
-    pub fn manifest_invalid(uri: impl Into<String>, err: impl Into<Error>) -> ResolverError {
-        ResolverError::ManifestInvalid { uri: uri.into(), err: err.into() }
+    pub fn manifest_invalid(url: impl Into<String>, err: impl Into<Error>) -> ResolverError {
+        ResolverError::ManifestInvalid { url: url.into(), err: err.into() }
     }
 
-    pub fn uri_parse_error(uri: impl Into<String>, err: impl Into<Error>) -> ResolverError {
-        ResolverError::UriParseError { uri: uri.into(), err: err.into() }
+    pub fn url_parse_error(url: impl Into<String>, err: impl Into<Error>) -> ResolverError {
+        ResolverError::UrlParseError { url: url.into(), err: err.into() }
     }
 
-    pub fn uri_missing_resource_error(uri: impl Into<String>) -> ResolverError {
-        ResolverError::UriMissingResourceError { uri: uri.into() }
+    pub fn url_missing_resource_error(url: impl Into<String>) -> ResolverError {
+        ResolverError::UrlMissingResourceError { url: url.into() }
     }
 }
 
@@ -121,18 +121,18 @@ mod tests {
     use {super::*, failure::format_err};
 
     struct MockOkResolver {
-        pub expected_uri: String,
-        pub resolved_uri: String,
+        pub expected_url: String,
+        pub resolved_url: String,
     }
 
     impl Resolver for MockOkResolver {
         fn resolve(
             &self,
-            component_uri: &str,
+            component_url: &str,
         ) -> FutureObj<Result<fsys::Component, ResolverError>> {
-            assert_eq!(self.expected_uri, component_uri);
+            assert_eq!(self.expected_url, component_url);
             FutureObj::new(Box::new(future::ok(fsys::Component {
-                resolved_uri: Some(self.resolved_uri.clone()),
+                resolved_url: Some(self.resolved_url.clone()),
                 decl: Some(fsys::ComponentDecl {
                     program: None,
                     uses: None,
@@ -148,17 +148,17 @@ mod tests {
     }
 
     struct MockErrorResolver {
-        pub expected_uri: String,
+        pub expected_url: String,
         pub error: Box<dyn Fn(&str) -> ResolverError + Send + Sync + 'static>,
     }
 
     impl Resolver for MockErrorResolver {
         fn resolve(
             &self,
-            component_uri: &str,
+            component_url: &str,
         ) -> FutureObj<Result<fsys::Component, ResolverError>> {
-            assert_eq!(self.expected_uri, component_uri);
-            FutureObj::new(Box::new(future::err((self.error)(component_uri))))
+            assert_eq!(self.expected_url, component_url);
+            FutureObj::new(Box::new(future::err((self.error)(component_url))))
         }
     }
 
@@ -168,30 +168,30 @@ mod tests {
         registry.register(
             "foo".to_string(),
             Box::new(MockOkResolver {
-                expected_uri: "foo://uri".to_string(),
-                resolved_uri: "foo://resolved".to_string(),
+                expected_url: "foo://url".to_string(),
+                resolved_url: "foo://resolved".to_string(),
             }),
         );
         registry.register(
             "bar".to_string(),
             Box::new(MockErrorResolver {
-                expected_uri: "bar://uri".to_string(),
-                error: Box::new(|uri| {
-                    ResolverError::component_not_available(uri, format_err!("not available"))
+                expected_url: "bar://url".to_string(),
+                error: Box::new(|url| {
+                    ResolverError::component_not_available(url, format_err!("not available"))
                 }),
             }),
         );
 
         // Resolve known scheme that returns success.
-        let component = await!(registry.resolve("foo://uri")).unwrap();
-        assert_eq!("foo://resolved", component.resolved_uri.unwrap());
+        let component = await!(registry.resolve("foo://url")).unwrap();
+        assert_eq!("foo://resolved", component.resolved_url.unwrap());
 
         // Resolve a different scheme that produces an error.
         let expected_res: Result<fsys::Component, ResolverError> =
-            Err(ResolverError::component_not_available("bar://uri", format_err!("not available")));
+            Err(ResolverError::component_not_available("bar://url", format_err!("not available")));
         assert_eq!(
             format!("{:?}", expected_res),
-            format!("{:?}", await!(registry.resolve("bar://uri")))
+            format!("{:?}", await!(registry.resolve("bar://url")))
         );
 
         // Resolve an unknown scheme
@@ -199,12 +199,12 @@ mod tests {
             Err(ResolverError::SchemeNotRegistered);
         assert_eq!(
             format!("{:?}", expected_res),
-            format!("{:?}", await!(registry.resolve("unknown://uri"))),
+            format!("{:?}", await!(registry.resolve("unknown://url"))),
         );
 
         // Resolve an URL lacking a scheme.
         let expected_res: Result<fsys::Component, ResolverError> =
-            Err(ResolverError::uri_parse_error("xxx", url::ParseError::RelativeUrlWithoutBase));
+            Err(ResolverError::url_parse_error("xxx", url::ParseError::RelativeUrlWithoutBase));
         assert_eq!(format!("{:?}", expected_res), format!("{:?}", await!(registry.resolve("xxx"))),);
     }
 }
diff --git a/src/sys/component_manager/src/model/runner.rs b/src/sys/component_manager/src/model/runner.rs
index 6b2a8a8fd460c21774fce270447df0f9c6e33db1..8d8ff98600ee732514f184c6db14c6fe8c6f9ab4 100644
--- a/src/sys/component_manager/src/model/runner.rs
+++ b/src/sys/component_manager/src/model/runner.rs
@@ -21,36 +21,36 @@ pub trait Runner {
 /// Errors produced by `Runner`.
 #[derive(Debug, Fail)]
 pub enum RunnerError {
-    #[fail(display = "invalid arguments provided for component with uri \"{}\": {}", uri, err)]
+    #[fail(display = "invalid arguments provided for component with url \"{}\": {}", url, err)]
     InvalidArgs {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
-    #[fail(display = "unable to load component with uri \"{}\": {}", uri, err)]
+    #[fail(display = "unable to load component with url \"{}\": {}", url, err)]
     ComponentLoadError {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
-    #[fail(display = "failed to launch component with uri \"{}\": {}", uri, err)]
+    #[fail(display = "failed to launch component with url \"{}\": {}", url, err)]
     ComponentLaunchError {
-        uri: String,
+        url: String,
         #[fail(cause)]
         err: Error,
     },
 }
 
 impl RunnerError {
-    pub fn invalid_args(uri: impl Into<String>, err: impl Into<Error>) -> RunnerError {
-        RunnerError::InvalidArgs { uri: uri.into(), err: err.into() }
+    pub fn invalid_args(url: impl Into<String>, err: impl Into<Error>) -> RunnerError {
+        RunnerError::InvalidArgs { url: url.into(), err: err.into() }
     }
 
-    pub fn component_load_error(uri: impl Into<String>, err: impl Into<Error>) -> RunnerError {
-        RunnerError::ComponentLoadError { uri: uri.into(), err: err.into() }
+    pub fn component_load_error(url: impl Into<String>, err: impl Into<Error>) -> RunnerError {
+        RunnerError::ComponentLoadError { url: url.into(), err: err.into() }
     }
 
-    pub fn component_launch_error(uri: impl Into<String>, err: impl Into<Error>) -> RunnerError {
-        RunnerError::ComponentLaunchError { uri: uri.into(), err: err.into() }
+    pub fn component_launch_error(url: impl Into<String>, err: impl Into<Error>) -> RunnerError {
+        RunnerError::ComponentLaunchError { url: url.into(), err: err.into() }
     }
 }
diff --git a/src/sys/component_manager/src/model/tests/binding.rs b/src/sys/component_manager/src/model/tests/binding.rs
index d7a21a5498aad91035608b208b5a051f423ddbe9..f155d6bbd12cd1257eb998933bb64338371663d5 100644
--- a/src/sys/component_manager/src/model/tests/binding.rs
+++ b/src/sys/component_manager/src/model/tests/binding.rs
@@ -25,21 +25,21 @@ async fn get_child_realm<'a>(realm: &'a Realm, child: &'a str) -> Arc<Realm> {
 async fn bind_instance_root() {
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component("root", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
     let res = await!(model.look_up_and_bind_instance(AbsoluteMoniker::root()));
     let expected_res: Result<(), ModelError> = Ok(());
     assert_eq!(format!("{:?}", res), format!("{:?}", expected_res));
-    let actual_uris = await!(uris_run.lock());
-    let expected_uris = vec!["test:///root_resolved".to_string()];
-    assert_eq!(*actual_uris, expected_uris);
+    let actual_urls = await!(urls_run.lock());
+    let expected_urls = vec!["test:///root_resolved".to_string()];
+    assert_eq!(*actual_urls, expected_urls);
     let actual_children = await!(get_children(&model.root_realm));
     assert!(actual_children.is_empty());
 }
@@ -48,12 +48,12 @@ async fn bind_instance_root() {
 async fn bind_instance_root_non_existent() {
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component("root", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
@@ -65,16 +65,16 @@ async fn bind_instance_root_non_existent() {
         AbsoluteMoniker::new(vec![ChildMoniker::new("no-such-instance".to_string())]),
     ));
     assert_eq!(format!("{:?}", res), format!("{:?}", expected_res));
-    let actual_uris = await!(uris_run.lock());
-    let expected_uris: Vec<String> = vec![];
-    assert_eq!(*actual_uris, expected_uris);
+    let actual_urls = await!(urls_run.lock());
+    let expected_urls: Vec<String> = vec![];
+    assert_eq!(*actual_urls, expected_urls);
 }
 
 #[fuchsia_async::run_singlethreaded(test)]
 async fn bind_instance_child() {
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component(
         "root",
@@ -82,12 +82,12 @@ async fn bind_instance_child() {
             children: vec![
                 ChildDecl {
                     name: "system".to_string(),
-                    uri: "test:///system".to_string(),
+                    url: "test:///system".to_string(),
                     startup: fsys::StartupMode::Lazy,
                 },
                 ChildDecl {
                     name: "echo".to_string(),
-                    uri: "test:///echo".to_string(),
+                    url: "test:///echo".to_string(),
                     startup: fsys::StartupMode::Lazy,
                 },
             ],
@@ -98,14 +98,14 @@ async fn bind_instance_child() {
     mock_resolver.add_component("echo", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
     // bind to system
     assert!(await!(model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["system"]))).is_ok());
-    let expected_uris = vec!["test:///system_resolved".to_string()];
-    assert_eq!(*await!(uris_run.lock()), expected_uris);
+    let expected_urls = vec!["test:///system_resolved".to_string()];
+    assert_eq!(*await!(urls_run.lock()), expected_urls);
 
     // Validate children. system is resolved, but not echo.
     let actual_children = await!(get_children(&*model.root_realm));
@@ -121,9 +121,9 @@ async fn bind_instance_child() {
     assert!(await!(echo_realm.instance.state.lock()).child_realms.is_none());
     // bind to echo
     assert!(await!(model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["echo"]))).is_ok());
-    let expected_uris =
+    let expected_urls =
         vec!["test:///system_resolved".to_string(), "test:///echo_resolved".to_string()];
-    assert_eq!(*await!(uris_run.lock()), expected_uris);
+    assert_eq!(*await!(urls_run.lock()), expected_urls);
 
     // Validate children. Now echo is resolved.
     let echo_realm = await!(get_child_realm(&*model.root_realm, "echo"));
@@ -135,14 +135,14 @@ async fn bind_instance_child() {
 async fn bind_instance_child_non_existent() {
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component(
         "root",
         ComponentDecl {
             children: vec![ChildDecl {
                 name: "system".to_string(),
-                uri: "test:///system".to_string(),
+                url: "test:///system".to_string(),
                 startup: fsys::StartupMode::Lazy,
             }],
             ..default_component_decl()
@@ -151,23 +151,23 @@ async fn bind_instance_child_non_existent() {
     mock_resolver.add_component("system", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
     // bind to system
     assert!(await!(model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["system"]))).is_ok());
-    let expected_uris = vec!["test:///system_resolved".to_string()];
-    assert_eq!(*await!(uris_run.lock()), expected_uris);
+    let expected_urls = vec!["test:///system_resolved".to_string()];
+    assert_eq!(*await!(urls_run.lock()), expected_urls);
 
     // can't bind to logger: it does not exist
     let moniker = AbsoluteMoniker::new(vec!["system", "logger"]);
     let res = await!(model.look_up_and_bind_instance(moniker.clone()));
     let expected_res: Result<(), ModelError> = Err(ModelError::instance_not_found(moniker));
     assert_eq!(format!("{:?}", res), format!("{:?}", expected_res));
-    let actual_uris = await!(uris_run.lock());
-    let expected_uris = vec!["test:///system_resolved".to_string()];
-    assert_eq!(*actual_uris, expected_uris);
+    let actual_urls = await!(urls_run.lock());
+    let expected_urls = vec!["test:///system_resolved".to_string()];
+    assert_eq!(*actual_urls, expected_urls);
 }
 
 /// Create a hierarchy of children:
@@ -185,14 +185,14 @@ async fn bind_instance_child_non_existent() {
 async fn bind_instance_eager_children() {
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component(
         "root",
         ComponentDecl {
             children: vec![ChildDecl {
                 name: "a".to_string(),
-                uri: "test:///a".to_string(),
+                url: "test:///a".to_string(),
                 startup: fsys::StartupMode::Lazy,
             }],
             ..default_component_decl()
@@ -204,12 +204,12 @@ async fn bind_instance_eager_children() {
             children: vec![
                 ChildDecl {
                     name: "b".to_string(),
-                    uri: "test:///b".to_string(),
+                    url: "test:///b".to_string(),
                     startup: fsys::StartupMode::Eager,
                 },
                 ChildDecl {
                     name: "c".to_string(),
-                    uri: "test:///c".to_string(),
+                    url: "test:///c".to_string(),
                     startup: fsys::StartupMode::Eager,
                 },
             ],
@@ -222,7 +222,7 @@ async fn bind_instance_eager_children() {
         ComponentDecl {
             children: vec![ChildDecl {
                 name: "d".to_string(),
-                uri: "test:///d".to_string(),
+                url: "test:///d".to_string(),
                 startup: fsys::StartupMode::Eager,
             }],
             ..default_component_decl()
@@ -233,7 +233,7 @@ async fn bind_instance_eager_children() {
         ComponentDecl {
             children: vec![ChildDecl {
                 name: "e".to_string(),
-                uri: "test:///e".to_string(),
+                url: "test:///e".to_string(),
                 startup: fsys::StartupMode::Lazy,
             }],
             ..default_component_decl()
@@ -242,7 +242,7 @@ async fn bind_instance_eager_children() {
     mock_resolver.add_component("e", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
@@ -255,24 +255,24 @@ async fn bind_instance_eager_children() {
             ),])));
         let expected_res: Result<(), ModelError> = Ok(());
         assert_eq!(format!("{:?}", res), format!("{:?}", expected_res));
-        let actual_uris = await!(uris_run.lock());
+        let actual_urls = await!(urls_run.lock());
         // Execution order of `b` and `c` is non-deterministic.
-        let expected_uris1 = vec![
+        let expected_urls1 = vec![
             "test:///a_resolved".to_string(),
             "test:///b_resolved".to_string(),
             "test:///c_resolved".to_string(),
             "test:///d_resolved".to_string(),
         ];
-        let expected_uris2 = vec![
+        let expected_urls2 = vec![
             "test:///a_resolved".to_string(),
             "test:///c_resolved".to_string(),
             "test:///b_resolved".to_string(),
             "test:///d_resolved".to_string(),
         ];
         assert!(
-            *actual_uris == expected_uris1 || *actual_uris == expected_uris2,
-            "uris_run failed to match: {:?}",
-            *actual_uris
+            *actual_urls == expected_urls1 || *actual_urls == expected_urls2,
+            "urls_run failed to match: {:?}",
+            *actual_urls
         );
     }
 }
@@ -282,14 +282,14 @@ async fn bind_instance_no_execute() {
     // Create a non-executable component with an eagerly-started child.
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component(
         "root",
         ComponentDecl {
             children: vec![ChildDecl {
                 name: "a".to_string(),
-                uri: "test:///a".to_string(),
+                url: "test:///a".to_string(),
                 startup: fsys::StartupMode::Lazy,
             }],
             ..default_component_decl()
@@ -301,7 +301,7 @@ async fn bind_instance_no_execute() {
             program: None,
             children: vec![ChildDecl {
                 name: "b".to_string(),
-                uri: "test:///b".to_string(),
+                url: "test:///b".to_string(),
                 startup: fsys::StartupMode::Eager,
             }],
             ..default_component_decl()
@@ -310,7 +310,7 @@ async fn bind_instance_no_execute() {
     mock_resolver.add_component("b", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
@@ -318,23 +318,23 @@ async fn bind_instance_no_execute() {
     // Bind to the parent component. The child should be started. However, the parent component
     // is non-executable so it is not run.
     assert!(await!(model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["a"]))).is_ok());
-    let actual_uris = await!(uris_run.lock());
-    let expected_uris = vec!["test:///b_resolved".to_string()];
-    assert_eq!(*actual_uris, expected_uris);
+    let actual_urls = await!(urls_run.lock());
+    let expected_urls = vec!["test:///b_resolved".to_string()];
+    assert_eq!(*actual_urls, expected_urls);
 }
 
 #[fuchsia_async::run_singlethreaded(test)]
 async fn bind_instance_recursive_child() {
     let mut resolver = ResolverRegistry::new();
     let runner = MockRunner::new();
-    let uris_run = runner.uris_run.clone();
+    let urls_run = runner.urls_run.clone();
     let mut mock_resolver = MockResolver::new();
     mock_resolver.add_component(
         "root",
         ComponentDecl {
             children: vec![ChildDecl {
                 name: "system".to_string(),
-                uri: "test:///system".to_string(),
+                url: "test:///system".to_string(),
                 startup: fsys::StartupMode::Lazy,
             }],
             ..default_component_decl()
@@ -346,12 +346,12 @@ async fn bind_instance_recursive_child() {
             children: vec![
                 ChildDecl {
                     name: "logger".to_string(),
-                    uri: "test:///logger".to_string(),
+                    url: "test:///logger".to_string(),
                     startup: fsys::StartupMode::Lazy,
                 },
                 ChildDecl {
                     name: "netstack".to_string(),
-                    uri: "test:///netstack".to_string(),
+                    url: "test:///netstack".to_string(),
                     startup: fsys::StartupMode::Lazy,
                 },
             ],
@@ -362,7 +362,7 @@ async fn bind_instance_recursive_child() {
     mock_resolver.add_component("netstack", default_component_decl());
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: "test:///root".to_string(),
+        root_component_url: "test:///root".to_string(),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
@@ -372,26 +372,26 @@ async fn bind_instance_recursive_child() {
         await!(model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["system", "logger"])))
             .is_ok()
     );
-    let expected_uris = vec!["test:///logger_resolved".to_string()];
-    assert_eq!(*await!(uris_run.lock()), expected_uris);
+    let expected_urls = vec!["test:///logger_resolved".to_string()];
+    assert_eq!(*await!(urls_run.lock()), expected_urls);
 
     // bind to netstack
     assert!(await!(
         model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["system", "netstack"]))
     )
     .is_ok());
-    let expected_uris =
+    let expected_urls =
         vec!["test:///logger_resolved".to_string(), "test:///netstack_resolved".to_string()];
-    assert_eq!(*await!(uris_run.lock()), expected_uris);
+    assert_eq!(*await!(urls_run.lock()), expected_urls);
 
     // finally, bind to system
     assert!(await!(model.look_up_and_bind_instance(AbsoluteMoniker::new(vec!["system"]))).is_ok());
-    let expected_uris = vec![
+    let expected_urls = vec![
         "test:///logger_resolved".to_string(),
         "test:///netstack_resolved".to_string(),
         "test:///system_resolved".to_string(),
     ];
-    assert_eq!(*await!(uris_run.lock()), expected_uris);
+    assert_eq!(*await!(urls_run.lock()), expected_urls);
 
     // validate children
     let actual_children = await!(get_children(&*model.root_realm));
diff --git a/src/sys/component_manager/src/model/tests/mocks.rs b/src/sys/component_manager/src/model/tests/mocks.rs
index 0d1dda3f3da2878ebe940f58ee0332c3fe7319a0..88c7139f6483bdf622f3eb053c1807f54d57f334 100644
--- a/src/sys/component_manager/src/model/tests/mocks.rs
+++ b/src/sys/component_manager/src/model/tests/mocks.rs
@@ -29,8 +29,8 @@ impl MockResolver {
         MockResolver { components: HashMap::new() }
     }
 
-    async fn resolve_async(&self, component_uri: String) -> Result<fsys::Component, ResolverError> {
-        let caps = NAME_RE.captures(&component_uri).unwrap();
+    async fn resolve_async(&self, component_url: String) -> Result<fsys::Component, ResolverError> {
+        let caps = NAME_RE.captures(&component_url).unwrap();
         let name = &caps[1];
         let decl = self.components.get(name.clone()).ok_or(
             ResolverError::component_not_available(name, format_err!("not in the hashmap")),
@@ -38,7 +38,7 @@ impl MockResolver {
         let fsys_decl =
             fsys::ComponentDecl::try_from(decl.clone()).expect("decl failed conversion");
         Ok(fsys::Component {
-            resolved_uri: Some(format!("test:///{}_resolved", name)),
+            resolved_url: Some(format!("test:///{}_resolved", name)),
             decl: Some(fsys_decl),
             package: None,
         })
@@ -50,13 +50,13 @@ impl MockResolver {
 }
 
 impl Resolver for MockResolver {
-    fn resolve(&self, component_uri: &str) -> FutureObj<Result<fsys::Component, ResolverError>> {
-        FutureObj::new(Box::new(self.resolve_async(component_uri.to_string())))
+    fn resolve(&self, component_url: &str) -> FutureObj<Result<fsys::Component, ResolverError>> {
+        FutureObj::new(Box::new(self.resolve_async(component_url.to_string())))
     }
 }
 
 pub struct MockRunner {
-    pub uris_run: Arc<Mutex<Vec<String>>>,
+    pub urls_run: Arc<Mutex<Vec<String>>>,
     pub namespaces: Arc<Mutex<HashMap<String, fsys::ComponentNamespace>>>,
     pub host_fns: HashMap<String, Box<Fn(ServerEnd<DirectoryMarker>) + Send + Sync>>,
 }
@@ -64,20 +64,20 @@ pub struct MockRunner {
 impl MockRunner {
     pub fn new() -> MockRunner {
         MockRunner {
-            uris_run: Arc::new(Mutex::new(vec![])),
+            urls_run: Arc::new(Mutex::new(vec![])),
             namespaces: Arc::new(Mutex::new(HashMap::new())),
             host_fns: HashMap::new(),
         }
     }
 
     async fn start_async(&self, start_info: fsys::ComponentStartInfo) -> Result<(), RunnerError> {
-        let resolved_uri = start_info.resolved_uri.unwrap();
-        await!(self.uris_run.lock()).push(resolved_uri.clone());
-        await!(self.namespaces.lock()).insert(resolved_uri.clone(), start_info.ns.unwrap());
+        let resolved_url = start_info.resolved_url.unwrap();
+        await!(self.urls_run.lock()).push(resolved_url.clone());
+        await!(self.namespaces.lock()).insert(resolved_url.clone(), start_info.ns.unwrap());
         // If no host_fn was provided, then start_info.outgoing_dir will be
         // automatically closed once it goes out of scope at the end of this
         // function.
-        let host_fn = self.host_fns.get(&resolved_uri);
+        let host_fn = self.host_fns.get(&resolved_url);
         if let Some(host_fn) = host_fn {
             host_fn(start_info.outgoing_dir.unwrap());
         }
diff --git a/src/sys/component_manager/src/model/tests/routing.rs b/src/sys/component_manager/src/model/tests/routing.rs
index 2e2c52b514bd2c0949e3aed3edb3cb31c5efe626..12150976291166b8f781306fde458312d6f7670d 100644
--- a/src/sys/component_manager/src/model/tests/routing.rs
+++ b/src/sys/component_manager/src/model/tests/routing.rs
@@ -54,7 +54,7 @@ async fn use_from_parent() {
                     ],
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -124,7 +124,7 @@ async fn use_from_grandparent() {
                     ],
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -153,7 +153,7 @@ async fn use_from_grandparent() {
                     ],
                     children: vec![ChildDecl {
                         name: "c".to_string(),
-                        uri: "test:///c".to_string(),
+                        url: "test:///c".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -202,7 +202,7 @@ async fn use_from_sibling_no_root() {
                 ComponentDecl {
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -232,12 +232,12 @@ async fn use_from_sibling_no_root() {
                     children: vec![
                         ChildDecl {
                             name: "c".to_string(),
-                            uri: "test:///c".to_string(),
+                            url: "test:///c".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "d".to_string(),
-                            uri: "test:///d".to_string(),
+                            url: "test:///d".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -322,12 +322,12 @@ async fn use_from_sibling_root() {
                     children: vec![
                         ChildDecl {
                             name: "b".to_string(),
-                            uri: "test:///b".to_string(),
+                            url: "test:///b".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "c".to_string(),
-                            uri: "test:///c".to_string(),
+                            url: "test:///c".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -415,12 +415,12 @@ async fn use_from_niece() {
                     children: vec![
                         ChildDecl {
                             name: "b".to_string(),
-                            uri: "test:///b".to_string(),
+                            url: "test:///b".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "c".to_string(),
-                            uri: "test:///c".to_string(),
+                            url: "test:///c".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -444,7 +444,7 @@ async fn use_from_niece() {
                     ],
                     children: vec![ChildDecl {
                         name: "d".to_string(),
-                        uri: "test:///d".to_string(),
+                        url: "test:///d".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -535,12 +535,12 @@ async fn use_kitchen_sink() {
                     children: vec![
                         ChildDecl {
                             name: "b".to_string(),
-                            uri: "test:///b".to_string(),
+                            url: "test:///b".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "c".to_string(),
-                            uri: "test:///c".to_string(),
+                            url: "test:///c".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -577,12 +577,12 @@ async fn use_kitchen_sink() {
                     children: vec![
                         ChildDecl {
                             name: "d".to_string(),
-                            uri: "test:///d".to_string(),
+                            url: "test:///d".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "e".to_string(),
-                            uri: "test:///e".to_string(),
+                            url: "test:///e".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -614,12 +614,12 @@ async fn use_kitchen_sink() {
                     children: vec![
                         ChildDecl {
                             name: "f".to_string(),
-                            uri: "test:///f".to_string(),
+                            url: "test:///f".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "g".to_string(),
-                            uri: "test:///g".to_string(),
+                            url: "test:///g".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -680,7 +680,7 @@ async fn use_kitchen_sink() {
                     }),],
                     children: vec![ChildDecl {
                         name: "h".to_string(),
-                        uri: "test:///h".to_string(),
+                        url: "test:///h".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     },],
                     ..default_component_decl()
@@ -745,7 +745,7 @@ async fn use_from_component_manager_namespace() {
                     ],
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -792,7 +792,7 @@ async fn use_not_offered() {
                     program: None,
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
@@ -860,12 +860,12 @@ async fn use_offer_source_not_exposed() {
                     children: vec![
                         ChildDecl {
                             name: "b".to_string(),
-                            uri: "test:///b".to_string(),
+                            url: "test:///b".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                         ChildDecl {
                             name: "c".to_string(),
-                            uri: "test:///c".to_string(),
+                            url: "test:///c".to_string(),
                             startup: fsys::StartupMode::Lazy,
                         },
                     ],
@@ -917,7 +917,7 @@ async fn use_offer_source_not_offered() {
                 ComponentDecl {
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     },],
                     ..default_component_decl()
@@ -947,7 +947,7 @@ async fn use_offer_source_not_offered() {
                     ],
                     children: vec![ChildDecl {
                         name: "c".to_string(),
-                        uri: "test:///c".to_string(),
+                        url: "test:///c".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     },],
                     ..default_component_decl()
@@ -998,7 +998,7 @@ async fn use_from_expose() {
                     program: None,
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     },],
                     ..default_component_decl()
@@ -1019,7 +1019,7 @@ async fn use_from_expose() {
                     ],
                     children: vec![ChildDecl {
                         name: "c".to_string(),
-                        uri: "test:///c".to_string(),
+                        url: "test:///c".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     },],
                     ..default_component_decl()
@@ -1088,7 +1088,7 @@ async fn offer_from_non_executable() {
                     ],
                     children: vec![ChildDecl {
                         name: "b".to_string(),
-                        uri: "test:///b".to_string(),
+                        url: "test:///b".to_string(),
                         startup: fsys::StartupMode::Lazy,
                     }],
                     ..default_component_decl()
diff --git a/src/sys/component_manager/src/model/tests/routing_test_helpers.rs b/src/sys/component_manager/src/model/tests/routing_test_helpers.rs
index 84aa3426dae21ca1f18592d7b02a5443e584a5a4..513d5992d71928df6361363bad38914e6d8ec28a 100644
--- a/src/sys/component_manager/src/model/tests/routing_test_helpers.rs
+++ b/src/sys/component_manager/src/model/tests/routing_test_helpers.rs
@@ -46,14 +46,14 @@ pub fn default_component_decl() -> ComponentDecl {
     }
 }
 
-/// Returns a cloned DirectoryProxy to the dir `dir_string` inside the namespace of `resolved_uri`.
+/// Returns a cloned DirectoryProxy to the dir `dir_string` inside the namespace of `resolved_url`.
 pub async fn get_dir(
     dir_string: &str,
-    resolved_uri: String,
+    resolved_url: String,
     namespaces: Arc<Mutex<HashMap<String, fsys::ComponentNamespace>>>,
 ) -> DirectoryProxy {
     let mut ns_guard = await!(namespaces.lock());
-    let ns = ns_guard.get_mut(&resolved_uri).unwrap();
+    let ns = ns_guard.get_mut(&resolved_url).unwrap();
 
     // Find the index of our directory in the namespace, and remove the directory and path. The
     // path is removed so that the paths/dirs aren't shuffled in the namespace.
@@ -160,16 +160,16 @@ fn echo_server_fn(server_end: ServerEnd<NodeMarker>) {
     });
 }
 
-/// Looks up `resolved_uri` in the namespace, and attempts to read ${dir_path}/hippo. The file
+/// Looks up `resolved_url` in the namespace, and attempts to read ${dir_path}/hippo. The file
 /// should contain the string "hippo".
 pub async fn read_data(
     path: CapabilityPath,
-    resolved_uri: String,
+    resolved_url: String,
     namespaces: Arc<Mutex<HashMap<String, fsys::ComponentNamespace>>>,
     should_succeed: bool,
 ) {
     let path = path.to_string();
-    let dir_proxy = await!(get_dir(&path, resolved_uri, namespaces));
+    let dir_proxy = await!(get_dir(&path, resolved_url, namespaces));
     let file = PathBuf::from("hippo");
     let file_proxy = io_util::open_file(&dir_proxy, &file).expect("failed to open file");
     let res = await!(io_util::read_file(&file_proxy));
@@ -183,15 +183,15 @@ pub async fn read_data(
     }
 }
 
-/// Looks up `resolved_uri` in the namespace, and attempts to use `path`. Expects the service
+/// Looks up `resolved_url` in the namespace, and attempts to use `path`. Expects the service
 /// to be fidl.examples.echo.Echo.
 async fn call_svc(
     path: CapabilityPath,
-    resolved_uri: String,
+    resolved_url: String,
     namespaces: Arc<Mutex<HashMap<String, fsys::ComponentNamespace>>>,
     should_succeed: bool,
 ) {
-    let dir_proxy = await!(get_dir(&path.dirname, resolved_uri, namespaces));
+    let dir_proxy = await!(get_dir(&path.dirname, resolved_url, namespaces));
     let node_proxy =
         io_util::open_node(&dir_proxy, &PathBuf::from(path.basename), MODE_TYPE_SERVICE)
             .expect("failed to open echo service");
@@ -332,7 +332,7 @@ pub async fn run_routing_test<'a>(test: TestInputs<'a>) {
     }
     resolver.register("test".to_string(), Box::new(mock_resolver));
     let model = Model::new(ModelParams {
-        root_component_uri: format!("test:///{}", test.root_component),
+        root_component_url: format!("test:///{}", test.root_component),
         root_resolver_registry: resolver,
         root_default_runner: Box::new(runner),
     });
diff --git a/src/sys/component_manager/tests/meta/echo_realm.cml b/src/sys/component_manager/tests/meta/echo_realm.cml
index 4f4669173342e1150df641c62ede4ee19efe128d..a34b2e8a4e5bc97ea13adfd16a65c5fbb3f880f1 100644
--- a/src/sys/component_manager/tests/meta/echo_realm.cml
+++ b/src/sys/component_manager/tests/meta/echo_realm.cml
@@ -19,11 +19,11 @@
     "children": [
         {
             "name": "echo_server",
-            "uri": "fuchsia-pkg://fuchsia.com/routing_integration_test#meta/echo_server.cm",
+            "url": "fuchsia-pkg://fuchsia.com/routing_integration_test#meta/echo_server.cm",
         },
         {
             "name": "echo_client",
-            "uri": "fuchsia-pkg://fuchsia.com/routing_integration_test#meta/echo_client.cm",
+            "url": "fuchsia-pkg://fuchsia.com/routing_integration_test#meta/echo_client.cm",
             "startup": "eager",
         },
     ],
diff --git a/src/sys/examples/topology/meta/echo_realm.cml b/src/sys/examples/topology/meta/echo_realm.cml
index 4a7b5046c07c0be7d9fd519853e88bc9b39d8cb2..4cf49ea6f5399d296af7e909b661e9586c480060 100644
--- a/src/sys/examples/topology/meta/echo_realm.cml
+++ b/src/sys/examples/topology/meta/echo_realm.cml
@@ -17,11 +17,11 @@
     "children": [
         {
             "name": "echo_server",
-            "uri": "fuchsia-pkg://fuchsia.com/topology_example#meta/echo_server.cm",
+            "url": "fuchsia-pkg://fuchsia.com/topology_example#meta/echo_server.cm",
         },
         {
             "name": "echo_client",
-            "uri": "fuchsia-pkg://fuchsia.com/topology_example#meta/echo_client.cm",
+            "url": "fuchsia-pkg://fuchsia.com/topology_example#meta/echo_client.cm",
             "startup": "eager",
         },
     ],