1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Multiply-included message file, no traditonal include guard.
6#include <string>
7#include <vector>
8
9#include "base/basictypes.h"
10#include "base/strings/string16.h"
11#include "base/values.h"
12#include "chrome/common/common_param_traits_macros.h"
13#include "chrome/common/importer/imported_bookmark_entry.h"
14#include "chrome/common/importer/imported_favicon_usage.h"
15#include "chrome/common/importer/importer_autofill_form_data_entry.h"
16#include "chrome/common/importer/importer_data_types.h"
17#include "chrome/common/importer/importer_url_row.h"
18#include "chrome/common/importer/profile_import_process_param_traits_macros.h"
19#include "components/autofill/content/common/autofill_param_traits_macros.h"
20#include "components/autofill/core/common/password_form.h"
21#include "content/public/common/common_param_traits.h"
22#include "ipc/ipc_message_macros.h"
23#include "ipc/ipc_message_utils.h"
24
25// Force multiple inclusion of the param traits file to generate all methods.
26#undef CHROME_COMMON_IMPORTER_PROFILE_IMPORT_PROCESS_PARAM_TRAITS_MACROS_H_
27
28#define IPC_MESSAGE_START ProfileImportMsgStart
29
30//-----------------------------------------------------------------------------
31// ProfileImportProcess messages
32// These are messages sent from the browser to the profile import process.
33IPC_MESSAGE_CONTROL3(ProfileImportProcessMsg_StartImport,
34                     importer::SourceProfile,
35                     int                     /* Bitmask of items to import. */,
36                     base::DictionaryValue   /* Localized strings. */)
37
38IPC_MESSAGE_CONTROL0(ProfileImportProcessMsg_CancelImport)
39
40IPC_MESSAGE_CONTROL1(ProfileImportProcessMsg_ReportImportItemFinished,
41                     int  /* ImportItem */)
42
43//---------------------------------------------------------------------------
44// ProfileImportProcessHost messages
45// These are messages sent from the profile import process to the browser.
46// These messages send information about the status of the import and
47// individual import tasks.
48IPC_MESSAGE_CONTROL0(ProfileImportProcessHostMsg_Import_Started)
49
50IPC_MESSAGE_CONTROL2(ProfileImportProcessHostMsg_Import_Finished,
51                     bool         /* was import successful? */,
52                     std::string  /* error message, if any */)
53
54IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_ImportItem_Started,
55                     int  /* ImportItem */)
56
57IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_ImportItem_Finished,
58                     int  /* ImportItem */)
59
60// These messages send data from the external importer process back to
61// the process host so it can be written to the profile.
62IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyHistoryImportStart,
63                     int  /* total number of ImporterURLRow items */)
64
65IPC_MESSAGE_CONTROL2(ProfileImportProcessHostMsg_NotifyHistoryImportGroup,
66                     std::vector<ImporterURLRow>,
67                     int  /* the source of URLs as in history::VisitSource.*/
68                          /* To simplify IPC call, pass as an integer */)
69
70IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyHomePageImportReady,
71                     GURL  /* GURL of home page */)
72
73IPC_MESSAGE_CONTROL2(ProfileImportProcessHostMsg_NotifyBookmarksImportStart,
74                     base::string16  /* first folder name */,
75                     int             /* total number of bookmarks */)
76
77IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyBookmarksImportGroup,
78                     std::vector<ImportedBookmarkEntry>)
79
80IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyFaviconsImportStart,
81                     int  /* total number of favicons */)
82
83IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyFaviconsImportGroup,
84                     std::vector<ImportedFaviconUsage>)
85
86IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyPasswordFormReady,
87                     autofill::PasswordForm)
88
89IPC_MESSAGE_CONTROL2(ProfileImportProcessHostMsg_NotifyKeywordsReady,
90                     std::vector<importer::URLKeywordInfo>, // url_keywords
91                     bool  /* unique on host and path */)
92
93IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyFirefoxSearchEngData,
94                     std::vector<std::string>) // search_engine_data
95
96IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_AutofillFormDataImportStart,
97                     int  /* total number of entries to be imported */)
98
99IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_AutofillFormDataImportGroup,
100                     std::vector<ImporterAutofillFormDataEntry>)
101
102#if defined(OS_WIN)
103IPC_MESSAGE_CONTROL1(ProfileImportProcessHostMsg_NotifyIE7PasswordInfo,
104                     importer::ImporterIE7PasswordInfo) // password_info
105#endif
106