Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a page about the "scroll" JavaScript event, add more information about the "mousemove" event. #112

Open
wants to merge 264 commits into
base: gb-update-docs
Choose a base branch
from
Open
Changes from 11 commits
Commits
Show all changes
264 commits
Select commit Hold shift + click to select a range
4fe63d6
moving vendor folder
gbaptista Feb 3, 2018
67b0548
new sttings link
gbaptista Feb 3, 2018
af42a14
settings pages
gbaptista Feb 3, 2018
20b4ee8
translations for settings pages
gbaptista Feb 3, 2018
5407208
remove unecessary css
gbaptista Feb 3, 2018
02cd2fa
add options pages to manifest
gbaptista Feb 3, 2018
41009f3
Merge pull request #20 from gbaptista/gb-setting-pages
gbaptista Feb 3, 2018
9477e35
fix typo
gbaptista Feb 3, 2018
99aff4a
add version to settings header
gbaptista Feb 3, 2018
43b936c
remove closed tabs data from local storage
gbaptista Feb 3, 2018
d9dacd2
Merge pull request #21 from gbaptista/gb-clear-local-storage
gbaptista Feb 3, 2018
09022c6
missing translations and docs
gbaptista Feb 3, 2018
dc240f5
try to fix list spaces
gbaptista Feb 3, 2018
b65e1ce
ok, no spaces
gbaptista Feb 3, 2018
fc4416f
Merge pull request #22 from gbaptista/gb-update-readme-translations
gbaptista Feb 3, 2018
f84add8
settings pages issues
gbaptista Feb 3, 2018
6f71503
Merge pull request #23 from gbaptista/gb-firefox-settings-pages-issues
gbaptista Feb 3, 2018
57451e0
build 0.0.6
gbaptista Feb 3, 2018
22f630c
Merge pull request #24 from gbaptista/gb-build-0.0.6
gbaptista Feb 3, 2018
ac9c443
forgot to remove large images from build ...
gbaptista Feb 3, 2018
8166cf5
introducing default settings
gbaptista Feb 3, 2018
46216ef
advanced badge counter settings
gbaptista Feb 3, 2018
424f131
addind bootstrap
gbaptista Feb 3, 2018
0aea169
split settings in multiple pages
gbaptista Feb 3, 2018
325dcaa
l18n for all settings texts
gbaptista Feb 3, 2018
c632004
add missing translations
gbaptista Feb 3, 2018
97d26af
update readme about settings and bootstrap
gbaptista Feb 3, 2018
99db24e
Merge pull request #25 from gbaptista/gb-default-settings-and-badge-c…
gbaptista Feb 3, 2018
14b4011
remove unecessary checks
gbaptista Feb 3, 2018
c3d4e7f
Merge pull request #26 from gbaptista/gb-performance-improves
gbaptista Feb 3, 2018
13c5d72
fix firefox remove domain button in settings
gbaptista Feb 4, 2018
3855ccb
build 0.0.7
gbaptista Feb 4, 2018
be92267
Merge pull request #27 from gbaptista/gb-build-0.0.7
gbaptista Feb 4, 2018
b09ed1a
settings for custom website rules
gbaptista Feb 4, 2018
be897e8
add missing translations and fix card filter
gbaptista Feb 4, 2018
9ae3c32
improve css for general-injection
gbaptista Feb 4, 2018
5325e4f
adding missing translations
gbaptista Feb 4, 2018
3286d39
Merge pull request #28 from gbaptista/gb-website-rules
gbaptista Feb 4, 2018
021ee94
disable conde injection for youtube
gbaptista Feb 4, 2018
7ed61f1
Merge pull request #29 from gbaptista/gb-disable-youtube
gbaptista Feb 4, 2018
dc668bf
build 0.0.8
gbaptista Feb 4, 2018
4ba7dbe
Merge pull request #30 from gbaptista/gb-build-0.0.8
gbaptista Feb 4, 2018
bab771a
fix typo
gbaptista Feb 4, 2018
9b6de59
collect code details only if enabled
gbaptista Feb 4, 2018
133e19a
Merge pull request #31 from gbaptista/gb-collect-details
gbaptista Feb 4, 2018
444900d
introducing default rules
gbaptista Feb 4, 2018
776f046
missing translations
gbaptista Feb 4, 2018
55119f9
Merge pull request #32 from gbaptista/gb-default-rules
gbaptista Feb 4, 2018
0c459d6
build 0.0.9
gbaptista Feb 4, 2018
a9ea681
Merge pull request #33 from gbaptista/gb-build-0.0.9
gbaptista Feb 4, 2018
c3043a5
new screenshots
gbaptista Feb 4, 2018
a97f661
automatic settings
gbaptista Feb 5, 2018
4f0ceab
improve nothing stored css
gbaptista Feb 5, 2018
84753b5
Merge pull request #34 from gbaptista/gb-automatic-settings
gbaptista Feb 5, 2018
b86e164
build 0.0.10
gbaptista Feb 5, 2018
ab8e08f
Merge pull request #35 from gbaptista/gb-build-0.0.10
gbaptista Feb 5, 2018
6916277
fix removeEventListener
gbaptista Feb 5, 2018
eb78628
Merge pull request #37 from gbaptista/gb-remove-event-listener
gbaptista Feb 5, 2018
7a3302a
build 0.0.11
gbaptista Feb 6, 2018
6a65ee4
Merge pull request #38 from gbaptista/gb-build-0.0.11
gbaptista Feb 6, 2018
03f3a48
remove or add domain for custom rules
gbaptista Feb 7, 2018
93a16f3
automatic settings options
gbaptista Feb 7, 2018
10efc04
translation keys
gbaptista Feb 7, 2018
3cec96c
automatic settings script
gbaptista Feb 7, 2018
5d9d5dc
refactoring storage strategy
gbaptista Feb 8, 2018
50e986d
fix default settings storage
gbaptista Feb 9, 2018
ee98004
missing translations
Feb 9, 2018
8d3084a
fix tabs data
Feb 9, 2018
9aae08e
starting settings migration
Feb 9, 2018
5e1d4af
fix legacy data migration
gbaptista Feb 9, 2018
145a8f1
remove debug button
gbaptista Feb 9, 2018
ea653b4
Merge pull request #39 from gbaptista/gb-improve-roles-settings
gbaptista Feb 9, 2018
bbc4a66
build 0.0.12
gbaptista Feb 10, 2018
4a05320
Merge pull request #40 from gbaptista/gb-build-0.0.12
gbaptista Feb 10, 2018
89b7e85
add dexie and create reports
gbaptista Feb 10, 2018
99b6d5b
Merge pull request #41 from gbaptista/gb-reports
gbaptista Feb 10, 2018
f418747
block geolocation apis
gbaptista Feb 10, 2018
f88f7ac
Merge pull request #42 from gbaptista/gb-geolocation-api
gbaptista Feb 10, 2018
0f3a936
domain filter for reports
gbaptista Feb 10, 2018
327fcba
missing translations
gbaptista Feb 10, 2018
c0cc41a
Merge pull request #43 from gbaptista/gb-reports-and-translations
gbaptista Feb 11, 2018
70d789a
build 0.0.13
gbaptista Feb 11, 2018
13e99a1
Merge pull request #44 from gbaptista/gb-build-0.0.13
gbaptista Feb 11, 2018
34e0b9b
fixing the freaking tab spaces
gbaptista Feb 11, 2018
7263f56
creating the first guides
gbaptista Feb 11, 2018
3a24c0d
translating guides
gbaptista Feb 11, 2018
f5989b3
fix geolocation issue
gbaptista Feb 11, 2018
aa5c443
Merge pull request #47 from gbaptista/gb-fix-geolocation
gbaptista Feb 11, 2018
da44905
add disclaimer for reviewers
gbaptista Feb 11, 2018
476be93
build 0.0.14
gbaptista Feb 11, 2018
daf238e
Merge pull request #48 from gbaptista/gb-build-0.0.14
gbaptista Feb 11, 2018
05852b4
guides translations
gbaptista Feb 11, 2018
27dbe12
Merge pull request #45 from gbaptista/gb-guides
gbaptista Feb 11, 2018
be52af5
build 0.0.15
gbaptista Feb 11, 2018
4386da2
Merge pull request #51 from gbaptista/gb-build-0.0.15
gbaptista Feb 11, 2018
687ba37
include guides in the readme file
gbaptista Feb 11, 2018
de665a8
what is detected
gbaptista Feb 11, 2018
3b604ad
improving what is detected guide
gbaptista Feb 11, 2018
bb020a1
fix some typos
gbaptista Feb 11, 2018
c848652
Merge pull request #53 from gbaptista/gb-blocking-guide
gbaptista Feb 11, 2018
339ffcc
ui improvements
gbaptista Feb 11, 2018
7c83cb1
default rules for new popup options
gbaptista Feb 11, 2018
46ccfdf
fix missing br class
gbaptista Feb 11, 2018
690e64d
decreasing font size
gbaptista Feb 12, 2018
5f9ff66
Merge pull request #57 from gbaptista/gb-ui-improvements
gbaptista Feb 12, 2018
77bad7a
build 0.0.16
gbaptista Feb 12, 2018
2166df5
Merge pull request #58 from gbaptista/gb-build-0.0.16
gbaptista Feb 12, 2018
ef17d32
refactoring helpers
gbaptista Feb 14, 2018
5d9f5d0
cookies strategy
gbaptista Feb 14, 2018
af910f2
improve interception time
gbaptista Feb 14, 2018
658c51c
rafactoring interceptors
gbaptista Feb 14, 2018
4a3f098
interceptor guide
gbaptista Feb 14, 2018
aa53011
fix typo
gbaptista Feb 14, 2018
3f66b9c
fix typo
gbaptista Feb 14, 2018
eb659f6
Merge pull request #60 from gbaptista/gb-gb-faster-interception
gbaptista Feb 14, 2018
761f86f
update interception guide
gbaptista Feb 14, 2018
2adc114
fix onCommitted callback
gbaptista Feb 14, 2018
dff6dfb
fix default options parser
gbaptista Feb 14, 2018
3396794
build 0.0.17
gbaptista Feb 14, 2018
e28448b
Merge pull request #61 from gbaptista/gb-release-0.0.17
gbaptista Feb 14, 2018
ea92206
fix cdeo typo at guides
gbaptista Feb 15, 2018
41d26e1
fix headers with cookies for firefox
gbaptista Feb 15, 2018
d7f2429
fix Maximum call stack size exceeded
gbaptista Feb 15, 2018
9591a8b
Merge pull request #65 from gbaptista/gb-firefox-stack-and-cookies
gbaptista Feb 15, 2018
8331556
build 0.0.18
gbaptista Feb 15, 2018
9a3133b
Merge pull request #66 from gbaptista/gb-release-0.0.18
gbaptista Feb 15, 2018
93ebcd5
capturing code execution time
gbaptista Feb 16, 2018
d2aa314
execution time reports, translations and performance checkbox
gbaptista Feb 21, 2018
abbadc0
typo
gbaptista Feb 21, 2018
6a2d126
Merge pull request #67 from gbaptista/gb-js-profiler
gbaptista Feb 23, 2018
88e64d2
new isolated interceptors and build script
Feb 23, 2018
4746243
update building process
gbaptista Feb 24, 2018
75c22f3
include .version file
gbaptista Feb 24, 2018
0d13fe3
remove old build file
gbaptista Feb 24, 2018
3b13cbd
update note for reviewers
gbaptista Feb 24, 2018
2cbc266
Merge pull request #68 from gbaptista/gb-isolated-interceptors
gbaptista Feb 24, 2018
b666259
build 0.0.19
gbaptista Feb 24, 2018
0db3589
Merge pull request #69 from gbaptista/gb-build-0.0.19
gbaptista Feb 24, 2018
a172a03
include opera add-on url
gbaptista Feb 24, 2018
f69696a
fix indexeddb issues
gbaptista Feb 24, 2018
dade1ff
Merge pull request #70 from gbaptista/gb-fix-indexeddb
gbaptista Feb 24, 2018
25541af
build 0.0.20
gbaptista Feb 24, 2018
4f88b4f
Merge pull request #71 from gbaptista/gb-build-0.0.20
gbaptista Feb 24, 2018
3ffe739
battery, gamepad and navigator interceptors
gbaptista Feb 24, 2018
c9bb8f1
using silent blocking strategy
gbaptista Feb 25, 2018
c2fdf30
update detection guide
gbaptista Feb 25, 2018
0202c01
Merge pull request #72 from gbaptista/gb-battery-gamepad-navigator
gbaptista Feb 25, 2018
e20b02d
build 0.0.21
gbaptista Feb 25, 2018
3658930
Merge pull request #73 from gbaptista/gb-build-0.0.21
gbaptista Feb 25, 2018
1342b90
new screenshots and guides
gbaptista Feb 25, 2018
d5f89e1
fix pt-br doc url
gbaptista Feb 25, 2018
ad78278
Set theme jekyll-theme-hacker
gbaptista Feb 25, 2018
e6efb46
Set theme jekyll-theme-cayman
gbaptista Feb 25, 2018
4aa1228
fix badge icon issue
gbaptista Feb 25, 2018
bf23f2f
improve reports generation flow
gbaptista Feb 25, 2018
07f1e35
remove unused code
gbaptista Feb 25, 2018
bf3f0c5
Merge pull request #74 from gbaptista/gb-reports-performance
gbaptista Feb 25, 2018
6910906
build 0.0.22
gbaptista Feb 25, 2018
679d3a1
Merge pull request #75 from gbaptista/gb-build-0.0.22
gbaptista Feb 25, 2018
185cca3
logs visualization
Feb 26, 2018
d73de81
logs templates
gbaptista Feb 27, 2018
120b5d0
log filters
Feb 27, 2018
e6ffe13
fix firefox devtools issues
gbaptista Feb 28, 2018
c5c6da5
improving logs UI
gbaptista Feb 28, 2018
c4de271
use events strategy instead of loops
Feb 28, 2018
688b0d9
communication tunnels
Feb 28, 2018
a4b1ab9
refactoring background structure
Mar 1, 2018
ffa19de
auto settings, badge and reports performance adjusts
gbaptista Mar 2, 2018
c604e05
logs fifo stack
gbaptista Mar 2, 2018
a21a666
remove tab data
Mar 2, 2018
59fc744
some utils test scripts
gbaptista Mar 4, 2018
95df476
remove object from interceptors and create a stack strategy
gbaptista Mar 4, 2018
b2838a0
performance improvements and new background page structures
gbaptista Mar 4, 2018
16d4d1c
performance settings
gbaptista Mar 4, 2018
05047c2
missing translations
gbaptista Mar 4, 2018
ff00a6b
fix icon color on tab reload
gbaptista Mar 4, 2018
598996f
fix locales texts
gbaptista Mar 4, 2018
c12509d
remove jquery from logs ui
gbaptista Mar 4, 2018
369c269
Merge pull request #76 from gbaptista/gb-logs
gbaptista Mar 4, 2018
6603fbd
change reports generation translations
gbaptista Mar 4, 2018
d4f9060
Merge pull request #77 from gbaptista/gb-performance
gbaptista Mar 4, 2018
9157fc5
set current tab for firefox logs
gbaptista Mar 5, 2018
e588bc3
Merge pull request #79 from gbaptista/gb-firefox-logs
gbaptista Mar 5, 2018
fa2c90d
build 0.0.23
gbaptista Mar 5, 2018
a1977a2
Merge pull request #80 from gbaptista/gb-build-0.0.23
gbaptista Mar 5, 2018
6e7cba1
use DocumentFragment for logs
gbaptista Mar 8, 2018
08022f7
iframe html demos
gbaptista Mar 8, 2018
532adf0
comment console logs for data updates
gbaptista Mar 8, 2018
e414dc7
fix addEventListener for object events (wtf?)
gbaptista Mar 8, 2018
0131098
detect iframe javascript code executions
gbaptista Mar 8, 2018
0c730ea
typo
gbaptista Mar 8, 2018
ab67f57
new demos file structure
gbaptista Mar 8, 2018
89bc257
fix references to the new demo page
gbaptista Mar 9, 2018
9d4b8d7
injections test page
gbaptista Mar 9, 2018
eaf9afa
Merge pull request #83 from gbaptista/gb-iframe
gbaptista Mar 9, 2018
a175623
build 0.0.24
gbaptista Mar 9, 2018
5cec3a9
Merge pull request #85 from gbaptista/gb-build-0.0.24
gbaptista Mar 9, 2018
dfad2f6
filterResponseData experiments
gbaptista Mar 9, 2018
aa55747
remove filter decoder
gbaptista Mar 9, 2018
36b75ba
remove cookie dependency for Firefox
gbaptista Mar 10, 2018
12ca876
filterResponseData strategy
gbaptista Mar 11, 2018
9832fc2
improve interception demo
gbaptista Mar 11, 2018
9196e43
remove debug lofs
gbaptista Mar 11, 2018
ad57271
fix multiple injections issue
gbaptista Mar 11, 2018
8f842ab
Merge pull request #87 from gbaptista/gb-fix-multiple-injections
gbaptista Mar 11, 2018
004f85b
revert build change
gbaptista Mar 11, 2018
7726685
Merge pull request #86 from gbaptista/gb-filter-response-data
gbaptista Mar 11, 2018
f8d853d
improve security headers and handle report-only
gbaptista Mar 12, 2018
22738cb
fix response data filter
gbaptista Mar 12, 2018
de04f5d
fix security polices replacer
gbaptista Mar 12, 2018
4281207
fix main_frame checker
gbaptista Mar 12, 2018
0a03baa
improve regex filter
gbaptista Mar 12, 2018
94583a4
Merge pull request #88 from gbaptista/gb-fix-reponse-filters
gbaptista Mar 12, 2018
a411450
build 0.0.25
gbaptista Mar 13, 2018
eff2185
Merge pull request #89 from gbaptista/gb-build-0.0.25
gbaptista Mar 13, 2018
3f28e95
fix what-is-detected typos
gbaptista Mar 13, 2018
60939c6
Merge pull request #90 from gbaptista/gb-what-is-detected-typos
gbaptista Mar 13, 2018
04a68e3
check if the content is from some binary file
gbaptista Mar 14, 2018
1a66a06
don't inject anything wihout settings
gbaptista Mar 14, 2018
0206de2
Merge pull request #94 from gbaptista/gb-fix-firefox-binary-content
gbaptista Mar 14, 2018
bc1633a
build 0.0.26
gbaptista Mar 14, 2018
4c1bb85
Merge pull request #95 from gbaptista/gb-build-0.0.26
gbaptista Mar 14, 2018
642ab8d
spelling, removed locale from Mozilla links
anewuser May 28, 2018
853e42a
Update README.md
anewuser May 29, 2018
dc1a991
advanced settings
gbaptista Mar 21, 2019
9afa1eb
disable filterResponseData and create some TODOs
gbaptista Mar 21, 2019
8be92e5
Merge pull request #98 from anewuser/patch-1
gbaptista Mar 21, 2019
2c602a9
check content_type for interception
gbaptista Mar 21, 2019
344d1d5
improve content-type rules
gbaptista Mar 21, 2019
c133f7a
fix injection on xml documents
gbaptista Mar 21, 2019
9ed854e
remove unecessary log
gbaptista Mar 22, 2019
ae4311e
Merge pull request #110 from gbaptista/gb-filter-response-data
gbaptista Mar 22, 2019
fa33897
advanced translations
gbaptista Mar 22, 2019
48d62b4
setting try_filter_response_data
gbaptista Mar 23, 2019
9908b29
disable advanced option
gbaptista Mar 23, 2019
af9abae
Merge pull request #109 from gbaptista/gb-advanced-options
gbaptista Mar 23, 2019
925df14
build instructions for arch linux
gbaptista Mar 23, 2019
781bf5d
fix popup background color for opera browser
gbaptista Mar 23, 2019
a3da641
update readme
gbaptista Mar 23, 2019
f0be262
build 0.0.27
gbaptista Mar 23, 2019
58c2d6c
Add more information about mouse events.
StaticallyTypedRice Jul 15, 2019
2091a83
Create scroll.md
StaticallyTypedRice Jul 15, 2019
3054734
Update mousemove.md
StaticallyTypedRice Jul 15, 2019
02648b1
Link to the "sroll event" page.
StaticallyTypedRice Jul 15, 2019
0da3fce
updating vendor libraries
gbaptista Sep 14, 2019
43f3c02
support for requestAnimationFrame
gbaptista Sep 14, 2019
66f63fe
Merge pull request #115 from gbaptista/gb-requestAnimationFrame
gbaptista Sep 14, 2019
148a242
Merge pull request #114 from gbaptista/gb-release-0.0.28
gbaptista Sep 14, 2019
b59718c
update detection guide
gbaptista Sep 14, 2019
8bdb5b9
Merge pull request #1 from gbaptista/master
StaticallyTypedRice Feb 4, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _locales/en_US/messages.json
Original file line number Diff line number Diff line change
@@ -19,6 +19,7 @@
"settingsCodeInjectionTitle": { "message": "code injection" },
"settingsPopupTitle": { "message": "popup" },
"settingsBadgeCounterTitle": { "message": "badge counter" },
"settingsAdvancedTitle": { "message": "advanced" },
"settingsStoredDataLocalTitle": { "message": "locally stored data" },
"settingsStoredDataSyncTitle": { "message": "synced stored data" },
"settingsReadMoreText": { "message": "read more about" },
@@ -79,6 +80,8 @@
"settingsNotRecommendedText": { "message": "not recommended" },
"settingsDefinitelyNotRecommendedText": { "message": "definitely not recommended" },

