Upstream version 7.35.138.0
[platform/framework/web/crosswalk.git] / src / xwalk / application / browser / application.cc
index 002f58d..a1023f8 100644 (file)
@@ -115,10 +115,10 @@ bool Application::Launch(const LaunchParams& launch_params) {
 
 GURL Application::GetStartURL(const LaunchParams& params,
                                   LaunchEntryPoint* used) {
-  if (params.entry_points & URLKey) {
-    GURL url = GetURLFromURLKey();
+  if (params.entry_points & StartURLKey) {
+    GURL url = GetURLFromRelativePathKey(keys::kStartURLKey);
     if (url.is_valid()) {
-      *used = URLKey;
+      *used = StartURLKey;
       return url;
     }
   }
@@ -132,13 +132,22 @@ GURL Application::GetStartURL(const LaunchParams& params,
   }
 
   if (params.entry_points & LaunchLocalPathKey) {
-    GURL url = GetURLFromLocalPathKey();
+    GURL url = GetURLFromRelativePathKey(
+        GetLaunchLocalPathKey(application_data_->GetPackageType()));
     if (url.is_valid()) {
       *used = LaunchLocalPathKey;
       return url;
     }
   }
 
+  if (params.entry_points & URLKey) {
+    GURL url = GetURLFromURLKey();
+    if (url.is_valid()) {
+      *used = URLKey;
+      return url;
+    }
+  }
+
   LOG(WARNING) << "Failed to find a valid launch URL for the app.";
   return GURL();
 }
@@ -170,12 +179,18 @@ ui::WindowShowState Application::GetWindowShowState(
   return ui::SHOW_STATE_DEFAULT;
 }
 
-GURL Application::GetURLFromLocalPathKey() {
+GURL Application::GetURLFromURLKey() {
   const Manifest* manifest = application_data_->GetManifest();
-  std::string entry_page;
-  std::string key(GetLaunchLocalPathKey(
-      application_data_->GetPackageType()));
+  std::string url_string;
+  if (!manifest->GetString(keys::kURLKey, &url_string))
+    return GURL();
+
+  return GURL(url_string);
+}
 
+GURL Application::GetURLFromRelativePathKey(const std::string& key) {
+  const Manifest* manifest = application_data_->GetManifest();
+  std::string entry_page;
   if (!manifest->GetString(key, &entry_page)
       || entry_page.empty()) {
     if (application_data_->GetPackageType() == Manifest::TYPE_XPK)
@@ -203,15 +218,6 @@ GURL Application::GetURLFromLocalPathKey() {
   return application_data_->GetResourceURL(entry_page);
 }
 
-GURL Application::GetURLFromURLKey() {
-  const Manifest* manifest = application_data_->GetManifest();
-  std::string url_string;
-  if (!manifest->GetString(keys::kURLKey, &url_string))
-    return GURL();
-
-  return GURL(url_string);
-}
-
 void Application::Terminate(TerminationMode mode) {
   termination_mode_used_ = mode;
   if (IsTerminating()) {