From f5f7943d754ebdc074997cc92ca7ac51830952e0 Mon Sep 17 00:00:00 2001 From: vingtetun <21@vingtetun.org> Date: Sun, 29 Jun 2014 13:53:13 +0200 Subject: [PATCH] Merge pull request #21140 from vingtetun/bug1030675.followup Bug 1030675 - Handle search app crashes. Followup. r=kgrandon --- apps/system/js/rocketbar.js | 6 +++++- apps/system/test/unit/rocketbar_test.js | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/system/js/rocketbar.js b/apps/system/js/rocketbar.js index 510efa7ef8dd..7b65edd126ce 100644 --- a/apps/system/js/rocketbar.js +++ b/apps/system/js/rocketbar.js @@ -837,7 +837,7 @@ * @memberof Rocketbar.prototype */ handleSearchCrashed: function(e) { - if (!this._searchWindow) { + if (!this.searchWindow) { return; } @@ -868,6 +868,10 @@ this._port = 'pending'; navigator.mozApps.getSelf().onsuccess = function() { var app = this.result; + if (!app) { + return; + } + app.connect('search').then( function onConnectionAccepted(ports) { ports.forEach(function(port) { diff --git a/apps/system/test/unit/rocketbar_test.js b/apps/system/test/unit/rocketbar_test.js index 87e42c74ba8e..17538bded627 100644 --- a/apps/system/test/unit/rocketbar_test.js +++ b/apps/system/test/unit/rocketbar_test.js @@ -1,6 +1,6 @@ 'use strict'; /* global Rocketbar, MocksHelper, MockAppWindow, MockAppWindowManager, - MockIACPort */ + MockIACPort, MockSearchWindow */ requireApp('system/test/unit/mock_app_window.js'); requireApp('system/test/unit/mock_app_window_manager.js'); @@ -843,8 +843,15 @@ suite('system/Rocketbar', function() { // Dispatch a crash event. window.dispatchEvent(new CustomEvent('searchcrashed')); + + assert.equal(subject.searchWindow, null); + assert.equal(subject._port, null); + subject.loadSearchApp(); assert.ok(spy.calledWithNew); + + assert.ok(subject.searchWindow instanceof MockSearchWindow); + assert.equal(subject._port, 'pending'); }); test('setVisible', function() {