Index: chrome/browser/web_app.h |
=================================================================== |
--- chrome/browser/web_app.h (revision 9030) |
+++ chrome/browser/web_app.h (working copy) |
@@ -1,159 +0,0 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_WEB_APP_H__ |
-#define CHROME_BROWSER_WEB_APP_H__ |
- |
-#include <vector> |
- |
-#include "base/ref_counted.h" |
-#include "chrome/browser/cancelable_request.h" |
-#include "chrome/browser/gears_integration.h" |
-#include "chrome/browser/history/history.h" |
-#include "chrome/browser/webdata/web_data_service.h" |
-#include "googleurl/src/gurl.h" |
-#include "skia/include/SkBitmap.h" |
- |
-class Profile; |
-class WebContents; |
- |
-// A WebApp represents a page that Gears has installed a shortcut for. A WebApp |
-// has a name, url and set of images (potentially empty). The images are lazily |
-// loaded when asked for. |
-// |
-// The images are first loaded from the WebDatabase. If the images are not in |
-// the WebDB, the list of images is obtained from Gears then downloaded via the |
-// WebContents set by SetWebContents. As images are loaded they are pushed to |
-// the WebDatabase. Observers are notified any time the set of images changes. |
-class WebApp : public base::RefCounted<WebApp>, public WebDataServiceConsumer { |
- public: |
- typedef std::vector<SkBitmap> Images; |
- |
- // The Observer is notified any time the set of images contained in the WebApp |
- // changes. |
- class Observer { |
- public: |
- virtual void WebAppImagesChanged(WebApp* web_app) = 0; |
- }; |
- |
- // Creates a WebApp by name and url. This variant is only used if Gears |
- // doesn't know about the shortcut. |
- WebApp(Profile* profile, |
- const GURL& url, |
- const std::wstring& name); |
- |
- // Creates a WebApp from a Gears shortcut. |
- WebApp(Profile* profile, |
- const GearsShortcutData& shortcut); |
- ~WebApp(); |
- |
- // Sets the specified image. This is invoked from the WebContents when an |
- // image finishes downloading. If image_url is one of the images this WebApp |
- // asked to download, it is pushed to the database and the observer is |
- // notified. If the image isn't one that was asked for by this WebApp, nothing |
- // happens. |
- void SetImage(const GURL& image_url, const SkBitmap& image); |
- |
- // Returns the set of images. If the images haven't been loaded yet, they are |
- // asked for. |
- const Images& GetImages(); |
- |
- // Convenience to get the favicon from the set of images. If a favicon sized |
- // image isn't found, an empty image is returned. |
- SkBitmap GetFavIcon(); |
- |
- // Name of the app. |
- const std::wstring& name() const { return name_; } |
- |
- // URL to the app. |
- const GURL& url() const { return url_; } |
- |
- // Sets the WebContents that is using this WebApp. This is used if the |
- // database doesn't have all the images. If NULL, images won't be downloaded |
- // if they aren't in the db. |
- void SetWebContents(WebContents* host); |
- |
- // WebContents used to download images; may be null. |
- WebContents* web_contents() { return web_contents_; } |
- |
- void AddObserver(Observer* obs); |
- void RemoveObserver(Observer* obs); |
- |
- private: |
- // Requests the images for this app from the web db. Does nothing if the |
- // images have already been requested. |
- void LoadImagesFromWebData(); |
- |
- // Notification from the WebDB that our request for the images has completed. |
- // This adds all the images from the request to this WebApp, and if not all |
- // images have been downloaded, the images are requested from the webContents. |
- // Similarly if a favicon sized image isn't available, one is asked for from |
- // history. |
- virtual void OnWebDataServiceRequestDone(WebDataService::Handle h, |
- const WDTypedResult* result); |
- |
- // Callback from history when the favicon is available. If we don't have a |
- // favicon sized image, the image is added to this WebApp's list of images. |
- void OnFavIconFromHistory(HistoryService::Handle handle, |
- bool know_favicon, |
- scoped_refptr<RefCountedBytes> data, |
- bool expired, |
- GURL icon_url); |
- |
- // Requests the favicon from history. |
- void LoadFavIconFromHistory(); |
- |
- // Asks the hosting WebApp to download all the images. |
- void DownloadImagesFromSite(); |
- |
- // Returns the position of the favicon, or images_.end() if no favicon sized |
- // image is available |
- Images::iterator GetFavIconIterator(); |
- |
- // An URLs in image_urls_ that are data encoded PNGs are extracted and added |
- // to images_. |
- void ExtractPNGEncodedURLs(); |
- |
- void NotifyObservers(); |
- |
- // WebContents used to download images, may be null. |
- WebContents* web_contents_; |
- |
- // Profile used for WebDataservice and History. |
- Profile* profile_; |
- |
- // URL of the app. |
- const GURL url_; |
- |
- // Name of the app. |
- const std::wstring name_; |
- |
- // Have the images been loaded from the WebDB? This is initially false and set |
- // true when GetImages is invoked. |
- bool loaded_images_from_web_data_; |
- |
- // If non-zero, indicates we have a loading pending from the WebDB. |
- WebDataService::Handle image_load_handle_; |
- |
- // Set of images. |
- Images images_; |
- |
- // Set of image urls. |
- std::set<GURL> image_urls_; |
- |
- // Should the images be downloaded from the page? This is false if we don't |
- // know the set of image urls (weren't created from a GearsShortcutData) or |
- // the image urls in the GearsShortcutData were empty. |
- bool download_images_; |
- |
- // Used for history request for the favicon. |
- CancelableRequestConsumer request_consumer_; |
- |
- ObserverList<Observer> observer_list_; |
- |
- DISALLOW_EVIL_CONSTRUCTORS(WebApp); |
-}; |
- |
-#endif // CHROME_BROWSER_WEB_APP_H__ |
- |