Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#4028 closed change (fixed)

Add support for Edge extensions to buildtools

Reported by: kvas Assignee: kvas
Priority: P3 Milestone:
Module: Automation Keywords:
Cc: sebastian, oleksandr Blocked By:
Blocking: #4148, #4149 Platform: Unknown / Cross platform
Ready: yes Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

https://codereview.adblockplus.org/29345751/

Description (last modified by kvas)

Background

We're rolling out a version of Adblock Plus for Edge and in order to reduce the amount of manual work and maintain consistency of the process we need to add the functionality of building its package (.appx) to the toolkit that is currently used for building other extensions (buildtools).

Disclaimer: this is based on available information and example package and is not complete. Any corrections or additions are welcome.

Edge package has the content of a Chrome package with minor modifications, arranged slightly differently, supplemented with additional metadata and packaged in a specifically laid out zip archive:

  • The main extension files that are located at the root of the zip archive in a Chrome extension are placed in Extension folder in an Edge extension,
  • Additional icons are placed in Assets folder,
  • The root folder of an Edge extension also contains three additional files:
    • AppxManifest.xml -- metadata of the package for extension store,
    • AppxBlockMap.xml -- block map that contains sha256 checksums of packed files and information about zip file layout,
    • [Content_Types].xml -- content types of the files in the extension.
  • There are differences between Chrome manifest.json and Edge Extension/manifest.json:
    • The content of background key is different,
    • minimum_chrome_version key is replaced with minimum_edge_version.
  • The files have to be placed into a zip archive in accordance with the block map (normally it means that the block map is generated when packing all the other files).

References

What to change

  • Add edge to the list of plugin types in build.py.
  • Add packagerEdge.py that produces the package for Edge. Reuse existing generic and Chrome-specific functionality for producing the initial layout and manifest.js. Modify the manifest and rearrange the files to match Appx layout, generate additional Appx metadata files and produce the Appx file.

Change History (9)

comment:1 Changed 4 years ago by sebastian

  • Cc sebastian added

comment:2 Changed 3 years ago by oleksandr

  • Cc oleksandr added

comment:3 Changed 3 years ago by kvas

  • Blocking 4148 added
  • Description modified (diff)

comment:4 Changed 3 years ago by kvas

  • Blocking 4149 added
  • Review URL(s) modified (diff)

comment:5 Changed 3 years ago by kzar

  • Blocked By 4540 added

comment:6 Changed 3 years ago by abpbot

A commit referencing this issue has landed:
Fixes 4028 - Add support for Edge extensions to buildtools

comment:7 Changed 3 years ago by sebastian

  • Blocked By 4540 removed

comment:8 Changed 3 years ago by sebastian

  • Resolution set to fixed
  • Status changed from new to closed

comment:9 Changed 3 years ago by kzar

  • Owner set to kvas
  • Priority changed from Unknown to P3
  • Ready set
Note: See TracTickets for help on using tickets.