+bool ApplicationData::LoadID(const std::string& explicit_id,
+ base::string16* error) {
+ std::string application_id;
+#if defined(OS_TIZEN)
+ if (manifest_type() == Manifest::TYPE_WIDGET) {
+ const TizenApplicationInfo* tizen_app_info =
+ static_cast<TizenApplicationInfo*>(GetManifestData(
+ widget_keys::kTizenApplicationKey));
+ CHECK(tizen_app_info);
+ application_id = tizen_app_info->id();
+ } else if (manifest_->HasKey(keys::kTizenAppIdKey)) {
+ if (!manifest_->GetString(keys::kTizenAppIdKey, &application_id)) {
+ NOTREACHED() << "Could not get Tizen application key";
+ return false;
+ }
+ }
+
+ if (!application_id.empty()) {
+ application_id_ = application_id;
+ return true;
+ }
+#endif
+
+ if (!explicit_id.empty()) {
+ application_id_ = explicit_id;
+ return true;
+ }
+
+ application_id = GenerateIdForPath(path_);
+ if (application_id.empty()) {
+ NOTREACHED() << "Could not create ID from path.";
+ return false;
+ }
+ application_id_ = application_id;
+ return true;
+}
+