summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/generated_resources.grd41
-rw-r--r--chrome/app/theme/theme_resources.grd1
-rw-r--r--chrome/browser/app_controller_mac.mm9
-rw-r--r--chrome/browser/browser_about_handler.cc24
-rw-r--r--chrome/browser/browser_main.cc4
-rw-r--r--chrome/browser/browser_resources.grd1
-rw-r--r--chrome/browser/dom_ui/dom_ui_factory.cc7
-rw-r--r--chrome/browser/dom_ui/labs_ui.cc196
-rw-r--r--chrome/browser/dom_ui/labs_ui.h25
-rw-r--r--chrome/browser/dom_ui/plugins_ui.cc22
-rw-r--r--chrome/browser/labs.cc231
-rw-r--r--chrome/browser/labs.h37
-rw-r--r--chrome/browser/prefs/browser_prefs.cc6
-rw-r--r--chrome/browser/resources/labs.html311
-rw-r--r--chrome/chrome_browser.gypi4
-rw-r--r--chrome/common/pref_names.cc3
-rw-r--r--chrome/common/pref_names.h1
-rw-r--r--chrome/common/url_constants.cc12
-rw-r--r--chrome/common/url_constants.h20
19 files changed, 40 insertions, 915 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 6b37b00..27a5f4f 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -3778,47 +3778,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
Priority:
</message>
- <!-- Labs -->
- <message name="IDS_LABS_TITLE" desc="Title for the chrome://labs page. Should be translated like 'Labs' is at googlelabs.com.">
- Labs
- </message>
- <message name="IDS_LABS_LONG_TITLE" desc="Long version of the title for the chrome://labs page.">
- Labs: Some crazy experimental stuff.
- </message>
- <message name="IDS_LABS_TABLE_TITLE" desc="Title for the experiments table on the chrome://labs page.">
- Labs Experiments
- </message>
- <message name="IDS_LABS_BLURB" desc="Text at the top of the about:labs page, warning users that the about:labs contents are volatile.">
- <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> Labs is a testing ground for experimental features that aren't quite ready for primetime. They may change, break or disappear at any time.
- </message>
- <message name="IDS_LABS_NO_EXPERIMENTS_AVAILABLE" desc="Shown if no labs experiments are available">
- Aww, it looks like there are currently no experiments available.
- </message>
- <message name="IDS_LABS_RESTART_NOTICE" desc="Notifies the user that he needs to restart chrome. Shown next to a button that says 'Restart Now'.">
- Your changes will take effect the next time you restart <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>.
- </message>
- <message name="IDS_LABS_RESTART_BUTTON" desc="Text on a button that restarts chrome when clicked. ">
- Restart Now
- </message>
- <message name="IDS_LABS_DISABLE" desc="The link for disabling a labs experiment.">
- Disable
- </message>
- <message name="IDS_LABS_ENABLE" desc="The link for enabling a labs experiment.">
- Enable
- </message>
- <message name="IDS_LABS_TABPOSE_NAME" desc="Name of the 'Tab Overview' lab.">
- Tab Overview
- </message>
- <message name="IDS_LABS_TABPOSE_DESCRIPTION" desc="Description of the 'Tab Overview' lab.">
- Swipe down with three fingers on your trackpad to see an overview of all your tabs. Click on a thumbnail to select it. Works great in fullscreen mode.
- </message>
- <message name="IDS_LABS_LEFTTABS_NAME" desc="Name of the 'Left Tabs' lab.">
- Tabs on the left
- </message>
- <message name="IDS_LABS_LEFTTABS_DESCRIPTION" desc="Description of the 'Left Tabs' lab.">
- Adds a "Use Side Tabs" entry to the tabstrip's context menu. Use this to toggle between tabs on top (default) and tabs on the left. Useful on widescreen monitors.
- </message>
-
<!-- Click-to-load -->
<message name="IDS_PLUGIN_LOAD" desc="The link for loading a blocked plug-in.">
Run plug-in this time
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd
index 27ba62a7..19737f4 100644
--- a/chrome/app/theme/theme_resources.grd
+++ b/chrome/app/theme/theme_resources.grd
@@ -186,7 +186,6 @@
<include name="IDR_INFO_BUBBLE_CLOSE" file="bubble_close.png" type="BINDATA" />
<include name="IDR_INPUT_ALERT" file="input_alert.png" type="BINDATA" />
<include name="IDR_KEYWORD_SEARCH_MAGNIFIER" file="keyword_search_magnifier.png" type="BINDATA" />
- <include name="IDR_LABS" file="labs.png" type="BINDATA" />
<include name="IDR_LOCATIONBG_C" file="omnibox_c.png" type="BINDATA" />
<include name="IDR_LOCATIONBG_L" file="omnibox_l.png" type="BINDATA" />
<include name="IDR_LOCATIONBG_POPUPMODE_CENTER" file="omnibox_popup_c.png" type="BINDATA" />
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
index eb4452c..c6cf443 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -220,6 +220,10 @@ void RecordLastRunAppBundlePath() {
if (parsed_command_line.HasSwitch(switches::kActivateOnLaunch)) {
[NSApp activateIgnoringOtherApps:YES];
}
+
+ if (!parsed_command_line.HasSwitch(switches::kEnableExposeForTabs)) {
+ [tabposeMenuItem_ setHidden:YES];
+ }
}
// (NSApplicationDelegate protocol) This is the Apple-approved place to override
@@ -497,11 +501,6 @@ void RecordLastRunAppBundlePath() {
[self openUrls:startupUrls_];
[self clearStartupUrls];
}
-
- const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
- if (!parsed_command_line.HasSwitch(switches::kEnableExposeForTabs)) {
- [tabposeMenuItem_ setHidden:YES];
- }
}
// This is called after profiles have been loaded and preferences registered.
diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc
index 4599689..25e288d 100644
--- a/chrome/browser/browser_about_handler.cc
+++ b/chrome/browser/browser_about_handler.cc
@@ -29,7 +29,6 @@
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/dom_ui/chrome_url_data_manager.h"
-#include "chrome/browser/labs.h"
#include "chrome/browser/memory_details.h"
#include "chrome/browser/metrics/histogram_synchronizer.h"
#include "chrome/browser/net/predictor_api.h"
@@ -97,7 +96,6 @@ const char kCreditsPath[] = "credits";
const char kCachePath[] = "view-http-cache";
const char kDnsPath[] = "dns";
const char kHistogramsPath[] = "histograms";
-const char kLabsPath[] = "labs";
const char kMemoryRedirectPath[] = "memory-redirect";
const char kMemoryPath[] = "memory";
const char kStatsPath[] = "stats";
@@ -129,7 +127,6 @@ const char *kAllAboutPaths[] = {
kCreditsPath,
kDnsPath,
kHistogramsPath,
- kLabsPath,
kMemoryPath,
kNetInternalsPath,
kPluginsPath,
@@ -253,17 +250,13 @@ std::string AboutAbout() {
html.append("<html><head><title>About Pages</title></head><body>\n");
html.append("<h2>List of About pages</h2><ul>\n");
for (size_t i = 0; i < arraysize(kAllAboutPaths); i++) {
- if (kAllAboutPaths[i] == kLabsPath && !about_labs::IsEnabled())
- continue;
- if (kAllAboutPaths[i] == kAppCacheInternalsPath ||
+ if (kAllAboutPaths[i] == kNetInternalsPath ||
+ kAllAboutPaths[i] == kPluginsPath ||
kAllAboutPaths[i] == kCachePath ||
- kAllAboutPaths[i] == kLabsPath ||
- kAllAboutPaths[i] == kNetInternalsPath ||
- kAllAboutPaths[i] == kPluginsPath) {
+ kAllAboutPaths[i] == kAppCacheInternalsPath)
html.append("<li><a href='chrome://");
- } else {
+ else
html.append("<li><a href='chrome://about/");
- }
html.append(kAllAboutPaths[i]);
html.append("/'>about:");
html.append(kAllAboutPaths[i]);
@@ -1132,15 +1125,6 @@ bool WillHandleBrowserAboutURL(GURL* url, Profile* profile) {
return true;
}
- if (about_labs::IsEnabled()) {
- // Rewrite about:labs and about:vaporware to chrome://labs/.
- if (LowerCaseEqualsASCII(url->spec(), chrome::kAboutLabsURL) ||
- LowerCaseEqualsASCII(url->spec(), chrome::kAboutVaporwareURL)) {
- *url = GURL(chrome::kChromeUILabsURL);
- return true;
- }
- }
-
// Rewrite about:net-internals/* URLs to chrome://net-internals/*
if (StartsWithAboutSpecifier(*url, chrome::kAboutNetInternalsURL)) {
*url = RemapAboutURL(chrome::kNetworkViewInternalsURL, *url);
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc
index 436de42..1c243e7 100644
--- a/chrome/browser/browser_main.cc
+++ b/chrome/browser/browser_main.cc
@@ -43,7 +43,6 @@
#include "chrome/browser/extensions/extensions_service.h"
#include "chrome/browser/first_run/first_run.h"
#include "chrome/browser/jankometer.h"
-#include "chrome/browser/labs.h"
#include "chrome/browser/metrics/histogram_synchronizer.h"
#include "chrome/browser/metrics/metrics_log.h"
#include "chrome/browser/metrics/metrics_service.h"
@@ -1183,9 +1182,6 @@ int BrowserMain(const MainFunctionParams& parameters) {
PrefService* user_prefs = profile->GetPrefs();
DCHECK(user_prefs);
- // Convert active labs into switches. Modifies the current command line.
- about_labs::ConvertLabsToSwitches(profile, CommandLine::ForCurrentProcess());
-
// Tests should be able to tune login manager before showing it.
// Thus only show login manager in normal (non-testing) mode.
if (!parameters.ui_task) {
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index 613418c..648ba2b 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -41,7 +41,6 @@ without changes to the corresponding grd file. eadeae-->
<include name="IDR_HISTORY_HTML" file="resources\history.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_HISTORY2_HTML" file="resources\history2.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_INCOGNITO_TAB_HTML" file="resources\incognito_tab.html" flattenhtml="true" type="BINDATA" />
- <include name="IDR_LABS_HTML" file="resources\labs.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_NEW_INCOGNITO_TAB_THEME_CSS" file="resources\new_incognito_tab_theme.css" flattenhtml="true" type="BINDATA" />
<include name="IDR_NEW_NEW_TAB_HTML" file="resources\new_new_tab.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_NEW_TAB_THEME_CSS" file="resources\new_tab_theme.css" flattenhtml="true" type="BINDATA" />
diff --git a/chrome/browser/dom_ui/dom_ui_factory.cc b/chrome/browser/dom_ui/dom_ui_factory.cc
index 251f646..0737acf 100644
--- a/chrome/browser/dom_ui/dom_ui_factory.cc
+++ b/chrome/browser/dom_ui/dom_ui_factory.cc
@@ -13,7 +13,6 @@
#include "chrome/browser/dom_ui/history_ui.h"
#include "chrome/browser/dom_ui/history2_ui.h"
#include "chrome/browser/dom_ui/html_dialog_ui.h"
-#include "chrome/browser/dom_ui/labs_ui.h"
#include "chrome/browser/dom_ui/net_internals_ui.h"
#include "chrome/browser/dom_ui/new_tab_ui.h"
#include "chrome/browser/dom_ui/options_ui.h"
@@ -23,7 +22,6 @@
#include "chrome/browser/extensions/extension_dom_ui.h"
#include "chrome/browser/extensions/extensions_service.h"
#include "chrome/browser/extensions/extensions_ui.h"
-#include "chrome/browser/labs.h"
#include "chrome/browser/printing/print_dialog_cloud.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/tab_contents/tab_contents.h"
@@ -118,8 +116,6 @@ static DOMUIFactoryFunction GetDOMUIFactoryFunction(const GURL& url) {
return &NewDOMUI<HistoryUI>;
if (url.host() == chrome::kChromeUIHistory2Host)
return &NewDOMUI<HistoryUI2>;
- if (about_labs::IsEnabled() && url.host() == chrome::kChromeUILabsHost)
- return &NewDOMUI<LabsUI>;
if (url.host() == chrome::kChromeUINetInternalsHost)
return &NewDOMUI<NetInternalsUI>;
if (url.host() == chrome::kChromeUIPluginsHost)
@@ -233,9 +229,6 @@ RefCountedMemory* DOMUIFactory::GetFaviconResourceBytes(Profile* profile,
if (page_url.host() == chrome::kChromeUIHistory2Host)
return HistoryUI2::GetFaviconResourceBytes();
- if (about_labs::IsEnabled() && page_url.host() == chrome::kChromeUILabsHost)
- return LabsUI::GetFaviconResourceBytes();
-
if (page_url.host() == chrome::kChromeUIOptionsHost)
return OptionsUI::GetFaviconResourceBytes();
diff --git a/chrome/browser/dom_ui/labs_ui.cc b/chrome/browser/dom_ui/labs_ui.cc
deleted file mode 100644
index 3e02112..0000000
--- a/chrome/browser/dom_ui/labs_ui.cc
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/dom_ui/labs_ui.h"
-
-#include <string>
-
-#include "app/l10n_util.h"
-#include "app/resource_bundle.h"
-#include "base/singleton.h"
-#include "base/values.h"
-#include "chrome/browser/browser_list.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/chrome_thread.h"
-#include "chrome/browser/dom_ui/chrome_url_data_manager.h"
-#include "chrome/browser/labs.h"
-#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/common/jstemplate_builder.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/common/url_constants.h"
-#include "grit/browser_resources.h"
-#include "grit/chromium_strings.h"
-#include "grit/generated_resources.h"
-#include "grit/theme_resources.h"
-
-namespace {
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// LabsUIHTMLSource
-//
-///////////////////////////////////////////////////////////////////////////////
-
-class LabsUIHTMLSource : public ChromeURLDataManager::DataSource {
- public:
- LabsUIHTMLSource()
- : DataSource(chrome::kChromeUILabsHost, MessageLoop::current()) {}
-
- // Called when the network layer has requested a resource underneath
- // the path we registered.
- virtual void StartDataRequest(const std::string& path,
- bool is_off_the_record,
- int request_id);
- virtual std::string GetMimeType(const std::string&) const {
- return "text/html";
- }
-
- private:
- ~LabsUIHTMLSource() {}
-
- DISALLOW_COPY_AND_ASSIGN(LabsUIHTMLSource);
-};
-
-void LabsUIHTMLSource::StartDataRequest(const std::string& path,
- bool is_off_the_record,
- int request_id) {
- // Strings used in the JsTemplate file.
- DictionaryValue localized_strings;
- localized_strings.SetString("labsTitle",
- l10n_util::GetStringUTF16(IDS_LABS_TITLE));
- localized_strings.SetString("labsLongTitle",
- l10n_util::GetStringUTF16(IDS_LABS_LONG_TITLE));
- localized_strings.SetString("labsTableTitle",
- l10n_util::GetStringUTF16(IDS_LABS_TABLE_TITLE));
- localized_strings.SetString("labsNoExperimentsAvailable",
- l10n_util::GetStringUTF16(IDS_LABS_NO_EXPERIMENTS_AVAILABLE));
- localized_strings.SetString("labsBlurb", l10n_util::GetStringFUTF16(
- IDS_LABS_BLURB,
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings.SetString("labsRestartNotice", l10n_util::GetStringFUTF16(
- IDS_LABS_RESTART_NOTICE,
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings.SetString("labsRestartButton",
- l10n_util::GetStringUTF16(IDS_LABS_RESTART_BUTTON));
- localized_strings.SetString("disable",
- l10n_util::GetStringUTF16(IDS_LABS_DISABLE));
- localized_strings.SetString("enable",
- l10n_util::GetStringUTF16(IDS_LABS_ENABLE));
-
- ChromeURLDataManager::DataSource::SetFontAndTextDirection(&localized_strings);
-
- static const base::StringPiece labs_html(
- ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_LABS_HTML));
- std::string full_html(labs_html.data(), labs_html.size());
- jstemplate_builder::AppendJsonHtml(&localized_strings, &full_html);
- jstemplate_builder::AppendI18nTemplateSourceHtml(&full_html);
- jstemplate_builder::AppendI18nTemplateProcessHtml(&full_html);
- jstemplate_builder::AppendJsTemplateSourceHtml(&full_html);
-
- scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes);
- html_bytes->data.resize(full_html.size());
- std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin());
-
- SendResponse(request_id, html_bytes);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// LabsDOMHandler
-//
-////////////////////////////////////////////////////////////////////////////////
-
-// The handler for Javascript messages for the chrome://labs/ page.
-class LabsDOMHandler : public DOMMessageHandler {
- public:
- LabsDOMHandler() {}
- virtual ~LabsDOMHandler() {}
-
- // DOMMessageHandler implementation.
- virtual void RegisterMessages();
-
- // Callback for the "requestLabsExperiments" message.
- void HandleRequestLabsExperiments(const ListValue* args);
-
- // Callback for the "enableLabsExperiment" message.
- void HandleEnableLabsExperimentMessage(const ListValue* args);
-
- // Callback for the "restartBrowser" message. Restores all tabs on restart.
- void HandleRestartBrowser(const ListValue* args);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(LabsDOMHandler);
-};
-
-void LabsDOMHandler::RegisterMessages() {
- dom_ui_->RegisterMessageCallback("requestLabsExperiments",
- NewCallback(this, &LabsDOMHandler::HandleRequestLabsExperiments));
- dom_ui_->RegisterMessageCallback("enableLabsExperiment",
- NewCallback(this, &LabsDOMHandler::HandleEnableLabsExperimentMessage));
- dom_ui_->RegisterMessageCallback("restartBrowser",
- NewCallback(this, &LabsDOMHandler::HandleRestartBrowser));
-}
-
-void LabsDOMHandler::HandleRequestLabsExperiments(const ListValue* args) {
- DictionaryValue results;
- results.Set("labsExperiments",
- about_labs::GetLabsExperimentsData(dom_ui_->GetProfile()));
- results.SetBoolean("needsRestart",
- about_labs::IsRestartNeededToCommitChanges());
- dom_ui_->CallJavascriptFunction(L"returnLabsExperiments", results);
-}
-
-void LabsDOMHandler::HandleEnableLabsExperimentMessage(const ListValue* args) {
- DCHECK_EQ(2u, args->GetSize());
- if (args->GetSize() != 2)
- return;
-
- std::string experiment_internal_name;
- std::string enable_str;
- if (!args->GetString(0, &experiment_internal_name) ||
- !args->GetString(1, &enable_str))
- return;
-
- about_labs::SetExperimentEnabled(
- dom_ui_->GetProfile(), experiment_internal_name, enable_str == "true");
-}
-
-void LabsDOMHandler::HandleRestartBrowser(const ListValue* args) {
- // Set the flag to restore state after the restart.
- PrefService* pref_service = g_browser_process->local_state();
- pref_service->SetBoolean(prefs::kRestartLastSessionOnShutdown, true);
- BrowserList::CloseAllBrowsersAndExit();
-}
-
-} // namespace
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// LabsUI
-//
-///////////////////////////////////////////////////////////////////////////////
-
-LabsUI::LabsUI(TabContents* contents) : DOMUI(contents) {
- AddMessageHandler((new LabsDOMHandler())->Attach(this));
-
- LabsUIHTMLSource* html_source = new LabsUIHTMLSource();
-
- // Set up the chrome://labs/ source.
- ChromeThread::PostTask(
- ChromeThread::IO, FROM_HERE,
- NewRunnableMethod(Singleton<ChromeURLDataManager>::get(),
- &ChromeURLDataManager::AddDataSource,
- make_scoped_refptr(html_source)));
-}
-
-// static
-RefCountedMemory* LabsUI::GetFaviconResourceBytes() {
- return ResourceBundle::GetSharedInstance().
- LoadDataResourceBytes(IDR_LABS);
-}
-
-// static
-void LabsUI::RegisterUserPrefs(PrefService* prefs) {
- prefs->RegisterListPref(prefs::kEnabledLabsExperiments);
-}
diff --git a/chrome/browser/dom_ui/labs_ui.h b/chrome/browser/dom_ui/labs_ui.h
deleted file mode 100644
index 0919030..0000000
--- a/chrome/browser/dom_ui/labs_ui.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_DOM_UI_LABS_UI_H_
-#define CHROME_BROWSER_DOM_UI_LABS_UI_H_
-#pragma once
-
-#include "chrome/browser/dom_ui/dom_ui.h"
-
-class PrefService;
-class RefCountedMemory;
-
-class LabsUI : public DOMUI {
- public:
- explicit LabsUI(TabContents* contents);
-
- static RefCountedMemory* GetFaviconResourceBytes();
- static void RegisterUserPrefs(PrefService* prefs);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(LabsUI);
-};
-
-#endif // CHROME_BROWSER_DOM_UI_LABS_UI_H_
diff --git a/chrome/browser/dom_ui/plugins_ui.cc b/chrome/browser/dom_ui/plugins_ui.cc
index a52fc88..e529a68 100644
--- a/chrome/browser/dom_ui/plugins_ui.cc
+++ b/chrome/browser/dom_ui/plugins_ui.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/dom_ui/plugins_ui.h"
#include <algorithm>
+#include <set>
#include <string>
#include <vector>
@@ -147,6 +148,20 @@ class PluginsDOMHandler : public DOMMessageHandler {
void HandleShowTermsOfServiceMessage(const ListValue* args);
private:
+ // Creates a dictionary containing all the information about the given plugin;
+ // this is put into the list to "return" for the "requestPluginsData" message.
+ DictionaryValue* CreatePluginDetailValue(
+ const WebPluginInfo& plugin,
+ const std::set<string16>& plugin_blacklist_set);
+
+ // Creates a dictionary containing the important parts of the information
+ // about the given plugin; this is put into a list and saved in prefs.
+ DictionaryValue* CreatePluginSummaryValue(const WebPluginInfo& plugin);
+
+ // Update the user preferences to reflect the current (user-selected) state of
+ // plugins.
+ void UpdatePreferences();
+
DISALLOW_COPY_AND_ASSIGN(PluginsDOMHandler);
};
@@ -160,9 +175,10 @@ void PluginsDOMHandler::RegisterMessages() {
}
void PluginsDOMHandler::HandleRequestPluginsData(const ListValue* args) {
- DictionaryValue results;
- results.Set("plugins", plugin_updater::GetPluginGroupsData());
- dom_ui_->CallJavascriptFunction(L"returnPluginsData", results);
+ DictionaryValue* results = new DictionaryValue();
+ results->Set("plugins", plugin_updater::GetPluginGroupsData());
+
+ dom_ui_->CallJavascriptFunction(L"returnPluginsData", *results);
}
void PluginsDOMHandler::HandleEnablePluginMessage(const ListValue* args) {
diff --git a/chrome/browser/labs.cc b/chrome/browser/labs.cc
deleted file mode 100644
index 6bd1c27..0000000
--- a/chrome/browser/labs.cc
+++ /dev/null
@@ -1,231 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/labs.h"
-
-#include <algorithm>
-#include <iterator>
-#include <map>
-#include <set>
-
-#include "app/l10n_util.h"
-#include "base/command_line.h"
-#include "base/values.h"
-#include "chrome/browser/platform_util.h"
-#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/browser/profile.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/common/pref_names.h"
-#include "grit/generated_resources.h"
-
-namespace about_labs {
-
-enum { kOsMac = 1 << 0, kOsWin = 1 << 1, kOsLinux = 1 << 2 };
-
-struct Experiment {
- // The internal name of the experiment. This is never shown to the user.
- // It _is_ however stored in the prefs file, so you shouldn't change the
- // name of existing labs.
- const char* internal_name;
-
- // String id of the message containing the experiment's name.
- int visible_name_id;
-
- // String id of the message containing the experiment's description.
- int visible_description_id;
-
- // The platforms the experiment is available on
- // Needs to be more than a compile-time #ifdef because of profile sync.
- unsigned supported_platforms; // bitmask
-
- // The commandline parameter that's added when this lab is active. This is
- // different from |internal_name| so that the commandline flag can be
- // renamed without breaking the prefs file.
- const char* command_line;
-};
-
-const Experiment kExperiments[] = {
- {
- "expose-for-tabs",
- IDS_LABS_TABPOSE_NAME,
- IDS_LABS_TABPOSE_DESCRIPTION,
- kOsMac,
-#if defined(OS_MACOSX)
- // The switch exists only on OS X.
- switches::kEnableExposeForTabs
-#else
- ""
-#endif
- },
- {
- "vertical-tabs",
- IDS_LABS_LEFTTABS_NAME,
- IDS_LABS_LEFTTABS_DESCRIPTION,
- kOsWin,
- switches::kEnableVerticalTabs
- }
-};
-
-// Extracts the list of enabled lab experiments from a profile and stores them
-// in a set.
-void GetEnabledLabs(const PrefService* prefs, std::set<std::string>* result) {
- const ListValue* enabled_experiments = prefs->GetList(
- prefs::kEnabledLabsExperiments);
- if (!enabled_experiments)
- return;
-
- for (ListValue::const_iterator it = enabled_experiments->begin();
- it != enabled_experiments->end();
- ++it) {
- std::string experiment_name;
- if (!(*it)->GetAsString(&experiment_name)) {
- LOG(WARNING) << "Invalid entry in " << prefs::kEnabledLabsExperiments;
- continue;
- }
- result->insert(experiment_name);
- }
-}
-
-// Takes a set of enabled lab experiments
-void SetEnabledLabs(
- PrefService* prefs, const std::set<std::string>& enabled_experiments) {
- ListValue* experiments_list = prefs->GetMutableList(
- prefs::kEnabledLabsExperiments);
- if (!experiments_list)
- return;
-
- experiments_list->Clear();
- for (std::set<std::string>::const_iterator it = enabled_experiments.begin();
- it != enabled_experiments.end();
- ++it) {
- experiments_list->Append(new StringValue(*it));
- }
-}
-
-// Removes all experiments from prefs::kEnabledLabsExperiments that are
-// unknown, to prevent this list to become very long as experiments are added
-// and removed.
-void SanitizeList(PrefService* prefs) {
- std::set<std::string> known_experiments;
- for (size_t i = 0; i < arraysize(kExperiments); ++i)
- known_experiments.insert(kExperiments[i].internal_name);
-
- std::set<std::string> enabled_experiments;
- GetEnabledLabs(prefs, &enabled_experiments);
-
- std::set<std::string> new_enabled_experiments;
- std::set_intersection(
- known_experiments.begin(), known_experiments.end(),
- enabled_experiments.begin(), enabled_experiments.end(),
- std::inserter(new_enabled_experiments, new_enabled_experiments.begin()));
-
- SetEnabledLabs(prefs, new_enabled_experiments);
-}
-
-void GetSanitizedEnabledLabs(
- PrefService* prefs, std::set<std::string>* result) {
- SanitizeList(prefs);
- GetEnabledLabs(prefs, result);
-}
-
-int GetCurrentPlatform() {
-#if defined(OS_MACOSX)
- return kOsMac;
-#elif defined(OS_WIN)
- return kOsWin;
-#elif defined(OS_LINUX)
- return kOsLinux;
-#else
-#error Unknown platform
-#endif
-}
-
-bool IsEnabled() {
-#if defined(OS_CHROMEOS)
- // ChromeOS uses a different mechanism for about:labs; integrated with their
- // dom ui options.
- return false;
-#elif defined(GOOGLE_CHROME_BUILD)
- // Don't enable this on the stable channel.
- return platform_util::GetVersionStringModifier() != string16();
-#else
- return true;
-#endif
-}
-
-void ConvertLabsToSwitches(Profile* profile, CommandLine* command_line) {
- // Do not activate labs features on the stable channel.
- if (!IsEnabled())
- return;
-
- std::set<std::string> enabled_experiments;
- GetSanitizedEnabledLabs(profile->GetPrefs(), &enabled_experiments);
-
- std::map<std::string, const Experiment*> experiments;
- for (size_t i = 0; i < arraysize(kExperiments); ++i)
- experiments[kExperiments[i].internal_name] = &kExperiments[i];
-
- for (std::set<std::string>::iterator it = enabled_experiments.begin();
- it != enabled_experiments.end();
- ++it) {
- const std::string& experiment_name = *it;
- std::map<std::string, const Experiment*>::iterator experiment =
- experiments.find(experiment_name);
- DCHECK(experiment != experiments.end());
- if (experiment == experiments.end())
- continue;
-
- command_line->AppendSwitch(experiment->second->command_line);
- }
-}
-
-ListValue* GetLabsExperimentsData(Profile* profile) {
- std::set<std::string> enabled_experiments;
- GetSanitizedEnabledLabs(profile->GetPrefs(), &enabled_experiments);
-
- int current_platform = GetCurrentPlatform();
-
- ListValue* experiments_data = new ListValue();
- for (size_t i = 0; i < arraysize(kExperiments); ++i) {
- const Experiment& experiment = kExperiments[i];
- if (!(experiment.supported_platforms & current_platform))
- continue;
-
- DictionaryValue* data = new DictionaryValue();
- data->SetString("internal_name", experiment.internal_name);
- data->SetString("name",
- l10n_util::GetStringUTF16(experiment.visible_name_id));
- data->SetString("description",
- l10n_util::GetStringUTF16(
- experiment.visible_description_id));
- data->SetBoolean("enabled",
- enabled_experiments.count(experiment.internal_name) > 0);
-
- experiments_data->Append(data);
- }
- return experiments_data;
-}
-
-static bool needs_restart_ = false;
-
-bool IsRestartNeededToCommitChanges() {
- return needs_restart_;
-}
-
-void SetExperimentEnabled(
- Profile* profile, const std::string& internal_name, bool enable) {
- needs_restart_ = true;
-
- std::set<std::string> enabled_experiments;
- GetSanitizedEnabledLabs(profile->GetPrefs(), &enabled_experiments);
-
- if (enable)
- enabled_experiments.insert(internal_name);
- else
- enabled_experiments.erase(internal_name);
-
- SetEnabledLabs(profile->GetPrefs(), enabled_experiments);
-}
-
-} // namespace Labs
diff --git a/chrome/browser/labs.h b/chrome/browser/labs.h
deleted file mode 100644
index 0c61b95..0000000
--- a/chrome/browser/labs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_LABS_H_
-#define CHROME_BROWSER_LABS_H_
-#pragma once
-
-#include <string>
-
-class CommandLine;
-class ListValue;
-class Profile;
-
-// Can't be called "labs", that collides with the C function |labs()|.
-namespace about_labs {
-
-// Returns if Labs is enabled (it isn't on the stable channel).
-bool IsEnabled();
-
-// Reads the Labs pref from |profile| and adds the commandline flags belonging
-// to the active experiments to |command_line|.
-void ConvertLabsToSwitches(Profile* profile, CommandLine* command_line);
-
-// Get a list of all available experiments. The caller owns the result.
-ListValue* GetLabsExperimentsData(Profile* profile);
-
-// Returns true if one of the experiment flags has been flipped since startup.
-bool IsRestartNeededToCommitChanges();
-
-// Enables or disables the experiment with id |internal_name|.
-void SetExperimentEnabled(
- Profile* profile, const std::string& internal_name, bool enable);
-
-} // namespace Labs
-
-#endif // CHROME_BROWSER_LABS_H_
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 5526d53..93bb6be 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -12,7 +12,6 @@
#include "chrome/browser/browser_shutdown.h"
#include "chrome/browser/cookie_modal_dialog.h"
#include "chrome/browser/debugger/devtools_manager.h"
-#include "chrome/browser/dom_ui/labs_ui.h"
#include "chrome/browser/dom_ui/new_tab_ui.h"
#include "chrome/browser/dom_ui/plugins_ui.h"
#include "chrome/browser/download/download_manager.h"
@@ -27,7 +26,6 @@
#include "chrome/browser/host_content_settings_map.h"
#include "chrome/browser/host_zoom_map.h"
#include "chrome/browser/intranet_redirect_detector.h"
-#include "chrome/browser/labs.h"
#include "chrome/browser/metrics/metrics_log.h"
#include "chrome/browser/metrics/metrics_service.h"
#include "chrome/browser/net/chrome_url_request_context.h"
@@ -115,10 +113,8 @@ void RegisterUserPrefs(PrefService* user_prefs) {
TemplateURLPrepopulateData::RegisterUserPrefs(user_prefs);
ExtensionDOMUI::RegisterUserPrefs(user_prefs);
ExtensionsUI::RegisterUserPrefs(user_prefs);
- LabsUI::RegisterUserPrefs(user_prefs);
NewTabUI::RegisterUserPrefs(user_prefs);
- if (about_labs::IsEnabled())
- PluginsUI::RegisterUserPrefs(user_prefs);
+ PluginsUI::RegisterUserPrefs(user_prefs);
HostContentSettingsMap::RegisterUserPrefs(user_prefs);
HostZoomMap::RegisterUserPrefs(user_prefs);
DevToolsManager::RegisterUserPrefs(user_prefs);
diff --git a/chrome/browser/resources/labs.html b/chrome/browser/resources/labs.html
deleted file mode 100644
index edabed6..0000000
--- a/chrome/browser/resources/labs.html
+++ /dev/null
@@ -1,311 +0,0 @@
-<!DOCTYPE HTML>
-<html i18n-values="dir:textdirection;">
-<head>
-<meta charset="utf-8">
-<title i18n-content="labsTitle"></title>
-<style>
-
-body {
- margin: 10px;
- min-width: 47em;
-}
-
-a {
- color: blue;
- font-size: 103%;
-}
-
-div#header {
- margin-bottom: 1.05em;
- overflow: hidden;
- padding-bottom: 1.5em;
- padding-left: 0;
- padding-top: 1.5em;
- position: relative;
-}
-
-html[dir=rtl] #header {
- padding-right: 0;
-}
-
-#header h1 {
- background: url('../../app/theme/extensions_section.png') 0px 20px no-repeat;
- display: inline;
- margin: 0;
- padding-bottom: 43px;
- padding-left: 75px;
- padding-top: 40px;
-}
-
-html[dir=rtl] #header h1 {
- background: url('../../app/theme/extensions_section.png') right no-repeat;
- padding-right: 95px;
- padding-left: 0;
-}
-
-h1 {
- font-size: 156%;
- font-weight: bold;
- padding: 0;
- margin: 0;
-}
-
-div.blurb {
- padding-bottom: 1.5em;
-}
-
-div.content {
- font-size: 88%;
- margin-top: 5px;
-}
-
-.section-header {
- background: #ebeff9;
- border-top: 1px solid #b5c7de;
- font-size: 99%;
- padding-bottom: 2px;
- padding-left: 5px;
- padding-top: 3px;
- width: 100%;
-}
-
-html[dir=rtl] .section-header {
- padding-right: 5px;
- padding-left: 0;
-}
-
-.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 {
- padding-right: 5px;
-}
-
-html[dir=rtl] #top {
- padding-left: 5px;
- padding-right: 0;
-}
-
-.experiment-enabled > td {
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-.experiment {
- border-bottom: 1px solid #cdcdcd;
-}
-
-/* Indent the text related to each experiment. */
-.experiment-text {
- padding-left: 5px;
-}
-
-html[dir=rtl] .experiment-text {
- padding-right: 5px;
- padding-left: 0;
-}
-
-.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 {
- padding-left: 5px;
- margin-top: 0.2em;
- margin-bottom: 0.2em;
-}
-
-html[dir=rtl] .experiment-actions {
- padding-right: 5px;
- padding-left: 0;
-}
-
-div.needs-restart {
- padding-top: 10px;
- padding-left: 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 labsExperimentsDataFormat = {
- 'labsExperiments': [
- {
- 'internal_name': 'Experiment ID string',
- 'name': 'Experiment Name',
- 'description': 'description',
- 'enabled': true
- }
- ],
- 'needsRestart': false
-};
-
-/**
- * Takes the |labsExperimentsData| 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} labsExperimentsData Detailed info about available experiments
- */
-function renderTemplate(labsExperimentsData) {
- // This is the javascript code that processes the template:
- var input = new JsEvalContext(labsExperimentsData);
- var output = document.getElementById('labsExperimentTemplate');
- jstProcess(input, output);
-}
-
-/**
- * Asks the C++ LabsDOMHandler to get details about the available experiments
- * and return detailed data about the configuration. The LabsDOMHandler
- * should reply to returnLabsExperiments() (below).
- */
-function requestLabsExperimentsData() {
- chrome.send('requestLabsExperiments', []);
-}
-
-/**
- * Asks the C++ LabsDOMHandler to restart the browser (restoring tabs).
- */
-function restartBrowser() {
- chrome.send('restartBrowser', []);
-}
-
-/**
- * Called by the dom_ui to re-populate the page with data representing the
- * current state of installed experiments.
- */
-function returnLabsExperiments(labsExperimentsData){
- var bodyContainer = document.getElementById('body-container');
- renderTemplate(labsExperimentsData);
- bodyContainer.style.visibility = 'visible';
-}
-
-/**
- * Handles a 'enable' or 'disable' button getting clicked.
- */
-function handleEnableExperiment(node, enable) {
- // Tell the C++ LabsDOMHandler to enable/disable the experiment.
- chrome.send('enableLabsExperiment', [String(node.internal_name),
- String(enable)]);
- requestLabsExperimentsData();
-}
-
-// Get data and have it displayed upon loading.
-document.addEventListener('DOMContentLoaded', requestLabsExperimentsData);
-
-</script>
-</head>
-<body i18n-values=".style.fontFamily:fontfamily;.style.fontSize:fontsize">
-<div id="body-container" style="visibility:hidden">
-
- <div id="header"><h1 i18n-content="labsLongTitle">TITLE</h1></div>
-
- <div class="blurb" i18n-content="labsBlurb">BLURB</div>
-
- <div id="labsExperimentTemplate">
-
- <div id="container" class="vbox-container">
- <div id="top" class="wbox">
-
- <div class="section-header">
- <table cellpadding="0" cellspacing="0"><tr valign="center">
- <td>
- <span class="section-header-title" i18n-content="labsTableTitle"
- >TITLE</span>
- </td>
- </tr></table>
- </div>
-
- </div>
- </div>
-
- <div class="content">
- <div class="experiment-name no-experiments"
- jsdisplay="labsExperiments.length === 0">
- <div i18n-content="labsNoExperimentsAvailable"
- >NO_EXPERIMENTS_ARE_AVAILABLE</div>
- </div>
-
- <div jsdisplay="labsExperiments.length > 0">
- <div class="experiment" jsselect="labsExperiments">
- <table width="100%" cellpadding="2" cellspacing="0">
- <tr class="experiment-enabled">
- <td valign="top">
- <div class="experiment-text">
- <div>
- <span class="experiment-name"
- jscontent="name">NAME</span>
- <div>
- <span jsvalues=".innerHTML:description">
- </div>
- </div>
- </div>
- <div class="experiment-actions">
- <span>
- <a
- jsvalues=".internal_name:internal_name"
- jsdisplay="enabled"
- onclick="handleEnableExperiment(this, false)"
- href="javascript:void(0);"
- i18n-content="disable"
- >DISABLE</a>
- <a
- jsvalues=".internal_name:internal_name"
- jsdisplay="!enabled"
- onclick="handleEnableExperiment(this, true)"
- href="javascript:void(0);"
- i18n-content="enable"
- >ENABLE</a>
- </span>
- </div>
- </td>
- </tr>
- </table>
- </div>
- </div>
-
- <div class="needs-restart" jsdisplay="needsRestart">
- <div i18n-content="labsRestartNotice">NEEDS_RESTART</div>
- <button type="button"
- onclick="restartBrowser();"
- i18n-content="labsRestartButton">RESTART</button>
- </div>
- </div>
- </div>
-</div>
-</body>
-</html>
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 824e872..b1f14b2 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1240,8 +1240,6 @@
'browser/dom_ui/html_dialog_ui.h',
'browser/dom_ui/import_data_handler.cc',
'browser/dom_ui/import_data_handler.h',
- 'browser/dom_ui/labs_ui.cc',
- 'browser/dom_ui/labs_ui.h',
'browser/dom_ui/mediaplayer_ui.cc',
'browser/dom_ui/mediaplayer_ui.h',
'browser/dom_ui/most_visited_handler.cc',
@@ -1966,8 +1964,6 @@
'browser/jsmessage_box_client.h',
'browser/keychain_mac.cc',
'browser/keychain_mac.h',
- 'browser/labs.cc',
- 'browser/labs.h',
'browser/language_combobox_model.cc',
'browser/language_combobox_model.h',
'browser/language_order_table_model.cc',
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index 2ce27d1..cf74af4 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -389,9 +389,6 @@ const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
// Boolean pref to define the default values for using spellchecker.
const char kEnableSpellCheck[] = "browser.enable_spellchecking";
-// List of names of the enabled labs experiments (see chrome/browser/labs.cc).
-const char kEnabledLabsExperiments[] = "browser.enabled_labs_experiments";
-
// Boolean pref to define the default values for using auto spell correct.
const char kEnableAutoSpellCorrect[] = "browser.enable_autospellcorrect";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 885cb67..232d0fd 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -149,7 +149,6 @@ extern const char kDeleteCookies[];
extern const char kDeletePasswords[];
extern const char kDeleteFormData[];
extern const char kEnableSpellCheck[];
-extern const char kEnabledLabsExperiments[];
extern const char kEnableAutoSpellCorrect[];
extern const char kDeleteTimePeriod[];
extern const char kPrintingPageHeaderLeft[];
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc
index 031a13d..0270e48 100644
--- a/chrome/common/url_constants.cc
+++ b/chrome/common/url_constants.cc
@@ -41,23 +41,21 @@ const char* kSavableSchemes[] = {
NULL
};
-const char kAboutAboutURL[] = "about:about";
const char kAboutAppCacheInternalsURL[] = "about:appcache-internals";
const char kAboutBlankURL[] = "about:blank";
const char kAboutCacheURL[] = "about:cache";
const char kAboutCrashURL[] = "about:crash";
const char kAboutCreditsURL[] = "about:credits";
-const char kAboutDNSURL[] = "about:dns";
const char kAboutHangURL[] = "about:hang";
-const char kAboutHistogramsURL[] = "about:histograms";
-const char kAboutLabsURL[] = "about:labs";
const char kAboutMemoryURL[] = "about:memory";
const char kAboutNetInternalsURL[] = "about:net-internals";
const char kAboutPluginsURL[] = "about:plugins";
const char kAboutShorthangURL[] = "about:shorthang";
const char kAboutSystemURL[] = "about:system";
const char kAboutTermsURL[] = "about:terms";
-const char kAboutVaporwareURL[] = "about:vaporware";
+const char kAboutAboutURL[] = "about:about";
+const char kAboutDNSURL[] = "about:dns";
+const char kAboutHistogramsURL[] = "about:histograms";
const char kAboutVersionURL[] = "about:version";
// Use an obfuscated URL to make this nondiscoverable, we only want this
@@ -73,11 +71,10 @@ const char kChromeUIDownloadsURL[] = "chrome://downloads/";
const char kChromeUIExtensionsURL[] = "chrome://extensions/";
const char kChromeUIFavIconURL[] = "chrome://favicon/";
const char kChromeUIFileBrowseURL[] = "chrome://filebrowse/";
-const char kChromeUIHistory2URL[] = "chrome://history2/";
const char kChromeUIHistoryURL[] = "chrome://history/";
+const char kChromeUIHistory2URL[] = "chrome://history2/";
const char kChromeUIImageBurnerURL[] = "chrome://imageburner/";
const char kChromeUIIPCURL[] = "chrome://about/ipc";
-const char kChromeUILabsURL[] = "chrome://labs/";
const char kChromeUIMediaplayerURL[] = "chrome://mediaplayer/";
const char kChromeUINewTabURL[] = "chrome://newtab";
const char kChromeUIOptionsURL[] = "chrome://options/";
@@ -98,7 +95,6 @@ const char kChromeUIHistoryHost[] = "history";
const char kChromeUIHistory2Host[] = "history2";
const char kChromeUIImageBurnerHost[] = "imageburner";
const char kChromeUIInspectorHost[] = "inspector";
-const char kChromeUILabsHost[] = "labs";
const char kChromeUIMediaplayerHost[] = "mediaplayer";
const char kChromeUINetInternalsHost[] = "net-internals";
const char kChromeUINewTabHost[] = "newtab";
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
index bb726fe..47b5610 100644
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
@@ -35,24 +35,22 @@ extern const char kStandardSchemeSeparator[];
extern const char* kSavableSchemes[];
// About URLs (including schemes).
-extern const char kAboutAboutURL[];
extern const char kAboutAppCacheInternalsURL[];
extern const char kAboutBlankURL[];
extern const char kAboutBrowserCrash[];
extern const char kAboutCacheURL[];
+extern const char kAboutNetInternalsURL[];
extern const char kAboutCrashURL[];
extern const char kAboutCreditsURL[];
-extern const char kAboutDNSURL[];
extern const char kAboutHangURL[];
-extern const char kAboutHistogramsURL[];
-extern const char kAboutLabsURL[];
extern const char kAboutMemoryURL[];
-extern const char kAboutNetInternalsURL[];
extern const char kAboutPluginsURL[];
extern const char kAboutShorthangURL[];
extern const char kAboutSystemURL[];
extern const char kAboutTermsURL[];
-extern const char kAboutVaporwareURL[];
+extern const char kAboutAboutURL[];
+extern const char kAboutDNSURL[];
+extern const char kAboutHistogramsURL[];
extern const char kAboutVersionURL[];
// chrome: URLs (including schemes). Should be kept in sync with the
@@ -66,11 +64,10 @@ extern const char kChromeUIDownloadsURL[];
extern const char kChromeUIExtensionsURL[];
extern const char kChromeUIFavIconURL[];
extern const char kChromeUIFileBrowseURL[];
-extern const char kChromeUIHistory2URL[];
extern const char kChromeUIHistoryURL[];
+extern const char kChromeUIHistory2URL[];
extern const char kChromeUIImageBurnerURL[];
extern const char kChromeUIIPCURL[];
-extern const char kChromeUILabsURL[];
extern const char kChromeUIMediaplayerURL[];
extern const char kChromeUINewTabURL[];
extern const char kChromeUIOptionsURL[];
@@ -89,11 +86,10 @@ extern const char kChromeUIDownloadsHost[];
extern const char kChromeUIExtensionsHost[];
extern const char kChromeUIFavIconHost[];
extern const char kChromeUIFileBrowseHost[];
-extern const char kChromeUIHistory2Host[];
extern const char kChromeUIHistoryHost[];
+extern const char kChromeUIHistory2Host[];
extern const char kChromeUIImageBurnerHost[];
extern const char kChromeUIInspectorHost[];
-extern const char kChromeUILabsHost[];
extern const char kChromeUIMediaplayerHost[];
extern const char kChromeUINetInternalsHost[];
extern const char kChromeUINewTabHost[];
@@ -102,13 +98,13 @@ extern const char kChromeUIPluginsHost[];
extern const char kChromeUIPrintHost[];
extern const char kChromeUIRegisterPageHost[];
extern const char kChromeUIRemotingHost[];
-extern const char kChromeUIRemotingResourcesHost[];
extern const char kChromeUIResourcesHost[];
extern const char kChromeUIScreenshotPath[];
extern const char kChromeUISlideshowHost[];
extern const char kChromeUISyncResourcesHost[];
-extern const char kChromeUIThemePath[];
+extern const char kChromeUIRemotingResourcesHost[];
extern const char kChromeUIThumbnailPath[];
+extern const char kChromeUIThemePath[];
// AppCache related URL.
extern const char kAppCacheViewInternalsURL[];