Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Unified Diff: chrome/browser/resources/flags.html

Issue 7148023: Add content-security-policy (CSP) to chrome://flags. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/flags.css ('k') | chrome/browser/resources/flags.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/flags.html
===================================================================
--- chrome/browser/resources/flags.html (revision 89497)
+++ chrome/browser/resources/flags.html (working copy)
@@ -2,244 +2,16 @@
<html i18n-values="dir:textdirection;">
<head>
<meta charset="utf-8">
-<style>
-body {
- margin: 10px;
- min-width: 47em;
-}
-
-a {
- color: blue;
- font-size: 103%;
-}
-
-div#header {
- margin-bottom: 1.05em;
- /* 67px is the height of the header's background image. */
- min-height: 67px;
- overflow: hidden;
- padding-bottom: 20px;
- -webkit-padding-start: 0;
- padding-top: 20px;
- position: relative;
- box-sizing: border-box;
-}
-
-#header h1 {
- background: url('../../app/theme/flags_section.png') 0px 20px no-repeat;
- display: inline;
- margin: 0;
- padding-bottom: 43px;
- -webkit-padding-start: 75px;
- padding-top: 40px;
-}
-
-html[dir=rtl] #header h1 {
- background: url('../../app/theme/flags_section.png') right no-repeat;
-}
-
-h1 {
- font-size: 156%;
- font-weight: bold;
- padding: 0;
- margin: 0;
-}
-
-#blurb-container {
- padding-bottom: 1.5em;
- font-size: 120%;
-}
-
-#blurb-warning {
- color: red;
- font-weight: bold;
-}
-
-div.content {
- font-size: 88%;
- margin-top: 5px;
-}
-
-.section-header {
- background: #ebeff9;
- border-top: 1px solid #b5c7de;
- font-size: 99%;
- padding-bottom: 2px;
- -webkit-padding-start: 5px;
- padding-top: 3px;
- width: 100%;
-}
-
-.section-header > table tr td:first-child {
- width: 100%;
-}
-
-.section-header > table {
- width: 100%;
-}
-
-.section-header-title {
- font-weight: bold;
-}
-
-.vbox-container {
- display: -webkit-box;
- -webkit-box-orient: vertical;
-}
-
-.wbox {
- display: -webkit-box;
- -webkit-box-align: stretch;
- -webkit-box-flex: 1;
-}
-
-#top {
- -webkit-padding-end: 5px;
-}
-
-/* Disabled experiments display grey text on a grey background. The title,
- however, should remain completely legible. */
-.experiment-disabled > td {
- background: #F0F0F0;
- color: #A0A0A0;
-}
-
-.experiment-disabled .experiment-name {
- color: #000;
-}
-
-.experiment {
- border-bottom: 1px solid #cdcdcd;
-}
-
-.experiment td {
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-/* Indent the text related to each experiment. */
-.experiment-text {
- -webkit-padding-start: 5px;
-}
-
-.experiment-name {
- font-weight: bold;
-}
-
-.no-experiments {
- margin: 6em 0 0;
- text-align: center;
- font-size: 1.2em;
-}
-
-/* Match the indentation of .experiment-text. */
-.experiment-actions {
- -webkit-padding-start: 5px;
- margin-top: 0.2em;
- margin-bottom: 0.2em;
-}
-
-div.needs-restart {
- padding-top: 10px;
- -webkit-padding-start: 5px;
-}
-
-button {
- font-size: 104%;
-}
-
-</style>
-<script>
-
-/**
- * This variable structure is here to document the structure that the template
- * expects to correctly populate the page.
- */
-var flagsExperimentsDataFormat = {
- 'flagsExperiments': [
- {
- 'internal_name': 'Experiment ID string',
- 'name': 'Experiment Name',
- 'description': 'description',
- /* enabled is only set if the experiment is single valued */
- 'enabled': true,
- /* choices is only set if the experiment has multiple values */
- 'choices': [
- {
- 'internal_name': 'Experiment ID string',
- 'description': 'description',
- 'selected': true
- }
- ]
- }
- ],
- 'needsRestart': false
-};
-
-/**
- * Takes the |flagsExperimentsData| input argument which represents data about
- * the currently available experiments and populates the html jstemplate
- * with that data. It expects an object structure like the above.
- * @param {Object} flagsExperimentsData Information about available experiments
- */
-function renderTemplate(flagsExperimentsData) {
- // This is the javascript code that processes the template:
- var input = new JsEvalContext(flagsExperimentsData);
- var output = document.getElementById('flagsExperimentTemplate');
- jstProcess(input, output);
-}
-
-/**
- * Asks the C++ FlagsDOMHandler to get details about the available experiments
- * and return detailed data about the configuration. The FlagsDOMHandler
- * should reply to returnFlagsExperiments() (below).
- */
-function requestFlagsExperimentsData() {
- chrome.send('requestFlagsExperiments', []);
-}
-
-/**
- * Asks the C++ FlagsDOMHandler to restart the browser (restoring tabs).
- */
-function restartBrowser() {
- chrome.send('restartBrowser', []);
-}
-
-/**
- * Called by the WebUI to re-populate the page with data representing the
- * current state of installed experiments.
- */
-function returnFlagsExperiments(flagsExperimentsData){
- var bodyContainer = document.getElementById('body-container');
- renderTemplate(flagsExperimentsData);
- bodyContainer.style.visibility = 'visible';
-}
-
-/**
- * Handles a 'enable' or 'disable' button getting clicked.
- */
-function handleEnableExperiment(node, enable) {
- // Tell the C++ FlagsDOMHandler to enable/disable the experiment.
- chrome.send('enableFlagsExperiment', [String(node.internal_name),
- String(enable)]);
- requestFlagsExperimentsData();
-}
-
-/**
- * Invoked when the selection of a multi-value choice is changed to the
- * specified index.
- */
-function handleSelectChoiceExperiment(node, index) {
- // Tell the C++ FlagsDOMHandler to enable the selected choice.
- chrome.send('enableFlagsExperiment',
- [String(node.internal_name) + "@" + index, "true"]);
- requestFlagsExperimentsData();
-}
-
-// Get data and have it displayed upon loading.
-document.addEventListener('DOMContentLoaded', requestFlagsExperimentsData);
-
-</script>
+<!-- X-WebKit-CSP is our development name for Content-Security-Policy.
+ The 'unsafe-eval' is required for jstemplate_compiled.js.
+ TODO(tsepez) rename when Content-security-policy is done.
+-->
+<meta http-equiv="X-WebKit-CSP" content="object-src 'none';
+ script-src chrome://resources 'self' 'unsafe-eval'">
Evan Stade 2011/06/20 18:50:28 4 space indent for continuation lines
+<link rel="stylesheet" href="flags.css"/>
+<script src="chrome://flags/flags.js"></script>
+<script src="chrome://flags/strings.js"></script>
+<script src="chrome://resources/js/i18n_template.js"></script>
</head>
<body i18n-values=".style.fontFamily:fontfamily;.style.fontSize:fontsize">
<div id="body-container" style="visibility:hidden">
@@ -290,8 +62,9 @@
<span jsvalues=".innerHTML:description">
</div>
<div jsdisplay="choices && choices.length > 0">
- <select jsvalues=".internal_name:internal_name;.disabled:!enabled"
- onchange="handleSelectChoiceExperiment(this, this.selectedIndex)">
+ <select
+ classs="experiment-select"
+ jsvalues=".internal_name:internal_name;.disabled:!enabled">
<option jsvalues=".selected:selected"
jsselect="choices"
jscontent="description">NAME
@@ -305,18 +78,18 @@
then both jsdisplay tests fail, and we get no
rendering from this section. -->
<span>
- <a
+ <a
+ class="experiment-disable-link"
jsvalues=".internal_name:internal_name"
jsdisplay="enabled"
- onclick="handleEnableExperiment(this, false)"
- href="javascript:void(0);"
+ href="#"
i18n-content="disable"
>DISABLE</a>
<a
+ class="experiment-enable-link"
jsvalues=".internal_name:internal_name"
jsdisplay="!enabled"
- onclick="handleEnableExperiment(this, true)"
- href="javascript:void(0);"
+ href="#"
i18n-content="enable"
>ENABLE</a>
</span>
@@ -329,12 +102,15 @@
<div class="needs-restart" jsdisplay="needsRestart">
<div i18n-content="flagsRestartNotice">NEEDS_RESTART</div>
- <button type="button"
- onclick="restartBrowser();"
+ <button class="experiment-restart-button"
+ type="button"
i18n-content="flagsRestartButton">RESTART</button>
</div>
</div>
</div>
</div>
+<script src="chrome://resources/js/i18n_process.js"></script>
+<script src="chrome://resources/js/jstemplate_compiled.js"></script>
</body>
</html>
+
« no previous file with comments | « chrome/browser/resources/flags.css ('k') | chrome/browser/resources/flags.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698