Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: chrome/common/web_apps.h

Issue 4979003: Implement web app definition parsing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2010 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_APPS_H_
6 #define CHROME_COMMON_WEB_APPS_H_
7 #pragma once
8
9 #include <string>
10 #include <vector>
11
12 #include "base/string16.h"
13 #include "googleurl/src/gurl.h"
14 #include "gfx/size.h"
15 #include "third_party/skia/include/core/SkBitmap.h"
16
17 namespace WebKit {
18 class WebDocument;
19 class WebFrame;
20 }
21
22 class DictionaryValue;
23
24 // Structure used when installing a web page as an app.
25 struct WebApplicationInfo {
26 struct IconInfo {
27 GURL url;
28 int width;
29 int height;
30 SkBitmap data;
31 };
32
33 static const char kInvalidDefinitionURL[];
34 static const char kInvalidLaunchURL[];
35 static const char kInvalidURL[];
36 static const char kInvalidIconSize[];
37 static const char kInvalidIconURL[];
38
39 WebApplicationInfo();
40 ~WebApplicationInfo();
41
42 // URL to a manifest that defines the application. If specified, all other
43 // attributes are derived from this manifest, and the manifest is the unique
44 // ID of the application.
45 GURL manifest_url;
46
47 // Title of the application.
48 string16 title;
49
50 // Description of the application.
51 string16 description;
52
53 // The launch URL for the app.
54 GURL app_url;
55
56 // Set of available icons.
57 std::vector<IconInfo> icons;
58
59 // The permissions the app requests. Only supported with manifest-based apps.
60 std::vector<std::string> privileges;
61
62 // Set of URLs that comprise the app. Only supported with manifest-based apps.
63 // All these must be of the same origin as manifest_url.
64 std::vector<GURL> urls;
65
66 // The type of launch container to use with the app. Currently supported
67 // values are 'tab' and 'panel'. Only supported with manifest-based apps.
68 std::string launch_container;
69 };
70
71
72 // Parses an icon size. An icon size must match the following regex:
73 // [1-9][0-9]*x[1-9][0-9]*.
74 // If the input couldn't be parsed, a size with a width/height < 0 is returned.
75 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.
76
77 // Parses the icon's size attribute as defined in the HTML 5 spec. Returns true
78 // on success, false on errors. On success either all the sizes specified in
79 // the attribute are added to sizes, or is_any is set to true.
80 //
81 // You shouldn't have a need to invoke this directly, it's public for testing.
82 bool ParseIconSizes(const string16& text, std::vector<gfx::Size>* sizes,
83 bool* is_any);
84
85 // Parses |web_app| information out of the document in frame. Returns true on
86 // success, or false and |error| on failure. Note that the document may contain
87 // no web application information, in which case |web_app| is unchanged and the
88 // 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.
89 //
90 // Documents can also contain a link to a application 'definition'. In this case
91 // web_app will have manifest_url set and nothing else. The caller must fetch
92 // this URL and pass the result to ParseWebAppFromDefinitionFile() for further
93 // processing.
94 bool ParseWebAppFromWebDocument(WebKit::WebFrame* frame,
95 WebApplicationInfo* web_app,
96 string16* error);
97
98 // Parses |web_app| information out of |definition|. Returns true on success, or
99 // false and |error| on failure. This function assumes that |web_app| has a
100 // valid manifest_url.
101 bool ParseWebAppFromDefinitionFile(const DictionaryValue& definition,
102 WebApplicationInfo* web_app,
103 string16* error);
104
105 #endif // CHROME_COMMON_WEB_APPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698