Home | History | Annotate | Download | only in common
      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_
     68