Opened on 06/06/2018 at 11:02:28 AM
Closed on 09/18/2019 at 04:37:02 PM
#6734 closed defect (rejected)
The latest Safari development build doesn't work
Reported by: | kzar | Assignee: | |
---|---|---|---|
Priority: | P2 | Milestone: | |
Module: | Unknown | Keywords: | |
Cc: | sebastian, philll, Ross, fhd, tlucas, dzhang | Blocked By: | |
Blocking: | Platform: | Safari | |
Ready: | yes | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description (last modified by kzar)
Environment
macOS High Sierra, Safari 11.1
How to reproduce
- Download the latest development build.
- Attempt to install it.
Observed behaviour
An error message is displayed Safari can't install this extension - An error occurred whileinstalling the extension "Adblock Plus".
Expected behaviour
No error is displayed, the extension installs.
Notes
- This seems to be only a problem with the latest development build Adblock Plus for Safari 1.12.4.2015, the previous one installs OK.
- It seems our certificate is not valid after "Sep 21 10:08:30 2017 GMT" which is the cause of the problem.
Attachments (0)
Change History (17)
comment:1 Changed on 06/06/2018 at 01:13:01 PM by kzar
comment:2 Changed on 06/06/2018 at 01:13:41 PM by kzar
Could this be an expired certificate again?
comment:3 Changed on 06/06/2018 at 01:31:09 PM by kzar
Tristan perhaps I'm misunderstanding but I think there might be a bug with...
Sorry my comment about the build.py logic was wrong, since I was missing the first item and I got the old order confused with the new one. This seems to work OK:
args = ["build.py", "build", "-t", "safari"] index_opt = args.index("-t") index_val = index_opt + 1 args.insert(1, args.pop(index_opt)) args.insert(2, args.pop(index_val)) print args => ['build.py', '-t', 'safari', 'build']
comment:4 follow-ups: ↓ 5 ↓ 7 Changed on 06/06/2018 at 02:30:43 PM by kzar
- Description modified (diff)
So I compiled the xar command, extracted the certificates and can confirm that seems to be the problem. Our certificate is only valid between "Sep 21 10:08:30 2016 GMT" and "Sep 21 10:08:30 2017 GMT".
I'm not sure how to generate a new certificate or update the build, any idea Sebastian?
comment:5 in reply to: ↑ 4 Changed on 06/06/2018 at 02:35:38 PM by tlucas
Replying to kzar:
Tristan perhaps I'm misunderstanding but I think there might be a bug with...
Sorry my comment about the build.py logic was wrong, since I was missing the first item and I got the old order confused with the new one. This seems to work OK:
args = ["build.py", "build", "-t", "safari"] index_opt = args.index("-t") index_val = index_opt + 1 args.insert(1, args.pop(index_opt)) args.insert(2, args.pop(index_val)) print args => ['build.py', '-t', 'safari', 'build']
Glad you could sort things out :)
The lines you posted here are a workaround, in order to a) be able to build anything with the new order and b) to not have to update the buildtools dependency in the safari-branch.
Replying to kzar:
So I compiled the xar command, extracted the certificates and can confirm that seems to be the problem. Our certificate is only valid between "Sep 21 10:08:30 2016 GMT" and "Sep 21 10:08:30 2017 GMT".
I'm not sure how to generate a new certificate or update the build, any idea Sebastian?
I guess we have to ping #ops to generate a new certificate on abp-builds-1.
comment:6 Changed on 06/06/2018 at 02:39:49 PM by tlucas
Or, as per sebastian's suggestion in #adblockplus, drop safari support completely.
4:27 PM <snoack> rossg_: For the time being can you download and install the latest development > builds from https://downloads.adblockplus.org/devbuilds/adblockpluschrome/? 4:30 PM fhd, kzar, philll: IMO, this is a good opportunity to finally discontinue Adblock Plus for Safari. If we have a native macOS app / App Extension ready to refer users to, great but if not I'm not sure if further modifications to the traditional extension are worth it.
comment:7 in reply to: ↑ 4 ; follow-up: ↓ 10 Changed on 06/06/2018 at 03:03:59 PM by sebastian
Replying to kzar:
I'm not sure how to generate a new certificate or update the build, any idea Sebastian?
Please refer to the README. As documented there, the certificate needs to be retrieved from the Apple Developer Center. However, when I try to do so I get following error message:
The selected team's agent, Felix Dahlke must agree to the latest Program License Agreement in their developer account. https://developer.apple.com/account/
Furthermore, according to the Safari 12 announcement, developer-signed extensions will no longer be supported anyway. So even if we renew the certificate, the devbuilds won't load in Safari 12 (and above).
comment:8 Changed on 06/08/2018 at 04:09:51 PM by mapx
comment:9 Changed on 06/08/2018 at 04:10:22 PM by mapx
- Cc mapx added
comment:10 in reply to: ↑ 7 Changed on 06/11/2018 at 08:49:50 AM by fhd
Replying to sebastian:
Replying to kzar:
I'm not sure how to generate a new certificate or update the build, any idea Sebastian?
Please refer to the README. As documented there, the certificate needs to be retrieved from the Apple Developer Center. However, when I try to do so I get following error message:
The selected team's agent, Felix Dahlke must agree to the latest Program License Agreement in their developer account. https://developer.apple.com/account/
Done, I suppose it should work now.
Furthermore, according to the Safari 12 announcement, developer-signed extensions will no longer be supported anyway. So even if we renew the certificate, the devbuilds won't load in Safari 12 (and above).
Meaning we would have to deliver both release and devbuild through the App Store?
comment:11 Changed on 06/14/2018 at 06:10:39 PM by dzhang
- Cc dzhang added
comment:12 Changed on 06/14/2018 at 06:44:00 PM by dzhang
I duplicated this issue in #6747.
The Safari extension can be re-signed using the following procedure by someone with code signing authority for our Apple developer accounts. This is to support users of Safari <v12.
- Request a Safari extension certificate at developer.apple.com.
- Install the certificate.
- Download the existing extension.
- Extract it with xar -f "${FILENAME}.safariextz" -x
- Open Safari > Develop > Show Extension Builder
- Add the extracted folder.
- Build package.
comment:13 Changed on 06/14/2018 at 06:51:38 PM by sebastian
I know. However, we should rather just put the new key on the server, and have automatically generated builds again (for Safari <12).
As for Safari 12 and above, there are other compatibility issues anyway, which we don't seem to plan to address, but rather have the traditional Safari extension being replaced with a native App Extension (port of Adblock Plus for iOS), soon.
comment:14 Changed on 06/14/2018 at 07:54:46 PM by dzhang
@sebastian Putting the key on the server is better, I agree.
The native App Extension work is underway.
comment:15 Changed on 06/15/2018 at 09:18:57 AM by tlucas
For reference: http://hub.eyeo.com/issues/12285
comment:17 Changed on 09/18/2019 at 07:00:36 AM by mapx
- Cc mapx removed
comment:18 Changed on 09/18/2019 at 04:37:02 PM by sebastian
- Resolution set to rejected
- Status changed from new to closed
Cloding this issue, as it's no longer relevant. The legacy Safari extension has been discontinued in favor of an App Extension that is installed by other means.
Still not sure what's going on, I extracted the archives and can't see much different: