Analyzer 0.27.4-alpha.9 (API fixes) (#26562).

Restores `EmbedderUriResolver` API.

Addresses breakages in `dartdoc` and any other downstream dependencies.

See: https://github.com/dart-lang/sdk/issues/26562.

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2021453003 .
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index c52f5a9..ed02817 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -1640,7 +1640,7 @@
 
     // If no embedded URI resolver was provided, defer to a locator-backed one.
     embedderUriResolver ??= new EmbedderUriResolver(
-        new EmbedderSdk(context.embedderYamlLocator.embedderYamls));
+        context.embedderYamlLocator.embedderYamls);
     if (embedderUriResolver.length == 0) {
       // The embedder uri resolver has no mappings. Use the default Dart SDK
       // uri resolver.
diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart
index 975cd09..44c3595 100644
--- a/pkg/analysis_server/lib/src/context_manager.dart
+++ b/pkg/analysis_server/lib/src/context_manager.dart
@@ -917,8 +917,7 @@
                   .where((r) => r is! DartUriResolver)
                   .toList();
               // Add an embedded URI resolver in its place.
-              resolvers
-                  .add(new EmbedderUriResolver(new EmbedderSdk(embedderYamls)));
+              resolvers.add(new EmbedderUriResolver(embedderYamls));
 
               // Set a new source factory.
               SourceFactoryImpl newFactory = sourceFactory.clone();
@@ -1175,8 +1174,8 @@
     }
 
     // If no embedded URI resolver was provided, defer to a locator-backed one.
-    embedderUriResolver ??= new EmbedderUriResolver(
-        new EmbedderSdk(context.embedderYamlLocator.embedderYamls));
+    embedderUriResolver ??=
+        new EmbedderUriResolver(context.embedderYamlLocator.embedderYamls);
     if (embedderUriResolver.length == 0) {
       // The embedder uri resolver has no mappings. Use the default Dart SDK
       // uri resolver.
diff --git a/pkg/analysis_server/test/context_manager_test.dart b/pkg/analysis_server/test/context_manager_test.dart
index b6a5903..db85fcd 100644
--- a/pkg/analysis_server/test/context_manager_test.dart
+++ b/pkg/analysis_server/test/context_manager_test.dart
@@ -2658,8 +2658,8 @@
     if (currentContext is InternalAnalysisContext) {
       EmbedderYamlLocator embedderYamlLocator =
           (currentContext as InternalAnalysisContext).embedderYamlLocator;
-      EmbedderUriResolver embedderUriResolver = new EmbedderUriResolver(
-          new EmbedderSdk(embedderYamlLocator.embedderYamls));
+      EmbedderUriResolver embedderUriResolver =
+          new EmbedderUriResolver(embedderYamlLocator.embedderYamls);
       if (embedderUriResolver.length > 0) {
         // We have some embedder dart: uri mappings, add the resolver
         // to the list.
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 3e049b7..f02706f 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 0.27.4-alpha.7.1
+* Restore EmbedderUriResolver API.
+
 ## 0.27.4
 
 * Added support for 'analysis_options.yaml' files as an alternative to '.analysis_options' files.
diff --git a/pkg/analyzer/lib/source/embedder.dart b/pkg/analyzer/lib/source/embedder.dart
index a1b4ea6..1b43e00 100644
--- a/pkg/analyzer/lib/source/embedder.dart
+++ b/pkg/analyzer/lib/source/embedder.dart
@@ -43,7 +43,7 @@
 
   EmbedderSdk([Map<Folder, YamlMap> embedderYamls]) {
     embedderYamls?.forEach(_processEmbedderYaml);
-    _resolver = new EmbedderUriResolver(this);
+    _resolver = new EmbedderUriResolver._forSdk(this);
   }
 
   @override
@@ -211,7 +211,11 @@
 
   /// Construct a [EmbedderUriResolver] from a package map
   /// (see [PackageMapProvider]).
-  EmbedderUriResolver(this._embedderSdk) {
+  EmbedderUriResolver(Map<Folder, YamlMap> embedderMap) :
+      this._forSdk(new EmbedderSdk(embedderMap));
+
+  /// (Provisional API.)
+  EmbedderUriResolver._forSdk(this._embedderSdk) {
     _dartUriResolver = new DartUriResolver(_embedderSdk);
   }
 
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 2d03ea2..82bd902 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,5 +1,5 @@
 name: analyzer
-version: 0.27.4-alpha.7
+version: 0.27.4-alpha.7.1
 author: Dart Team <misc@dartlang.org>
 description: Static analyzer for Dart.
 homepage: https://github.com/dart-lang/sdk/tree/master/pkg/analyzer
diff --git a/pkg/analyzer/test/source/embedder_test.dart b/pkg/analyzer/test/source/embedder_test.dart
index 9bc4671..80072b8 100644
--- a/pkg/analyzer/test/source/embedder_test.dart
+++ b/pkg/analyzer/test/source/embedder_test.dart
@@ -40,8 +40,7 @@
       var locator = new EmbedderYamlLocator({
         'fox': [pathTranslator.getResource('/tmp')]
       });
-      var resolver =
-          new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls));
+      var resolver = new EmbedderUriResolver(locator.embedderYamls);
 
       expectResolved(dartUri, posixPath) {
         Source source = resolver.resolveAbsolute(Uri.parse(dartUri));
@@ -67,8 +66,7 @@
       var locator = new EmbedderYamlLocator({
         'fox': [pathTranslator.getResource('/tmp')]
       });
-      var resolver =
-          new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls));
+      var resolver = new EmbedderUriResolver(locator.embedderYamls);
 
       expectRestore(String dartUri, [String expected]) {
         var parsedUri = Uri.parse(dartUri);
@@ -94,8 +92,7 @@
       var locator = new EmbedderYamlLocator({
         'fox': [pathTranslator.getResource('/tmp')]
       });
-      var resolver =
-          new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls));
+      var resolver = new EmbedderUriResolver(locator.embedderYamls);
       var sdk = resolver.dartSdk;
 
       expectSource(String posixPath, String dartUri) {
@@ -114,8 +111,7 @@
       var locator = new EmbedderYamlLocator({
         'fox': [pathTranslator.getResource('/tmp')]
       });
-      var resolver =
-          new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls));
+      var resolver = new EmbedderUriResolver(locator.embedderYamls);
       var sdk = resolver.dartSdk;
       var lib = sdk.getSdkLibrary('dart:fox');
       expect(lib, isNotNull);
@@ -126,8 +122,7 @@
       var locator = new EmbedderYamlLocator({
         'fox': [pathTranslator.getResource('/tmp')]
       });
-      var resolver =
-          new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls));
+      var resolver = new EmbedderUriResolver(locator.embedderYamls);
       var sdk = resolver.dartSdk;
 
       expectSource(String dartUri, String posixPath) {
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index 2c6b74e..4d80c61 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -397,7 +397,7 @@
 
     // Setup embedding.
     EmbedderUriResolver embedderUriResolver =
-        new EmbedderUriResolver(new EmbedderSdk(embedderMap));
+        new EmbedderUriResolver(embedderMap);
     if (embedderUriResolver.length == 0) {
       // The embedder uri resolver has no mappings. Use the default Dart SDK
       // uri resolver.