Tizen 2.0 Release
[framework/web/wrt-commons.git] / modules / widget_dao / include / dpl / wrt-dao-ro / widget_dao_read_only.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 /**
17  * This file contains the declaration of widget dao class.
18  *
19  * @file    widget_dao_read_only.h
20  * @author  Yang Jie (jie2.yang@samsung.com)
21  * @author  Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
22  * @author  Pawel Sikorski (p.sikorski@samsung.com)
23  * @version 1.0
24  * @brief   This file contains the declaration of widget dao
25  */
26
27 #ifndef _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
28 #define _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
29
30 #include <time.h>
31 #include <list>
32 #include <string>
33 #include <dpl/string.h>
34 #include <dpl/exception.h>
35 #include <dpl/db/orm.h>
36 #include <dpl/optional_typedefs.h>
37 #include <dpl/wrt-dao-ro/config_parser_data.h>
38 #include <dpl/wrt-dao-ro/property_dao_read_only.h>
39 #include <dpl/wrt-dao-ro/common_dao_types.h>
40
41 namespace WrtDB {
42
43 /**
44  * Widget's signature enum.
45  * This enumerates signature type of widget.
46  */
47 enum WidgetSignatureType
48 {
49     SIGNATURE_TYPE_CARRIER = 0,
50     SIGNATURE_TYPE_IDENTIFIED,
51     SIGNATURE_TYPE_UNIDENTIFIED
52 };
53
54 enum CertificateSource {
55     SIGNATURE_DISTRIBUTOR = 0,
56     SIGNATURE_AUTHOR = 1
57 };
58
59 typedef std::list<DPL::String> StringList;
60
61 struct WidgetLocalizedInfo
62 {
63     DPL::OptionalString name;
64     DPL::OptionalString shortName;
65     DPL::OptionalString description;
66     DPL::OptionalString license;
67     DPL::OptionalString licenseHref;
68 };
69
70 /**
71  * CertificateData
72  * A structure to hold certificate fingerprints.
73  */
74 struct WidgetCertificateData
75 {
76     enum Owner { AUTHOR, DISTRIBUTOR, UNKNOWN };
77     enum Type { ROOT, ENDENTITY };
78
79     // type of signature: author/distributor
80     Owner owner;
81     // indicates whether this is ca certificate
82     Type type;
83
84     // chain id number: relative BASE, where BASE is signatureBASE.xml
85     int chainId;
86     // certificate fingerprint digested by md5
87     std::string strMD5Fingerprint;
88     // certificate fingerprint digestef by sha1
89     std::string strSHA1Fingerprint;
90     // Common name field in certificate
91     DPL::String strCommonName;
92
93     bool operator== (const WidgetCertificateData& certData) const {
94         return certData.chainId == chainId &&
95            certData.owner == owner &&
96            certData.strCommonName == strCommonName &&
97            certData.strMD5Fingerprint == strMD5Fingerprint &&
98            certData.strSHA1Fingerprint == strSHA1Fingerprint;
99     }
100 };
101
102 typedef std::list<WidgetCertificateData> WidgetCertificateDataList;
103
104 typedef DPL::String Locale;
105 typedef std::set<Locale> LocaleSet;
106 typedef std::list<std::string> ExternalLocationList;
107
108 /**
109  * WidgetRegisterInfo
110  * A structure to hold widget's information needed to be registered.
111  * @see WidgetConfigurationInfo
112  */
113 struct WidgetRegisterInfo
114 {
115     struct LocalizedIcon : public ConfigParserData::Icon
116     {
117         LocalizedIcon(const ConfigParserData::Icon& icon,
118                 const LocaleSet& _availableLocales) :
119             ConfigParserData::Icon(icon),
120             availableLocales(_availableLocales)
121         {
122         }
123
124         LocaleSet availableLocales;
125     };
126
127     struct StartFileProperties
128     {
129         DPL::String encoding;
130         DPL::String type;
131     };
132
133     typedef std::map<Locale,
134                      StartFileProperties> StartFilePropertiesForLocalesMap;
135     struct LocalizedStartFile
136     {
137         DPL::String path;
138         StartFilePropertiesForLocalesMap propertiesForLocales;
139     };
140
141     typedef std::list<LocalizedIcon> LocalizedIconList;
142     typedef std::list<LocalizedStartFile> LocalizedStartFileList;
143     struct LocalizationData
144     {
145         LocalizedIconList icons;
146         LocalizedStartFileList startFiles;
147     };
148
149     enum SecurityDomain
150     {
151         Untrusted,
152         Trusted,
153         Operator,
154         None
155     };
156
157     //Constructor
158     WidgetRegisterInfo() :
159         webAppType(APP_TYPE_UNKNOWN),
160         signatureType(SIGNATURE_TYPE_UNIDENTIFIED),
161         isTestWidget(0),
162         configInfo(),
163         packagingType(PKG_TYPE_UNKNOWN)
164     {
165     }
166
167     WidgetType webAppType;
168     WidgetType type; // TODO : This type will be removed.
169     DPL::OptionalString guid;
170     DPL::OptionalString version;
171     DPL::OptionalString minVersion;
172     std::string shareHref;
173     std::string baseFolder;
174     WidgetSignatureType signatureType;
175     int isTestWidget;
176     ConfigParserData configInfo;
177     LocalizationData localizationData;
178
179     DPL::OptionalString pkgname;
180     WidgetPkgName pkgName;
181
182     time_t installedTime;
183     PackagingType packagingType;
184     EncryptedFileList encryptedFiles;
185     ExternalLocationList externalLocations;
186     DPL::OptionalString widgetInstalledPath;
187 };
188
189 typedef std::list<std::string> CertificateChainList;
190 class IWacSecurity
191 {
192   public:
193     virtual ~IWacSecurity();
194
195     virtual const WidgetCertificateDataList& getCertificateList() const = 0;
196
197     virtual bool isRecognized() const = 0;
198
199     virtual bool isDistributorSigned() const = 0;
200
201     virtual bool isWacSigned() const = 0;
202
203     virtual void getCertificateChainList(CertificateChainList& list,
204             CertificateSource source) const = 0;
205 };
206
207 /**
208  * WidgetAuthorInfo.
209  * Structure to hold the information of widget's author.
210  */
211 struct WidgetAuthorInfo
212 {
213     DPL::OptionalString name;
214     DPL::OptionalString email;
215     DPL::OptionalString href;
216 };
217
218 /**
219  * Widget update policy
220  */
221 enum WidgetUpdatePolicy
222 {
223     WIDGET_UPDATE_MONTHLY = 0,  //< monthly update
224     WIDGET_UPDATE_WEEKLY,       //< weekly update
225     WIDGET_UPDATE_DAILY,        //< daily update
226     WIDGET_UPDATE_STARTUP,      //< update when cell phone boots
227     WIDGET_UPDATE_NEVER         //< never update
228 };
229
230 typedef std::list <std::string> WidgetCertificateCNList;
231 typedef std::list<DPL::String> LanguageTagList;
232 typedef std::list<std::string> HostList;
233 typedef std::list<std::string> FingerPrintList;
234 typedef std::list<std::string> ResourceAttributeList;
235
236 class WidgetDAOReadOnly
237 {
238   public:
239     /**
240      * WidgetDAO Exception classes
241      */
242     class Exception
243     {
244       public:
245         DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
246         DECLARE_EXCEPTION_TYPE(Base, DatabaseError)
247         DECLARE_EXCEPTION_TYPE(Base, ReadOnlyProperty)
248         DECLARE_EXCEPTION_TYPE(Base, GUIDisNull)
249         DECLARE_EXCEPTION_TYPE(Base, UnexpectedEmptyResult)
250         DECLARE_EXCEPTION_TYPE(Base, WidgetNotExist)
251         DECLARE_EXCEPTION_TYPE(Base, AlreadyRegistered)
252     };
253
254   protected:
255     DbWidgetHandle m_widgetHandle;
256
257   public:
258     struct WidgetLocalizedIconRow
259     {
260         int appId;
261         int iconId;
262         DPL::String widgetLocale;
263     };
264     typedef std::list<WidgetLocalizedIconRow> WidgetLocalizedIconList;
265
266     struct WidgetIconRow
267     {
268         int iconId;
269         int appId;
270         DPL::String iconSrc;
271         DPL::OptionalInt iconWidth;
272         DPL::OptionalInt iconHeight;
273     };
274     typedef std::list<WidgetIconRow> WidgetIconList;
275
276     struct WidgetStartFileRow
277     {
278         int startFileId;
279         int appId;
280         DPL::String src;
281     };
282     typedef std::list<WidgetStartFileRow> WidgetStartFileList;
283
284     struct WidgetLocalizedStartFileRow
285     {
286         int startFileId;
287         int appId;
288         DPL::String widgetLocale;
289         DPL::String type;
290         DPL::String encoding;
291     };
292     typedef std::list<WidgetLocalizedStartFileRow> LocalizedStartFileList;
293
294     /**
295      * This is a constructor.
296      *
297      * @param[in] widgetHandle application id of widget.
298      */
299     WidgetDAOReadOnly(DbWidgetHandle widgetHandle);
300     WidgetDAOReadOnly(DPL::OptionalString widgetGUID);
301     WidgetDAOReadOnly(DPL::String pkgName);
302
303     /**
304      * Destructor
305      */
306     virtual ~WidgetDAOReadOnly();
307
308     /**
309      * This method returns widget handle(m_widgetHandle).
310      *
311      * @return widget handle(m_widgetHandle).
312      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
313      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
314      */
315     DbWidgetHandle getHandle() const;
316     static DbWidgetHandle getHandle(const WidgetGUID GUID);
317     static DbWidgetHandle getHandle(const DPL::String pkgName);
318
319     /**
320      * Returns pkgname for the specified widget
321      *
322      * @return pkgname
323      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
324      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
325      */
326     WidgetPkgName getPkgName() const;
327     static WidgetPkgName getPkgName(const WidgetGUID GUID);
328     static WidgetPkgName getPkgName(const DbWidgetHandle handle);
329
330     /**
331      * This method returns the root directory of widget resource.
332      *
333      * @return path name of root directory.
334      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
335      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
336      * DB table.
337      */
338     DPL::String getPath() const;
339
340     DPL::String getFullPath() const;
341
342     /**
343      * This method returns the preferred size of the widget,
344      * including width and height.
345      *
346      * @see DbWidgetSize
347      * @return An structure type variable to hold widget's size.
348      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
349      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching
350      *                                          DB table.
351      */
352     DbWidgetSize getPreferredSize() const;
353
354     /**
355      * This method returns the type of the widget.
356      *
357      * @return WidgetType
358      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
359      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching
360                                                 records in DB table.
361      */
362     WidgetType getWidgetType() const;
363
364     /**
365      * This method returns the id of the widget.
366      *
367      * @return widget id
368      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
369      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
370      *  DB table.
371      */
372     WidgetGUID getGUID() const;
373
374
375     /**
376     * This method returns the Package name of the widget.
377     *
378     * @return pkgname
379     * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
380     * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
381     */
382     DPL::OptionalString getPkgname() const;
383
384     /**
385      * This method returns the defaultlocale for the widget.
386      *
387      * @return defaultlocale
388      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
389      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
390      *  DB table.
391      */
392     DPL::OptionalString getDefaultlocale() const;
393
394     /**
395      * This method returns list of localized icons files;
396      *
397      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
398      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
399      *  DB table.
400      */
401     WidgetLocalizedIconList getLocalizedIconList() const;
402
403     /**
404      * This method returns list of icons files;
405      *
406      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
407      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
408      *  DB table.
409      */
410     WidgetIconList getIconList() const;
411
412     /**
413      * This method returns list of localized start files;
414      *
415      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
416      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
417      *  DB table.
418      */
419     LocalizedStartFileList getLocalizedStartFileList() const;
420
421     /**
422      * This method returns list of start files;
423      *
424      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
425      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
426      *  DB table.
427      */
428     WidgetStartFileList getStartFileList() const;
429
430     /**
431      * @param[out] outAccessInfoList list filled with access info structures
432      */
433     void getWidgetAccessInfo(WidgetAccessInfoList& outAccessInfoList) const;
434
435     /**
436      * WAC 2.0 extension
437      * @return recognized status
438      */
439     bool isRecognized() const;
440
441     /**
442      * WAC 2.0 extension
443      * @return
444      */
445     bool isWacSigned() const;
446
447     /**
448      * WAC 2.0 extension
449      * @return
450      */
451     bool isDistributorSigned() const;
452
453     /**
454      * WAC 2.0 extension
455      * @return trusted status
456      */
457     bool isTrusted() const;
458
459     /**
460      * WAC 2.0 extension
461      * @return is WAC test widget
462      */
463     bool isTestWidget() const;
464
465     /**
466      * This method returns window mode of widget.
467      *
468      * @return window modes of widget
469      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
470      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
471      *  DB table.
472      */
473     WindowModeList getWindowModes() const;
474
475     /**
476      * This method returns the version of the widget.
477      *
478      * @return version of widget
479      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
480      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
481      *  DB table.
482      */
483     DPL::OptionalString getVersion() const;
484
485     /**
486      * This method returns list filed with Common Name entries from certificate.
487      *
488      * @return Common Name of Distribuotor End Entity certificate.
489      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
490      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
491      *  DB table.
492      */
493     WidgetCertificateCNList getKeyCommonNameList(
494             WidgetCertificateData::Owner owner,
495             WidgetCertificateData::Type type) const;
496
497     /**
498      * given a certificate owner (author / distributor) and type of certificate
499      * (end entity / ca)
500      * function returns list of matching fingerprints
501      */
502     FingerPrintList getKeyFingerprints(
503             WidgetCertificateData::Owner owner,
504             WidgetCertificateData::Type type) const;
505
506     /*
507      *  This method gets certificate data list for a widget from database.
508      */
509     WidgetCertificateDataList getCertificateDataList() const;
510
511     /**
512      * This method returns a list of widget features.
513      *
514      * @see WidgetFeature
515      * @see FreeFeatureList()
516      * @return list of widget features, type of list element is structure
517      *  WidgetFeature
518      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
519      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
520      *  DB table.
521      */
522     DbWidgetFeatureSet getFeaturesList() const;
523
524     static WidgetParamMap getFeatureParams(int widgetFeatureId);
525     /**
526      * This method checks whether widget has specified feature.
527      *
528      * @return true if has, false if has not
529      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
530      */
531     bool hasFeature(const std::string& featureName) const;
532
533     /**
534      * This method gets host list that widget can connect to.
535      *
536      * @return See above comment
537      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
538      */
539     HostList getAccessHostList() const;
540
541     /**
542      * This method gets widget's access on network: true or false.
543      *
544      * @return true: widget can access network; false: widget can not access
545      *  network.
546      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
547      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
548      *  DB table.
549      */
550     bool getAccessNetworkMode() const;
551
552     /**
553      * This method gets if widget needs webkit plugins enabled
554      *
555      * @return true: widget needs webkit plugins enabled
556      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
557      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
558      *  DB table.
559      */
560     bool getWebkitPluginsRequired() const;
561
562     /**
563      * This method returns a list of all the installed widgets' app id.
564      *
565      * @return list of installed widgets' app id.
566      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
567      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
568      *  DB table.
569      */
570     static DbWidgetHandleList getHandleList();
571
572     /**
573      * This method returns list of pkgname of installed packages
574      * @return list of pkgname of installed packages
575      */
576     static WidgetPkgNameList getPkgnameList();
577     static WidgetPkgNameList_TEMPORARY_API getPkgnameList_TEMPORARY_API();
578
579     /**
580      * This method returns a list of all the installed widgets.
581      *
582      * @return list of installed widgets.
583      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
584      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
585      *  DB table.
586      */
587     static DbWidgetDAOReadOnlyList getWidgetList();
588
589    /**
590      * This method removes a widget's information from EmDB.
591      *
592      * @see RegisterWidget()
593      * @param[in] widgetHandle    widget's app id
594      * @return true if succeed, false if fail.
595      */
596     static void unregisterWidget(DbWidgetHandle widgetHandle);
597
598     /**
599      * This method gets author's infomation of a widget which is parsed from
600      *  configiration document.
601      *
602      * @see WidgetAuthorInfo
603      * @param[out] pAuthorInfo
604      * @return true if succeed, false if fail.
605      */
606     WidgetAuthorInfo getAuthorInfo() const;
607
608     /**
609      * This method gets author's name of a widget which is parsed from
610      *  configiration document.
611      *
612      * @param[out] pAuthorInfo
613      * @return author's name.
614      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
615      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
616      *  DB table.
617      */
618     DPL::OptionalString getAuthorName() const;
619
620     /**
621      * This method gets author's email of a widget which is parsed from
622      *  configiration document.
623      *
624      * @param[out] pAuthorInfo
625      * @return author's email.
626      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
627      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
628      *  DB table.
629      */
630     DPL::OptionalString getAuthorEmail() const;
631
632     /**
633      * This method gets author's email of a widget which is parsed from
634      *  configiration document.
635      *
636      * @param[out] pAuthorInfo
637      * @return author's email.
638      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
639      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
640      *  DB table.
641      */
642     DPL::OptionalString getAuthorHref() const;
643
644     /**
645      * This method returns minimum version of WAC that WRT has to be compliant
646      *  to to run this widget
647      *
648      * @return Minimum version
649      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
650      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
651      *  DB table.
652      */
653     DPL::OptionalString getMinimumWacVersion() const;
654
655     /* This method get widget' share href.
656      *
657      * @return widget's share href
658      */
659     std::string getShareHref() const;
660
661     /**
662      * This method get widget installed time
663      *
664      * @return time_t : return widget's install time
665      */
666     time_t getInstallTime() const;
667
668     /**
669      * This method gets widget base folder.
670      *
671      * @return widget base folder.
672      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
673      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
674      *  DB table.
675      */
676     std::string getBaseFolder() const;
677
678     /* This method gets the parameter list for resource.
679      */
680     ResourceAttributeList getResourceAttribute(
681             const std::string &resourceId) const;
682
683     /* This method checks read only flag for given property
684      */
685     DPL::OptionalInt checkPropertyReadFlag(
686             const PropertyDAOReadOnly::WidgetPropertyKey &key) const;
687
688     /* This method gets widget property key list
689      */
690     PropertyDAOReadOnly::WidgetPropertyKeyList getPropertyKeyList() const;
691
692     /* This method gets widget property list
693      */
694     PropertyDAOReadOnly::WidgetPreferenceList getPropertyList() const;
695
696     /* This method get widget property value
697      */
698     PropertyDAOReadOnly::WidgetPropertyValue getPropertyValue(
699             const PropertyDAOReadOnly::WidgetPropertyKey &key) const;
700
701     LanguageTagList getLanguageTags() const;
702     LanguageTagList getIconLanguageTags() const;
703
704
705
706     WidgetLocalizedInfo getLocalizedInfo(const DPL::String& languageTag) const;
707     std::string getCookieDatabasePath() const;
708     // Local storage
709     std::string getPrivateLocalStoragePath() const;
710
711     bool getBackSupported() const;
712
713     static bool isWidgetInstalled(DbWidgetHandle handle);
714     static bool isWidgetInstalled(const WidgetPkgName & pkgName);
715
716     /* This method get path of the splash image.
717      *
718      * @return path of the widget's splash image
719      */
720     DPL::OptionalString getSplashImgSrc() const;
721
722     ExternalLocationList getWidgetExternalLocations() const;
723
724     /*
725      * Default value is required to keep compatibility with
726      * wrt-installer and wrt.
727      */
728     CertificateChainList getWidgetCertificate(
729             CertificateSource source = SIGNATURE_DISTRIBUTOR) const;
730
731     void getWidgetSettings(WidgetSettings& outWidgetSettings) const;
732
733     /**
734      * This method gets application service list that define AUL value
735      *
736      * @return See above comment
737      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
738      */
739     void getAppServiceList(
740             WidgetApplicationServiceList& outAppServiceList) const;
741
742     /**
743      * This method returns the type of the package.
744      *
745      * @return PackagingType
746      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
747      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching
748                                                 records in DB table.
749      */
750     PackagingType getPackagingType() const;
751
752     void getEncryptedFileList(EncryptedFileList& filesList) const;
753
754     /**
755      * This method returns widget's background page filename.
756      *
757      * @return Name of file containing background page
758      */
759     DPL::OptionalString getBackgroundPage() const;
760
761     /**
762      * @brief generateTizenId generates new tizen id
763      *
764      * If widget do not supplies it's own tizen id, this method can be used,
765      * although it should be removed in future.
766      *
767      * @return new tizen id
768      */
769     static WidgetPkgName generateTizenId();
770
771     /**
772      * @brief This method return each value for security setting
773      *
774      * @return SettingsType
775      *         SETTINGS_TYPE_UNKNOWN     : unknow value
776      *         SETTINGS_TYPE_ON                : enable
777      *         SETTINGS_TYPE_ALWAYS_ASK : ask by popup
778      *         SETTINGS_TYPE_OFF               : disable
779      */
780     SettingsType getSecurityPopupUsage() const;
781     SettingsType getGeolocationUsage() const;
782     SettingsType getWebNotificationUsage() const;
783     SettingsType getWebDatabaseUsage() const;
784     SettingsType getFileSystemUsage() const;
785
786     /**
787      * This method returns widget's installed path
788      *
789      * @return path of widget installed
790      */
791     DPL::OptionalString getWidgetInstalledPath() const;
792 };
793
794 } // namespace WrtDB
795
796 #endif // _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
797