added session duration and http proxy to the flags included in the closing report

This commit is contained in:
Vadim Kurland
2010-05-29 00:02:15 +00:00
parent b384feabb6
commit 2233efa6e8
5 changed files with 21 additions and 16 deletions
+1 -1
View File
@@ -1 +1 @@
#define BUILD_NUM 2937 #define BUILD_NUM 2938
+9 -8
View File
@@ -20,14 +20,15 @@
* UserWorkflow.cpp (UserWorkflow::report): see #1466 Implemented * UserWorkflow.cpp (UserWorkflow::report): see #1466 Implemented
instrumentation that should help us improve user experience. Will instrumentation that should help us improve user experience. Will
track few things that new users do (or don't) and report as a track few things that new users do (or don't do) and report as a
combination of bit flags at the end of the GUI session. Reporting combination of boolean flags at the end of the GUI
things such as if user looked at "Getting Started" tutorial, if session. Reporting things such as if user ever looked at the
they created their first firewall object, modified any rules, "Getting Started" tutorial, if they created their first firewall
tried to compile or install. Information passed in the report is object, modified any rules, tried to compile, install or import
strictly a set of boolean flags, is not identifiable and does not existing rule set. Information passed in the report is strictly a
reveal what firewall platform they are using or anything about set of boolean flags, it is not identifiable and does not reveal
their objects and rules. what firewall platform they are using or anything about their
objects and rules. List of flags is listed in the module UserWorkflow.h
2010-05-23 vadim <vadim@vk.crocodile.org> 2010-05-23 vadim <vadim@vk.crocodile.org>
+3 -2
View File
@@ -489,6 +489,9 @@ void PrefsDialog::accept()
st->setCheckUpdates(m_dialog->checkUpdates->isChecked()); st->setCheckUpdates(m_dialog->checkUpdates->isChecked());
st->setCheckUpdatesProxy(m_dialog->checkUpdatesProxy->text()); st->setCheckUpdatesProxy(m_dialog->checkUpdatesProxy->text());
wfl->registerFlag(UserWorkflow::USING_HTTP_PROXY,
!st->getCheckUpdatesProxy().isEmpty());
st->setSSHPath( m_dialog->sshPath->text() ); st->setSSHPath( m_dialog->sshPath->text() );
st->setSCPPath( m_dialog->scpPath->text() ); st->setSCPPath( m_dialog->scpPath->text() );
st->setBool("Environment/RememberSshPassEnabled", m_dialog->rememberSshPass->isChecked()); st->setBool("Environment/RememberSshPassEnabled", m_dialog->rememberSshPass->isChecked());
@@ -533,10 +536,8 @@ void PrefsDialog::accept()
wfl->registerFlag(UserWorkflow::TIP_OF_THE_DAY_DISABLED, wfl->registerFlag(UserWorkflow::TIP_OF_THE_DAY_DISABLED,
m_dialog->showTips->isChecked()); m_dialog->showTips->isChecked());
st->setBool("UI/NoStartTip", m_dialog->showTips->isChecked()); st->setBool("UI/NoStartTip", m_dialog->showTips->isChecked());
QDialog::accept(); QDialog::accept();
} }
+6 -4
View File
@@ -49,7 +49,7 @@ UserWorkflow::UserWorkflow()
str >> flags; str >> flags;
if (fwbdebug) if (fwbdebug)
qDebug() << "UserWorkflow flags initialization:" << flagsToQueryString(); qDebug() << "UserWorkflow flags initialization:" << flagsToQueryString(0);
// what if the user disabled tip of the day before they upgraded // what if the user disabled tip of the day before they upgraded
// to the version with UserWorkflow ? Or re-enabled version update // to the version with UserWorkflow ? Or re-enabled version update
@@ -84,11 +84,12 @@ void UserWorkflow::registerTutorialViewing(const QString &tutorial_name)
registerFlag(UserWorkflow::GETTING_STARTED_TUTOTIAL, true); registerFlag(UserWorkflow::GETTING_STARTED_TUTOTIAL, true);
} }
QString UserWorkflow::flagsToQueryString() QString UserWorkflow::flagsToQueryString(int session_duration)
{ {
// query string of flags has the format uc=0&gs=1&ft=0 ... // query string of flags has the format uc=0&gs=1&ft=0 ...
// each flag is a two-characters variable with a value of 0 or 1 // each flag is a two-characters variable with a value of 0 or 1
QStringList fl; QStringList fl;
fl << QString("sd=%1").arg(session_duration);
fl << QString("uc=%1").arg(flags.value(UPDATE_CHECKS_DISABLED)); fl << QString("uc=%1").arg(flags.value(UPDATE_CHECKS_DISABLED));
fl << QString("gs=%1").arg(flags.value(GETTING_STARTED_TUTOTIAL)); fl << QString("gs=%1").arg(flags.value(GETTING_STARTED_TUTOTIAL));
fl << QString("ft=%1").arg(flags.value(NEW_FW_WITH_TEMPLATE)); fl << QString("ft=%1").arg(flags.value(NEW_FW_WITH_TEMPLATE));
@@ -98,6 +99,7 @@ QString UserWorkflow::flagsToQueryString()
fl << QString("in=%1").arg(flags.value(INSTALL)); fl << QString("in=%1").arg(flags.value(INSTALL));
fl << QString("im=%1").arg(flags.value(IMPORT)); fl << QString("im=%1").arg(flags.value(IMPORT));
fl << QString("ti=%1").arg(flags.value(TIP_OF_THE_DAY_DISABLED)); fl << QString("ti=%1").arg(flags.value(TIP_OF_THE_DAY_DISABLED));
fl << QString("pr=%1").arg(flags.value(USING_HTTP_PROXY));
return fl.join("&"); return fl.join("&");
} }
@@ -117,7 +119,7 @@ void UserWorkflow::report()
str.setVersion(QDataStream::Qt_4_0); str.setVersion(QDataStream::Qt_4_0);
str << flags; str << flags;
qDebug() << "UserWorkflow::report():" << flagsToQueryString(); qDebug() << "UserWorkflow::report():" << flagsToQueryString(elapsed_time);
qDebug() << "Session:" << elapsed_time << "sec"; qDebug() << "Session:" << elapsed_time << "sec";
} }
@@ -141,7 +143,7 @@ void UserWorkflow::report()
// each flag is a two-characters variable with a value of 0 or 1 // each flag is a two-characters variable with a value of 0 or 1
QString url = QString(report_url) QString url = QString(report_url)
.arg(VERSION).arg(st->getAppGUID()).arg(flagsToQueryString()); .arg(VERSION).arg(st->getAppGUID()).arg(flagsToQueryString(elapsed_time));
// start http query // start http query
if (!report_query->get(url) && fwbdebug) if (!report_query->get(url) && fwbdebug)
+2 -1
View File
@@ -83,6 +83,7 @@ public:
INSTALL, INSTALL,
IMPORT, IMPORT,
TIP_OF_THE_DAY_DISABLED, TIP_OF_THE_DAY_DISABLED,
USING_HTTP_PROXY,
}; };
private: private:
@@ -90,7 +91,7 @@ private:
QHash<quint32, quint32> flags; QHash<quint32, quint32> flags;
HttpGet *report_query; HttpGet *report_query;
QString flagsToQueryString(); QString flagsToQueryString(int session_duration);
public: public:
UserWorkflow(); UserWorkflow();