Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / search_engines / search_terms_data.cc
index 8e8d6f8..abb201a 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/search_engines/search_terms_data.h"
 
+#include "base/command_line.h"
 #include "base/logging.h"
 #include "base/metrics/field_trial.h"
 #include "base/prefs/pref_service.h"
@@ -15,6 +16,7 @@
 #include "chrome/browser/sync/glue/device_info.h"
 #include "chrome/browser/themes/theme_service.h"
 #include "chrome/browser/themes/theme_service_factory.h"
+#include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "content/public/browser/browser_thread.h"
 #include "sync/protocol/sync.pb.h"
@@ -60,7 +62,7 @@ std::string SearchTermsData::GetApplicationLocale() const {
   return "en";
 }
 
-base::string16 SearchTermsData::GetRlzParameterValue() const {
+base::string16 SearchTermsData::GetRlzParameterValue(bool from_app_list) const {
   return base::string16();
 }
 
@@ -109,7 +111,8 @@ std::string UIThreadSearchTermsData::GetApplicationLocale() const {
 
 // Android implementations are located in search_terms_data_android.cc.
 #if !defined(OS_ANDROID)
-base::string16 UIThreadSearchTermsData::GetRlzParameterValue() const {
+base::string16 UIThreadSearchTermsData::GetRlzParameterValue(
+    bool from_app_list) const {
   DCHECK(!BrowserThread::IsThreadInitialized(BrowserThread::UI) ||
       BrowserThread::CurrentlyOn(BrowserThread::UI));
   base::string16 rlz_string;
@@ -122,7 +125,12 @@ base::string16 UIThreadSearchTermsData::GetRlzParameterValue() const {
     // This call will return false the first time(s) it is called until the
     // value has been cached. This normally would mean that at most one omnibox
     // search might not send the RLZ data but this is not really a problem.
-    RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz_string);
+    rlz_lib::AccessPoint access_point = RLZTracker::CHROME_OMNIBOX;
+#if !defined(OS_IOS)
+    if (from_app_list)
+      access_point = RLZTracker::CHROME_APP_LIST;
+#endif
+    RLZTracker::GetAccessPointRlz(access_point, &rlz_string);
   }
 #endif
   return rlz_string;
@@ -157,8 +165,15 @@ std::string UIThreadSearchTermsData::GetSuggestRequestIdentifier() const {
 #if defined(OS_ANDROID)
   sync_pb::SyncEnums::DeviceType device_type =
       browser_sync::DeviceInfo::GetLocalDeviceType();
-  return device_type == sync_pb::SyncEnums_DeviceType_TYPE_PHONE ?
-    "chrome-mobile-ext" : "chrome-ext";
+  if (device_type == sync_pb::SyncEnums_DeviceType_TYPE_PHONE) {
+    if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+            switches::kEnableAnswersInSuggest)) {
+      return "chrome-mobile-ext-ansg";
+    } else {
+      return "chrome-mobile-ext";
+    }
+  }
+  return "chrome-ext";
 #else
   return "chrome-ext";
 #endif