Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: installer/src/custom-action/close_application.cpp

Issue 4834063596650496: Issue #1185 - Formatting for sources in 'installer-ca' (Closed)
Patch Set: Created May 19, 2015, 11:04 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « installer/src/custom-action/abp_ca.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: installer/src/custom-action/close_application.cpp
===================================================================
--- a/installer/src/custom-action/close_application.cpp
+++ b/installer/src/custom-action/close_application.cpp
@@ -11,54 +11,53 @@
#include "interaction.h"
#include "custom-i18n.h"
-const wchar_t * browserNames[] = { L"IExplore.exe" } ;
-const wchar_t * engineNames[] = { L"AdblockPlusEngine.exe" } ;
+const wchar_t* browserNames[] = {L"IExplore.exe"};
+const wchar_t* engineNames[] = {L"AdblockPlusEngine.exe"};
//-------------------------------------------------------
//-------------------------------------------------------
class InternetExplorerCloser
{
- ProcessSnapshot snapshot ;
+ ProcessSnapshot snapshot;
- ProcessCloser browserCloser ;
+ ProcessCloser browserCloser;
- ProcessCloser engineCloser ;
+ ProcessCloser engineCloser;
public:
InternetExplorerCloser()
- : snapshot(), browserCloser( snapshot, browserNames ), engineCloser( snapshot, engineNames )
+ : snapshot(), browserCloser(snapshot, browserNames), engineCloser(snapshot, engineNames)
{}
void Refresh()
{
- snapshot.Refresh() ;
- browserCloser.Refresh() ;
- engineCloser.Refresh() ;
+ snapshot.Refresh();
+ browserCloser.Refresh();
+ engineCloser.Refresh();
}
bool IsRunning()
{
- return browserCloser.IsRunning() || engineCloser.IsRunning() ;
+ return browserCloser.IsRunning() || engineCloser.IsRunning();
}
bool ShutDown()
{
- if ( browserCloser.IsRunning() && ! browserCloser.ShutDown() )
+ if (browserCloser.IsRunning() && !browserCloser.ShutDown())
{
// Assert IE is still running
// This is after we've tried to shut it down, so we fail
- return false ;
+ return false;
}
- if ( engineCloser.IsRunning() && ! engineCloser.ShutDown() )
+ if (engineCloser.IsRunning() && !engineCloser.ShutDown())
{
// Assert the engine is still running
// This is after IE has shut down itself and after we've tried to shut down the engine. Whatever.
- return false ;
+ return false;
}
- return true ;
+ return true;
}
-} ;
-
+};
//-------------------------------------------------------
// AbpCloseIe
@@ -106,90 +105,90 @@
* \sa
* - MSDN [Custom Action Return Values](http://msdn.microsoft.com/en-us/library/aa368072%28v=vs.85%29.aspx)
*/
-extern "C" UINT __stdcall
-AbpCloseIe( MSIHANDLE sessionHandle )
+extern "C" UINT __stdcall AbpCloseIe(MSIHANDLE sessionHandle)
{
// Utility typedef to shorten the class name.
- typedef InstallerMessageBox IMB ;
+ typedef InstallerMessageBox IMB;
/*
* ImmediateSession cannot throw, so it can go outside the try-block.
* It's needed in the catch-all block to write an error message to the log.
*/
- ImmediateSession session( sessionHandle, "AbpCloseIe" ) ;
-
+ ImmediateSession session(sessionHandle, "AbpCloseIe");
+
// The body of an entry point function must have a catch-all.
- try {
-
+ try
+ {
// MSI property BROWSERRUNNING is one of the return values of this function.
- Property browserRunning( session, L"BROWSERRUNNING" ) ;
- Property browserClosed( session, L"BROWSERCLOSED" ) ;
+ Property browserRunning(session, L"BROWSERRUNNING");
+ Property browserClosed(session, L"BROWSERCLOSED");
// Instantiation of ProcessCloser takes a snapshot.
- InternetExplorerCloser iec ;
+ InternetExplorerCloser iec;
/*
* We take the short path through this function if neither IE nor engine is not running at the outset.
*/
- if ( ! iec.IsRunning() )
+ if (!iec.IsRunning())
{
- browserRunning = L"0" ; // The browser is not running.
- browserClosed = L"0" ; // We didn't close the browser (and we couldn't have).
- session.Log( "IE not running. No issue with reboot policy." ) ;
- return ERROR_SUCCESS ;
+ browserRunning = L"0"; // The browser is not running.
+ browserClosed = L"0"; // We didn't close the browser (and we couldn't have).
+ session.Log("IE not running. No issue with reboot policy.");
+ return ERROR_SUCCESS;
}
/*
* As a (potentially) user-driven function, a state machine manages control flow.
* The states are organized around the policy stances.
*/
- enum PolicyState {
+ enum PolicyState
+ {
// Non-terminal states
- notKnown, // We don't know the user's stance at all
- partKnown, // The user has indicated either ACTIVE or AUTOMATIC
- active, // Actively avoid reboot
- automatic, // Automatically avoid reboot
+ notKnown, // We don't know the user's stance at all
+ partKnown, // The user has indicated either ACTIVE or AUTOMATIC
+ active, // Actively avoid reboot
+ automatic, // Automatically avoid reboot
// Terminal states
success,
abort,
// Aliases for what would ordinarily be non-terminal states.
// They're terminal because of implementation details.
- allow = success, // Allow reboot.
- passive = abort, // Passively avoid reboot, that is, don't try to close IE.
+ allow = success, // Allow reboot.
+ passive = abort, // Passively avoid reboot, that is, don't try to close IE.
};
- PolicyState state ;
+ PolicyState state;
/*
* Use the AVOIDREBOOT property, if present, to set an initial state.
*/
- std::wstring avoidReboot = Property( session, L"AVOIDREBOOT" ) ;
- std::transform( avoidReboot.begin(), avoidReboot.end(), avoidReboot.begin(), ::towupper ) ;
- if ( avoidReboot == L"" )
+ std::wstring avoidReboot = Property(session, L"AVOIDREBOOT");
+ std::transform(avoidReboot.begin(), avoidReboot.end(), avoidReboot.begin(), ::towupper);
+ if (avoidReboot == L"")
{
- state = notKnown ;
+ state = notKnown;
}
- else if ( avoidReboot == L"NO" )
+ else if (avoidReboot == L"NO")
{
- state = allow ;
- session.Log( "Reboot allowed on command line." ) ;
+ state = allow;
+ session.Log("Reboot allowed on command line.");
}
- else if ( avoidReboot == L"PASSIVE" )
+ else if (avoidReboot == L"PASSIVE")
{
- state = passive ;
- session.Log( "Reboot avoided on command line." ) ;
+ state = passive;
+ session.Log("Reboot avoided on command line.");
}
- else if ( avoidReboot == L"ACTIVE" )
+ else if (avoidReboot == L"ACTIVE")
{
- state = active ;
+ state = active;
}
- else if ( avoidReboot == L"AUTOMATIC" )
+ else if (avoidReboot == L"AUTOMATIC")
{
- state = automatic ;
+ state = automatic;
}
else
{
// It's an error to specify an unrecognized value for AVOIDREBOOT.
- throw std::runtime_error( "unrecognized value for AVOIDREBOOT" ) ;
+ throw std::runtime_error("unrecognized value for AVOIDREBOOT");
}
/*
@@ -204,36 +203,36 @@
*
* MSDN [UILevel property](http://msdn.microsoft.com/en-us/library/windows/desktop/aa372096%28v=vs.85%29.aspx)
*/
- std::wstring uilevel = Property( session, L"UILevel" ) ;
- bool interactive ;
- if ( uilevel == L"5" || uilevel == L"4" )
+ std::wstring uilevel = Property(session, L"UILevel");
+ bool interactive;
+ if (uilevel == L"5" || uilevel == L"4")
{
- interactive = true ;
+ interactive = true;
// Assert state is one of { notKnown, allow, passive, active, automatic }
}
- else if ( uilevel == L"3" || uilevel == L"2" )
+ else if (uilevel == L"3" || uilevel == L"2")
{
// Assert installer is running without user interaction.
- interactive = false ;
- if ( state == notKnown )
+ interactive = false;
+ if (state == notKnown)
{
- // Assert AVOIDREBOOT was not specified
- /*
- * This is where we specify default behavior for non-interactive operation.
- * The choice of "allow" makes it act like other installers, which is to make no effort to avoid a reboot after installation.
- */
- state = allow ;
- session.Log( "Reboot allowed by default in non-interactive session." ) ;
+ // Assert AVOIDREBOOT was not specified
+ /*
+ * This is where we specify default behavior for non-interactive operation.
+ * The choice of "allow" makes it act like other installers, which is to make no effort to avoid a reboot after installation.
+ */
+ state = allow;
+ session.Log("Reboot allowed by default in non-interactive session.");
}
- else if ( state == active )
+ else if (state == active)
{
- throw std::runtime_error( "AVOIDREBOOT=ACTIVE in non-interative session is not consistent" ) ;
+ throw std::runtime_error("AVOIDREBOOT=ACTIVE in non-interative session is not consistent");
}
// Assert state is one of { allow, passive, automatic }
Oleksandr 2015/10/11 16:13:12 Nit: I know this is a comment, but still would be
}
else
{
- throw std::runtime_error( "unrecognized value for UILevel" ) ;
+ throw std::runtime_error("unrecognized value for UILevel");
}
/*
@@ -243,208 +242,204 @@
* The key "close_ie" is the component name within the file "close_ie.wxi" that defines rows in the localization table.
* The identifiers for the messageText.text() function are defined within that file.
*/
- InstallationDatabase db( session ) ;
- CustomMessageText messageText( db, L"close_ie" ) ;
+ InstallationDatabase db(session);
+ CustomMessageText messageText(db, L"close_ie");
/*
* State machine: Loop through non-terminal states.
*
* Loop invariant: IE was running at last check, that is, iec.IsRunning() would return true.
*/
- while ( state <= automatic ) // "automatic" is the non-terminal state with the highest value
+ while (state <= automatic) // "automatic" is the non-terminal state with the highest value
{
- switch ( state )
+ switch (state)
{
case notKnown:
- /*
- * Precondition: interactive session
- *
- * Ask the user "Would you like to close IE and avoid reboot?"
- * Yes -> Close IE somehow. Goto partKnown.
- * No -> Install with reboot. Goto allow.
- * Cancel -> terminate installation. Goto abort.
- */
+ /*
+ * Precondition: interactive session
+ *
+ * Ask the user "Would you like to close IE and avoid reboot?"
+ * Yes -> Close IE somehow. Goto partKnown.
+ * No -> Install with reboot. Goto allow.
+ * Cancel -> terminate installation. Goto abort.
+ */
{
- int x = session.WriteMessage(IMB(
- messageText.Text(L"dialog_unknown"),
- IMB::Box::warning, IMB::ButtonSet::yesNoCancel, IMB::DefaultButton::three
- )) ;
- switch ( x )
- {
- case IDYES:
- state = partKnown ;
- break ;
- case IDNO:
- state = allow ;
- session.Log( "User chose to allow reboot" ) ;
- break ;
- case IDCANCEL:
- state = abort ;
- session.Log( "User cancelled installation" ) ;
- break ;
- default:
- throw UnexpectedReturnValueFromMessageBox() ;
- }
- }
- break ;
+ int x = session.WriteMessage(IMB(
+ messageText.Text(L"dialog_unknown"),
+ IMB::Box::warning, IMB::ButtonSet::yesNoCancel, IMB::DefaultButton::three));
+ switch (x)
+ {
+ case IDYES:
+ state = partKnown;
+ break;
+ case IDNO:
+ state = allow;
+ session.Log("User chose to allow reboot");
+ break;
+ case IDCANCEL:
+ state = abort;
+ session.Log("User cancelled installation");
+ break;
+ default:
+ throw UnexpectedReturnValueFromMessageBox();
+ }
+ }
+ break;
case partKnown:
- /*
- * Precondition: interactive session
- *
- * Ask the user "Would you like the installer to close IE for you?"
- * Yes -> Goto automatic
- * No -> Goto active
- * Cancel -> Goto notKnown
- */
- {
- int x = session.WriteMessage(IMB(
- messageText.Text(L"dialog_part_known"),
- IMB::Box::warning, IMB::ButtonSet::yesNoCancel, IMB::DefaultButton::three
- )) ;
- switch ( x )
- {
- case IDYES:
- state = automatic ;
- break ;
- case IDNO:
- state = active ;
- break ;
- case IDCANCEL:
- state = notKnown ;
- break ;
- default:
- throw UnexpectedReturnValueFromMessageBox() ;
- }
- }
- break ;
+ /*
+ * Precondition: interactive session
+ *
+ * Ask the user "Would you like the installer to close IE for you?"
+ * Yes -> Goto automatic
+ * No -> Goto active
+ * Cancel -> Goto notKnown
+ */
+ {
+ int x = session.WriteMessage(IMB(
+ messageText.Text(L"dialog_part_known"),
+ IMB::Box::warning, IMB::ButtonSet::yesNoCancel, IMB::DefaultButton::three));
+ switch (x)
+ {
+ case IDYES:
+ state = automatic;
+ break;
+ case IDNO:
+ state = active;
+ break;
+ case IDCANCEL:
+ state = notKnown;
+ break;
+ default:
+ throw UnexpectedReturnValueFromMessageBox();
+ }
+ }
+ break;
case active:
- /*
- * Precondition: interactive session
- *
- * IE is no longer running -> Goto success
- * IE is still running ->
- * Ask the user to close IE manually
- * OK -> re-enter this state
- * Cancel -> Goto notKnown
- */
- {
- int x = session.WriteMessage(IMB(
- messageText.Text(L"dialog_active_retry"),
- IMB::Box::warning, IMB::ButtonSet::okCancel, IMB::DefaultButton::one
- )) ;
- switch ( x )
- {
- case IDOK:
- /*
- * Refresh our knowledge of whether IE is running.
- * If it is, we display the dialog again. The state doesn't change, so we just iterate again.
- * If it's not, then the user has closed IE and we're done.
- */
- iec.Refresh() ;
- if ( ! iec.IsRunning() )
- {
- state = success ;
- session.Log( "User shut down IE manually." ) ;
- }
- break ;
- case IDCANCEL:
- state = notKnown ;
- break ;
- default:
- throw UnexpectedReturnValueFromMessageBox() ;
- }
- }
- break ;
+ /*
+ * Precondition: interactive session
+ *
+ * IE is no longer running -> Goto success
+ * IE is still running ->
+ * Ask the user to close IE manually
+ * OK -> re-enter this state
+ * Cancel -> Goto notKnown
+ */
+ {
+ int x = session.WriteMessage(IMB(
+ messageText.Text(L"dialog_active_retry"),
+ IMB::Box::warning, IMB::ButtonSet::okCancel, IMB::DefaultButton::one));
+ switch (x)
+ {
+ case IDOK:
+ /*
+ * Refresh our knowledge of whether IE is running.
+ * If it is, we display the dialog again. The state doesn't change, so we just iterate again.
+ * If it's not, then the user has closed IE and we're done.
+ */
+ iec.Refresh();
+ if (!iec.IsRunning())
+ {
+ state = success;
+ session.Log("User shut down IE manually.");
+ }
+ break;
+ case IDCANCEL:
+ state = notKnown;
+ break;
+ default:
+ throw UnexpectedReturnValueFromMessageBox();
+ }
+ }
+ break;
case automatic:
- /*
- * Close all known IE instances.
- * Unlike other cases, this state starts with an action and not a user query.
- * We first shut down IE, or at least attempt to.
- *
- * Succeeded -> Goto success
- * Failed && interactive ->
- * Ask user if they would like to try again
- * Retry -> re-enter this state
- * Cancel -> Goto notKnown
- * Failed && not interactive -> Goto abort
- */
- {
- bool ieWasClosed = iec.ShutDown() ;
- if ( iec.IsRunning() )
- {
- session.Log( "Attempt to shut down IE automatically failed." ) ;
- if ( interactive )
- {
- // Assert Interactive session and IE did not shut down.
- int x = session.WriteMessage(IMB(
+ /*
+ * Close all known IE instances.
+ * Unlike other cases, this state starts with an action and not a user query.
+ * We first shut down IE, or at least attempt to.
+ *
+ * Succeeded -> Goto success
+ * Failed && interactive ->
+ * Ask user if they would like to try again
+ * Retry -> re-enter this state
+ * Cancel -> Goto notKnown
+ * Failed && not interactive -> Goto abort
+ */
+ {
+ bool ieWasClosed = iec.ShutDown();
+ if (iec.IsRunning())
+ {
+ session.Log("Attempt to shut down IE automatically failed.");
+ if (interactive)
+ {
+ // Assert Interactive session and IE did not shut down.
+ int x = session.WriteMessage(IMB(
messageText.Text(L"dialog_automatic_retry"),
- IMB::Box::warning, IMB::ButtonSet::retryCancel, IMB::DefaultButton::one
- )) ;
- switch ( x )
- {
- case IDRETRY:
- // Don't change the state. Iterate again.
- break ;
- case IDCANCEL:
- state = notKnown ;
- break ;
- default:
- throw UnexpectedReturnValueFromMessageBox() ;
- }
- }
- else
- {
- // Assert Non-interactive session and IE did not shut down.
- state = abort ;
- session.Log( "Failed to shut down IE automatically." ) ;
- }
- }
- else
- {
- // Assert IE is not running, so ShutDown() succeeded.
- state = success ;
- session.Log( "Automatically shut down IE." ) ;
- }
- }
- break;
+ IMB::Box::warning, IMB::ButtonSet::retryCancel, IMB::DefaultButton::one));
+ switch (x)
+ {
+ case IDRETRY:
+ // Don't change the state. Iterate again.
+ break;
+ case IDCANCEL:
+ state = notKnown;
+ break;
+ default:
+ throw UnexpectedReturnValueFromMessageBox();
+ }
+ }
+ else
+ {
+ // Assert Non-interactive session and IE did not shut down.
+ state = abort;
+ session.Log("Failed to shut down IE automatically.");
+ }
+ }
+ else
+ {
+ // Assert IE is not running, so ShutDown() succeeded.
+ state = success;
+ session.Log("Automatically shut down IE.");
+ }
+ }
+ break;
}
}
/*
* State machine: Actions for terminal states.
*/
- switch ( state )
+ switch (state)
{
- case success:
- if ( iec.IsRunning() )
- {
- browserRunning = L"1" ;
- browserClosed = L"0" ;
- }
- else
- {
- browserRunning = L"0" ;
- browserClosed = L"1" ;
- }
- return ERROR_SUCCESS ;
- break;
- case abort:
- return ERROR_INSTALL_USEREXIT ;
- break;
+ case success:
+ if (iec.IsRunning())
+ {
+ browserRunning = L"1";
+ browserClosed = L"0";
+ }
+ else
+ {
+ browserRunning = L"0";
+ browserClosed = L"1";
+ }
+ return ERROR_SUCCESS;
+ break;
+ case abort:
+ return ERROR_INSTALL_USEREXIT;
+ break;
}
}
- catch( std::exception & e )
+ catch (std::exception& e)
{
- session.LogNoexcept( "terminated by exception: " + std::string( e.what() ) ) ;
- return ERROR_INSTALL_FAILURE ;
+ session.LogNoexcept("terminated by exception: " + std::string(e.what()));
+ return ERROR_INSTALL_FAILURE;
}
- catch( ... )
+ catch (...)
{
- session.LogNoexcept( "terminated by unknown exception" ) ;
- return ERROR_INSTALL_FAILURE ;
+ session.LogNoexcept("terminated by unknown exception");
+ return ERROR_INSTALL_FAILURE;
}
// Should be unreachable.
- return ERROR_INSTALL_FAILURE ;
+ return ERROR_INSTALL_FAILURE;
}
« no previous file with comments | « installer/src/custom-action/abp_ca.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld