Closed Bug 1530402 Opened 6 years ago Closed 5 years ago

GeckoView support for {Page,Browser}Action web-extension API

Categories

(GeckoView :: Extensions, enhancement, P1)

Unspecified
Android
enhancement

Tracking

(firefox70 wontfix, firefox71 wontfix, firefox72 fixed)

RESOLVED FIXED
mozilla72
Tracking Status
firefox70 --- wontfix
firefox71 --- wontfix
firefox72 --- fixed

People

(Reporter: mbrubeck, Assigned: agi)

References

(Blocks 1 open bug, Regressed 1 open bug)

Details

(Whiteboard: [geckoview:m1910] [geckoview:m1911])

Attachments

(12 files, 10 obsolete files)

(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details

Add support in GeckoView for the pageAction API to dynamically display clickable icons and popups in the URL bar:

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction

(The UI for this should be implemented by the Android Components toolbar.)

And we shouldn't forget the lessons from bug 1414084 for that, i.e. the component that keeps track of which page actions etc. are currently existing needs to match the lifetime of webextensions (and therefore Gecko) themselves.

I assume for Reader View in Fenix (blocked issue) we could rely on the messaging API (bug 1518843) and wouldn't need the generic page action API just yet?

Priority: -- → P1
Whiteboard: [geckoview:fenix:m3]

Matt, how much work is the PageAction API? Can we defer this bug until after Fenix MVP? IIUC, WebExtension messaging support (bug 1518843) should be adequate for A-C to implement their Reader View WebExtension.

Flags: needinfo?(mbrubeck)

Matt says we don't need the PageAction API for Fenix MVP.

Flags: needinfo?(mbrubeck)
Whiteboard: [geckoview:fenix:m3] → [geckoview:fenix:p3]
Assignee: mbrubeck → nobody

I'm editing a bunch of GeckoView bugs. If you'd like to filter all this bugmail, search and destroy emails containing this UUID:

e88a5094-0fc0-4b7c-b7c5-aef00a11dbc9

Priority: P1 → P3

Looks like we want to work on this soon, so I'm resetting priority to discuss it during triage.

Priority: P3 → --

Design doc: https://docs.google.com/document/d/1XJuKk9Hm_2RNbX8KRcyUOXTaELBWYMyXBUchz15OElY/edit?usp=sharing

Morphing into page and browser actions since they are very similar.

Summary: GeckoView support for PageAction web-extension API → GeckoView support for {Page,Browser}Action web-extension API
Assignee: nobody → agi
Blocks: 1582194
No longer blocks: webext-geckoview

Priority P2 + Rank 1 because Agi is working on it now for Fenix Q4.

Rank: 1
Priority: -- → P2

Adding [geckoview:m1910] whiteboard tag because Agi says he will probably have this work completed in October.

Whiteboard: [geckoview:fenix:p3] → [geckoview:m1910]

Mass moving bugs to the Extension component.

Component: General → Extensions

We want to work on this in October.

Priority: P2 → P1
Blocks: 1588150

This patch refactors Desktop's implementation of Page and Browser actions to
decouple the logic inside a common Action object that can be used to implement
actions on other platforms, like mobile, without re-implementing it.

A follow-up commit will use this common logic on the mobile implementation.

This method allows consumers to decode images from a |nsIChannel| instance.

This method also supports vector images (e.g. SVGs), which other decode methods don't.

This class allows GeckoView embedders to decode images using Gecko's image
library.

Attached file Bug 1530402 - Add geckoview/popup.xul. (obsolete) (deleted) —

This patch adds popup.xul which is identical to geckoview.xul but with a
different |windowtype|. This allows embedders to create "popup" windows that
are not visible to addons, e.g. for browser action popups.

Attached file Bug 1530402 - WIP: Add GeckoView.setZOrderOnTop. (obsolete) (deleted) —

This allows embedders to display two GeckoView on top of each other by setting
setZOrderOnTop on one of them.

TODO: figure out a better API for this that does not depend so much on
SurfaceTexture. Maybe we can set setZOrderOnTop when "popup" mode is enabled?

Rolling over to November sprint.

OS: All → Android
Whiteboard: [geckoview:m1910] → [geckoview:m1910] [geckoview:m1911]
Attachment #9100626 - Attachment is obsolete: true
Attachment #9100627 - Attachment is obsolete: true
Attached file Bug 1530402 - Remove Fennec code from ext-utils.js. (obsolete) (deleted) —

We're going to replace this implementation from scratch so we remove it here to
avoid a confusing diff.

Attached file Bug 1530402 - Remove Fennec code from ext-utils.js. (obsolete) (deleted) —

We're going to replace this implementation from scratch so we remove it here to
avoid a confusing diff.

This matches desktop's TabTracker. Also, remove Tab:Selected which is an event
that was coming from Fennec.

Attachment #9100625 - Attachment description: Bug 1530402 - Provide GeckoImageDecoder. → Bug 1530402 - Provide ImageDecoder.
Attachment #9100625 - Attachment description: Bug 1530402 - Provide ImageDecoder. → Bug 1530402 - Provide GeckoImageDecoder.
Attachment #9106707 - Attachment is obsolete: true
Attachment #9106233 - Attachment is obsolete: true
Attachment #9106667 - Attachment is obsolete: true
Attachment #9106666 - Attachment is obsolete: true
Attachment #9106665 - Attachment is obsolete: true
Attachment #9106664 - Attachment is obsolete: true
Attachment #9106232 - Attachment is obsolete: true
Pushed by asferro@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/536a4cac3ffe Remove Fennec code from ext-utils.js. r=droeh https://hg.mozilla.org/integration/autoland/rev/1aa5898efa5f Remove unused NULL_MESSAGE_DELEGATE. r=snorp https://hg.mozilla.org/integration/autoland/rev/9630bed0ca2c Provide an API to use TextureView in GeckoView. r=snorp,droeh https://hg.mozilla.org/integration/autoland/rev/3638fcff5bed Refactor desktop's ext-{page,browser}Action. r=mixedpuppy https://hg.mozilla.org/integration/autoland/rev/cf16e02e62cd Remove Fennec's {Browser,Page} Action implementation. r=snorp https://hg.mozilla.org/integration/autoland/rev/126af041394b Provide imgTools.decodeFromChannelAsync. r=aosmond,snorp https://hg.mozilla.org/integration/autoland/rev/b540d7b34ef6 Provide GeckoImageDecoder. r=snorp https://hg.mozilla.org/integration/autoland/rev/e34768ee01db Add package-protected isPopup setting to hide GeckoSessions from extensions. r=snorp https://hg.mozilla.org/integration/autoland/rev/9717ba255826 Emit |location-change| from mobile's TabTracker. r=snorp https://hg.mozilla.org/integration/autoland/rev/bf09025d6f98 Implement {Browser,Page}Action for GeckoView. r=snorp,mixedpuppy,esawin https://hg.mozilla.org/integration/autoland/rev/f6af9d6a5482 Add {Browser,Page}Action support to GVE. r=snorp https://hg.mozilla.org/integration/autoland/rev/9e55fee783ff Move WebExtensionListener to WebExtension.java. r=esawin

Backed out for multiple failures e.g. columnrule-linestyles.html and test_composite.html.

backout: https://hg.mozilla.org/integration/autoland/rev/8f3cbd66bbc316a8ec8b38d85702d7c57e930f6c

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=276117803&revision=9e55fee783ff8a1dc0c512316689145a57f8b6aa

failure log E.G.:

Flags: needinfo?(agi)
Pushed by asferro@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ae5ead19921d Remove Fennec code from ext-utils.js. r=droeh https://hg.mozilla.org/integration/autoland/rev/82b28001164b Remove unused NULL_MESSAGE_DELEGATE. r=snorp https://hg.mozilla.org/integration/autoland/rev/4fcca36d5b3e Provide an API to use TextureView in GeckoView. r=snorp,droeh https://hg.mozilla.org/integration/autoland/rev/f52a8fedcded Refactor desktop's ext-{page,browser}Action. r=mixedpuppy https://hg.mozilla.org/integration/autoland/rev/e2be10dbad5e Remove Fennec's {Browser,Page} Action implementation. r=snorp https://hg.mozilla.org/integration/autoland/rev/c7b8cc91f245 Provide imgTools.decodeFromChannelAsync. r=aosmond,snorp https://hg.mozilla.org/integration/autoland/rev/ab7b21969769 Provide GeckoImageDecoder. r=snorp https://hg.mozilla.org/integration/autoland/rev/701de7bcb484 Add package-protected isPopup setting to hide GeckoSessions from extensions. r=snorp https://hg.mozilla.org/integration/autoland/rev/f57bc0ee284b Emit |location-change| from mobile's TabTracker. r=snorp https://hg.mozilla.org/integration/autoland/rev/1b053a203af9 Implement {Browser,Page}Action for GeckoView. r=snorp,mixedpuppy,esawin https://hg.mozilla.org/integration/autoland/rev/ce12e494a189 Add {Browser,Page}Action support to GVE. r=snorp https://hg.mozilla.org/integration/autoland/rev/aa9499a196e3 Move WebExtensionListener to WebExtension.java. r=esawin
Attached file Bug 1530402 - Remove Fennec Action tests. (obsolete) (deleted) —
Backout by apavel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/17db3abeba1a Backed out 13 changesets (bug 1530402, bug 1533156) for failing test_ext_tabs_query.html on a CLOSED TREE
Attachment #9108886 - Attachment is obsolete: true
Pushed by asferro@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5975264fd34b Remove Fennec code from ext-utils.js. r=droeh https://hg.mozilla.org/integration/autoland/rev/83b9603f5fa1 Remove unused NULL_MESSAGE_DELEGATE. r=snorp https://hg.mozilla.org/integration/autoland/rev/23d43a425641 Provide an API to use TextureView in GeckoView. r=snorp,droeh https://hg.mozilla.org/integration/autoland/rev/7400c3fd2b5f Refactor desktop's ext-{page,browser}Action. r=mixedpuppy https://hg.mozilla.org/integration/autoland/rev/3d3366fe476f Remove Fennec's {Browser,Page} Action implementation. r=snorp https://hg.mozilla.org/integration/autoland/rev/72274a5a821b Provide imgTools.decodeFromChannelAsync. r=aosmond,snorp https://hg.mozilla.org/integration/autoland/rev/282b033c7daa Provide GeckoImageDecoder. r=snorp https://hg.mozilla.org/integration/autoland/rev/e0ae4f16f7ed Add package-protected isPopup setting to hide GeckoSessions from extensions. r=snorp https://hg.mozilla.org/integration/autoland/rev/352068fe68bc Emit |location-change| from mobile's TabTracker. r=snorp https://hg.mozilla.org/integration/autoland/rev/597e32ad2f5b Implement {Browser,Page}Action for GeckoView. r=snorp,mixedpuppy,esawin https://hg.mozilla.org/integration/autoland/rev/acea32ec5975 Add {Browser,Page}Action support to GVE. r=snorp https://hg.mozilla.org/integration/autoland/rev/6d7b7d22b0c6 Move WebExtensionListener to WebExtension.java. r=esawin
Backout by nerli@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/61ebc1a22544 Backed out 13 changesets (bug 1530402, bug 1533156) for causing raptor failures CLOSED TREE
Pushed by asferro@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eb9eb64782b9 Remove Fennec code from ext-utils.js. r=droeh https://hg.mozilla.org/integration/autoland/rev/6d66e846ad46 Remove unused NULL_MESSAGE_DELEGATE. r=snorp https://hg.mozilla.org/integration/autoland/rev/48cd0a34cab7 Provide an API to use TextureView in GeckoView. r=snorp,droeh https://hg.mozilla.org/integration/autoland/rev/ebce35d83c87 Refactor desktop's ext-{page,browser}Action. r=mixedpuppy https://hg.mozilla.org/integration/autoland/rev/64fde5f3d49f Remove Fennec's {Browser,Page} Action implementation. r=snorp https://hg.mozilla.org/integration/autoland/rev/9afd2ad768ec Provide imgTools.decodeFromChannelAsync. r=aosmond,snorp https://hg.mozilla.org/integration/autoland/rev/0fdc505ba2f6 Provide GeckoImageDecoder. r=snorp https://hg.mozilla.org/integration/autoland/rev/13283dd2b5fd Add package-protected isPopup setting to hide GeckoSessions from extensions. r=snorp https://hg.mozilla.org/integration/autoland/rev/787a3ae7f1b7 Emit |location-change| from mobile's TabTracker. r=snorp https://hg.mozilla.org/integration/autoland/rev/59fd566c80c7 Implement {Browser,Page}Action for GeckoView. r=snorp,mixedpuppy,esawin https://hg.mozilla.org/integration/autoland/rev/10b03e28fe0d Add {Browser,Page}Action support to GVE. r=snorp https://hg.mozilla.org/integration/autoland/rev/7c966d8fdbc0 Move WebExtensionListener to WebExtension.java. r=esawin

🎉

Flags: needinfo?(agi)
Regressions: 1597821
Regressions: 1608266
Blocks: 1625575
Regressions: 1625593
Regressions: 1628929
Regressions: 1748526
Blocks: 1817809
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: