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 319138
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319137
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319136
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319135
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319134
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319133
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319132
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319131
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319130
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319129
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319128
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319127
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319126
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319125
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319124
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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 319123
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +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
37414d1fd5efe1e5771d50f23f0797fdc967ac3c: Bug 1287007 - Remove dead code r=billm
Rob Wu <rob@robwu.nl> - Tue, 06 Sep 2016 15:50:50 -0700 - rev 319122
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +0000
Bug 1287007 - Remove dead code r=billm MozReview-Commit-ID: LtuKY5DjB68
f9da44ff592d2a570c2f501b9e8588351d105aee: Bug 1287007 - Use child's Extension instead of the process' r=billm
Rob Wu <rob@robwu.nl> - Tue, 06 Sep 2016 15:31:33 -0700 - rev 319121
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +0000
Bug 1287007 - Use child's Extension instead of the process' r=billm MozReview-Commit-ID: 9o8tOuUbchn
e3514b399ec46ced8c47c24ed69d15b9cac9c591: Bug 1287007 - Fix test_ext_api_permissions.js r=billm
Rob Wu <rob@robwu.nl> - Wed, 07 Sep 2016 17:10:33 -0700 - rev 319120
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +0000
Bug 1287007 - Fix test_ext_api_permissions.js r=billm "extension.views" will only be available in content, so use the "proxy-context-load" event to detect new views. MozReview-Commit-ID: K86Be5IDk42
6b9a398be651f28216e4693a6151776d73f44156: Bug 1287007 - Use IPC to share viewType, tabId and windowId r=billm
Rob Wu <rob@robwu.nl> - Tue, 06 Sep 2016 15:25:10 -0700 - rev 319119
Push 30861 by cbook@mozilla.com at Mon, 24 Oct 2016 14:54:01 +0000
Bug 1287007 - Use IPC to share viewType, tabId and windowId r=billm Accessing <browser> in ContentChild does not work when extensions run in a separate process. MozReview-Commit-ID: EK0aOYeGaZ5
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip