- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / common / web_application_info.h
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_COMMON_WEB_APPLICATION_INFO_H_
6 #define CHROME_COMMON_WEB_APPLICATION_INFO_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "base/strings/string16.h"
12 #include "third_party/skia/include/core/SkBitmap.h"
13 #include "ui/gfx/size.h"
14 #include "url/gurl.h"
15
16 // Structure used when installing a web page as an app.
17 struct WebApplicationInfo {
18   struct IconInfo {
19     GURL url;
20     int width;
21     int height;
22     SkBitmap data;
23   };
24
25   WebApplicationInfo();
26   ~WebApplicationInfo();
27
28   // URL to a manifest that defines the application. If specified, all other
29   // attributes are derived from this manifest, and the manifest is the unique
30   // ID of the application.
31   GURL manifest_url;
32
33   // Setting indicating this application is artificially constructed. If set,
34   // the application was created from bookmark-style data (title, url, possibly
35   // icon), and not from an official manifest file. In that case, the app_url
36   // can be checked for the later creation of an official manifest instead of
37   // reloading the manifest_url.
38   bool is_bookmark_app;
39
40   // Title of the application.
41   string16 title;
42
43   // Description of the application.
44   string16 description;
45
46   // The launch URL for the app.
47   GURL app_url;
48
49   // Set of available icons.
50   std::vector<IconInfo> icons;
51
52   // The permissions the app requests. Only supported with manifest-based apps.
53   std::vector<std::string> permissions;
54
55   // Set of URLs that comprise the app. Only supported with manifest-based apps.
56   // All these must be of the same origin as manifest_url.
57   std::vector<GURL> urls;
58
59   // The type of launch container to use with the app. Currently supported
60   // values are 'tab' and 'panel'. Only supported with manifest-based apps.
61   std::string launch_container;
62
63   // This indicates if the app is functional in offline mode or not.
64   bool is_offline_enabled;
65 };
66
67 #endif  // CHROME_COMMON_WEB_APPLICATION_INFO_H_