Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(411)

Unified Diff: pkg/polymer/lib/src/mirror_loader.dart

Issue 293023008: Bring back initPolymer, allow boot.js only if using "polymer_experimental.html". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/polymer/lib/src/mirror_loader.dart
diff --git a/pkg/polymer/lib/src/mirror_loader.dart b/pkg/polymer/lib/src/mirror_loader.dart
index 6e8a2bddc50411fd955e7b6a2df411e24d94da9c..5e1f13da6f5b0bb00fe69e1548928a2a866e3c35 100644
--- a/pkg/polymer/lib/src/mirror_loader.dart
+++ b/pkg/polymer/lib/src/mirror_loader.dart
@@ -22,10 +22,12 @@ import 'dart:collection' show LinkedHashMap;
import 'dart:mirrors';
import 'package:logging/logging.dart' show Logger;
-import 'package:polymer/polymer.dart';
import 'package:observe/src/dirty_check.dart';
+import 'package:polymer/boot.dart' show discoverScripts, ScriptInfo;
Siggi Cherem (dart-lang) 2014/05/22 21:10:41 Q: I wonder if I should just move the code that is
Jennifer Messerly 2014/05/23 07:20:06 I guess the main reason is if you want it to be pu
Siggi Cherem (dart-lang) 2014/05/23 17:56:33 Done. Moved it here. At least now it is structured
+import 'package:polymer/polymer.dart';
+/// Used by code generated from the experimental polymer bootstrap in boot.js.
void startPolymerInDevelopment(List<String> librariesToLoad) {
dirtyCheckZone()..run(() {
startPolymer(discoverInitializers(librariesToLoad), false);
@@ -36,11 +38,16 @@ void startPolymerInDevelopment(List<String> librariesToLoad) {
/// list by crawling HTML imports, searching for script tags, and including an
/// initializer for each type tagged with a [CustomTag] annotation and for each
/// top-level method annotated with [initMethod].
+List<Function> initializers = discoverInitializers(
+ discoverLibrariesToLoad(document, window.location.href));
+
+/// True if we're in deployment mode.
+bool deployMode = false;
/// Discovers what script tags are loaded from HTML pages and collects the
/// initializers of their corresponding libraries.
// Visible for testing only.
-List<Function> discoverInitializers(List<String> librariesToLoad) {
+List<Function> discoverInitializers(Iterable<String> librariesToLoad) {
var initializers = [];
for (var lib in librariesToLoad) {
try {
@@ -54,6 +61,13 @@ List<Function> discoverInitializers(List<String> librariesToLoad) {
return initializers;
}
+Iterable<String> discoverLibrariesToLoad(Document doc, String baseUri) =>
+ discoverScripts(doc, baseUri).map(
+ (info) => _hasPackageUrl(info) ? info.packageUrl : info.resolvedUrl);
+
+bool _hasPackageUrl(ScriptInfo info) =>
+ info.isPackage && _libs[Uri.parse(info.packageUrl)] != null;
+
/// All libraries in the current isolate.
final _libs = currentMirrorSystem().libraries;

Powered by Google App Engine
This is Rietveld 408576698