Opened on 05/09/2016 at 01:33:56 PM

Closed on 10/19/2016 at 09:05:26 AM

Last modified on 12/01/2016 at 09:24:37 AM

#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.

Attachments (0)

Change History (9)

comment:1 Changed on 05/13/2016 at 08:36:35 AM by sebastian

  • Cc sebastian added

comment:2 Changed on 06/06/2016 at 02:16:10 PM by oleksandr

  • Cc oleksandr added

comment:3 Changed on 06/11/2016 at 12:10:14 PM by kvas

  • Blocking 4148 added
  • Description modified (diff)

comment:4 Changed on 06/13/2016 at 12:59:03 PM by kvas

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

comment:5 Changed on 10/17/2016 at 11:58:12 AM by kzar

  • Blocked By 4540 added

comment:6 Changed on 10/17/2016 at 01:09:41 PM by abpbot

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

comment:7 Changed on 10/19/2016 at 08:52:12 AM by sebastian

  • Blocked By 4540 removed

comment:8 Changed on 10/19/2016 at 09:05:26 AM by sebastian

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

comment:9 Changed on 12/01/2016 at 09:24:37 AM by kzar

  • Owner set to kvas
  • Priority changed from Unknown to P3
  • Ready set

Add Comment

Modify Ticket

Change Properties
Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from kvas.
 
Note: See TracTickets for help on using tickets.