From 207fa92e87ac532c5f6ed31d186e42ca6ae2e835 Mon Sep 17 00:00:00 2001 From: Jonathan Griffin Date: Fri, 2 Nov 2012 15:19:57 -0700 Subject: [PATCH 1/4] Bug 806138 - Disable permaorange test_voicemail_statuschanged.py, DONTBUILD(NPOTB) --- dom/telephony/test/marionette/manifest.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dom/telephony/test/marionette/manifest.ini b/dom/telephony/test/marionette/manifest.ini index b6e2ae6c283..cd2484582c2 100644 --- a/dom/telephony/test/marionette/manifest.ini +++ b/dom/telephony/test/marionette/manifest.ini @@ -16,7 +16,7 @@ qemu = true #[test_outgoing_busy.js] #expectedfailure = true [test_outgoing_reject.js] -[test_voicemail_statuschanged.py] +# [test_voicemail_statuschanged.py] - Bug 806138 [test_voicemail_number.js] [test_incoming_hold_resume.js] # Bug 790463 From 39d5a7ad623ad8a7ab384950e5afa61f98163fae Mon Sep 17 00:00:00 2001 From: Zach Carter Date: Fri, 2 Nov 2012 19:48:57 -0400 Subject: [PATCH 2/4] Bug 804143 - [Identity] Make id flow OOP. r=benadida --- b2g/chrome/content/identity.js | 28 ++-------------------------- b2g/components/SignInToWebsite.jsm | 14 +++++++++++++- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/b2g/chrome/content/identity.js b/b2g/chrome/content/identity.js index ce1295e58bf..7e3516e899a 100644 --- a/b2g/chrome/content/identity.js +++ b/b2g/chrome/content/identity.js @@ -33,7 +33,6 @@ log("\n\n======================= identity.js =======================\n\n"); // This script may be injected more than once into an iframe. // Ensure we don't redefine contstants if (typeof kIdentityJSLoaded === 'undefined') { - const kReceivedIdentityAssertion = "received-id-assertion"; const kIdentityDelegateWatch = "identity-delegate-watch"; const kIdentityDelegateRequest = "identity-delegate-request"; const kIdentityDelegateLogout = "identity-delegate-logout"; @@ -66,33 +65,10 @@ function identityCall(message) { * destroys our context. */ function closeIdentityDialog() { - let randomId = uuidgen.generateUUID().toString(); - let id = kReceivedIdentityAssertion + "-" + randomId; - let browser = Services.wm.getMostRecentWindow("navigator:browser"); - - let detail = { - type: kReceivedIdentityAssertion, - id: id, - showUI: showUI - }; - - // In order to avoid race conditions, we wait for the UI to notify that - // it has successfully closed the identity flow and has recovered the - // caller app, before notifying the parent process. - content.addEventListener("mozContentEvent", function closeIdentityDialogFinished(evt) { - content.removeEventListener("mozContentEvent", closeIdentityDialogFinished); - - if (evt.detail.id == id && aCallback) { - aCallback(); - } - }); - - // tell gecko we're done. fire and forget. + log('ready to close'); + // tell gecko we're done. func = null; options = null; sendAsyncMessage(kIdentityDelegateFinished); - - // tell gaia to shut us down - browser.shell.sendChromeEvent(detail); } /* diff --git a/b2g/components/SignInToWebsite.jsm b/b2g/components/SignInToWebsite.jsm index 5d4ebfd6da4..c04b6cee919 100644 --- a/b2g/components/SignInToWebsite.jsm +++ b/b2g/components/SignInToWebsite.jsm @@ -92,6 +92,7 @@ const kOpenIdentityDialog = "open-id-dialog"; const kCloseIdentityDialog = "close-id-dialog"; // Observer messages to communicate to shim +const kReceivedIdentityAssertion = "received-id-assertion"; const kIdentityDelegateWatch = "identity-delegate-watch"; const kIdentityDelegateRequest = "identity-delegate-request"; const kIdentityDelegateLogout = "identity-delegate-logout"; @@ -218,9 +219,20 @@ let Pipe = { // If we receive a "finished" event, then the delegate is done, so // we shut down the pipe and clean up. mm.addMessageListener(kIdentityControllerDoMethod, aMessageCallback); - mm.addMessageListener(kIdentityDelegateFinished, function identityDelegateFinished(message) { + mm.addMessageListener(kIdentityDelegateFinished, function identityDelegateFinished() { + // clean up listeners mm.removeMessageListener(kIdentityDelegateFinished, identityDelegateFinished); mm.removeMessageListener(kIdentityControllerDoMethod, aMessageCallback); + + let id = kReceivedIdentityAssertion + "-" + getRandomId(); + let detail = { + type: kReceivedIdentityAssertion, + showUI: aGaiaOptions.showUI || false, + id: id + }; + log('tell gaia to close the dialog'); + // tell gaia to close the dialog + GaiaInterface.sendChromeEvent(detail); }); mm.sendAsyncMessage(aGaiaOptions.message, aRpOptions); From de1a8c19b05b1ed695521076195e5abcc63309c3 Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Fri, 2 Nov 2012 19:50:54 -0400 Subject: [PATCH 3/4] Bug 807056 - BrowserElement* purgeHistory(). r=jlebar --- dom/browser-element/BrowserElementChild.js | 15 ++++ dom/browser-element/BrowserElementParent.js | 6 ++ dom/browser-element/mochitest/Makefile.in | 3 + .../mochitest/browserElement_PurgeHistory.js | 87 +++++++++++++++++++ ...st_browserElement_inproc_PurgeHistory.html | 13 +++ .../test_browserElement_oop_PurgeHistory.html | 13 +++ 6 files changed, 137 insertions(+) create mode 100644 dom/browser-element/mochitest/browserElement_PurgeHistory.js create mode 100644 dom/browser-element/mochitest/test_browserElement_inproc_PurgeHistory.html create mode 100644 dom/browser-element/mochitest/test_browserElement_oop_PurgeHistory.html diff --git a/dom/browser-element/BrowserElementChild.js b/dom/browser-element/BrowserElementChild.js index a94da1160ca..b3d18ed241f 100644 --- a/dom/browser-element/BrowserElementChild.js +++ b/dom/browser-element/BrowserElementChild.js @@ -120,6 +120,7 @@ BrowserElementChild.prototype = { addMessageListener('browser-element-api:' + msg, handler.bind(self)); } + addMsgListener("purge-history", this._recvPurgeHistory); addMsgListener("get-screenshot", this._recvGetScreenshot); addMsgListener("set-visible", this._recvSetVisible); addMsgListener("send-mouse-event", this._recvSendMouseEvent); @@ -451,6 +452,20 @@ BrowserElementChild.prototype = { sendAsyncMsg("scroll", { top: win.scrollY, left: win.scrollX }); }, + _recvPurgeHistory: function(data) { + debug("Received purgeHistory message: (" + data.json.id + ")"); + + let history = docShell.QueryInterface(Ci.nsIWebNavigation).sessionHistory; + + try { + if (history && history.count) { + history.PurgeHistory(history.count); + } + } catch(e) {} + + sendAsyncMsg('got-purge-history', { id: data.json.id, successRv: true }); + }, + _recvGetScreenshot: function(data) { debug("Received getScreenshot message: (" + data.json.id + ")"); diff --git a/dom/browser-element/BrowserElementParent.js b/dom/browser-element/BrowserElementParent.js index 12c7a31f9b4..bc67c5b48e8 100644 --- a/dom/browser-element/BrowserElementParent.js +++ b/dom/browser-element/BrowserElementParent.js @@ -215,6 +215,7 @@ function BrowserElementParent(frameLoader, hasRemoteFrame) { addMessageListener("firstpaint", this._fireEventFromMsg); addMessageListener("keyevent", this._fireKeyEvent); addMessageListener("showmodalprompt", this._handleShowModalPrompt); + addMessageListener('got-purge-history', this._gotDOMRequestResult); addMessageListener('got-screenshot', this._gotDOMRequestResult); addMessageListener('got-can-go-back', this._gotDOMRequestResult); addMessageListener('got-can-go-forward', this._gotDOMRequestResult); @@ -254,6 +255,7 @@ function BrowserElementParent(frameLoader, hasRemoteFrame) { defineMethod('goForward', this._goForward); defineMethod('reload', this._reload); defineMethod('stop', this._stop); + defineMethod('purgeHistory', this._purgeHistory); defineMethod('getScreenshot', this._getScreenshot); defineDOMRequestMethod('getCanGoBack', 'get-can-go-back'); defineDOMRequestMethod('getCanGoForward', 'get-can-go-forward'); @@ -576,6 +578,10 @@ BrowserElementParent.prototype = { this._sendAsyncMsg('stop'); }, + _purgeHistory: function() { + return this._sendDOMRequest('purge-history'); + }, + _getScreenshot: function(_width, _height) { let width = parseInt(_width); let height = parseInt(_height); diff --git a/dom/browser-element/mochitest/Makefile.in b/dom/browser-element/mochitest/Makefile.in index 70d5ecb46c7..f7c39f438c6 100644 --- a/dom/browser-element/mochitest/Makefile.in +++ b/dom/browser-element/mochitest/Makefile.in @@ -150,6 +150,8 @@ MOCHITEST_FILES = \ file_post_request.html \ test_browserElement_inproc_ReloadPostRequest.html \ browserElement_ReloadPostRequest.js \ + browserElement_PurgeHistory.js \ + test_browserElement_inproc_PurgeHistory.html \ $(NULL) # Disabled due to https://bugzilla.mozilla.org/show_bug.cgi?id=774100 @@ -216,6 +218,7 @@ MOCHITEST_FILES += \ test_browserElement_oop_ExposableURI.html \ test_browserElement_oop_FrameWrongURI.html \ test_browserElement_oop_ReloadPostRequest.html \ + test_browserElement_oop_PurgeHistory.html \ $(NULL) endif #} endif #} diff --git a/dom/browser-element/mochitest/browserElement_PurgeHistory.js b/dom/browser-element/mochitest/browserElement_PurgeHistory.js new file mode 100644 index 00000000000..288d6c516c9 --- /dev/null +++ b/dom/browser-element/mochitest/browserElement_PurgeHistory.js @@ -0,0 +1,87 @@ +/* Any copyright is dedicated to the public domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Bug 807056 - [Browser] Clear History doesn't clear back/forward history in open tabs +//