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

Side by Side Diff: dart/pkg/browser/lib/dart.js

Issue 847573003: Push updates to browser. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Update package:browser version. Created 5 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | dart/pkg/browser/pubspec.yaml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 (function() { 5 (function() {
6 // Bootstrap support for Dart scripts on the page as this script. 6 // Bootstrap support for Dart scripts on the page as this script.
7 // TODO(18463): Remove user agent check. We will remove 'Dart' from there. 7 // TODO(18463): Remove user agent check. We will remove 'Dart' from there.
8 if (!navigator.dartEnabled && (navigator.userAgent.indexOf('(Dart)') === -1)) { 8 if (!navigator.dartEnabled && (navigator.userAgent.indexOf('(Dart)') === -1)) {
9 // TODO: 9 // TODO:
10 // - Support in-browser compilation. 10 // - Support in-browser compilation.
11 // - Handle inline Dart scripts. 11 // - Handle inline Dart scripts.
12 12
13 // Fall back to compiled JS. Run through all the scripts and 13 // Fall back to compiled JS. Run through all the scripts and
14 // replace them if they have a type that indicate that they source 14 // replace them if they have a type that indicate that they source
15 // in Dart code (type="application/dart"). 15 // in Dart code (type="application/dart").
16 var scripts = document.getElementsByTagName("script"); 16 var scripts = document.getElementsByTagName("script");
17 var length = scripts.length; 17 var length = scripts.length;
18 for (var i = 0; i < length; ++i) { 18 for (var i = 0; i < length; ++i) {
19 if (scripts[i].type == "application/dart") { 19 if (scripts[i].type == "application/dart") {
20 // Remap foo.dart to foo.dart.js. 20 // Remap foo.dart to foo.dart.js.
21 if (scripts[i].src && scripts[i].src != '') { 21 if (scripts[i].src && scripts[i].src != '') {
22 var script = document.createElement('script'); 22 var script = document.createElement('script');
23 script.src = scripts[i].src.replace(/\.dart(?=\?|$)/, '.dart.js'); 23 script.src = scripts[i].src.replace(/\.dart(?=\?|$)/, '.dart.js');
24 var parent = scripts[i].parentNode; 24 var parent = scripts[i].parentNode;
25 // TODO(vsm): Find a solution for issue 8455 that works with more 25 // TODO(vsm): Find a solution for issue 8455 that works with more
26 // than one script. 26 // than one script.
27 document.currentScript = script; 27 document.currentScript = script;
28 parent.replaceChild(script, scripts[i]); 28 parent.replaceChild(script, scripts[i]);
29
30 // Support for incremental compilation.
31 script.onload = function (event) {
32 var script = event.target;
33 if (self.$dart_unsafe_incremental_support) {
34 new WebSocket(script.src.replace(/^http/, 'ws')).onmessage =
35 function (event) {
36 var patch = String(event.data);
37 self.$dart_unsafe_incremental_support.patch(patch);
38 script.dispatchEvent(
39 new CustomEvent(
40 "dart_program_updated",
41 { bubbles: true, detail: { patch: patch } }));
42 };
43 }
44 };
29 } 45 }
30 } 46 }
31 } 47 }
32 } 48 }
33 })(); 49 })();
OLDNEW
« no previous file with comments | « no previous file | dart/pkg/browser/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698