Home | History | Annotate | Download | only in importer
      1 // Copyright 2014 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 // Singly or Multiply-included shared traits file depending on circumstances.
      6 // This allows the use of IPC serialization macros in more than one IPC message
      7 // file.
      8 #ifndef CHROME_COMMON_IMPORTER_PROFILE_IMPORT_PROCESS_PARAM_TRAITS_MACROS_H_
      9 #define CHROME_COMMON_IMPORTER_PROFILE_IMPORT_PROCESS_PARAM_TRAITS_MACROS_H_
     10 
     11 #include <string>
     12 #include <vector>
     13 
     14 #include "base/basictypes.h"
     15 #include "base/strings/string16.h"
     16 #include "base/values.h"
     17 #include "chrome/common/common_param_traits_macros.h"
     18 #include "chrome/common/importer/imported_bookmark_entry.h"
     19 #include "chrome/common/importer/imported_favicon_usage.h"
     20 #include "chrome/common/importer/importer_autofill_form_data_entry.h"
     21 #include "chrome/common/importer/importer_data_types.h"
     22 #include "chrome/common/importer/importer_url_row.h"
     23 #include "components/autofill/content/common/autofill_param_traits_macros.h"
     24 #include "components/autofill/core/common/password_form.h"
     25 #include "content/public/common/common_param_traits.h"
     26 #include "ipc/ipc_message_macros.h"
     27 
     28 IPC_ENUM_TRAITS_MIN_MAX_VALUE(importer::ImporterType,
     29                               importer::TYPE_UNKNOWN,
     30                               importer::TYPE_BOOKMARKS_FILE)
     31 
     32 IPC_STRUCT_TRAITS_BEGIN(importer::SourceProfile)
     33   IPC_STRUCT_TRAITS_MEMBER(importer_name)
     34   IPC_STRUCT_TRAITS_MEMBER(importer_type)
     35   IPC_STRUCT_TRAITS_MEMBER(source_path)
     36   IPC_STRUCT_TRAITS_MEMBER(app_path)
     37   IPC_STRUCT_TRAITS_MEMBER(services_supported)
     38   IPC_STRUCT_TRAITS_MEMBER(locale)
     39 IPC_STRUCT_TRAITS_END()
     40 
     41 IPC_STRUCT_TRAITS_BEGIN(ImporterURLRow)
     42   IPC_STRUCT_TRAITS_MEMBER(url)
     43   IPC_STRUCT_TRAITS_MEMBER(title)
     44   IPC_STRUCT_TRAITS_MEMBER(visit_count)
     45   IPC_STRUCT_TRAITS_MEMBER(typed_count)
     46   IPC_STRUCT_TRAITS_MEMBER(last_visit)
     47   IPC_STRUCT_TRAITS_MEMBER(hidden)
     48 IPC_STRUCT_TRAITS_END()
     49 
     50 IPC_STRUCT_TRAITS_BEGIN(ImportedBookmarkEntry)
     51   IPC_STRUCT_TRAITS_MEMBER(in_toolbar)
     52   IPC_STRUCT_TRAITS_MEMBER(is_folder)
     53   IPC_STRUCT_TRAITS_MEMBER(url)
     54   IPC_STRUCT_TRAITS_MEMBER(path)
     55   IPC_STRUCT_TRAITS_MEMBER(title)
     56   IPC_STRUCT_TRAITS_MEMBER(creation_time)
     57 IPC_STRUCT_TRAITS_END()
     58 
     59 IPC_STRUCT_TRAITS_BEGIN(ImportedFaviconUsage)
     60   IPC_STRUCT_TRAITS_MEMBER(favicon_url)
     61   IPC_STRUCT_TRAITS_MEMBER(png_data)
     62   IPC_STRUCT_TRAITS_MEMBER(urls)
     63 IPC_STRUCT_TRAITS_END()
     64 
     65 IPC_STRUCT_TRAITS_BEGIN(importer::URLKeywordInfo)
     66   IPC_STRUCT_TRAITS_MEMBER(url)
     67   IPC_STRUCT_TRAITS_MEMBER(keyword)
     68   IPC_STRUCT_TRAITS_MEMBER(display_name)
     69 IPC_STRUCT_TRAITS_END()
     70 
     71 IPC_STRUCT_TRAITS_BEGIN(ImporterAutofillFormDataEntry)
     72   IPC_STRUCT_TRAITS_MEMBER(name)
     73   IPC_STRUCT_TRAITS_MEMBER(value)
     74   IPC_STRUCT_TRAITS_MEMBER(times_used)
     75   IPC_STRUCT_TRAITS_MEMBER(first_used)
     76   IPC_STRUCT_TRAITS_MEMBER(last_used)
     77 IPC_STRUCT_TRAITS_END()
     78 
     79 #if defined(OS_WIN)
     80 IPC_STRUCT_TRAITS_BEGIN(importer::ImporterIE7PasswordInfo)
     81   IPC_STRUCT_TRAITS_MEMBER(url_hash)
     82   IPC_STRUCT_TRAITS_MEMBER(encrypted_data)
     83   IPC_STRUCT_TRAITS_MEMBER(date_created)
     84 IPC_STRUCT_TRAITS_END()
     85 #endif
     86 
     87 #endif  // CHROME_COMMON_IMPORTER_PROFILE_IMPORT_PROCESS_PARAM_TRAITS_MACROS_H_
     88