Resolve a regression in the Chromium extension's preferences handling
Commit df10513e10
unfortunately broke the options dialog of the Chromium extension because the logic required to work with the preference was not added. This patch adds the required logic to show the preference in the options dialog and to persist it to the preferences storage.
Verified using Chromium 50 on Arch Linux.
This commit is contained in:
parent
6316ca0299
commit
fdfaa43f5e
@ -80,6 +80,21 @@ body {
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template id="externalLinkTarget-template">
|
||||||
|
<div class="settings-row">
|
||||||
|
<label>
|
||||||
|
<span></span>
|
||||||
|
<select>
|
||||||
|
<option value="0">Default</option>
|
||||||
|
<option value="1">Current window/tab</option>
|
||||||
|
<option value="2">New window/tab</option>
|
||||||
|
<option value="3">Parent window/tab</option>
|
||||||
|
<option value="4">Top window/tab</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<script src="options.js"></script>
|
<script src="options.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -74,6 +74,8 @@ Promise.all([
|
|||||||
renderPreference = renderDefaultZoomValue(prefSchema.title);
|
renderPreference = renderDefaultZoomValue(prefSchema.title);
|
||||||
} else if (prefName === 'sidebarViewOnLoad') {
|
} else if (prefName === 'sidebarViewOnLoad') {
|
||||||
renderPreference = renderSidebarViewOnLoad(prefSchema.title);
|
renderPreference = renderSidebarViewOnLoad(prefSchema.title);
|
||||||
|
} else if (prefName === 'externalLinkTarget') {
|
||||||
|
renderPreference = renderExternalLinkTarget(prefSchema.title);
|
||||||
} else {
|
} else {
|
||||||
// Should NEVER be reached. Only happens if a new type of preference is
|
// Should NEVER be reached. Only happens if a new type of preference is
|
||||||
// added to the storage manifest.
|
// added to the storage manifest.
|
||||||
@ -190,3 +192,20 @@ function renderSidebarViewOnLoad(shortDescription) {
|
|||||||
}
|
}
|
||||||
return renderPreference;
|
return renderPreference;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function renderExternalLinkTarget(shortDescription) {
|
||||||
|
var wrapper = importTemplate('externalLinkTarget-template');
|
||||||
|
var select = wrapper.querySelector('select');
|
||||||
|
select.onchange = function() {
|
||||||
|
chrome.storage.local.set({
|
||||||
|
externalLinkTarget: parseInt(this.value)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
wrapper.querySelector('span').textContent = shortDescription;
|
||||||
|
document.getElementById('settings-boxes').appendChild(wrapper);
|
||||||
|
|
||||||
|
function renderPreference(value) {
|
||||||
|
select.value = value;
|
||||||
|
}
|
||||||
|
return renderPreference;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user