"settingsFilterResponseDataTitle": { "message": "use filterResponseData API (if supported)" },
"settingsInjectionTitle": { "message": "injection" },
"settingsReportsTitle": { "message": "reports" },
"settingsIndexedDbMdnHref": { "message": "https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API" },
"settingsRecordsText": { "message": "records" },
3 changes: 3 additions & 0 deletions _locales/es/messages.json
Original file line number Diff line number Diff line change
@@ -19,6 +19,7 @@
"settingsCodeInjectionTitle": { "message": "inyecciones de código" },
"settingsPopupTitle": { "message": "ventana emergente" },
"settingsBadgeCounterTitle": { "message": "contador del icono" },
"settingsAdvancedTitle": { "message": "avanzado" },
"settingsStoredDataLocalTitle": { "message": "datos locales" },
"settingsStoredDataSyncTitle": { "message": "datos sincronizados" },
"settingsReadMoreText": { "message": "lea más sobre" },
@@ -79,6 +80,8 @@
"settingsNotRecommendedText": { "message": "no recomendado" },
"settingsDefinitelyNotRecommendedText": { "message": "definitivamente no recomendado" },

"settingsFilterResponseDataTitle": { "message": "use la API filterResponseData (si es compatible)" },
"settingsInjectionTitle": { "message": "inyección" },
"settingsReportsTitle": { "message": "informes" },
"settingsIndexedDbMdnHref": { "message": "https://developer.mozilla.org/es/docs/Web/API/IndexedDB_API" },
"settingsRecordsText": { "message": "registros" },
3 changes: 3 additions & 0 deletions _locales/pt_BR/messages.json
Original file line number Diff line number Diff line change
@@ -19,6 +19,7 @@
"settingsCodeInjectionTitle": { "message": "injeção de códigos" },
"settingsPopupTitle": { "message": "popup" },
"settingsBadgeCounterTitle": { "message": "contador do ícone" },
"settingsAdvancedTitle": { "message": "avançado" },
"settingsStoredDataLocalTitle": { "message": "dados locais" },
"settingsStoredDataSyncTitle": { "message": "dados sincronizados" },
"settingsReadMoreText": { "message": "leia mais sobre" },
@@ -79,6 +80,8 @@
"settingsNotRecommendedText": { "message": "não recomendado" },
"settingsDefinitelyNotRecommendedText": { "message": "definitivamente não recomendado" },

