a63f1b6ad722cd2c3e2834dc52e280c3be024e7a: Bug 1287007 - Introduce ChildAPIManager to addon code draft
Rob Wu <rob@robwu.nl> - Mon, 05 Sep 2016 18:57:38 -0700 - rev 411553
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Introduce ChildAPIManager to addon code This is the bare minimum to separate the generation of addon_parent and addon_child APIs. Now it is possible to have methods with the same name but different implementations in the parent and child. Many APIs are not compatible with the proxied API implementation, so they temporarily fall back to directly invoking the parent API, just as before this commit. MozReview-Commit-ID: fwuZUvD8tY
c8204bd45b6f9e48bfe27ba6f0464ba3c2e8fb65: Bug 1287007 - Do not neuter error messages from the same principal draft
Rob Wu <rob@robwu.nl> - Mon, 05 Sep 2016 17:04:28 -0700 - rev 411552
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Do not neuter error messages from the same principal With an upcoming change that introduces another ProxyContext, errors from a different scope may bubble up. These messages should be reported, not replaced with "An unexpected error occurred". MozReview-Commit-ID: ByUktVkhDyx
bb36a764a97dec24b28ca6cbec11e817e797bda8: Bug 1287007 - Move ExtensionContext to separate file draft
Rob Wu <rob@robwu.nl> - Mon, 05 Sep 2016 00:15:18 -0700 - rev 411551
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Move ExtensionContext to separate file This is just a mechanical change, literally nothing more than cutting ExtensionContext from Extension.jsm, pasting it in ExtensionChild.jsm and adding the minimal imoort boilerplate. MozReview-Commit-ID: 5uVt1IOdEFU
6690c74b4cab7067d24e0b29797c988285375150: Bug 1287007 - Harden browser.storage.local serialization draft
Rob Wu <rob@robwu.nl> - Sun, 04 Sep 2016 19:19:17 -0700 - rev 411550
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Harden browser.storage.local serialization - Lazily initialize file IO-specific stuff in ExtensionStorage.jsm, and limit this work to the main process. - Add local versions of the `storage.local.get` and `storage.local.set` implementations that perform sanitization (without the change, values are improperly serialized over IPC). - Switch from JSON.stringify to a custom serializer, because: - The serialization of the value is affected by the context's override of methods such as `toJSON` and `toString`. - Nested objects with function values trigger the following error: > XrayWrapper denied access to property "foo" (reason: value is callable). > See https://developer.mozilla.org/en-US/docs/Xray_vision for more > information. Note that only the first denied property access from a > given global object will be reported. - Copied the `backgroundScript` test from xpcshell/test_ext_storage.js to mochitest/test_ext_storage_content.html because they should behave identical. Before this patch the test failed due to IPC serialization issues, now the test passes. Note that the old test also passes with the changes. MozReview-Commit-ID: 8J8CCdwMACN
bbf3c4655d18c74cb5a89fdccaf11f09ab8935ca: Bug 1287007 - Allow local implementations to call remote implementations draft
Rob Wu <rob@robwu.nl> - Sun, 04 Sep 2016 02:29:48 -0700 - rev 411549
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Allow local implementations to call remote implementations - Add callParentFunctionNoReturn / callParentAsyncFunction to ChildAPIManager to implement remote calls. - Add in-process browser.test implementation that uses this. - Add tests to verify that the browser.test.assert* methods with the `allowAmbiguousOptionalArguments` schema attribute are working with objects that cannot be passed as-is over IPC. (except test.sendMessage, because stringifying the arguments has an observable impact on test behavior) MozReview-Commit-ID: 6cFVgmFfU93
b61f1597d5d8a182f8694cc4b1025c7d060642ce: Bug 1287007 - Mark all browserAction methods as async draft
Rob Wu <rob@robwu.nl> - Fri, 02 Sep 2016 14:22:09 -0700 - rev 411548
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Mark all browserAction methods as async E.g. browser.browserAction.enable(...).then(...) now works as expected. Removed a Promise.resolve() because that is the default. MozReview-Commit-ID: 4Shxtn0rjYH
915f4602b377a5d0123164af1935cbca3b078120: Bug 1287007 - Require "async" in schemas to match name draft
Rob Wu <rob@robwu.nl> - Fri, 02 Sep 2016 03:37:55 -0700 - rev 411547
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Require "async" in schemas to match name In the pageAction and browserAction schemas, several methods are declared with `"async": true` but without a specified callback in the `"parameters"` object, so callbacks are not allowed. However, when a callback is proxied, the `ParentAPIManager` will mirror the call by passing in an extra callback to the proxied API - and break. This patch fixes the issue by removing uses of async:true. Also for consistency between the browserAction and pageAction methods, the methods that were not declared as async have also been marked as async. MozReview-Commit-ID: JQqzmTUAotB
eff02c3958773152a9cb89a4c417c27fd23ec9d3: Bug 1287007 - Fix timing issue in browser/page action tests draft
Rob Wu <rob@robwu.nl> - Fri, 02 Sep 2016 16:33:32 -0700 - rev 411546
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Fix timing issue in browser/page action tests MozReview-Commit-ID: 9L0ttaq42Ga
846bc2996410323e384113bdc2a428fe2be041a5: Bug 1287007 - Refactor test_ext_schemas_api_injection.js draft
Rob Wu <rob@robwu.nl> - Fri, 02 Sep 2016 05:36:33 -0700 - rev 411545
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Refactor test_ext_schemas_api_injection.js When the background API move to a separate implementation, then the schema APIs will be generated (and ChildAPIManager will just delegate the implementation to the parent process). The purpose of the test is to verify that nested namespaces and null-feturn values work, so just use the base classes instead of a concrete implementation for BaseContext / SchemaAPIManager instead of setting up a full extension. MozReview-Commit-ID: CB5s7Ae24zS
bcfd6755b67b7b5f8d65ff68a0150b7c5341f4d1: Bug 1287007 - Improve errors for non-existing remote APIs draft
Rob Wu <rob@robwu.nl> - Thu, 01 Sep 2016 21:14:31 -0700 - rev 411544
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Improve errors for non-existing remote APIs Currently, if the remote implementation is missing, the next unhelpful error message is logged to the console: "TypeError: findPathInObject(...) is not a function" or "TypeError: findPathInObject(...) is undefined", etc. This commit makes the message more useful: "WebExtension API tabs.create not found (it may be unimplemented by Firefox)" MozReview-Commit-ID: FhPEYKSjnLm
7dfd6765b9f0bddff1923dbe2127521f2ba655ec: Bug 1287007 - Fix some flaws in ProxyAPIImplementation draft
Rob Wu <rob@robwu.nl> - Thu, 01 Sep 2016 21:10:18 -0700 - rev 411543
Push 28922 by bmo:rob@robwu.nl at Thu, 08 Sep 2016 08:44:00 +0000
Bug 1287007 - Fix some flaws in ProxyAPIImplementation - removeListener: There is no set.remove, use set.delete. - Async callbacks: Do not unconditionally turn the result in a SpreadArgs because it causes the result to unconditionally be wrapped in an array (+test). MozReview-Commit-ID: LqwtBsHWJJr
a7641d6110943b4327db12915e941cf1ca331a53: Bug 599975 - Fire error event for images with empty string src value; r=bz draft
Edgar Chen <echen@mozilla.com> - Thu, 08 Sep 2016 16:27:03 +0800 - rev 411542
Push 28921 by echen@mozilla.com at Thu, 08 Sep 2016 08:37:36 +0000
Bug 599975 - Fire error event for images with empty string src value; r=bz MozReview-Commit-ID: AhXiTpgG9q3
a39c1513c3dcca20a6a5142bf36d4afdc0f52a78: Bug 1298569 - Part 3. Remove unused MOZ_ARM_VFP_FLAGS flag. r?glandium draft
Makoto Kato <m_kato@ga2.so-net.ne.jp> - Thu, 08 Sep 2016 17:22:16 +0900 - rev 411541
Push 28920 by bmo:m_kato@ga2.so-net.ne.jp at Thu, 08 Sep 2016 08:30:32 +0000
Bug 1298569 - Part 3. Remove unused MOZ_ARM_VFP_FLAGS flag. r?glandium MozReview-Commit-ID: 5OzRlOYDjFP
14e7c7bf1adfaf9ac48e4c94212dbeda4a6c3609: Bug 1298569 - Part 2. Replace -fpu=neon with CONFIG['NEON_FLAGS']. r?glandium draft
Makoto Kato <m_kato@ga2.so-net.ne.jp> - Sat, 27 Aug 2016 14:37:18 +0900 - rev 411540
Push 28920 by bmo:m_kato@ga2.so-net.ne.jp at Thu, 08 Sep 2016 08:30:32 +0000
Bug 1298569 - Part 2. Replace -fpu=neon with CONFIG['NEON_FLAGS']. r?glandium Use CONFIG['NEON_FLAGS'] on moz.build instead. MozReview-Commit-ID: F6R532Hi5mg
28dc5aa751aa75240654e79f8a3ada8df744be0f: Bug 1298569 - Part 1. Add NEON_FLAGS for arm32. r?glandium draft
Makoto Kato <m_kato@ga2.so-net.ne.jp> - Sat, 27 Aug 2016 14:23:22 +0900 - rev 411539
Push 28920 by bmo:m_kato@ga2.so-net.ne.jp at Thu, 08 Sep 2016 08:30:32 +0000
Bug 1298569 - Part 1. Add NEON_FLAGS for arm32. r?glandium aarch64 doesn't require compiler flag when using NEON. To use NEON on aarch64 with BUILD_ARM_NEON, we should move NEON's flags to NEON_FLAGS like SSE2_FLAGS. MozReview-Commit-ID: PGDjcHdTfH
366325887a40bc0e1ef88e0d6e9b13a1847f81aa: Bug 1228022 - part 3 - Flip the print_via_parent pref to true on OS X, enabling remote printing; r=mconley draft
Haik Aftandilian <haftandilian@mozilla.com> - Fri, 05 Aug 2016 13:11:13 -0700 - rev 411538
Push 28919 by haftandilian@mozilla.com at Thu, 08 Sep 2016 08:14:19 +0000
Bug 1228022 - part 3 - Flip the print_via_parent pref to true on OS X, enabling remote printing; r=mconley MozReview-Commit-ID: 5arUyCsazuS
452537548ae8381524d3ec8c318207c112ffd7d7: Bug 1228022 - part 2 - Add support for reading Mac OS Roman encoded names from SFNTNameTables; r?jfkthame draft
Haik Aftandilian <haftandilian@mozilla.com> - Wed, 07 Sep 2016 17:41:51 -0700 - rev 411537
Push 28919 by haftandilian@mozilla.com at Thu, 08 Sep 2016 08:14:19 +0000
Bug 1228022 - part 2 - Add support for reading Mac OS Roman encoded names from SFNTNameTables; r?jfkthame When reading a U16 font name from the SFNTNameTable, a name entry with platformID == 1 (Macintosh) and platformSpecificID (aka encodingID) == 0 (Roman) is read as Mac Roman and converted to U16. This patch refactors the matchers created in CreateCanonicalU16Matchers to return name encoding type instead of a boolean. The encoding type can then be used to call the appropriate decoding function. CreateCanonicalU16Matchers is also changed so that it doesn't enqueue unnecessary matchers on OS X. On OS X, if the nametable record's platformID field is PLATFORM_ID, IsUTF16Encoding() will always return false so matchers requiring both of those conditions will never match. There are several other platformSpecificID's in Mac SFNTameTables such as Japanese, Traditional Chinese, and Korean. Fonts with names in those encodings won't have their names properly encoded, but that should be OK as SFNTData::GetUniqueKey falls back to another scheme for hashing fonts if the GetU16FullName call fails. Tests on El Capitan and Sierra revealed Mac's use Microsoft/Unicode SFNTNameTable names as well as Mac/Roman. MozReview-Commit-ID: F8fyDVDwHs7
fc75019427f0658e839eb45904d67db7d875b9a0: Bug 1228022 - part 1 - Support replay of Mac print stream, adds NativeFontResourceMac, ScaledFontMac::GetCairoFontFace; r?jfkthame draft
Haik Aftandilian <haftandilian@mozilla.com> - Thu, 01 Sep 2016 16:58:08 -0700 - rev 411536
Push 28919 by haftandilian@mozilla.com at Thu, 08 Sep 2016 08:14:19 +0000
Bug 1228022 - part 1 - Support replay of Mac print stream, adds NativeFontResourceMac, ScaledFontMac::GetCairoFontFace; r?jfkthame Adds the necessary plumbing to allow Mac font creation and referencing during replay of a remote print stream. MozReview-Commit-ID: 18jpeImPwCI
58df0f1b7defc24d6a2561035267cd79ce9d69a3: Bug 1228022 - part 3 - Flip the print_via_parent pref to true on OS X, enabling remote printing; r=mconley draft
Haik Aftandilian <haftandilian@mozilla.com> - Fri, 05 Aug 2016 13:11:13 -0700 - rev 411535
Push 28918 by haftandilian@mozilla.com at Thu, 08 Sep 2016 07:58:17 +0000
Bug 1228022 - part 3 - Flip the print_via_parent pref to true on OS X, enabling remote printing; r=mconley MozReview-Commit-ID: 5arUyCsazuS
50a8af29a51c1b3a3565c8728a51aba1fd02d77e: Bug 1228022 - part 2 - Add support for reading Mac OS Roman encoded names from SFNTNameTables draft
Haik Aftandilian <haftandilian@mozilla.com> - Wed, 07 Sep 2016 17:41:51 -0700 - rev 411534
Push 28918 by haftandilian@mozilla.com at Thu, 08 Sep 2016 07:58:17 +0000
Bug 1228022 - part 2 - Add support for reading Mac OS Roman encoded names from SFNTNameTables When reading a U16 font name from the SFNTNameTable, a name entry with platformID == 1 (Macintosh) and platformSpecificID (aka encodingID) == 0 (Roman) is read as Mac Roman and converted to U16. This patch refactors the matchers created in CreateCanonicalU16Matchers to return name encoding type instead of a boolean. The encoding type can then be used to call the appropriate decoding function. CreateCanonicalU16Matchers is also changed so that it doesn't enqueue unnecessary matchers on OS X. On OS X, if the nametable record's platformID field is PLATFORM_ID, IsUTF16Encoding() will always return false so matchers requiring both of those conditions will never match. There are several other platformSpecificID's in Mac SFNTameTables such as Japanese, Traditional Chinese, and Korean. Fonts with names in those encodings won't have their names properly encoded, but that should be OK as SFNTData::GetUniqueKey falls back to another scheme for hashing fonts if the GetU16FullName call fails. Tests on El Capitan and Sierra revealed Mac's use Microsoft/Unicode SFNTNameTable names as well as Mac/Roman. MozReview-Commit-ID: F8fyDVDwHs7
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 tip