Opened 2 years ago

Last modified 2 years ago

#6786 closed change

Display Safari app extension migration page — at Version 10

Reported by: kzar Assignee:
Priority: P2 Milestone: Adblock-Plus-1.12.5-for-Safari
Module: Platform Keywords:
Cc: sebastian, mario, l.ursachi@…, fhd, CraftyDeano, dzhang, Ross, rscott Blocked By:
Blocking: Platform: Safari
Ready: yes Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

https://codereview.adblockplus.org/29829611/
https://codereview.adblockplus.org/29829615/
https://codereview.adblockplus.org/29830555/

Description (last modified by mario)

Background

From Apple's recent announcement it seems that we will need to migrate our Adblock Plus for Safari users over to an Safari App extension as soon as possible:

# Safari Extensions
- Deprecated .safariextz-style Safari Extensions
  - Support for .safariextz-style Safari Extensions installed from the Safari Extensions Gallery is deprecated with Safari 12 on macOS. Submissions to the Safari Extensions Gallery will no longer be accepted after December 2018. Developers are encouraged to transition to Safari App Extensions.
- Disabled canLoad Safari Extensions on first launch
  - Safari Extensions that make use of the canLoad event will be disabled on first launch and users will be notified with a warning that their use is harmful to performance. These extensions can be enabled in Safari Extensions preferences. Developers are encouraged to move to Content Blocker Extensions.
- Removed Support for Developer-signed .safariextz Safari Extensions
  - Support for developer-signed .safariextz Safari Extensions in Safari 12 on macOS has been removed. They no longer appear in Safari preferences and cannot be enabled. On first launch users will receive a warning notification and these extension will not load.

So, we'd like to create a "Please migrate to our Safari App extension" page and have the Safari extension open it when the extension starts. Since that page is not yet ready, we'd also like to first check that the page exists before opening it.

What to change

  • For users on Safari 10 and above...
    • When the extension starts perform a request in the background to https://eyeo.to/adblockplus/safari-app-extension-migration.
      • If the response is successful open a new tab displaying that page.
      • If not retry in 24 hours time.

Change History (10)

comment:1 follow-up: Changed 2 years ago by kzar

Some questions:

  • Should we display the page when the extension starts, and every 24 hours afterwards, or just once the extension starts?
  • Should we care to store a preference that the background request has succeeded in the past? That way we could avoid performing as many requests in the background to the page, but at the cost of adding complexity.
  • Is the URL and are the other details OK?

comment:2 Changed 2 years ago by kzar

  • Description modified (diff)

comment:3 in reply to: ↑ 1 ; follow-ups: Changed 2 years ago by mario

  • Should we display the page when the extension starts, and every 24 hours afterwards, or just once the extension starts?

By showing it every 24h we'd catch those users who hardly ever restart Safari – I'm in favor of this approach, even if more intrusive. However if it adds too much complexity I'd be fine with going for the suggestion to show it only after startup.

  • Should we care to store a preference that the background request has succeeded in the past? That way we could avoid performing as many requests in the background to the page, but at the cost of adding complexity.

I can't comment on this and would leave it to Sebastian (?) to answer.

  • Is the URL and are the other details OK?

Just double-checked with Ops whether there are any new limitations/requirements when it comes to defining the URL of landing pages within adblockplus.org. There aren't any and we're free to use a non-existing URL.
Thus I'm completely fine with the proposed URL. Luiza, are you fine with the URL as well?
I'm also fine with all the other stated details.

Thanks a lot!

comment:4 in reply to: ↑ 3 Changed 2 years ago by lursachi

Replying to mario:

Thus I'm completely fine with the proposed URL. Luiza, are you fine with the URL as well?
I'm also fine with all the other stated details.

URL LGTM! :-)

Thank you, guys!

comment:5 in reply to: ↑ 3 ; follow-up: Changed 2 years ago by sebastian

Replying to mario:

  • Should we display the page when the extension starts, and every 24 hours afterwards, or just once the extension starts?

By showing it every 24h we'd catch those users who hardly ever restart Safari – I'm in favor of this approach, even if more intrusive. However if it adds too much complexity I'd be fine with going for the suggestion to show it only after startup.

Well, even if we don't show the message repeatedly during the run time of the extension, it would still show up once the extension gets installed/updated (without requiring a restart of Safari). So if this is the only concern, it's probably not necessary to show the message repeatedly.

  • Should we care to store a preference that the background request has succeeded in the past? That way we could avoid performing as many requests in the background to the page, but at the cost of adding complexity.

I can't comment on this and would leave it to Sebastian (?) to answer.

One thing to consider here, if we cache whether the page was online, and we take it down later, Adblock Plus would still attempt to open it showing an error message.

One more thing; we probably should also check for Safari >= 12, and don't register any onbeforeload listener then. Otherwise, as far as I understand, the extension would immediately be disabled.

comment:6 Changed 2 years ago by mario

Well, even if we don't show the message repeatedly during the run time of the extension, it would still show up once the extension gets installed/updated (without requiring a restart of Safari). So if this is the only concern, it's probably not necessary to show the message repeatedly.

Provided the landing page is up and running before the ABP for Safari update is rolled out. And provided we opt for showing the landing page "as soon as possible" instead of during the last few days of Safari 11's lifetime (e.g. by intentionally holding back publishing the landing page). Or am I misunderstanding you?

comment:7 in reply to: ↑ 5 Changed 2 years ago by kzar

Replying to sebastian:

One more thing; we probably should also check for Safari >= 12, and don't register any onbeforeload listener then. Otherwise, as far as I understand, the extension would immediately be disabled.

I thought that, but now I'm not sure.

Firstly, it would be good to keep this change as simple as possible. Secondly, it might actually be worse for the brand to keep Adblock Plus installed but broken, rather than to just let Apple disable it.

comment:8 Changed 2 years ago by mario

Requested a redirect (internal ticket system; access limited) for the landing page to be used instead of the final URL as proposed by Ops. Once acknowledged and approved, I'll update the description.

comment:9 Changed 2 years ago by kzar

  • Summary changed from Disablay Safari app extension migration page to Display Safari app extension migration page

comment:10 Changed 2 years ago by mario

  • Description modified (diff)

Requested redirect (internal ticket system; access limited) was approved and is in code review. Thus updating the description to reflect that.

Note: See TracTickets for help on using tickets.