All Projects → adblockplus → adblockplusui

adblockplus / adblockplusui

Licence: GPL-3.0 license
Shared Adblock Plus UI code

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects
typescript
32286 projects
CSS
56736 projects

Projects that are alternatives of or similar to adblockplusui

Youslist
Block filter for advertisements, mainly on Korean sites
Stars: ✭ 201 (+1156.25%)
Mutual labels:  adblock
Cname Trackers
This repository contains a list of popular CNAME trackers
Stars: ✭ 231 (+1343.75%)
Mutual labels:  adblock
just-detect-adblock
It's FuckAdBlock with a minimalist API.
Stars: ✭ 71 (+343.75%)
Mutual labels:  adblock
All In One Customized Adblock List
An all-in-one adblock list that thoroughly blocks trackers, popup ads, ads, unwanted cookies, fake news, cookie warning messages, typosquatters, unwanted comment sections, crypto-coin mining, YouTube clutter, Twitter guff and social network hassles.
Stars: ✭ 217 (+1256.25%)
Mutual labels:  adblock
Iosadblocklist
Ultimate Host List for Mobile Adblockers (Focused on iOS)
Stars: ✭ 229 (+1331.25%)
Mutual labels:  adblock
Adblock Rules Mirror
An elegant way to speed up updating Ads Block Rules.
Stars: ✭ 240 (+1400%)
Mutual labels:  adblock
Just News
a userscript project that parses korean news site and then making more readable view
Stars: ✭ 173 (+981.25%)
Mutual labels:  adblock
ddu.vim
Dark deno-powered UI framework for neovim/Vim8
Stars: ✭ 232 (+1350%)
Mutual labels:  user-interface
Anti Ad
致力于成为中文区命中率最高的广告过滤列表,实现精确的广告屏蔽和隐私保护。anti-AD现已支持AdGuardHome,dnsmasq, Surge,Pi-Hole,smartdns等网络组件。完全兼容常见的广告过滤工具所支持的各种广告过滤列表格式
Stars: ✭ 3,788 (+23575%)
Mutual labels:  adblock
ue4-uitween
Unreal 4 UMG UI tweening plugin in C++
Stars: ✭ 178 (+1012.5%)
Mutual labels:  user-interface
Adfilt
The place where I, DandelionSprout, store my web filter lists for countless topics, including my Nordic adblock list. As simple as that, really.
Stars: ✭ 217 (+1256.25%)
Mutual labels:  adblock
Blahdns
A small hobby ads block dns project with doh, dot, dnscrypt support.
Stars: ✭ 228 (+1325%)
Mutual labels:  adblock
PolishAnnoyanceFilters
Polskie Filtry Elementów Irytujących ukrywają i blokują wyskakujące okienka, widgety, newslettery, powiadomienia push, strzałki, niezgodne z tematem artykułów otagowane linki wewnętrzne i inne drażniące elementy (Polskie Filtry RODO-Ciasteczkowe są już w nich zawarte).
Stars: ✭ 45 (+181.25%)
Mutual labels:  adblock
Bromite
Bromite a Chromium fork with ad blocking and privacy enhancements; take back your browser!
Stars: ✭ 3,256 (+20250%)
Mutual labels:  adblock
MIMS
PyQt application for creating mass interaction models and compiling them into Faust dsp code, or ~gen objects (for Max/MSP)
Stars: ✭ 22 (+37.5%)
Mutual labels:  user-interface
Energizedprotection
A merged collection of hosts from reputable sources. #StayEnergized!
Stars: ✭ 175 (+993.75%)
Mutual labels:  adblock
Twitch Hls Adblock
Block advertisements that are inserted in Twitch streams directly.
Stars: ✭ 242 (+1412.5%)
Mutual labels:  adblock
Fluent-Design-For-Web
Windows 10 Inspired UI For Web
Stars: ✭ 28 (+75%)
Mutual labels:  user-interface
VIZIA
A declarative GUI library written in Rust
Stars: ✭ 551 (+3343.75%)
Mutual labels:  user-interface
AdBlock-Acceleration
Accelerated subscription for international/China region ad filtering rules(国际/中国地区广告过滤规则的加速订阅)
Stars: ✭ 327 (+1943.75%)
Mutual labels:  adblock

Adblock Plus

Welcome to the repository for the Adblock Plus extension!

The main project is hosted on GitLab and, in addition to the user interface and the web extension code, the Adblock Plus extension also includes static filter lists, eyeo's Web Extension Ad Blocking Toolkit (EWE) and eyeo's snippets.

