Chromium Code Reviews| Index: chrome/common/web_apps.h |
| diff --git a/chrome/common/web_apps.h b/chrome/common/web_apps.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..248a080a6f161a15bc32caaef7fe85aa0c9700a1 |
| --- /dev/null |
| +++ b/chrome/common/web_apps.h |
| @@ -0,0 +1,105 @@ |
| +// Copyright (c) 2010 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_COMMON_WEB_APPS_H_ |
| +#define CHROME_COMMON_WEB_APPS_H_ |
| +#pragma once |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/string16.h" |
| +#include "googleurl/src/gurl.h" |
| +#include "gfx/size.h" |
| +#include "third_party/skia/include/core/SkBitmap.h" |
| + |
| +namespace WebKit { |
| +class WebDocument; |
| +class WebFrame; |
| +} |
| + |
| +class DictionaryValue; |
| + |
| +// Structure used when installing a web page as an app. |
| +struct WebApplicationInfo { |
| + struct IconInfo { |
| + GURL url; |
| + int width; |
| + int height; |
| + SkBitmap data; |
| + }; |
| + |
| + static const char kInvalidDefinitionURL[]; |
| + static const char kInvalidLaunchURL[]; |
| + static const char kInvalidURL[]; |
| + static const char kInvalidIconSize[]; |
| + static const char kInvalidIconURL[]; |
| + |
| + WebApplicationInfo(); |
| + ~WebApplicationInfo(); |
| + |
| + // URL to a manifest that defines the application. If specified, all other |
| + // attributes are derived from this manifest, and the manifest is the unique |
| + // ID of the application. |
| + GURL manifest_url; |
| + |
| + // Title of the application. |
| + string16 title; |
| + |
| + // Description of the application. |
| + string16 description; |
| + |
| + // The launch URL for the app. |
| + GURL app_url; |
| + |
| + // Set of available icons. |
| + std::vector<IconInfo> icons; |
| + |
| + // The permissions the app requests. Only supported with manifest-based apps. |
| + std::vector<std::string> privileges; |
| + |
| + // Set of URLs that comprise the app. Only supported with manifest-based apps. |
| + // All these must be of the same origin as manifest_url. |
| + std::vector<GURL> urls; |
| + |
| + // The type of launch container to use with the app. Currently supported |
| + // values are 'tab' and 'panel'. Only supported with manifest-based apps. |
| + std::string launch_container; |
| +}; |
| + |
| + |
| +// Parses an icon size. An icon size must match the following regex: |
| +// [1-9][0-9]*x[1-9][0-9]*. |
| +// If the input couldn't be parsed, a size with a width/height < 0 is returned. |
| +gfx::Size ParseIconSize(const string16& text); |
|
Erik does not do reviews
2010/11/15 19:45:36
It seems odd for all of these functions to be nake
Aaron Boodman
2010/11/16 03:44:45
It is a bit odd. I moved this code from its previo
Erik does not do reviews
2010/11/16 23:43:02
yeah. for now a namespace would help.
|
| + |
| +// Parses the icon's size attribute as defined in the HTML 5 spec. Returns true |
| +// on success, false on errors. On success either all the sizes specified in |
| +// the attribute are added to sizes, or is_any is set to true. |
| +// |
| +// You shouldn't have a need to invoke this directly, it's public for testing. |
| +bool ParseIconSizes(const string16& text, std::vector<gfx::Size>* sizes, |
| + bool* is_any); |
| + |
| +// Parses |web_app| information out of the document in frame. Returns true on |
| +// success, or false and |error| on failure. Note that the document may contain |
| +// no web application information, in which case |web_app| is unchanged and the |
| +// function returns true. |
|
Erik does not do reviews
2010/11/15 19:45:36
it seems like there needs to be some way to detect
Aaron Boodman
2010/11/16 03:44:45
The current call sites don't care about that case.
Erik does not do reviews
2010/11/16 23:43:02
OK.
|
| +// |
| +// Documents can also contain a link to a application 'definition'. In this case |
| +// web_app will have manifest_url set and nothing else. The caller must fetch |
| +// this URL and pass the result to ParseWebAppFromDefinitionFile() for further |
| +// processing. |
| +bool ParseWebAppFromWebDocument(WebKit::WebFrame* frame, |
| + WebApplicationInfo* web_app, |
| + string16* error); |
| + |
| +// Parses |web_app| information out of |definition|. Returns true on success, or |
| +// false and |error| on failure. This function assumes that |web_app| has a |
| +// valid manifest_url. |
| +bool ParseWebAppFromDefinitionFile(const DictionaryValue& definition, |
| + WebApplicationInfo* web_app, |
| + string16* error); |
| + |
| +#endif // CHROME_COMMON_WEB_APPS_H_ |