Coder Social home page Coder Social logo

adguardteam / adguardforsafari Goto Github PK

View Code? Open in Web Editor NEW
1.0K 36.0 71.0 119.35 MB

AdGuard for Safari app extension

License: GNU General Public License v3.0

Objective-C 14.76% JavaScript 78.24% Shell 0.50% Python 0.56% Objective-C++ 0.81% CSS 2.07% HTML 1.30% C 0.15% Swift 1.49% Ruby 0.12%
adblock safari adguard safari-extension open-source

adguardforsafari's People

Contributors

ameshkov avatar artembaskal avatar birbber avatar ferdi2005 avatar maximtop avatar mizzick avatar slavaleleka avatar stanislav-atr avatar stillness-2 avatar thehasagi avatar tvinzz avatar versty avatar vozersky avatar zebrum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adguardforsafari's Issues

Preparing the app to be published to Mac AppStore

Figure out the following:

  • How to prepare the app to be published to Mac AppStore
  • Is it possible to have a beta tester's channel there? If not, what are the options for beta testers?
  • What metadata do we need to supply in order to get the app published. Post the list here, we'll start preparing it.

Can't add custom filter by url

  1. go to Settings - Filters - Custom - Add custom filter
  2. add link to a custom filter, press Next

Actual behaviour: app hangs on Checking your filter

User Filter rules applying take some time

Steps

  1. Open any site (e.g. example.org)
  2. Open Safari Extension in toolbar
  3. Select area to block on site
  4. Refresh page

Expected:
Selected area not visible

Actual:
Selected area on it's place

Two filters update messages

  1. Add custom filter
  2. Check filter updates

Actual behaviour: It shows 2 notifications - one about AG filters (were updated or not) and other about Custom filter was updated, even if there was no update for it.

Initial app translations

@timirila1 please work with @aalpatkina and prepare a shortlist of languages we will have on the initial release (I suggest English, German, and Russian at least).

Also, we need to update the oneskyapp project and upload the app screenshots there.

Implement the onboarding screen

Screenshot: https://uploads.adguard.com/up04_d73e0_Ext.sketch.png

  • Full info is in the Sketch file (the image must be updated accordingly with #12)
  • You'll need @kaprielov's help with the markup.

Here's how it should work.

  1. When the toolbar icon is disabled OR when the content blocker is disabled, you should show this onboarding screen instead of the main extension UI.
  2. This is not just about the first install. Any time when any of the necessary extensions are disabled, we must react and show this screen.
  3. Once both extensions are enabled, navigate to settings automatically, don't make the user wait.

Update the localization scripts

Create a new project on adguard.oneskyapp.com:

  • Project group=Adguard Browser Extensions

  • Name="AdGuard for Safari".

  • Also, add download/upload localization scripts

  • Don't forget about the native part of the code

  • Add a script that scans the extension code and searches for redundant strings there

Whitelist/Inverted whitelist editors bug

  1. Open Whitelist, type some domains
  2. Turn on Inverted whitelist
  3. Type something
  4. Press cmd+z several times until whitelist editor appears.

How Whitelist and Inverted whitelist editors connected?

Filter groups must have their own status

The current logic is based on what filters are enabled. This is wrong, filter groups must have their own status.

Here's how it must work:

  1. When the filter group is enabled for the first time, we must also enable all filters with the recommended tag and matching the lang tag (if it is specified).
  2. We no more do it afterward, even when the user switches the filter group status on or off.

JS Error when add Custom Filter

Steps

  1. Open Filters section
  2. Click on Custom and Add custom filter
  3. Add any valid url to filter or https://easylist-downloads.adblockplus.org/easylist.txt
  4. Next -> (wait) -> Subscribe
Uncaught Exception:
TypeError: Cannot read property 'enabled' of undefined
    at Object.groupHasEnabledStatus (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters/subscriptions.js:414:29)
    at enableFilter (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters-manager.js:146:28)
    at /Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters-manager.js:205:25
    at onFilterLoaded (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters-manager.js:172:13)
    at addAntiBannerFilter (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters-manager.js:176:13)
    at loadNextFilter (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters-manager.js:203:17)
    at Object.addAndEnableFilters (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/app/filters-manager.js:213:9)
    at EventEmitter.<anonymous> (/Users/timshenin/adguard/safari-app-extension/ElectronMainApp/src/main/ui-event-handler.js:33:25)

Safari App Extensions metadata

Toolbar Icon

Name = AdGuard Safari Icon
Description = You can use this icon to manage AdGuard for Safari settings. For instance, pause blocking on a website, or block an ad manually.

Content Blocker

Name = AdGuard
Description = Fast and lightweight Safari content blocking extension.

Divide UI into separate components

I noticed some performance issues when UI repaint. Also it can be difficult to maintain the project when it will become larger.

I suppose we may use React to break UI into components.

Tooltip under container

Steps to reproduce

  1. Open Filters
  2. Open Group (e.g Ad Blocking)
  3. Move mouse over a tag in the last elem in list

Screen Shot 2018-09-26 at 15.38.01.png

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.