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

Unified Diff: chrome/browser/chromeos/webui/menu_ui.cc

Issue 6693032: Remove WebUI menu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 9 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/chromeos/webui/menu_ui.h ('k') | chrome/browser/chromeos/webui/network_menu_ui.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/webui/menu_ui.cc
diff --git a/chrome/browser/chromeos/webui/menu_ui.cc b/chrome/browser/chromeos/webui/menu_ui.cc
deleted file mode 100644
index bbc5bb847ea527a3ca552a104d3a450544d466a2..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/webui/menu_ui.cc
+++ /dev/null
@@ -1,655 +0,0 @@
-// Copyright (c) 2011 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/chromeos/webui/menu_ui.h"
-
-#include <algorithm>
-
-#include "base/callback.h"
-#include "base/command_line.h"
-#include "base/json/json_writer.h"
-#include "base/message_loop.h"
-#include "base/singleton.h"
-#include "base/string_number_conversions.h"
-#include "base/string_piece.h"
-#include "base/utf_string_conversions.h"
-#include "base/values.h"
-#include "base/weak_ptr.h"
-#include "chrome/browser/chromeos/views/native_menu_webui.h"
-#include "chrome/browser/chromeos/views/webui_menu_widget.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/common/jstemplate_builder.h"
-#include "chrome/common/url_constants.h"
-#include "content/browser/browser_thread.h"
-#include "content/browser/tab_contents/tab_contents.h"
-#include "content/browser/tab_contents/tab_contents_delegate.h"
-#include "content/browser/webui/web_ui_util.h"
-#include "grit/app_resources.h"
-#include "grit/browser_resources.h"
-#include "ui/base/models/menu_model.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/canvas_skia.h"
-#include "ui/gfx/favicon_size.h"
-#include "ui/gfx/font.h"
-#include "views/accelerator.h"
-#include "views/controls/menu/menu_config.h"
-#include "views/controls/menu/menu_image_util_gtk.h"
-#include "views/widget/widget_gtk.h"
-
-namespace {
-
-// a fake resource id for not loading extra resource.
-const int kNoExtraResource = -1;
-
-// A utility function that generates css font property from gfx::Font.
-// NOTE: Returns UTF-8.
-std::string GetFontShorthand(const gfx::Font* font) {
- std::string out;
- if (font == NULL) {
- font = &(views::MenuConfig::instance().font);
- }
- if (font->GetStyle() & gfx::Font::BOLD) {
- out.append("bold ");
- }
- if (font->GetStyle() & gfx::Font::ITALIC) {
- out.append("italic ");
- }
- if (font->GetStyle() & gfx::Font::UNDERLINED) {
- out.append("underline ");
- }
-
- // TODO(oshima): The font size from gfx::Font is too small when
- // used in webkit. Figure out the reason.
- out.append(base::IntToString(font->GetFontSize() + 4));
- out.append("px/");
- out.append(base::IntToString(std::max(kFaviconSize, font->GetHeight())));
- out.append("px \"");
- out.append(UTF16ToUTF8(font->GetFontName()));
- out.append("\",sans-serif");
- return out;
-}
-
-// Creates scroll button's up image when |up| is true or
-// down image if |up| is false.
-SkBitmap CreateMenuScrollArrowImage(bool up) {
- const views::MenuConfig& config = views::MenuConfig::instance();
-
- int height = config.scroll_arrow_height;
- gfx::CanvasSkia canvas(height * 2, height, false);
-
- if (!up) {
- // flip the direction.
- canvas.scale(1.0, -1.0);
- canvas.translate(0, -height);
- }
- // Draw triangle.
- SkPath path;
- path.moveTo(height, 0);
- path.lineTo(0, height);
- path.lineTo(height * 2, height);
- SkPaint paint;
- paint.setColor(SK_ColorBLACK);
- paint.setStyle(SkPaint::kFill_Style);
- paint.setAntiAlias(true);
- canvas.drawPath(path, paint);
- return canvas.ExtractBitmap();
-}
-
-// Returns the scroll button's up image if |up| is true, or
-// "down" image otherwise.
-const std::string& GetImageDataUrlForMenuScrollArrow(bool up) {
- static const std::string upImage =
- web_ui_util::GetImageDataUrl(CreateMenuScrollArrowImage(true));
- static const std::string downImage =
- web_ui_util::GetImageDataUrl(CreateMenuScrollArrowImage(false));
- return up ? upImage : downImage;
-}
-
-// Returns the radio button's "on" image if |on| is true, or
-// "off" image otherwise.
-const std::string& GetImageDataUrlForRadio(bool on) {
- static const std::string onImage =
- web_ui_util::GetImageDataUrl(*views::GetRadioButtonImage(true));
- static const std::string offImage =
- web_ui_util::GetImageDataUrl(*views::GetRadioButtonImage(false));
- return on ? onImage : offImage;
-}
-
-/**
- * Generates a html file that uses |menu_class| as a menu implementation.
- * |menu_source_id| specifies the source that contains the definition of the
- * |menu_class|, or empty string to use plain "Menu".
- *
- * TODO(oshima): make this template to avoid repeatedly loading the
- * same source/css files.
- */
-std::string GetMenuUIHTMLSourceFromString(
- const chromeos::MenuSourceDelegate* delegate,
- const base::StringPiece& menu_template,
- const std::string& menu_class,
- int menu_source_id,
- int menu_css_id) {
-#define SET_INTEGER_PROPERTY(prop) \
- value_config.SetInteger(#prop, menu_config.prop)
-
- const views::MenuConfig& menu_config = views::MenuConfig::instance();
-
- DictionaryValue value_config;
- value_config.SetString("radioOnUrl", GetImageDataUrlForRadio(true));
- value_config.SetString("radioOffUrl", GetImageDataUrlForRadio(false));
- value_config.SetString(
- "arrowUrl", web_ui_util::GetImageDataUrlFromResource(IDR_MENU_ARROW));
- value_config.SetString(
- "checkUrl", web_ui_util::GetImageDataUrlFromResource(IDR_MENU_CHECK));
-
- value_config.SetString(
- "scrollUpUrl", GetImageDataUrlForMenuScrollArrow(true));
- value_config.SetString(
- "scrollDownUrl", GetImageDataUrlForMenuScrollArrow(false));
-
- SET_INTEGER_PROPERTY(item_top_margin);
- SET_INTEGER_PROPERTY(item_bottom_margin);
- SET_INTEGER_PROPERTY(item_no_icon_top_margin);
- SET_INTEGER_PROPERTY(item_no_icon_bottom_margin);
- SET_INTEGER_PROPERTY(item_left_margin);
- SET_INTEGER_PROPERTY(label_to_arrow_padding);
- SET_INTEGER_PROPERTY(arrow_to_edge_padding);
- SET_INTEGER_PROPERTY(icon_to_label_padding);
- SET_INTEGER_PROPERTY(gutter_to_label);
- SET_INTEGER_PROPERTY(check_width);
- SET_INTEGER_PROPERTY(check_height);
- SET_INTEGER_PROPERTY(radio_width);
- SET_INTEGER_PROPERTY(radio_height);
- SET_INTEGER_PROPERTY(arrow_height);
- SET_INTEGER_PROPERTY(arrow_width);
- SET_INTEGER_PROPERTY(gutter_width);
- SET_INTEGER_PROPERTY(separator_height);
- SET_INTEGER_PROPERTY(render_gutter);
- SET_INTEGER_PROPERTY(show_mnemonics);
- SET_INTEGER_PROPERTY(scroll_arrow_height);
- SET_INTEGER_PROPERTY(label_to_accelerator_padding);
-
- if (delegate)
- delegate->AddCustomConfigValues(&value_config);
-
- std::string json_config;
- base::JSONWriter::Write(&value_config, false, &json_config);
-
- DictionaryValue strings;
-
- strings.SetString(
- "init_script",
- menu_class + ".decorate(document.getElementById('viewport'));" +
- " init(" + json_config + ");");
-
- if (menu_source_id == kNoExtraResource) {
- strings.SetString("menu_source", "");
- } else {
- base::StringPiece menu_source(
- ResourceBundle::GetSharedInstance().GetRawDataResource(menu_source_id));
- strings.SetString("menu_source", menu_source.as_string());
- }
- if (menu_css_id == kNoExtraResource) {
- strings.SetString("menu_css", "");
- } else {
- base::StringPiece menu_css(
- ResourceBundle::GetSharedInstance().GetRawDataResource(menu_css_id));
- strings.SetString("menu_css", menu_css.as_string());
- }
- if (delegate)
- delegate->AddLocalizedStrings(&strings);
-
- return jstemplate_builder::GetI18nTemplateHtml(menu_template, &strings);
-}
-
-class MenuUIHTMLSource : public ChromeURLDataManager::DataSource {
- public:
- MenuUIHTMLSource(const chromeos::MenuSourceDelegate* delegate,
- const std::string& source_name,
- const std::string& menu_class,
- int menu_source_id,
- int menu_css_id);
-
- // 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:
- virtual ~MenuUIHTMLSource() {}
-
- // The menu ui the source is created for.
- scoped_ptr<const chromeos::MenuSourceDelegate> delegate_;
-
- // The name of JS Menu class to use.
- const std::string menu_class_;
-
- // The resource id of the JS file of the menu subclass.
- int menu_source_id_;
-
- // The resource id of the CSS file of the menu subclass.
- int menu_css_id_;
-
- DISALLOW_COPY_AND_ASSIGN(MenuUIHTMLSource);
-};
-
-// The handler for Javascript messages related to the "system" view.
-class MenuHandler : public chromeos::MenuHandlerBase,
- public base::SupportsWeakPtr<MenuHandler>,
- public TabContentsDelegate {
- public:
- MenuHandler();
- virtual ~MenuHandler();
-
- // WebUIMessageHandler implementation.
- virtual WebUIMessageHandler* Attach(WebUI* web_ui);
- virtual void RegisterMessages();
-
- private:
- void HandleActivate(const ListValue* values);
- void HandleOpenSubmenu(const ListValue* values);
- void HandleCloseSubmenu(const ListValue* values);
- void HandleMoveInputToSubmenu(const ListValue* values);
- void HandleMoveInputToParent(const ListValue* values);
- void HandleCloseAll(const ListValue* values);
- void HandleModelUpdated(const ListValue* values);
- // This is a utility WebUI message to print debug message.
- // Menu can't use dev tool as it lives outside of browser.
- // TODO(oshima): This is inconvenient and figure out how we can use
- // dev tools for menus (and other WebUI that does not belong to browser).
- void HandleLog(const ListValue* values);
-
- // TabContentsDelegate implements:
- virtual void UpdatePreferredSize(const gfx::Size& new_size);
- virtual void LoadingStateChanged(TabContents* contents);
-
- virtual void OpenURLFromTab(TabContents* source,
- const GURL& url, const GURL& referrer,
- WindowOpenDisposition disposition,
- PageTransition::Type transition) {}
- virtual void NavigationStateChanged(const TabContents* source,
- unsigned changed_flags) {}
- virtual void AddNewContents(TabContents* source,
- TabContents* new_contents,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture) {}
-
- // TODO(oshima): Handle crash
- virtual void ActivateContents(TabContents* contents) {}
- virtual void DeactivateContents(TabContents* contents) {}
- virtual void CloseContents(TabContents* source) {}
- virtual void MoveContents(TabContents* source, const gfx::Rect& pos) {}
- virtual bool IsPopup(const TabContents* source) { return false; }
- virtual void ToolbarSizeChanged(TabContents* source, bool is_animating) {}
- virtual void UpdateTargetURL(TabContents* source, const GURL& url) {}
- virtual bool CanDownload(int request_id) { return false; }
- virtual bool infobars_enabled() { return false; }
- virtual bool ShouldEnablePreferredSizeNotifications() { return true; }
- virtual bool CanReloadContents(TabContents* source) const { return false; }
-
- // True if the page is loaded.
- bool loaded_;
-
- DISALLOW_COPY_AND_ASSIGN(MenuHandler);
-};
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// MenuUIHTMLSource
-//
-////////////////////////////////////////////////////////////////////////////////
-
-MenuUIHTMLSource::MenuUIHTMLSource(const chromeos::MenuSourceDelegate* delegate,
- const std::string& source_name,
- const std::string& menu_class,
- int menu_source_id,
- int menu_css_id)
- : DataSource(source_name, MessageLoop::current()),
- delegate_(delegate),
- menu_class_(menu_class),
- menu_source_id_(menu_source_id),
- menu_css_id_(menu_css_id) {
-}
-
-void MenuUIHTMLSource::StartDataRequest(const std::string& path,
- bool is_off_the_record,
- int request_id) {
- static const base::StringPiece menu_template(
- ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_MENU_HTML));
-
- // The resource string should be pure code and should not contain
- // i18n string.
- const std::string menu_html = GetMenuUIHTMLSourceFromString(
- delegate_.get(), menu_template, menu_class_,
- menu_source_id_, menu_css_id_);
-
- scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes);
-
- // TODO(oshima): Eliminate boilerplate code. See http://crbug.com/57583 .
- html_bytes->data.resize(menu_html.size());
- std::copy(menu_html.begin(), menu_html.end(),
- html_bytes->data.begin());
- SendResponse(request_id, html_bytes);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// MenuHandler
-//
-////////////////////////////////////////////////////////////////////////////////
-MenuHandler::MenuHandler() : loaded_(false) {
-}
-
-MenuHandler::~MenuHandler() {
-}
-
-WebUIMessageHandler* MenuHandler::Attach(WebUI* web_ui) {
- WebUIMessageHandler* handler = WebUIMessageHandler::Attach(web_ui);
- web_ui->tab_contents()->set_delegate(this);
- return handler;
-}
-
-void MenuHandler::RegisterMessages() {
- web_ui_->RegisterMessageCallback(
- "activate",
- NewCallback(this,
- &MenuHandler::HandleActivate));
- web_ui_->RegisterMessageCallback(
- "open_submenu",
- NewCallback(this,
- &MenuHandler::HandleOpenSubmenu));
- web_ui_->RegisterMessageCallback(
- "close_submenu",
- NewCallback(this,
- &MenuHandler::HandleCloseSubmenu));
- web_ui_->RegisterMessageCallback(
- "move_to_submenu",
- NewCallback(this,
- &MenuHandler::HandleMoveInputToSubmenu));
- web_ui_->RegisterMessageCallback(
- "move_to_parent",
- NewCallback(this,
- &MenuHandler::HandleMoveInputToParent));
- web_ui_->RegisterMessageCallback(
- "close_all",
- NewCallback(this,
- &MenuHandler::HandleCloseAll));
- web_ui_->RegisterMessageCallback(
- "model_updated",
- NewCallback(this,
- &MenuHandler::HandleModelUpdated));
- web_ui_->RegisterMessageCallback(
- "log",
- NewCallback(this,
- &MenuHandler::HandleLog));
-}
-
-void MenuHandler::HandleActivate(const ListValue* values) {
- CHECK_EQ(2U, values->GetSize());
- std::string index_str;
- bool success = values->GetString(0, &index_str);
- DCHECK(success);
- std::string activation;
- success = values->GetString(1, &activation);
- DCHECK(success);
-
- int index;
- success = base::StringToInt(index_str, &index);
- DCHECK(success);
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control) {
- ui::MenuModel* model = GetMenuModel();
- DCHECK(model);
- DCHECK_GE(index, 0);
- DCHECK(activation == "close_and_activate" ||
- activation == "activate_no_close") << activation;
- if (model->IsEnabledAt(index)) {
- control->Activate(model,
- index,
- activation == "close_and_activate" ?
- chromeos::WebUIMenuControl::CLOSE_AND_ACTIVATE :
- chromeos::WebUIMenuControl::ACTIVATE_NO_CLOSE);
- }
- }
-}
-
-void MenuHandler::HandleOpenSubmenu(const ListValue* values) {
- CHECK_EQ(2U, values->GetSize());
- std::string index_str;
- bool success = values->GetString(0, &index_str);
- DCHECK(success);
- std::string y_str;
- success = values->GetString(1, &y_str);
- DCHECK(success);
- int index;
- success = base::StringToInt(index_str, &index);
- DCHECK(success);
- int y;
- success = base::StringToInt(y_str, &y);
- DCHECK(success);
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control)
- control->OpenSubmenu(index, y);
-}
-
-void MenuHandler::HandleCloseSubmenu(const ListValue* values) {
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control)
- control->CloseSubmenu();
-}
-
-void MenuHandler::HandleMoveInputToSubmenu(const ListValue* values) {
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control)
- control->MoveInputToSubmenu();
-}
-
-void MenuHandler::HandleMoveInputToParent(const ListValue* values) {
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control)
- control->MoveInputToParent();
-}
-
-void MenuHandler::HandleCloseAll(const ListValue* values) {
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control)
- control->CloseAll();
-}
-
-void MenuHandler::HandleModelUpdated(const ListValue* values) {
- ui::MenuModel* model = GetMenuModel();
- if (model)
- static_cast<chromeos::MenuUI*>(web_ui_)->ModelUpdated(model);
-}
-
-void MenuHandler::HandleLog(const ListValue* values) {
- CHECK_EQ(1U, values->GetSize());
- std::string msg;
- bool success = values->GetString(0, &msg);
- DCHECK(success);
- DVLOG(1) << msg;
-}
-
-void MenuHandler::UpdatePreferredSize(const gfx::Size& new_size) {
- if (!loaded_)
- return;
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control)
- control->SetSize(new_size);
-}
-
-void MenuHandler::LoadingStateChanged(TabContents* contents) {
- chromeos::WebUIMenuControl* control = GetMenuControl();
- if (control && !contents->is_loading()) {
- loaded_ = true;
- control->OnLoad();
- HandleModelUpdated(NULL);
- }
-}
-
-} // namespace
-
-namespace chromeos {
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// MenuHandlerBase
-//
-////////////////////////////////////////////////////////////////////////////////
-
-chromeos::WebUIMenuControl* MenuHandlerBase::GetMenuControl() {
- WebUIMenuWidget* widget =
- chromeos::WebUIMenuWidget::FindWebUIMenuWidget(
- web_ui_->tab_contents()->GetNativeView());
- if (widget)
- return widget->webui_menu(); // NativeMenuWebUI implements WebUIMenuControl
- else
- return NULL;
-}
-
-ui::MenuModel* MenuHandlerBase::GetMenuModel() {
- WebUIMenuControl* control = GetMenuControl();
- if (control)
- return control->GetMenuModel();
- else
- return NULL;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// MenuUI
-//
-////////////////////////////////////////////////////////////////////////////////
-
-MenuUI::MenuUI(TabContents* contents) : WebUI(contents) {
- MenuHandler* handler = new MenuHandler();
- AddMessageHandler((handler)->Attach(this));
-
- contents->profile()->GetChromeURLDataManager()->AddDataSource(
- CreateDataSource());
-}
-
-MenuUI::MenuUI(TabContents* contents, ChromeURLDataManager::DataSource* source)
- : WebUI(contents) {
- MenuHandler* handler = new MenuHandler();
- AddMessageHandler((handler)->Attach(this));
-
- contents->profile()->GetChromeURLDataManager()->AddDataSource(source);
-}
-
-void MenuUI::ModelUpdated(const ui::MenuModel* model) {
- DictionaryValue json_model;
- ListValue* items = new ListValue();
- json_model.Set("items", items);
- int max_icon_width = 0;
- bool has_accelerator = false;
- for (int index = 0; index < model->GetItemCount(); ++index) {
- ui::MenuModel::ItemType type = model->GetTypeAt(index);
- DictionaryValue* item;
- switch (type) {
- case ui::MenuModel::TYPE_SEPARATOR:
- item = CreateMenuItem(model, index, "separator",
- &max_icon_width, &has_accelerator);
- break;
- case ui::MenuModel::TYPE_RADIO:
- max_icon_width = std::max(max_icon_width, 12);
- item = CreateMenuItem(model, index, "radio",
- &max_icon_width, &has_accelerator);
- break;
- case ui::MenuModel::TYPE_SUBMENU:
- item = CreateMenuItem(model, index, "submenu",
- &max_icon_width, &has_accelerator);
- break;
- case ui::MenuModel::TYPE_COMMAND:
- item = CreateMenuItem(model, index, "command",
- &max_icon_width, &has_accelerator);
- break;
- case ui::MenuModel::TYPE_CHECK:
- // Add space even when unchecked.
- max_icon_width = std::max(max_icon_width, 12);
- item = CreateMenuItem(model, index, "check",
- &max_icon_width, &has_accelerator);
- break;
- default:
- // TODO(oshima): We don't support BUTTOM_ITEM for now.
- NOTREACHED();
- continue;
- }
- items->Set(index, item);
- }
- WebUIMenuWidget* widget =
- chromeos::WebUIMenuWidget::FindWebUIMenuWidget(
- tab_contents()->GetNativeView());
- DCHECK(widget);
- json_model.SetInteger("maxIconWidth", max_icon_width);
- json_model.SetBoolean("isRoot", widget->is_root());
- json_model.SetBoolean("hasAccelerator", has_accelerator);
- CallJavascriptFunction("updateModel", json_model);
-}
-
-DictionaryValue* MenuUI::CreateMenuItem(const ui::MenuModel* model,
- int index,
- const char* type,
- int* max_icon_width,
- bool* has_accel) const {
- // Note: Web UI uses '&' as mnemonic.
- string16 label16 = model->GetLabelAt(index);
- DictionaryValue* item = new DictionaryValue();
-
- item->SetString("type", type);
- item->SetString("label", label16);
- item->SetBoolean("enabled", model->IsEnabledAt(index));
- item->SetBoolean("visible", model->IsVisibleAt(index));
- item->SetBoolean("checked", model->IsItemCheckedAt(index));
- item->SetInteger("command_id", model->GetCommandIdAt(index));
- item->SetString(
- "font", GetFontShorthand(model->GetLabelFontAt(index)));
- SkBitmap icon;
- if (model->GetIconAt(index, &icon) && !icon.isNull() && !icon.empty()) {
- item->SetString("icon", web_ui_util::GetImageDataUrl(icon));
- *max_icon_width = std::max(*max_icon_width, icon.width());
- }
- views::Accelerator menu_accelerator;
- if (model->GetAcceleratorAt(index, &menu_accelerator)) {
- item->SetString("accel", menu_accelerator.GetShortcutText());
- *has_accel = true;
- }
- return item;
-}
-
-// static
-ChromeURLDataManager::DataSource* MenuUI::CreateMenuUIHTMLSource(
- const MenuSourceDelegate* delegate,
- const std::string& source_name,
- const std::string& menu_class,
- int menu_source_id,
- int menu_css_id) {
- return new MenuUIHTMLSource(delegate,
- source_name,
- menu_class,
- menu_source_id,
- menu_css_id);
-}
-
-// static
-bool MenuUI::IsEnabled() {
- return CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableWebUIMenu);
-}
-
-ChromeURLDataManager::DataSource* MenuUI::CreateDataSource() {
- return CreateMenuUIHTMLSource(NULL,
- chrome::kChromeUIMenu,
- "Menu" /* class name */,
- kNoExtraResource,
- kNoExtraResource);
-}
-
-} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/webui/menu_ui.h ('k') | chrome/browser/chromeos/webui/network_menu_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698