##// END OF EJS Templates
Fix XSS reported on Security list...
Fix XSS reported on Security list No CVE-ID yet August 18, 2015 ----- Reported to Quantopian by Juan Broullón <thebrowfc@gmail.com>... If you create a new folder in the iPython file browser and set Javascript code as its name the code injected will be executed. So, if I create a folder called "><img src=x onerror=alert(document.cookie)> and then I access to it, the cookies will be prompted. The XSS code is also executed if you access a link pointing directly at the folder. jik ------

File last commit:

r20693:04c96998
r21633:3ab41641
Show More
custom.js
82 lines | 2.7 KiB | application/javascript | JavascriptLexer
Matthias BUSSONNIER
document custom.js
r8740 // leave at least 2 line with only a star on it below, or doc generation fails
/**
*
*
* Placeholder for custom user javascript
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * mainly to be overridden in profile/static/custom/custom.js
Matthias BUSSONNIER
document custom.js
r8740 * This will always be an empty file in IPython
*
Matthias Bussonnier
add dot end of sentence.
r20693 * User could add any javascript in the `profile/static/custom/custom.js` file.
Matthias BUSSONNIER
document custom.js
r8740 * It will be executed by the ipython notebook at load time.
*
Brian E. Granger
Fixing path to custom.css in comment.
r10742 * Same thing with `profile/static/custom/custom.css` to inject custom css into the notebook.
dongweiming
Update custom.js for 3.0
r19678 *
*
Matthias Bussonnier
Remove false info in custom.js
r20690 * The object available at load time depend on the version of IPython in use.
* there is no guaranties of API stability.
dongweiming
Update custom.js for 3.0
r19678 *
Matthias Bussonnier
Remove false info in custom.js
r20690 * The example below explain the principle, and might not be valid.
*
* Instances are created after the loading of this file and might need to be accessed using events:
Justin Tyberg
Fix custom.js samples to define requirejs module rather than require it.
r20680 * define([
dongweiming
Update custom.js for 3.0
r19678 * 'base/js/namespace',
* 'base/js/events'
* ], function(IPython, events) {
* events.on("app_initialized.NotebookApp", function () {
* IPython.keyboard_manager....
* });
patricktokeeffe
Update custom.js...
r17548 * });
Matthias BUSSONNIER
Fix layout and add note about custom.css
r8741 *
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 * __Example 1:__
Matthias BUSSONNIER
Fix layout and add note about custom.css
r8741 *
Matthias BUSSONNIER
document custom.js
r8740 * Create a custom button in toolbar that execute `%qtconsole` in kernel
* and hence open a qtconsole attached to the same kernel as the current notebook
*
Justin Tyberg
Fix custom.js samples to define requirejs module rather than require it.
r20680 * define([
dongweiming
Update custom.js for 3.0
r19678 * 'base/js/namespace',
* 'base/js/events'
* ], function(IPython, events) {
* events.on('app_initialized.NotebookApp', function(){
* IPython.toolbar.add_buttons_group([
* {
* 'label' : 'run qtconsole',
* 'icon' : 'icon-terminal', // select your icon from http://fortawesome.github.io/Font-Awesome/icons
* 'callback': function () {
* IPython.notebook.kernel.execute('%qtconsole')
* }
* }
* // add more button here if needed.
* ]);
* });
Matthias BUSSONNIER
document custom.js
r8740 * });
*
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 * __Example 2:__
*
* At the completion of the dashboard loading, load an unofficial javascript extension
dongweiming
Update custom.js for 3.0
r19678 * that is installed in profile/static/custom/
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 *
Justin Tyberg
Fix custom.js samples to define requirejs module rather than require it.
r20680 * define([
dongweiming
Update custom.js for 3.0
r19678 * 'base/js/events'
* ], function(events) {
* events.on('app_initialized.DashboardApp', function(){
* require(['custom/unofficial_extension.js'])
* });
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 * });
*
* __Example 3:__
Matthias BUSSONNIER
Split metadataui into multiple file...
r9057 *
* Use `jQuery.getScript(url [, success(script, textStatus, jqXHR)] );`
* to load custom script into the notebook.
*
* // to load the metadata ui extension example.
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * $.getScript('/static/notebook/js/celltoolbarpresets/example.js');
Matthias BUSSONNIER
Split metadataui into multiple file...
r9057 * // or
* // to load the metadata ui extension to control slideshow mode / reveal js for nbconvert
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * $.getScript('/static/notebook/js/celltoolbarpresets/slideshow.js');
Matthias BUSSONNIER
Split metadataui into multiple file...
r9057 *
*
Matthias BUSSONNIER
document custom.js
r8740 * @module IPython
* @namespace IPython
* @class customjs
* @static
*/