|
/../
|
Home
|
|
|
/../blog/
|
Blog
|
|
|
/../faq/
|
Frequently Asked Questions
|
|
|
/../threatmodel/
|
Threat model
|
|
|
/../install/
|
Installing
|
|
|
/../permissions/
|
Permissions
|
|
|
/../versions/
|
Release history
|
|
|
/../credits/
|
Credits
|
|
|
/../license/
|
GNU General Public License
|
|
|
/../levels/
|
JavaScript Shield
|
|
|
/../nbs/
|
Network Boundary Shield
|
|
|
/../fpd/
|
Fingerprint Detector
|
|
|
/../build/
|
Building from scratch
|
|
|
/../new-wrapper/
|
How to write a new wrapper
|
|
|
/../coding-style/
|
Coding style
|
|
|
/../i18n_developers/
|
i18n
|
|
|
/../unit_tests/
|
Instructions on how to run unit tests
|
|
|
/../integration_tests/
|
Instructions on how to run integration tests
|
|
|
/../i18n/
|
Translation instructions
|
|
|
/../i18n_website/
|
Translating the JShelter website
|
|
|
/../feeds/all.atom.xml
|
<i class="fa fa-rss-square" aria-hidden="true"></i>
|
|
|
/mv3/
|
Manifest v3
|
|
|
/fingerprinting
|
Browser fingerprinting
|
|
|
/../mv3-jshelter-debut/
|
<header>
<h3 class="entry-title">
JShelter Debuts as a Manifest V3 Extension
</h3>
<p class="entry-date">
<time class="published" datetime="2024-07-27T19:00:00+02:00"> Sat 27 July 2024</time>
</p>
</header>
<div class="entry-content"> Today, we're happy to announce the release of JShelter 0.19: in spite of the odd decimal version number, this is the most important milestone in our migration journey to Manifest v3 (MV3). In fact, the JShelter 0.19 package we're shipping to the Chrome Store is the first one … </div><!-- /.entry-content -->
|
|
|
/../i18n_website/
|
<header>
<h3 class="entry-title">
Translating the JShelter website
</h3>
<p class="entry-date">
<time class="published" datetime="2024-07-08T15:00:00+02:00"> Mon 08 July 2024</time>
</p>
</header>
<div class="entry-content"> The JShelter website has a dedicated translation pipeline, described in this post. Translating the website content The simplest way to contribute to the site translation is on Weblate. Just head over to the JShelter website section, select the language you want to work on, and start translating. Project maintainers will … </div><!-- /.entry-content -->
|
|
|
/../first-mv3-step/
|
<header>
<h3 class="entry-title">
First step towards MV3
</h3>
<p class="entry-date">
<time class="published" datetime="2024-04-19T17:00:00+02:00"> Fri 19 April 2024</time>
</p>
</header>
<div class="entry-content"> We have been working on migration to Manifest v3 (MV3) for some time and today we are shipping a JShelter version 0.18 that implements stateless replacement for background pages which is a first step towards MV3. MV2 extensions were allowed to create background pages. These pages allow running JavaScript … </div><!-- /.entry-content -->
|
|
|
/../fixing-mv3/
|
<header>
<h3 class="entry-title">
"Fixing" Manifest V3
</h3>
<p class="entry-date">
<time class="published" datetime="2024-02-07T12:00:00+01:00"> Wed 07 February 2024</time>
</p>
</header>
<div class="entry-content"> In the previous post of this series, What is Manifest v3 and how it affects JShelter, we've stressed the limitations of the new WebExtensions APIs, along with the challenges and the threats it poses to privacy and security extensions such as JShelter. As part of our strategy to mitigate these … </div><!-- /.entry-content -->
|
|
|
/../mv3/
|
<header>
<h3 class="entry-title">
What is Manifest v3 and how it affects JShelter
</h3>
<p class="entry-date">
<time class="published" datetime="2023-11-01T12:00:00+01:00"> Wed 01 November 2023</time>
</p>
</header>
<div class="entry-content"> Over the years, privacy and security-oriented browser extensions in the same category of JShelter (e.g. uBlock or NoScript, whose code is partially inherited by JShelter through the NoScript Commons Library), have been forced into multiple complex refactorings and modernizations, including complete rewrites such as those required by the transition … </div><!-- /.entry-content -->
|
|
|
/../optimizations/
|
<header>
<h3 class="entry-title">
Recent improvements in JShelter performance
</h3>
<p class="entry-date">
<time class="published" datetime="2023-09-21T15:00:00+02:00"> Thu 21 September 2023</time>
</p>
</header>
<div class="entry-content"> You might have noticed that recent versions improved JShelter performance. This blog post explains the improvements in more detail and contains graphs. The improvements are based on the bachelor thesis of Martin Zmitko. If you are interested in this topic, you will find more information in the thesis. We thank … </div><!-- /.entry-content -->
|
|
|
/../i18n/
|
<header>
<h3 class="entry-title">
JShelter can be translated into different languages
</h3>
<p class="entry-date">
<time class="published" datetime="2023-09-08T14:00:00+02:00"> Fri 08 September 2023</time>
</p>
</header>
<div class="entry-content"> JShelter's audience is international. As not all people speak English, JShelter is now adding support for internationalization. Hence, it can be translated into languages other than English. The webextension API already contains APIs that help to translate extensions. This way we can localize not only the interface of the extension … </div><!-- /.entry-content -->
|
|
|
/../i18n_developers/
|
<header>
<h3 class="entry-title">
What should a JShelter developer know about internationalization?
</h3>
<p class="entry-date">
<time class="published" datetime="2023-08-31T15:00:00+02:00"> Thu 31 August 2023</time>
</p>
</header>
<div class="entry-content"> We are working to improve the internationalization of JShelter. While the webextension API already contains APIs for internationalization, not everything works great. This post is written for webextension developers as well as JShelter developers working with strings presented to our users. Please see our other post if you are looking … </div><!-- /.entry-content -->
|
|
|
/../jsrfinal/
|
<header>
<h3 class="entry-title">
Final remarks on the JSR project
</h3>
<p class="entry-date">
<time class="published" datetime="2022-05-10T18:00:00+02:00"> Tue 10 May 2022</time>
</p>
</header>
<div class="entry-content"> The JavaScript Restrictor (JSR) project (supported by NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310) is heading towards its end, and we summarize what … </div><!-- /.entry-content -->
|
|
|
/../sensorapi/
|
<header>
<h3 class="entry-title">
Protection against fingerprinting with Generic Sensor API
</h3>
<p class="entry-date">
<time class="published" datetime="2022-05-06T15:34:00+02:00"> Fri 06 May 2022</time>
</p>
</header>
<div class="entry-content"> Today devices contain various sensors for reading information about the device's position, state, and environment. Such equipment is typical for mobile devices like cellphones, tablets, or laptops that often include sensors for obtaining geolocation or device orientation data. Another example is a smartwatch that could monitor the heartbeat rate of … </div><!-- /.entry-content -->
|
|
|
/../paper2022/
|
<header>
<h3 class="entry-title">
Paper about JShelter
</h3>
<p class="entry-date">
<time class="published" datetime="2022-04-05T00:00:00+02:00"> Tue 05 April 2022</time>
</p>
</header>
<div class="entry-content"> We recently submitted a position paper about JShelter for CNIL Privacy Research Day 2022 and posted the paper on arXive. If you are interested in the project or if you are already using JShelter, we recommend reading the paper as it explains the project, its historical decisions, the thread model … </div><!-- /.entry-content -->
|
|
|
/../cooperation/
|
<header>
<h3 class="entry-title">
Cooperation with the JShelter project, rebranding, and latest features
</h3>
<p class="entry-date">
<time class="published" datetime="2022-03-17T15:00:00+01:00"> Thu 17 March 2022</time>
</p>
</header>
<div class="entry-content"> This project started as JavaScript Restrictor at Brno University of Technology. As announced in a previous post, we got funding from NLNet NGI0 PET Fund. Furthermore, NLNet allowed us to cooperate with another NGI0 PET Fund project - JShelter project (formerly known as JavaScript Shield project) run by Free Software Foundation … </div><!-- /.entry-content -->
|
|
|
/../fpdetection/
|
<header>
<h3 class="entry-title">
Catch websites red-handed fingerprinting your browser
</h3>
<p class="entry-date">
<time class="published" datetime="2022-01-14T14:00:00+01:00"> Fri 14 January 2022</time>
</p>
</header>
<div class="entry-content"> We want to identify fingerprinting attempts by counting the number of different APIs employed by a page, especially those not frequently used for benign purposes. This blog post introduces a new fingerprinting protection mechanism - FingerPrint Detector (FPD) available in JShelter 0.6. This tool allows users to gain more control … </div><!-- /.entry-content -->
|
|
|
/../fingerprinting/
|
<header>
<h3 class="entry-title">
Browser fingerprinting and JShelter
</h3>
<p class="entry-date">
<time class="published" datetime="2022-01-14T13:00:00+01:00"> Fri 14 January 2022</time>
</p>
</header>
<div class="entry-content"> This post introduces browser fingerprinting and anti-fingerprinting mechanisms. We explain what JShelter implements and the strengths and downsides of the anti-fingerprinting mechanisms. In short, browser fingerprinting is a stateless tracking method vastly prevalent on the web in recent years. Similarly to a human fingerprint, browser fingerprinting tries to find a … </div><!-- /.entry-content -->
|
|
|
/../crawling_results/
|
<header>
<h3 class="entry-title">
"RESULTS: Measurement of JavaScript API usage on the web"
</h3>
<p class="entry-date">
<time class="published" datetime="2022-01-14T12:00:00+01:00"> Fri 14 January 2022</time>
</p>
</header>
<div class="entry-content"> A previous blogpost introduced a methodology to measure the usage of JavaScript APIs on the web by crawling the web. The starting point of our web crawling research is the work of Peter Snyder. Most importantly, we wanted to compare the differences in JS API usage between browsers with and … </div><!-- /.entry-content -->
|
|
|
/../blog/index2.html
|
»
|
|
|
/../blog/index2.html
|
⇉
|
|
|
/feeds/all.atom.xml
|
Atom feed
|
|