Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Gafam Detector
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Oncela
Gafam Detector
Commits
78bf10cc
Commit
78bf10cc
authored
Feb 26, 2018
by
Oncela
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace popup.js
parent
0b043253
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
121 additions
and
41 deletions
+121
-41
popup.js
popup.js
+121
-41
No files found.
popup.js
View file @
78bf10cc
...
...
@@ -3,9 +3,8 @@
var
popup
=
{};
var
timer
=
6
;
// Durée d'affichage en seconde (infini si 0)
// Signale à tabs.js que la page est chargée ======================
browser
.
runtime
.
sendMessage
(
"
ready
"
);
browser
.
runtime
.
sendMessage
(
{
type
:
"
ready
"
}
);
// Réception des messages envoyés par tabs.js ===================
...
...
@@ -17,6 +16,10 @@ browser.runtime.onMessage.addListener( function (message)
// Récupère les noms et couleurs d'entreprises
popup
.
titles
=
message
.
info
.
companies
.
titles
;
popup
.
colors
=
message
.
info
.
companies
.
colors
;
popup
.
logos
=
message
.
info
.
companies
.
logos
;
popup
.
showing
=
message
.
info
.
showing
;
console
.
log
(
message
);
// Pour chaque requête de la liste transmise par tabs.js
for
(
var
request
of
message
.
info
.
requests
)
...
...
@@ -26,12 +29,76 @@ browser.runtime.onMessage.addListener( function (message)
}
}
// S'il s'agit d'un message de mise à jour
// S'il s'agit d'un message de mise à jour
des requêtes
if
(
message
.
type
==
"
update
"
)
{
// Met à jour les informations sur la requête
popup
.
update
(
message
.
request
);
}
// S'il s'agit d'un message de mise à jour du compteur
if
(
message
.
type
==
"
counter
"
)
{
// L'élément général qui inclue le compteur
var
counter
=
document
.
createElement
(
"
div
"
);
counter
.
className
=
"
counter
"
;
popup
.
companies
.
get
(
message
.
index
).
info
.
appendChild
(
counter
);
// Le début du texte
var
counter1
=
document
.
createElement
(
"
div
"
);
counter1
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
counter1
"
);
counter
.
appendChild
(
counter1
);
// Le pourcentage
var
counter2
=
document
.
createElement
(
"
div
"
);
counter2
.
className
=
"
prop
"
;
counter2
.
style
.
color
=
popup
.
colors
[
message
.
index
];
counter2
.
innerHTML
=
"
<b style='background:
"
+
popup
.
colors
[
message
.
index
]
+
"
;'>
"
+
message
.
prop
+
"
%</b>
"
+
browser
.
i18n
.
getMessage
(
"
counter2
"
);
counter
.
appendChild
(
counter2
);
// La liste des requêtes à afficher
var
urlList
=
""
;
for
(
var
u
of
message
.
list
)
urlList
+=
"
<li>
"
+
u
+
"
</li>
"
;
// L'infobulle
var
counterDiv
=
document
.
createElement
(
"
div
"
);
counterDiv
.
className
=
"
counter_div
"
;
counterDiv
.
style
.
backgroundColor
=
popup
.
colors
[
message
.
index
];
counterDiv
.
style
.
color
=
popup
.
colors
[
message
.
index
];
counterDiv
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
counterList
"
,
[
popup
.
companies
.
get
(
message
.
index
).
title
,
urlList
]);
counter
.
appendChild
(
counterDiv
);
// La fin du texte
var
counter2
=
document
.
createElement
(
"
div
"
);
counter2
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
counter3
"
,
popup
.
companies
.
get
(
message
.
index
).
title
);
counter
.
appendChild
(
counter2
);
// Outro
var
outro
=
document
.
createElement
(
"
div
"
);
outro
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
outro
"
);
outro
.
style
.
color
=
popup
.
colors
[
message
.
index
];
outro
.
className
=
"
outro
"
;
outro
.
onclick
=
function
()
{
window
.
open
(
"
https://laquadrature.net
"
,
'
_blank
'
);}
popup
.
companies
.
get
(
message
.
index
).
info
.
appendChild
(
outro
);
}
// S'il s'agit d'un message concernant l'état de l'affichage
if
(
message
.
type
==
"
display
"
)
{
popup
.
showing
=
message
.
showing
;
popup
.
companies
.
forEach
(
function
(
comp
)
{
if
(
popup
.
showing
)
popup
.
startDisplay
(
comp
.
div
);
else
{
comp
.
div
.
className
=
"
company
"
;
clearTimeout
(
comp
.
div
.
timeoutID
);
}
});
}
});
...
...
@@ -57,8 +124,10 @@ popup.update = function (request)
// Créé l'objet contenant les informations sur l'entreprise
var
company
=
{
index
:
request
.
index
,
title
:
this
.
titles
[
request
.
index
],
// Nom de l'entreprise
color
:
this
.
colors
[
request
.
index
],
// Couleur de l'entreprise
logo
:
this
.
logos
[
request
.
index
],
contents
:
new
Map
(),
// Liste des ressources proposées
};
...
...
@@ -69,37 +138,39 @@ popup.update = function (request)
company
.
div
=
document
.
createElement
(
"
div
"
);
company
.
div
.
className
=
"
company
"
;
company
.
div
.
style
.
backgroundColor
=
company
.
color
;
company
.
div
.
style
.
top
=
80
*
(
this
.
companies
.
size
)
+
"
px
"
;
company
.
div
.
style
.
top
=
15
+
110
*
(
this
.
companies
.
size
-
1
)
+
"
px
"
;
this
.
div
.
appendChild
(
company
.
div
);
// Créé l'élément HTML contenant le texte d'annonce
var
title
=
document
.
createElement
(
"
p
"
);
title
.
className
=
"
company_title
"
;
title
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
flag
"
,
company
.
title
);
company
.
div
.
appendChild
(
title
);
// Le logo de l'entreprise
var
title
=
document
.
createElement
(
"
div
"
);
title
.
className
=
"
title
"
;
title
.
innerHTML
=
"
<img src='
"
+
browser
.
extension
.
getURL
(
company
.
logo
)
+
"
'>
"
;
// title.style.color = company.color;
company
.
div
.
appendChild
(
title
);
// Le sous-texte du drapeau
var
subtitle
=
document
.
createElement
(
"
div
"
);
subtitle
.
className
=
"
subtitle
"
;
subtitle
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
subtitle
"
);
company
.
div
.
appendChild
(
subtitle
);
//
Créer un sous-élément HTML qui affichera l
es détails
var
info
=
document
.
createElement
(
"
div
"
);
info
.
className
=
"
info
"
;
company
.
div
.
appendChild
(
info
);
//
L
es détails
company
.
info
=
document
.
createElement
(
"
div
"
);
company
.
info
.
className
=
"
info
"
;
company
.
div
.
appendChild
(
company
.
info
);
// Premier paragraphe des détails (nom du site + nom de l'entreprise)
var
intro
=
document
.
createElement
(
"
p
"
);
var
intro
=
document
.
createElement
(
"
div
"
);
intro
.
className
=
"
intro
"
;
intro
.
style
.
color
=
company
.
color
;
intro
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
intro
"
,
[
window
.
location
.
href
.
replace
(
/.*
?\:\/\/(?:
www.
)?(
.*
?)\/
.*/
,
"
$1
"
),
company
.
title
]);
info
.
appendChild
(
intro
);
company
.
info
.
appendChild
(
intro
);
// Liste des ressources offertes par l'entreprise
company
.
list
=
document
.
createElement
(
"
ul
"
);
company
.
list
.
className
=
"
type
"
;
info
.
appendChild
(
company
.
list
);
// Suite des détails
var
outro
=
document
.
createElement
(
"
p
"
);
outro
.
className
=
"
outro
"
;
outro
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
outro
"
,
company
.
title
);
info
.
appendChild
(
outro
);
company
.
list
=
document
.
createElement
(
"
div
"
);
company
.
list
.
className
=
"
type_list
"
;
company
.
list
.
style
.
color
=
company
.
color
;
company
.
info
.
appendChild
(
company
.
list
);
// Si la page a le focus
if
(
!
document
.
hidden
)
...
...
@@ -114,6 +185,9 @@ popup.update = function (request)
// Appelle le lancement de drapeau dès qu'elle prend le focus
document
.
addEventListener
(
'
visibilitychange
'
,
function
(
e
)
{
if
(
!
document
.
hidden
)
popup
.
startDisplay
(
company
.
div
);});
}
// Informe l'extension qu'une nouvelle page est connue par l'entreprise
browser
.
runtime
.
sendMessage
({
type
:
"
counter
"
,
index
:
company
.
index
,
url
:
window
.
location
.
href
});
}
// Si le type de ressource n'est pas encore listé ==================
...
...
@@ -127,17 +201,19 @@ popup.update = function (request)
}
// Créé l'élément HTML qui affichera le nombre de fois où le type de ressource a été offert
content
.
div
=
document
.
createElement
(
"
li
"
);
content
.
div
.
className
=
"
type_count
"
;
content
.
div
=
document
.
createElement
(
"
div
"
);
content
.
div
.
className
=
"
type
"
;
content
.
div
.
style
.
color
=
this
.
colors
[
request
.
index
];
this
.
companies
.
get
(
request
.
index
).
list
.
appendChild
(
content
.
div
);
// Créé l'élément HTML qui listera les requêtes concernant le type de ressource
var
div
=
document
.
createElement
(
"
div
"
);
div
.
className
=
"
type_requests
"
;
div
.
style
.
backgroundColor
=
this
.
colors
[
request
.
index
];
this
.
companies
.
get
(
request
.
index
).
list
.
appendChild
(
div
);
// Créé l'élément HTML qui introduit la liste
var
intro
=
document
.
createElement
(
"
p
"
);
var
intro
=
document
.
createElement
(
"
div
"
);
intro
.
className
=
"
intro
"
;
intro
.
innerHTML
=
browser
.
i18n
.
getMessage
(
"
request
"
,
[
request
.
content
,
new
Date
(
request
.
date
).
toLocaleString
().
slice
(
0
,
-
3
),
window
.
location
.
href
]);
div
.
appendChild
(
intro
);
...
...
@@ -158,7 +234,8 @@ popup.update = function (request)
content
.
number
++
;
// Met à jour l'élément HTML affichant le nombre de requêtes concernant une ressource
content
.
div
.
innerHTML
=
"
<b>
"
+
content
.
number
+
"
</b> <u>
"
+
content
.
type
+
(
content
.
number
>
1
?
"
s
"
:
""
)
+
"
</u>
"
content
.
div
.
innerHTML
=
"
<b style='color:
"
+
this
.
colors
[
request
.
index
]
+
"
;'>
"
+
content
.
number
+
"
</b>
"
+
content
.
type
+
(
content
.
number
>
1
?
"
s
"
:
""
);
content
.
div
.
style
.
background
=
this
.
colors
[
request
.
index
];
// Ajoute l'URL de la requête à la liste de celles associées à un type de ressource
var
limit
=
100
;
...
...
@@ -173,23 +250,26 @@ popup.update = function (request)
// Affichage du drapeau ==================================
popup
.
startDisplay
=
function
(
div
)
{
// Attend 10ms pour afficher le drapeau
setTimeout
(
function
(
div
){
div
.
className
+=
"
show
"
;},
10
,
div
);
// Attend la durée indiquée par popup.timer pour fermer le drapeau
if
(
timer
)
if
(
popup
.
showing
)
{
// Attend 10ms pour afficher le drapeau
setTimeout
(
function
(
d
iv
){
div
.
className
+=
"
fold
"
;},
10
00
*
timer
,
function
(
d
){
d
.
className
+=
"
show
"
;},
10
,
div
);
// Attend la durée indiquée par popup.timer pour fermer le drapeau
if
(
timer
)
{
div
.
timeoutID
=
setTimeout
(
function
(
d
){
d
.
className
+=
"
fold
"
;},
1000
*
timer
,
div
);
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment