bookmarks_ui.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_WEBUI_BOOKMARKS_UI_H_ 6#define CHROME_BROWSER_UI_WEBUI_BOOKMARKS_UI_H_ 7 8#include <string> 9 10#include "base/compiler_specific.h" 11#include "content/public/browser/url_data_source.h" 12#include "content/public/browser/web_ui_controller.h" 13#include "ui/base/layout.h" 14 15namespace base { 16class RefCountedMemory; 17} 18 19// This class provides the source for chrome://bookmarks/ 20class BookmarksUIHTMLSource : public content::URLDataSource { 21 public: 22 BookmarksUIHTMLSource(); 23 24 // content::URLDataSource implementation. 25 virtual std::string GetSource() const OVERRIDE; 26 virtual void StartDataRequest( 27 const std::string& path, 28 int render_process_id, 29 int render_view_id, 30 const content::URLDataSource::GotDataCallback& callback) OVERRIDE; 31 virtual std::string GetMimeType(const std::string& path) const OVERRIDE; 32 33 private: 34 virtual ~BookmarksUIHTMLSource(); 35 36 DISALLOW_COPY_AND_ASSIGN(BookmarksUIHTMLSource); 37}; 38 39// This class is used to hook up chrome://bookmarks/ which in turn gets 40// overridden by an extension. 41class BookmarksUI : public content::WebUIController { 42 public: 43 explicit BookmarksUI(content::WebUI* web_ui); 44 45 static base::RefCountedMemory* GetFaviconResourceBytes( 46 ui::ScaleFactor scale_factor); 47 48 private: 49 DISALLOW_COPY_AND_ASSIGN(BookmarksUI); 50}; 51 52#endif // CHROME_BROWSER_UI_WEBUI_BOOKMARKS_UI_H_ 53