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_EXTENSIONS_API_TOP_SITES_TOP_SITES_API_H_ 6#define CHROME_BROWSER_EXTENSIONS_API_TOP_SITES_TOP_SITES_API_H_ 7 8#include "base/memory/weak_ptr.h" 9#include "chrome/browser/extensions/chrome_extension_function.h" 10#include "components/history/core/browser/history_types.h" 11 12namespace extensions { 13 14class TopSitesGetFunction : public ChromeAsyncExtensionFunction { 15 public: 16 DECLARE_EXTENSION_FUNCTION("topSites.get", TOPSITES_GET) 17 18 TopSitesGetFunction(); 19 20 protected: 21 virtual ~TopSitesGetFunction(); 22 23 // ExtensionFunction: 24 virtual bool RunAsync() OVERRIDE; 25 26 private: 27 void OnMostVisitedURLsAvailable(const history::MostVisitedURLList& data); 28 29 // For callbacks may be run after destruction. 30 base::WeakPtrFactory<TopSitesGetFunction> weak_ptr_factory_; 31}; 32 33} // namespace extensions 34 35#endif // CHROME_BROWSER_EXTENSIONS_API_TOP_SITES_TOP_SITES_API_H_ 36