| 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__
|
| -
|
|
|