About Adblock Plus

Adblock Plus is a free extension that allows users to customize their web experience. Users can block annoying ads, disable tracking and lots more. It’s available for all major desktop browsers and for mobile devices.

Adblock Plus is an open source project licensed under GPLv3 and subject to its Terms of Use. eyeo GmbH is the parent company of Adblock Plus.

Prerequisites

To contribute to this project, you'll need:

Node should come installed with npm. If it doesn't, you can download npm here.

Important: On Windows, you need a Linux environment running on WSL and run the commands from within Bash.

Tip: If you're installing node in ArchLinux, please remember to install npm, too.

After cloning this repository, open its folder and run npm install.

UI elements

Specifications for Adblock Plus elements can be found in eyeo's spec repository.

UI pages

These are pages that users primarily interact with because they are exposed to them via the browser's UI.

  • Bubble UI (popup)
  • Developer tools panel (devtools-panel)
  • Options
    • Desktop (desktop-options)
    • Mobile (Firefox) (mobile-options)

Dialogs

These are pages that are dedicated to a specific feature and can be accessed via UI pages.

  • Filter composer (composer)
  • Issue reporter (issue-reporter)

Landing pages

These are pages that cannot be accessed via UI pages. They are either directly or indirectly opened by the extension under certain conditions.

  • Day 1 (day1)
  • First run (first-run)
  • Problem (problem)
  • Updates (updates)

Helper pages

These are pages that are part of another page. They are not meant to be shown on their own.

  • Bubble UI dummy (popup-dummy)
  • Proxy (proxy)

Additional extension functionality

These are parts of the extension logic which are running alongside the other extension code in the extension's background process.

  • Notifications
  • Preferences

Testing

If you don't want to build the entire extension, you can open UI pages in a test environment using a local web server. This can be done by running npm start, which allows you to access the HTML pages under the URL shown in the terminal, e.g. http://127.0.0.1:8080.

Various aspects of the pages can be tested by setting parameters in the URL (see list of URL parameters).

Note: You need to create the bundles for the UI page(s) that you want to test.

Nightlies

Nightly builds for feature and release branches can be found as artifacts from this page.

Unit testing

The ./test/unit folder contains various unit tests files. Those can be run together with other tests via npm test or separately via npm $ test.unit.

Integration testing

The ./test/integration folder contains various integration tests files. Those can be run together with other tests via npm test or separately via npm $ test.integration.

End-to-end testing

The ./test/end-to-end/tests folder contains various end-to-end tests. After generating the unpacked development build of the extension for Chrome, and packed .xpi build of the extension for Firefox, the tests can be executed in the latest stable Chrome and Firefox browsers by running npm run test:end-to-end - this will cleanup previously created allure results, if there are any. To run the tests without deleting existing results use npm run test:end-to-end-no-cleanup.

Allure reporter is used for displaying the results after the execution has been completed. The report can be generated and opened using the npm run test:generate-and-open-report command. To clean up previous results and reports before the new test execution, run npm run test:cleanup-reports.

Linting

You can lint all files via npm run lint or lint only specific file types:

  • JavaScript: npm run $ lint.js and npm run $ lint.legacy
  • SASS: npm run $ lint.css
  • Translation files: npm run $ lint.locale

Note: Both eslint and stylelint can help fix issues via --fix flag. You can try the example below via npx which should be automatically included when you install npm.

npx stylelint --fix skin/real-file-name.css

Building

Building the extension

In order to build the extension you need to first update its dependencies. You can then navigate to the adblockpluschrome/ folder and run the appropriate command for the type of build you'd like to generate.

Updating the dependencies

Clone the external repositories:

npm run submodules:update

Important: When building from a source archive, this step must be skipped.

Install the required npm packages:

npm install

Rerun the above commands when the dependencies might have changed, e.g. after checking out a new revision.

Bundling the UI

Various files need to be generated before using the UI. When building the UI for inclusion in the extension, this is achieved using npm run dist.

For usage in the test environment, you can run npm run bundle to generate the various bundles for all UI elements or npm run $ bundle.<page ID> to create only those that are necessary for a specific UI page. Additionally, you need to run npm run $ bundle.mocks in order to create the bundle for the mocks that are being used in the test environment.

Beyond that, this repository contains various utilities that we rely on across our development process.

Release history

Extension releases (since 3.11)

Extension releases (prior to 3.11)

Contributing

This project follows the typical GitLab process:

  1. Fork it.
  2. Create your feature branch.
  3. Commit your changes.
  4. Push to the branch.
  5. Create a new merge request.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].