From f5108ba043ec0a7c0d48f47aea6082fa0d735a1c Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Wed, 29 Oct 2014 22:51:12 -0700 Subject: [PATCH] Move closure-library-read-only to closure-library (due to the Closure project's move). --- README.md | 2 +- appengine/README.txt | 2 +- appengine/app.yaml | 8 +++++-- blockly_compressed.js | 43 +++++++++++++++++----------------- blockly_uncompressed.js | 2 +- build.py | 6 ++--- core/blockly.js | 2 +- core/css.js | 2 +- demos/blockfactory/blocks.js | 2 +- demos/blockfactory/preview.js | 9 +++---- demos/fixed/icon.png | Bin 2130 -> 2114 bytes msg/json/en.json | 2 +- tests/blockly_test.html | 2 +- 13 files changed, 43 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index ff4c190b7..ac7a02068 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Blockly -Google's Blockly is a web-based, graphical programming editor. Users can drag +Google's Blockly is a web-based, visual programming editor. Users can drag blocks together to build a programs. All code is free and open source. **The project page is https://developers.google.com/blockly/** diff --git a/appengine/README.txt b/appengine/README.txt index 2ee304391..2d6d8342e 100644 --- a/appengine/README.txt +++ b/appengine/README.txt @@ -16,7 +16,7 @@ blockly/ |- README.txt |- storage.js |- storage.py - |- closure-library-read-only/ (Optional) + |- closure-library/ (Optional) `- static/ |- apps/ |- blocks/ diff --git a/appengine/app.yaml b/appengine/app.yaml index 14b050c12..88287c466 100644 --- a/appengine/app.yaml +++ b/appengine/app.yaml @@ -62,6 +62,10 @@ handlers: - url: /static/apps/turtle/(de|en|hu|vi)\.html static_files: redirect.html upload: redirect.html +# Block Factory moved from apps to demos on 16 Oct 2014. +- url: /static/apps/blockfactory/.* + static_files: redirect.html + upload: redirect.html # Storage API. @@ -79,8 +83,8 @@ handlers: secure: always # Closure library for uncompiled Blockly. -- url: /closure-library-read-only - static_dir: closure-library-read-only +- url: /closure-library + static_dir: closure-library secure: always # Redirect for root directory. diff --git a/blockly_compressed.js b/blockly_compressed.js index ed11baaa6..92aefc07c 100644 --- a/blockly_compressed.js +++ b/blockly_compressed.js @@ -4,17 +4,17 @@ var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}}; goog.define=function(a,b){var c=b;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?c=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(c=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,c)};goog.DEBUG=!0;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1; goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(".")))&&!goog.getObjectByName(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)}; -goog.module=function(a){if(!goog.isString(a)||!a)throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.moduleLoaderState_=null; -goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.exportTestMethods=function(){if(!goog.isInModuleLoader_())throw Error("goog.module.exportTestMethods must be called from within a goog.module");goog.moduleLoaderState_.exportTestMethods=!0};goog.setTestOnly=function(a){if(COMPILED&&!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){}; -COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={"goog.module":!0});goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]}; -goog.addDependency=function(a,b,c,d){if(goog.DEPENDENCIES_ENABLED){var e;a=a.replace(/\\/g,"/");for(var f=goog.dependencies_,g=0;e=b[g];g++)f.nameToPath[e]=a,f.pathIsModule[a]=!!d;for(d=0;b=c[d];d++)a in f.requires||(f.requires[a]={}),f.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)}; -goog.require=function(a){if(!COMPILED){if(goog.isProvided_(a))return goog.isInModuleLoader_()?a in goog.loadedModules_?goog.loadedModules_[a]:goog.getObjectByName(a):null;if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)return goog.included_[b]=!0,goog.writeScripts_(),null}a="goog.require could not find: "+a;goog.logToConsole_(a);throw Error(a);}};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a,b){return a}; -goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER; +goog.module=function(a){if(!goog.isString(a)||!a)throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)}; +goog.module.getInternal_=function(a){if(!COMPILED)return goog.isProvided_(a)?a in goog.loadedModules_?goog.loadedModules_[a]:goog.getObjectByName(a):null};goog.moduleLoaderState_=null;goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareTestMethods=function(){if(!goog.isInModuleLoader_())throw Error("goog.module.declareTestMethods must be called from within a goog.module");goog.moduleLoaderState_.declareTestMethods=!0}; +goog.setTestOnly=function(a){if(COMPILED&&!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={"goog.module":!0}); +goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};goog.addDependency=function(a,b,c,d){if(goog.DEPENDENCIES_ENABLED){var e;a=a.replace(/\\/g,"/");for(var f=goog.dependencies_,g=0;e=b[g];g++)f.nameToPath[e]=a,f.pathIsModule[a]=!!d;for(d=0;b=c[d];d++)a in f.requires||(f.requires[a]={}),f.requires[a][b]=!0}}; +goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};goog.require=function(a){if(!COMPILED){if(goog.isProvided_(a))return goog.isInModuleLoader_()?goog.module.getInternal_(a):null;if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)return goog.included_[b]=!0,goog.writeScripts_(),null}a="goog.require could not find: "+a;goog.logToConsole_(a);throw Error(a);}};goog.basePath="";goog.nullFunction=function(){}; +goog.identityFunction=function(a,b){return a};goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER; goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathIsModule:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?c.length: d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a,b){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(a,b)&&(goog.dependencies_.written[a]=!0)},goog.IS_OLD_IE_=goog.global.document&&goog.global.document.all&&!goog.global.atob,goog.importModule_=function(a){goog.importScript_("",'goog.retrieveAndExecModule_("'+a+'");')&&(goog.dependencies_.written[a]=!0)},goog.queuedModules_=[],goog.retrieveAndExecModule_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT|| goog.writeScriptTag_,c=null,d=new goog.global.XMLHttpRequest;d.onload=function(){c=this.responseText};d.open("get",a,!1);d.send();c=d.responseText;if(null!=c)d=goog.wrapModule_(a,c),goog.IS_OLD_IE_?goog.queuedModules_.push(d):b(a,d),goog.dependencies_.written[a]=!0;else throw Error("load of "+a+"failed");},goog.wrapModule_=function(a,b){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(b+"\n//# sourceURL="+a+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+ -b+"\n;return exports});\n//# sourceURL="+a+"\n"},goog.loadQueuedModules_=function(){var a=goog.queuedModules_.length;if(0\x3c/script>")):c.write(''); // Load fresh Closure Library. document.write(''); + '/../closure-library/closure/goog/base.js">'); document.write(''); diff --git a/build.py b/build.py index 40215304d..39032f714 100755 --- a/build.py +++ b/build.py @@ -129,7 +129,7 @@ delete window.BLOCKLY_BOOT; document.write(''); // Load fresh Closure Library. document.write(''); + '/../closure-library/closure/goog/base.js">'); document.write(''); """) f.close() @@ -404,13 +404,13 @@ class Gen_langfiles(threading.Thread): if __name__ == '__main__': try: calcdeps = import_path(os.path.join(os.path.pardir, - 'closure-library-read-only', 'closure', 'bin', 'calcdeps.py')) + 'closure-library', 'closure', 'bin', 'calcdeps.py')) except ImportError: print("""Error: Closure not found. Read this: https://developers.google.com/blockly/hacking/closure""") sys.exit(1) search_paths = calcdeps.ExpandDirectories( - ['core', os.path.join(os.path.pardir, 'closure-library-read-only')]) + ['core', os.path.join(os.path.pardir, 'closure-library')]) # Run both tasks in parallel threads. # Uncompressed is limited by processor speed. diff --git a/core/blockly.js b/core/blockly.js index 4b5718f46..0724ceffc 100644 --- a/core/blockly.js +++ b/core/blockly.js @@ -631,7 +631,7 @@ Blockly.setCursorHand_ = function(closed) { } /* Hotspot coordinates are baked into the CUR file, but they are still required due to a Chrome bug. - http://code.google.com/p/chromium/issues/detail?id=1446 */ + https://code.google.com/p/chromium/issues/detail?id=1446 */ var cursor = ''; if (closed) { cursor = 'url(' + Blockly.pathToBlockly + 'media/handclosed.cur) 7 3, auto'; diff --git a/core/css.js b/core/css.js index d2572e248..2060b6cb8 100644 --- a/core/css.js +++ b/core/css.js @@ -64,7 +64,7 @@ Blockly.Css.CONTENT = [ /* Hotspot coordinates are baked into the CUR file, but they are still required in the CSS due to a Chrome bug. - http://code.google.com/p/chromium/issues/detail?id=1446 + https://code.google.com/p/chromium/issues/detail?id=1446 */ ' cursor: url(<<>>/media/handopen.cur) 8 5, auto;', '}', diff --git a/demos/blockfactory/blocks.js b/demos/blockfactory/blocks.js index b5b7edeb4..6ff5d59b2 100644 --- a/demos/blockfactory/blocks.js +++ b/demos/blockfactory/blocks.js @@ -430,7 +430,7 @@ Blockly.Blocks['field_image'] = { // Image. init: function() { this.setColour(160); - var src = 'http://www.gstatic.com/codesite/ph/images/star_on.gif'; + var src = 'https://www.gstatic.com/codesite/ph/images/star_on.gif'; this.appendDummyInput() .appendField('image') .appendField(new Blockly.FieldTextInput(src), 'SRC'); diff --git a/demos/blockfactory/preview.js b/demos/blockfactory/preview.js index 375c3ef8b..3cec465d0 100644 --- a/demos/blockfactory/preview.js +++ b/demos/blockfactory/preview.js @@ -55,10 +55,10 @@ function init() { var rtl = (document.location.search == '?rtl'); Blockly.inject(document.body, {path: '../../', rtl: rtl}); - if (window.parent.initPreview) { + try { // Let the top-level application know that Blockly is ready. window.parent.initPreview(updateFunc); - } else { + } catch (e) { // Attempt to diagnose the problem. var msg = 'Error: Unable to communicate between frames.\n' + 'The preview frame will not be functional.\n\n'; @@ -66,8 +66,9 @@ function init() { msg += 'Try loading index.html instead of preview.html'; } else if (window.location.protocol == 'file:') { msg += 'This may be due to a security restriction preventing\n' + - 'access when using the file:// protocol.\n' + - 'http://code.google.com/p/chromium/issues/detail?id=47416'; + 'access when using the file:// protocol.\n\n' + + 'Try using a different browser, or use the Block Factory online at:\n' + + 'https://blockly-demo.appspot.com/static/demos/blockfactory/index.html'; } alert(msg); } diff --git a/demos/fixed/icon.png b/demos/fixed/icon.png index 01f251d5934ef96ee59e86029fdfc7dab0b1dec5..1158acf01762bff32a93f320e694882ff80f81ca 100644 GIT binary patch delta 2095 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 diff --git a/msg/json/en.json b/msg/json/en.json index 43be4be0d..0a8e0ae6d 100644 --- a/msg/json/en.json +++ b/msg/json/en.json @@ -1,7 +1,7 @@ { "@metadata": { "author": "Ellen Spertus ", - "lastupdated": "2014-10-15 14:35:50.042113", + "lastupdated": "2014-10-29 22:38:54.997396", "locale": "en", "messagedocumentation" : "qqq" }, diff --git a/tests/blockly_test.html b/tests/blockly_test.html index 6c5af47c6..40d3a4482 100644 --- a/tests/blockly_test.html +++ b/tests/blockly_test.html @@ -3,7 +3,7 @@ Unit Tests for Blockly - +