Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Thomas Rientjes
tor-browser-settings
Commits
d6123121
Commit
d6123121
authored
Dec 17, 2016
by
Thomas Rientjes
Browse files
Create Setting and SettingAlteration models
parent
0b7aec0b
Changes
6
Hide whitespace changes
Inline
Side-by-side
chrome/js/models/setting-alteration.js
0 → 100644
View file @
d6123121
/**
* Setting alteration model.
*/
class
SettingAlteration
{
/**
* Creates a setting alteration model.
*
* @param {String} settingId - The identifier of the altered setting.
* @param {String} previousValue - The previous value of the altered setting.
* @param {String} currentValue - The current value of the altered setting.
*/
constructor
(
settingId
,
previousValue
,
currentValue
)
{
this
.
settingId
=
settingId
;
this
.
previousValue
=
previousValue
;
this
.
currentValue
=
currentValue
;
}
}
chrome/js/settings.js
0 → 100644
View file @
d6123121
/**
* Application settings page script.
*
* @module chrome/settings
*/
'
use strict
'
;
window
.
onload
=
function
()
{
var
controls
=
{
securityLevel
:
document
.
querySelector
(
'
[data-setting-id="security_level"]
'
)
};
controls
.
securityLevel
.
addEventListener
(
'
change
'
,
function
()
{
// TODO
});
}
chrome/settings.html
View file @
d6123121
...
...
@@ -11,6 +11,9 @@
<link
rel=
"stylesheet"
type=
"text/css"
href=
"css/settings.css"
>
<script
src=
"js/models/setting-alteration.js"
></script>
<script
src=
"js/settings.js"
></script>
</head>
<body>
...
...
data/content-scripts/settings.js
View file @
d6123121
...
...
@@ -25,7 +25,6 @@ self.port.once('worker:initialized', function (initialState) {
* @param {Object} setting The fetched application setting.
*/
self
.
port
.
on
(
'
setting:fetched
'
,
function
(
setting
)
{
applySetting
(
setting
);
});
...
...
@@ -58,26 +57,24 @@ function applyL10n (l10n) {
*/
function
applySettings
(
settings
)
{
let
setting
Key
s
=
Object
.
keys
(
settings
);
let
setting
Id
s
=
Object
.
keys
(
settings
);
setting
Key
s
.
forEach
(
function
(
setting
Key
)
{
setting
Id
s
.
forEach
(
function
(
setting
Id
)
{
applySetting
({
key
:
settingKey
,
value
:
settings
[
settingKey
]
});
let
setting
=
settings
[
settingId
];
applySetting
(
setting
);
});
}
/**
* Applies a given setting to the user interface.
*
* @param {
Object
} setting An application setting object.
* @param {
Setting
} setting An application setting object.
* @private
*/
function
applySetting
(
setting
)
{
let
elements
=
document
.
querySelectorAll
(
'
[data-setting-id="
'
+
setting
.
key
+
'
"]
'
);
let
elements
=
document
.
querySelectorAll
(
'
[data-setting-id="
'
+
setting
.
id
+
'
"]
'
);
for
(
let
element
of
elements
)
{
...
...
@@ -91,18 +88,18 @@ function applySetting (setting) {
* Fetch setting event emitter.
*
* @event setting:fetch
* @property {String} setting
Key
The
key
of the requested setting.
* @property {String} setting
Id
The
identifier
of the requested setting.
*/
function
fetchSetting
(
setting
Key
)
{
self
.
port
.
emit
(
'
setting:fetch
'
,
setting
Key
);
function
fetchSetting
(
setting
Id
)
{
self
.
port
.
emit
(
'
setting:fetch
'
,
setting
Id
);
}
/**
* Setting
chang
ed event emitter.
* Setting
alter
ed event emitter.
*
* @event setting:
chang
ed
* @property {
Object} setting The updated setting
.
* @event setting:
alter
ed
* @property {
SettingAlteration} settingAlteration The setting alteration details
.
*/
function
setting
Chang
ed
(
setting
)
{
self
.
port
.
emit
(
'
setting:
chang
ed
'
,
setting
);
function
setting
Alter
ed
(
setting
Alteration
)
{
self
.
port
.
emit
(
'
setting:
alter
ed
'
,
setting
Alteration
);
}
src/models/setting.js
0 → 100644
View file @
d6123121
/**
* Setting model.
*/
class
Setting
{
/**
* Creates a setting model.
*
* @param {String} id - The setting identifier.
* @param {String} value - The value of the setting.
*/
constructor
(
id
,
value
)
{
this
.
id
=
id
;
this
.
value
=
value
;
}
};
exports
.
Setting
=
Setting
;
src/settings.js
View file @
d6123121
...
...
@@ -24,6 +24,13 @@ const BROWSER_NAME = 'Orfox';
*/
const
SETTINGS_URI
=
'
chrome://tor-browser-settings/content/settings.html
'
;
/**
* The setting model.
*
* @var {Setting} Setting
*/
var
{
Setting
}
=
require
(
'
./models/setting
'
);
/**
* Can be used to get localization entries by key name.
*
...
...
@@ -90,23 +97,23 @@ function startListening (worker) {
learn_more_label
:
_
(
'
learn_more_label
'
)
},
settings
:
{
security_level
:
1
security_level
:
new
Setting
(
'
security_level
'
,
2
)
}
});
worker
.
port
.
on
(
'
setting:fetch
'
,
function
(
setting
Key
)
{
worker
.
port
.
on
(
'
setting:fetch
'
,
function
(
setting
Id
)
{
let
fetchedSetting
=
{
key
:
settingKey
,
value
:
settings
[
settingKey
]
};
let
fetchedSetting
;
fetchedSetting
=
new
Setting
(
settingId
,
settings
[
settingId
]);
worker
.
port
.
emit
(
'
setting:fetched
'
,
fetchedSetting
);
});
worker
.
port
.
on
(
'
setting:changed
'
,
function
(
details
)
{
worker
.
port
.
on
(
'
setting:altered
'
,
function
(
settingId
,
newValue
)
{
settings
[
settingId
]
=
newValue
;
settings
[
details
.
key
]
=
details
.
v
alue
;
worker
.
port
.
emit
(
'
setting:persisted
'
,
details
);
var
persistedSetting
=
new
Setting
(
settingId
,
newV
alue
)
;
worker
.
port
.
emit
(
'
setting:persisted
'
,
persistedSetting
);
});
}
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