Home | History | Annotate | Download | only in webui
      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