"settingsFilterResponseDataTitle": { "message": "utilizar a API filterResponseData (se suportada)" },
"settingsInjectionTitle": { "message": "injeção" },
"settingsReportsTitle": { "message": "relatórios" },
"settingsIndexedDbMdnHref": { "message": "https://developer.mozilla.org/pt-BR/docs/Web/API/IndexedDB_API" },
"settingsRecordsText": { "message": "registros" },
31 changes: 31 additions & 0 deletions html/settings/advanced/options.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<title></title>

<link rel="stylesheet" type="text/css" href="../../../vendor/bootstrap/bootstrap.min.css">

<link rel="stylesheet" type="text/css" href="../../../css/settings/settings.css">
<script src="../../../vendor/jquery/jquery-3.3.1.min.js" type="text/javascript"></script>
<script src="../../../vendor/mustachejs/mustache.min.js" type="text/javascript"></script>
<script src="../../../js/utils/load_template.js" type="text/javascript"></script>
<script src="../../../js/settings/settings.js" type="text/javascript"></script>
<script src="../../../js/settings/advanced/options.js" type="text/javascript"></script>
</head>
<body>
<div id="loading"></div>
<div class="container-fluid">
<div class="row">
<div class="col-3">
<nav class="navbar"></nav>
</div>
<div class="col-8 settings-content">
<div id="form"></div>
</div>
</div>
</div>
</body>
</html>
22 changes: 22 additions & 0 deletions html/settings/templates/advanced/form.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<form>
{{#advanced_options}}
{{#injection}}
<div class="card">
<div class="card-header">
{{title}}
</div>
<div class="card-body">
{{#strategy}}
<div class="form-check form-check-inline">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" data-reverse="false" data-namespace="advanced" name="try_filter_response_data" value="{{value}}" {{#checked}}checked{{/checked}} disabled>
{{label}}
</label>
</div>
{{/strategy}}
</div>
</div>
{{/injection}}
{{/advanced_options}}
<br>
</form>
53 changes: 51 additions & 2 deletions js/background/injections/content/filter_response_data.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,30 @@
if(injection_strategy != 'cookie') {

var should_intercept_content_type = function(content_type) {
var should_intercept = false;

// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types
var splitted_content_type = content_type.toLowerCase().split(
';'
)[0].toLowerCase().split('/');

var type = splitted_content_type[0];
var subtype = splitted_content_type[1];

// TODO: Improve content_type check to fix issue #107:
// https://github.com/gbaptista/luminous/issues/107
if (['text', 'application'].includes(type)) {
should_intercept = /html/.test(subtype);
}

return should_intercept;
}

var interceptor_html_string = undefined;
var data_html_string = undefined;

// TODO remove cache for development enviroment
// TODO: remove cache for development enviroment
load_interceptor_element('filterResponseData', function(element) {
interceptor_html_string = element_to_html_string(element);
});
@@ -14,9 +36,27 @@ if(injection_strategy != 'cookie') {
var encoder = new TextEncoder();
var decoder = new TextDecoder('utf-8');

var requests_content_types = {};

var detect_request_type = function(request_details) {
requests_content_types[request_details.requestId] = undefined;

var url = url_for_request(request_details);

if(should_intercept_request(url)) {
for(let header of request_details.responseHeaders) {
if(header.name.toLowerCase() == 'content-type') {
requests_content_types[request_details.requestId] = header.value;
}
}
}
}

var inject_interceptor_and_settings = function(request_details) {
var url = url_for_request(request_details);

// TODO: Improve should_intercept_request to fix issue #107:
// https://github.com/gbaptista/luminous/issues/107
if(should_intercept_request(url)) {
var options = full_options_for_url(url);

@@ -32,12 +72,14 @@ if(injection_strategy != 'cookie') {
var content_to_write = options_html_string + data_html_string + interceptor_html_string;

filter.ondata = event => {
var content_type = requests_content_types[request_details.requestId];

var content = decoder.decode(event.data, {stream: true});

// binary content? Image, PDF...
var binary = /\0/.exec(content);

if(!binary) {
if(!binary && should_intercept_content_type(content_type)) {
var match = /DOCTYPE(.|[\r\n])*?>/i.exec(content);

if(match && match.index < 10 && match[0].length < 200) {
@@ -61,6 +103,13 @@ if(injection_strategy != 'cookie') {
return {};
}

chrome.webRequest.onHeadersReceived.addListener(
detect_request_type,
{ urls: ['<all_urls>'], types: ['main_frame', 'sub_frame'] },
['responseHeaders', 'blocking']
);


chrome.webRequest.onBeforeRequest.addListener(
inject_interceptor_and_settings,
{ urls: ['<all_urls>'], types: ['main_frame', 'sub_frame'] },
8 changes: 8 additions & 0 deletions js/background/setup/default_settings.js
Original file line number Diff line number Diff line change
@@ -106,6 +106,14 @@ var set_default_settings = function() {
sync_data['auto_settings'] = {};
}

if(!sync_data['advanced']) {
sync_data['advanced'] = {};
}

if(sync_data['advanced']['try_filter_response_data'] == undefined) {
sync_data['advanced']['try_filter_response_data'] = true;
}

if(!sync_data['auto_settings']['domains']) {
sync_data['auto_settings']['domains'] = {};
}
3 changes: 3 additions & 0 deletions js/background/strategy.js
Original file line number Diff line number Diff line change
@@ -7,6 +7,9 @@ if(
&&
browser.webRequest.filterResponseData
) {
// TODO: Use sync_data['advanced']['try_filter_response_data']
// if true: 'filterResponseData'
// else: 'cookie'

// has filterResponseData support (Firefox 57+ only)
injection_strategy = 'filterResponseData';
19 changes: 17 additions & 2 deletions js/content/initializer.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
var should_inject_this_document = function() {
// thanks to: https://github.com/EFForg/privacybadger/pull/1954
if (
document instanceof HTMLDocument === false &&
(
document instanceof XMLDocument === false ||
document.createElement('div') instanceof HTMLDivElement === false
)
) {
return false;
}

return true;
}

var intialize_luminous_injections = function(from) {
if(from == 'cookie') {
var injection_enabled = Cookies.get('le');
@@ -10,7 +25,7 @@ var intialize_luminous_injections = function(from) {

if(from == 'cookie') {
if(injection_enabled != 'f') {
fn(true);
fn(should_inject_this_document());
}
} else {
fn(false);
@@ -33,5 +48,5 @@ if(injection_strategy == 'cookie') {
intialize_luminous_injections('cookie');
} else {
// TODO Firefox 59+?
intialize_luminous_injections('injection_strategy');
intialize_luminous_injections('filterResponseData');
}
8 changes: 6 additions & 2 deletions js/content/strategy.js
Original file line number Diff line number Diff line change
@@ -15,8 +15,12 @@ if(typeof browser !== 'undefined') {
// Firefox without filterResponseData support...
injection_strategy = 'cookie';
} else {
// Let's hope it's a Firefox 57+ or
// something with filterResponseData support.
// TODO: Use sync_data['advanced']['try_filter_response_data']
// if true: 'filterResponseData'
// else: 'cookie'

// Let's hope it's a Firefox 57+ or something
// with filterResponseData support.
injection_strategy = 'filterResponseData';
}
}
35 changes: 35 additions & 0 deletions js/settings/advanced/options.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
$(document).ready(function() {
load_template('html/settings/templates/advanced/form.html', function(template) {
var load_sync_data = function() {
chrome.storage.sync.get(null, function(sync_data) {
$('#form').html(
Mustache.render(template, {
advanced_options: {
injection: {
title: chrome.i18n.getMessage('settingsInjectionTitle'),
strategy: {
label: chrome.i18n.getMessage('settingsFilterResponseDataTitle'),
value: sync_data['advanced']['try_filter_response_data'],
checked: sync_data['advanced']['try_filter_response_data']
}
},
}
})
);

observe_form();

loaded();
});
}

chrome.storage.onChanged.addListener(function(changes, namespace) {
if(namespace == 'sync' && changes) {
loading();
load_sync_data();
}
});

load_sync_data();
});
});
5 changes: 5 additions & 0 deletions js/settings/settings.js
Original file line number Diff line number Diff line change
@@ -162,6 +162,11 @@ $(document).ready(function() {
url: chrome.extension.getURL('html/settings/stored-data/local.html'),
active: (document.location.pathname == '/html/settings/stored-data/local.html')
},
{
title: chrome.i18n.getMessage('settingsAdvancedTitle'),
url: chrome.extension.getURL('html/settings/advanced/options.html'),
active: (document.location.pathname == '/html/settings/advanced/options.html')
},
]
})
);