172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#ifndef CHROME_BROWSER_UI_WEBUI_BOOKMARKS_UI_H_ 6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#define CHROME_BROWSER_UI_WEBUI_BOOKMARKS_UI_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/ui/webui/chrome_url_data_manager.h" 12dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/webui/web_ui.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass GURL; 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass RefCountedMemory; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This class provides the source for chrome://bookmarks/ 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass BookmarksUIHTMLSource : public ChromeURLDataManager::DataSource { 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch BookmarksUIHTMLSource(); 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Called when the network layer has requested a resource underneath 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // the path we registered. 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void StartDataRequest(const std::string& path, 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool is_incognito, 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int request_id); 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual std::string GetMimeType(const std::string& path) const; 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(BookmarksUIHTMLSource); 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This class is used to hook up chrome://bookmarks/ which in turn gets 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// overridden by an extension. 3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass BookmarksUI : public WebUI { 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit BookmarksUI(TabContents* contents); 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static RefCountedMemory* GetFaviconResourceBytes(); 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(BookmarksUI); 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#endif // CHROME_BROWSER_UI_WEBUI_BOOKMARKS_UI_H_ 46