| Index: chrome/common/chrome_utility_messages.h
 | 
| diff --git a/chrome/common/chrome_utility_messages.h b/chrome/common/chrome_utility_messages.h
 | 
| index 352d12bf4dd3e058232de09e6e7e17f682d4b1e8..7473a4d39c4f7519388472fb31e9e52d4f1d44da 100644
 | 
| --- a/chrome/common/chrome_utility_messages.h
 | 
| +++ b/chrome/common/chrome_utility_messages.h
 | 
| @@ -36,6 +36,25 @@ IPC_STRUCT_TRAITS_BEGIN(safe_browsing::zip_analyzer::Results)
 | 
|    IPC_STRUCT_TRAITS_MEMBER(has_archive)
 | 
|  IPC_STRUCT_TRAITS_END()
 | 
|  
 | 
| +#if defined(OS_WIN)
 | 
| +
 | 
| +// A vector of filters, each being a Tuple2 containing a display string (i.e.
 | 
| +// "Text Files") and a filter pattern (i.e. "*.txt").
 | 
| +typedef std::vector<Tuple2<base::string16, base::string16> >
 | 
| +    GetOpenFileNameFilter;
 | 
| +
 | 
| +IPC_STRUCT_BEGIN(ChromeUtilityMsg_GetSaveFileName_Params)
 | 
| +  IPC_STRUCT_MEMBER(HWND, owner)
 | 
| +  IPC_STRUCT_MEMBER(DWORD, flags)
 | 
| +  IPC_STRUCT_MEMBER(GetOpenFileNameFilter, filters)
 | 
| +  IPC_STRUCT_MEMBER(int, one_based_filter_index)
 | 
| +  IPC_STRUCT_MEMBER(base::FilePath, suggested_filename)
 | 
| +  IPC_STRUCT_MEMBER(base::FilePath, initial_directory)
 | 
| +  IPC_STRUCT_MEMBER(base::string16, default_extension)
 | 
| +IPC_STRUCT_END()
 | 
| +
 | 
| +#endif  // OS_WIN
 | 
| +
 | 
|  //------------------------------------------------------------------------------
 | 
|  // Utility process messages:
 | 
|  // These are messages from the browser to the utility process.
 | 
| @@ -94,11 +113,6 @@ IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_AnalyzeZipFileForDownloadProtection,
 | 
|  IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_OpenItemViaShell,
 | 
|                       base::FilePath /* full_path */)
 | 
|  
 | 
| -// A vector of filters, each being a Tuple2a display string (i.e. "Text Files")
 | 
| -// and a filter pattern (i.e. "*.txt")..
 | 
| -typedef std::vector<Tuple2<base::string16, base::string16> >
 | 
| -    GetOpenFileNameFilter;
 | 
| -
 | 
|  // Instructs the utility process to invoke GetOpenFileName. |owner| is the
 | 
|  // parent of the modal dialog, |flags| are OFN_* flags. |filter| constrains the
 | 
|  // user's file choices. |initial_directory| and |filename| select the directory
 | 
| @@ -113,6 +127,8 @@ IPC_MESSAGE_CONTROL5(ChromeUtilityMsg_GetOpenFileName,
 | 
|                       GetOpenFileNameFilter /* filter */,
 | 
|                       base::FilePath /* initial_directory */,
 | 
|                       base::FilePath /* filename */)
 | 
| +IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_GetSaveFileName,
 | 
| +                     ChromeUtilityMsg_GetSaveFileName_Params /* params */)
 | 
|  #endif  // defined(OS_WIN)
 | 
|  
 | 
|  //------------------------------------------------------------------------------
 | 
| @@ -163,4 +179,8 @@ IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_GetOpenFileName_Failed)
 | 
|  IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_GetOpenFileName_Result,
 | 
|                       base::FilePath /* directory */,
 | 
|                       std::vector<base::FilePath> /* filenames */)
 | 
| +IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_GetSaveFileName_Failed)
 | 
| +IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_GetSaveFileName_Result,
 | 
| +                     base::FilePath /* path */,
 | 
| +                     int /* one_based_filter_index  */)
 | 
|  #endif  // defined(OS_WIN)
 | 
| 
 |