Closed Bug 1530402 Opened 5 years ago Closed 4 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)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

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
See Also: → 1518843
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
See Also: → 1565782

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) —

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.

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

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

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
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
See Also: → 1749506
Blocks: 1817809
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: