Home | History | Annotate | Download | only in top_sites
      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 "chrome/browser/history/history_types.h"
     11 
     12 namespace extensions {
     13 
     14 class 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