diff --git a/src/LiveDevelopment/LiveDevelopment.js b/src/LiveDevelopment/LiveDevelopment.js index 8b9794d6d61..67b4d4d647b 100644 --- a/src/LiveDevelopment/LiveDevelopment.js +++ b/src/LiveDevelopment/LiveDevelopment.js @@ -572,7 +572,7 @@ define(function LiveDevelopment(require, exports, module) { function _onDetached(event, res) { // If there already is a reason for closing the session, do not overwrite it - if (!_closeReason) { + if (!_closeReason && res && res.reason) { // Get the explanation from res.reason, e.g. "replaced_with_devtools", "target_closed", "canceled_by_user" // Examples taken from https://chromiumcodereview.appspot.com/10947037/patch/12001/13004 // However, the link refers to the Chrome Extension API, it may not apply 100% to the Inspector API diff --git a/src/preferences/PreferencesDialogs.js b/src/preferences/PreferencesDialogs.js index 8b8a50b9e66..d00305a201c 100644 --- a/src/preferences/PreferencesDialogs.js +++ b/src/preferences/PreferencesDialogs.js @@ -85,22 +85,23 @@ define(function (require, exports, module) { $baseUrlControl, dialog; - dialog = Dialogs.showModalDialogUsingTemplate(Mustache.render(SettingsDialogTemplate, Strings)) - .done(function (id) { - if (id === Dialogs.DIALOG_BTN_OK) { - var baseUrlValue = $baseUrlControl.val(); - var result = _validateBaseUrl(baseUrlValue); - if (result === "") { - ProjectManager.setBaseUrl(baseUrlValue); - } else { - // Re-invoke dialog with result (error message) - showProjectPreferencesDialog(baseUrlValue, result); - } + dialog = Dialogs.showModalDialogUsingTemplate(Mustache.render(SettingsDialogTemplate, Strings)); + + dialog.done(function (id) { + if (id === Dialogs.DIALOG_BTN_OK) { + var baseUrlValue = $baseUrlControl.val(); + var result = _validateBaseUrl(baseUrlValue); + if (result === "") { + ProjectManager.setBaseUrl(baseUrlValue); + } else { + // Re-invoke dialog with result (error message) + showProjectPreferencesDialog(baseUrlValue, result); } - }); + } + }); // Populate project settings - $dlg = $(".project-settings-dialog.instance"); + $dlg = dialog.getElement(); // Title $title = $dlg.find(".dialog-title"); diff --git a/src/project/ProjectManager.js b/src/project/ProjectManager.js index c1f171ab6f1..9eaf427dc0c 100644 --- a/src/project/ProjectManager.js +++ b/src/project/ProjectManager.js @@ -1104,10 +1104,10 @@ define(function (require, exports, module) { /** * Invoke project settings dialog. - * @return {Dialog} + * @return {$.Promise} */ function _projectSettings() { - return PreferencesDialogs.showProjectPreferencesDialog(getBaseUrl()); + return PreferencesDialogs.showProjectPreferencesDialog(getBaseUrl()).getPromise(); } /**