Version 1.17.0-dev.6.1

Cherry-pick 'fba5cbc425e54b015d9ffefac4e0789d5502846c' into dev
Cherry-pick '5a9b6003605bdf864ae9f4c9c4b709efcda9fe0b' into dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1476317..ca849bd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -31,6 +31,9 @@
   * A bug has been fixed in which `pub get --offline` would crash when a
     prerelease version was selected.
 
+* Dartium and content shell
+  * Debugging Dart code inside iframes improved, was broken.
+
 ## 1.16.0 - 2016-04-26
 
 ### Core library changes
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.
diff --git a/tools/VERSION b/tools/VERSION
index 56c1ccb..7055357 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 17
 PATCH 0
 PRERELEASE 6
-PRERELEASE_PATCH 0
+PRERELEASE_PATCH 1
diff --git a/tools/deps/dartium.deps/DEPS b/tools/deps/dartium.deps/DEPS
index f1fa97c..8c8343c 100644
--- a/tools/deps/dartium.deps/DEPS
+++ b/tools/deps/dartium.deps/DEPS
@@ -9,7 +9,7 @@
 
 vars.update({
   "dartium_chromium_commit": "b6b6b76417ce80120ee48b662a7c7ef257723494",
-  "dartium_webkit_commit": "ca3b07f5929e6adb390901b31db634f4dfe0d2bf",
+  "dartium_webkit_commit": "586bcb7d9e5c46c84a3c9d1f43f26343da78548a",
   "chromium_base_revision": "338390",
 
   # We use mirrors of all github repos to guarantee reproducibility and