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 15 namespace base { 16 class RefCountedMemory; 17 } 18 19 // This class provides the source for chrome://bookmarks/ 20 class 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. 41 class 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