blob: 708b43d29b533b00ee961e55eb8d41332332306b [file] [log] [blame]
// 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_GEARS_INTEGRATION_H__
#define CHROME_BROWSER_GEARS_INTEGRATION_H__
#include <string>
#include "base/task.h"
#include "chrome/common/gears_api.h"
// TODO(michaeln): Rework this interface to match how other first class
// citizens of chrome are structured, as a GearsService with an accessor
// available via browser.gears_service().
class CPCommandInterface;
class GURL;
class SkBitmap;
namespace webkit_glue {
struct WebApplicationInfo;
}
// We use this in place of GearsShortcutData so we can keep browser-specific
// data on the structure.
struct GearsCreateShortcutData : public GearsShortcutData2 {
CPCommandInterface* command_interface;
};
// Called when the Gears Settings button is pressed. |parent_hwnd| is the
// window the Gears Settings dialog should be parented to.
void GearsSettingsPressed(HWND parent_hwnd);
// Calls into the Gears API to create a shortcut with the given parameters.
// 'app_info' is the optional information provided by the page. If any info is
// missing, we fallback to the given fallback params. 'fallback_icon' must be a
// 16x16 favicon. 'callback' will be called with a value indicating whether the
// shortcut has been created successfully.
typedef Callback2<const GearsShortcutData&, bool>::Type
GearsCreateShortcutCallback;
void GearsCreateShortcut(
const webkit_glue::WebApplicationInfo& app_info,
const std::wstring& fallback_name,
const GURL& fallback_url,
const SkBitmap& fallback_icon,
GearsCreateShortcutCallback* callback);
// Call into Gears to query the list of shortcuts. Results will be returned
// asynchronously via the callback. The callback's arguments will be NULL
// if there was an error.
typedef Callback1<GearsShortcutList*>::Type GearsQueryShortcutsCallback;
void GearsQueryShortcuts(GearsQueryShortcutsCallback* callback);
// When the Gears shortcut database is modified, the main thread is notified
// via the NotificationService, NOTIFY_WEB_APP_INSTALL_CHANGED.
#endif // CHROME_BROWSER_GEARS_INTEGRATION_H__