@ -248,6 +248,10 @@ define([
this . events . on ( 'spec_changed.Kernel' , function ( event , data ) {
that . metadata . kernelspec =
{ name : data . name , display _name : data . spec . display _name } ;
// start session if the current session isn't already correct
if ( ! ( this . session && this . session . kernel && this . session . kernel . name === data . name ) ) {
that . start _session ( data . name ) ;
}
} ) ;
this . events . on ( 'kernel_ready.Kernel' , function ( event , data ) {
@ -1763,19 +1767,6 @@ define([
this . notebook _path = data . path ;
var trusted = true ;
// Trigger an event changing the kernel spec - this will set the default
// codemirror mode
if ( this . metadata . kernelspec !== undefined ) {
// TODO shoudl probably not trigger here,
// should call the kernel selector, or custom.{js|css} not loaded.
if ( this . kernel _selector ) {
// technically not perfect, we should check that the kernelspec matches
this . kernel _selector . change _kernel ( this . metadata . kernelspec . name ) ;
} else {
console . log ( 'do not have handle on kernel_selector' ) ;
}
}
// Set the codemirror mode from language_info metadata
if ( this . metadata . language _info !== undefined ) {
var langinfo = this . metadata . language _info ;
@ -2193,8 +2184,6 @@ define([
this . nbformat _minor = nbmodel . nbformat _minor ;
}
// Create the session after the notebook is completely loaded to prevent
// code execution upon loading, which is a security risk.
if ( this . session === null ) {
var kernel _name ;
if ( this . metadata . kernelspec ) {
@ -2203,7 +2192,14 @@ define([
} else {
kernel _name = utils . get _url _param ( 'kernel_name' ) ;
}
this . start _session ( kernel _name ) ;
if ( kernel _name ) {
// setting kernel_name here triggers start_session
this . kernel _selector . set _kernel ( kernel _name ) ;
} else {
// start a new session with the server's default kernel
// spec_changed events will fire after kernel is loaded
this . start _session ( ) ;
}
}
// load our checkpoint list
this . list _checkpoints ( ) ;