c0a8fecacb46f22d16205470dfdeb5e6aea815f8: Bug 1287007 - Fix timing issue in browser_ext_windows_create_tabId.js r=billm
Rob Wu <rob@robwu.nl> - Fri, 21 Oct 2016 01:35:03 +0200 - rev 428734
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix timing issue in browser_ext_windows_create_tabId.js r=billm When tabs.onUpdated is called before the promise of windows.create resolves, the test fails. This test failure was observed on almost every try run with non-e10s, and sometimes (rarely) with e10s. MozReview-Commit-ID: 3znCP1uAUSB
f10221d238ac3f5bb4e0f2a00591291d4ee4cee9: Bug 1287007 - Work-around for test failure in test_ext_cookies.html r=billm
Rob Wu <rob@robwu.nl> - Wed, 12 Oct 2016 19:13:46 +0200 - rev 428733
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Work-around for test failure in test_ext_cookies.html r=billm There is a timing-sensitive bug in window.create and/or cookies API. I haven't figured out the exact details, but created a minimal test case and reported it at bugzil.la/1309637 Without this patch, the test will fail as described in that bug report. MozReview-Commit-ID: DiJOao8h8Q7
434598e8b200a661b6a4dafb667ad9299ed92396: Bug 1287007 - Fix timing issue in browser_ext_contextMenus.js r=billm
Rob Wu <rob@robwu.nl> - Wed, 12 Oct 2016 01:10:33 +0200 - rev 428732
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix timing issue in browser_ext_contextMenus.js r=billm MozReview-Commit-ID: D7No2zFUWjf
424e3fa0b282b076767bbf13d61db59f1b03acae: Bug 1287007 - Adjust state test in browser_ext_windows_update.js on Linux r=kmag
Rob Wu <rob@robwu.nl> - Mon, 03 Oct 2016 01:13:32 +0200 - rev 428731
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Adjust state test in browser_ext_windows_update.js on Linux r=kmag The test/browser/browser_ext_windows_update.js test fails on Linux. The window ID is not expected to change, add assertion for it to eliminate causes for test failures. Ultimately, it turns out that the test failure is caused by a defect in the implementation, not the test itself, see bugzil.la/1307759 MozReview-Commit-ID: Lo8IIvcfYQ2
3915db2d27b13a14d1647ceb5370d6cbc04582e5: Bug 1287007 - Fix timing issue in browser_ext_tabs_onUpdated.js r=billm
Rob Wu <rob@robwu.nl> - Sat, 01 Oct 2016 01:07:22 +0200 - rev 428730
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix timing issue in browser_ext_tabs_onUpdated.js r=billm Reload about:blank tab after opening it and registering the `tabs.onUpdated` event. This is needed because about:blank loads very fast, before the callback of `tabs.create` is invoked. This effect is amplified by the fact that the APIs are now proxied. MozReview-Commit-ID: DgPtIqHSUDx
e6a612e71387531f50d8fab977f3c6151cf2f561: Bug 1287007 - Remove contextMenusInternal.onClicked r=billm
Rob Wu <rob@robwu.nl> - Sat, 01 Oct 2016 00:46:19 +0200 - rev 428729
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Remove contextMenusInternal.onClicked r=billm contextMenusInternal.onClicked is already inlined in context_menus.json. It should be removed because otherwise the `browser.contextMenusInternal.onClicked` API would be generated. MozReview-Commit-ID: LAKd2IGM5GU
daf166cb192a1d04c7a2703d89b5c626f356c070: Bug 1287007 - Fix timing issue in test_delay_update_webextension.js r=rhelmer
Rob Wu <rob@robwu.nl> - Sat, 24 Sep 2016 14:54:53 +0200 - rev 428728
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix timing issue in test_delay_update_webextension.js r=rhelmer The onUpdateAvailable listener is asynchronously notified, so the caller (i.e. the test) cannot assume that a message sent immediately after triggering an update would trigger the `browser.test.onMessage` listener that was added in the onUpdateAvailable event handler. MozReview-Commit-ID: 12n64f5l3RA
2b6e6f6614091834bcadaca619909b2a2033fa5c: Bug 1287007 - Make browser_ext_tabs_executeScript.js reliable r=billm
Rob Wu <rob@robwu.nl> - Thu, 15 Sep 2016 15:53:03 -0700 - rev 428727
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Make browser_ext_tabs_executeScript.js reliable r=billm The ProxyMessenger registers a listener whenever the first addon starts. Although the map does not have any listeners any more at the end of the test, the listener itself is not removed because the message-manager-close notification is not sent for them. So do not count these persistent message managers in the test. The actual message managers of interest are those associated with the (closed) tab. Note: When the test is run in isolation, it may still fail due to bugzil.la/1293583. See bug for work-around if you want to test. MozReview-Commit-ID: IiDHhmvQPcv
437ef72ca3543d70dd1e106830ec5fee02e03d97: Bug 1287007 - Make window.close in extension pages async r=billm
Rob Wu <rob@robwu.nl> - Tue, 13 Sep 2016 20:26:18 -0700 - rev 428726
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Make window.close in extension pages async r=billm Test coverage by tabs.onRemoved + window.close() in: toolkit/components/extensions/test/mochitest/test_ext_tab_teardown.html MozReview-Commit-ID: 7asg2XGrTaQ
919c8b9e2ab4ef7aa51f7cf91c6c738a77e592e2: Bug 1287007 - Remove .contentWindow from ProxyContext r=billm
Rob Wu <rob@robwu.nl> - Tue, 13 Sep 2016 16:02:03 -0700 - rev 428725
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Remove .contentWindow from ProxyContext r=billm MozReview-Commit-ID: ASNigrM07yz
b07b3ad62e31cad6ece15192d2d61965c0ac186d: Bug 1287007 - Fix test_ext_management_uninstall_self.js r=bsilverberg
Rob Wu <rob@robwu.nl> - Tue, 13 Sep 2016 13:59:37 -0700 - rev 428724
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix test_ext_management_uninstall_self.js r=bsilverberg The test logic was broken by design: Two tests uninstall the addon, but only one uninstall observer was used. Consequently, the second test resumes the test before the addon was actually uninstalled. It is probably sheer luck that the test worked before. MozReview-Commit-ID: DcT48ZQ2bRp
851e08a1f368c42fcbe0f1522f22e36690dba0ae: Bug 1287007 - Enable proxying of most APIs. r=billm
Rob Wu <rob@robwu.nl> - Mon, 12 Sep 2016 21:19:53 -0700 - rev 428723
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Enable proxying of most APIs. r=billm MozReview-Commit-ID: KrI42XrsVVG
44c68913ebf56daf3aef3454c615597fef3d62b9: Bug 1287007 - Fix timing issue in test_ext_storage.js r=billm
Rob Wu <rob@robwu.nl> - Tue, 13 Sep 2016 00:45:00 -0700 - rev 428722
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix timing issue in test_ext_storage.js r=billm MozReview-Commit-ID: 63Ra7ThuHuf
f2f75e6e2d607e8a123e2444c2fd9fe9a4e276c8: Bug 1287007 - Fix "onclick" in contextMenus, to child. r=billm
Rob Wu <rob@robwu.nl> - Mon, 12 Sep 2016 18:26:03 -0700 - rev 428721
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Fix "onclick" in contextMenus, to child. r=billm Main thing: Making contextMenus implementation webext-oop compatible. Preparation: - Add getParentEvent to ChildAPIManager to allow use of remote events. - Introduce `addon_parent_only` to "allowedContexts" to only generate a schema API in the main process. - Do not fill in `null` for missing keys if the schema declares a key as `"optional": "omit-key-if-missing"`. This is needed for the second point in the next list. Drive-by fixes: - Ensure that the "onclick" handler is erased when a context closes. - Do not clear the "onclick" handler in `contextMenus.update` if the onclick key has been omitted (parity with Chrome). - Remove some unnecessary `Promise.resolve()` - Add extensive set of tests that check the behavior of the contextMenus APIs with regards to the onclick attribute in various scenarios. MozReview-Commit-ID: A5f3AUQzU8T
4c43afedf60f8852f0a1729123af998da103f50b: Bug 1287007 - Move part of browserAction and pageAction to child r=billm
Rob Wu <rob@robwu.nl> - Sun, 11 Sep 2016 04:18:35 -0700 - rev 428720
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Move part of browserAction and pageAction to child r=billm And remove redundant `Promise.resolve()` because it is the default for async functions. setIcon is not supported on Android, so there was no need to change mobile/android/components/extensions/ext-pageAction.js. MozReview-Commit-ID: 94ebaJFxLAi
09fa6078095c96453fb793ee97755cc3c66a986c: Bug 1287007 - Set parent cloneScope to child cloneScope r=billm
Rob Wu <rob@robwu.nl> - Sun, 11 Sep 2016 03:10:21 -0700 - rev 428719
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Set parent cloneScope to child cloneScope r=billm This is only to help with migration. This change allows all APIs to behave identical regardless of whether the API is proxied. Change cloneScope to be a getter because cloneScope is `this.contentWindow`, which may be nulled when the context navigates away (but stays in the bfcache). Any API that is not proxied must have an identical clone scope to make sure that properties such as toJSON (in the native messaging stringifier) and ArrayBuffer (in webRequest as requestBody) are visible to the caller. MozReview-Commit-ID: 9aT3SUBieHK
54c25251246826c4bca1af8208ddbb0dcb4da0b2: Bug 1287007 - Track message manager / browser swaps r=billm
Rob Wu <rob@robwu.nl> - Fri, 09 Sep 2016 23:04:04 -0700 - rev 428718
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Track message manager / browser swaps r=billm Neither the message manager nor the XUL browser is guaranteed to be constant during a ProxyContext's lifetime. Add a new class to follow the `<browser>` belonging to the current docshell and update the ProxyContext properties as needed. NOTE: The `BrowserDocshellFollower` class assumes that docshells are swapped using `newBrowser.swapDocShells(oldBrowser)`. If this assumption turns out to be false, then the tracker will lose track of the `<browser>`. See bugzil.la/1301837 for more details. Also, renamed `messageManager` to `currentMessageManager` because the `messageManager` property is overwritten by the `setContentWindow` hack in WannabeChildAPIManager in ExtensionChild.jsm. browser/components/extensions/test/browser/browser_ext_currentWindow.js provides test coverage for this feature once the `test` API goes through a ChildAPIManager instead of directly through a WannabeChildAPIManager. Why? Because that test calls `test.onMessage.addListener` in the script that is loaded in a popup page. Popups are loaded in two stages: First the content is preloaded in a `<browser>`, and then when the popup is shown a new `<browser>` is created and the docshells are swapped. When the script runs while the popup script is being preloaded, the `ParentAPIManager` receives the IPC message with the target set to the `<browser>` used for preloading. When the API response is ready, `target.messageManager.sendAsyncMessage` is called. Meanwhile the docshells have been swapped, the message manager is gone and this fails. With this patch, the message manager is correctly tracked and this test passes. MozReview-Commit-ID: C5Z0ZJRXKyw
709a07bf036212cc6f667eca11b1ae9d585c79d0: Bug 1287007 - Use frame script to initialize background/popup page r=billm
Rob Wu <rob@robwu.nl> - Thu, 08 Sep 2016 20:41:43 -0700 - rev 428717
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Use frame script to initialize background/popup page r=billm MozReview-Commit-ID: 8Di1nTnwpbU
fca5d1ec8c26491ea887e2e6f80cac8a3e32419b: Bug 1287007 - Only close extension tabs upon shutdown r=billm
Rob Wu <rob@robwu.nl> - Thu, 08 Sep 2016 19:02:56 -0700 - rev 428716
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Only close extension tabs upon shutdown r=billm In one of the previous patches, the viewType of popup changed from "popup" to "tab". As a result it was closed by the `page-shutdown` event handler in ext-tabs.js. This prevents that from happening. Also added a test that checks whether the options page type is a tab, to prevent future regressions. MozReview-Commit-ID: 3Qcf08PgNqb
817299c12d6d608a2e5c6a2badc2f952414e43ab: Bug 1287007 - Set the principal in ChildAPIManager r=billm
Rob Wu <rob@robwu.nl> - Wed, 07 Sep 2016 20:35:39 -0700 - rev 428715
Push 33405 by bcampen@mozilla.com at Mon, 24 Oct 2016 15:32:53 +0000
Bug 1287007 - Set the principal in ChildAPIManager r=billm The `browser.downloads.download` API takes a "url" parameter. The schema file at downloads.json defines the type to be "url". This means that the parameter is checked with `context.checkLoadURL(url)` in Schemas.jsm. This method uses the principal of the object that was passed to `Schemas.inject`. Currently, this works just fine because the `schemaWrapper` in Extension.jsm returns the context's principal. But when we move to using the ChildAPIManager, the principal is not defined and Schemas.jsm will fall back to a Null principal. As a result, the test_ext_downloads_download.js fails because the blob:-URL with the extension origin cannot be loaded by a null principal. To fix this, the context's principal must be set. MozReview-Commit-ID: FmpqYfPemyY
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 tip