File: bookmark_html_parser_traits.h

package info (click to toggle)
chromium 141.0.7390.107-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,246,132 kB
  • sloc: cpp: 35,264,965; ansic: 7,169,920; javascript: 4,250,185; python: 1,460,635; asm: 950,788; xml: 751,751; pascal: 187,972; sh: 89,459; perl: 88,691; objc: 79,953; sql: 53,924; cs: 44,622; fortran: 24,137; makefile: 22,313; tcl: 15,277; php: 14,018; yacc: 8,995; ruby: 7,553; awk: 3,720; lisp: 3,096; lex: 1,330; ada: 727; jsp: 228; sed: 36
file content (122 lines) | stat: -rw-r--r-- 4,435 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_USER_DATA_IMPORTER_MOJOM_BOOKMARK_HTML_PARSER_TRAITS_H_
#define COMPONENTS_USER_DATA_IMPORTER_MOJOM_BOOKMARK_HTML_PARSER_TRAITS_H_

#include "base/time/time.h"
#include "components/favicon_base/favicon_usage_data.h"
#include "components/user_data_importer/mojom/bookmark_html_parser.mojom-shared.h"
#include "components/user_data_importer/utility/bookmark_parser.h"
#include "mojo/public/cpp/bindings/array_traits.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "url/gurl.h"
#include "url/mojom/url.mojom-shared.h"

namespace mojo {

template <>
struct StructTraits<user_data_importer::mojom::ImportedBookmarkEntryDataView,
                    user_data_importer::ImportedBookmarkEntry> {
  static bool is_folder(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.is_folder;
  }
  static const GURL& url(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.url;
  }
  static const std::vector<std::u16string>& path(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.path;
  }
  static const std::u16string& title(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.title;
  }
  static base::Time creation_time(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.creation_time;
  }
  static const std::optional<base::Time>& last_visit_time(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.last_visit_time;
  }
  static bool in_toolbar(
      const user_data_importer::ImportedBookmarkEntry& value) {
    return value.in_toolbar;
  }
  static bool Read(
      user_data_importer::mojom::ImportedBookmarkEntryDataView data,
      user_data_importer::ImportedBookmarkEntry* out);
};

template <>
struct StructTraits<user_data_importer::mojom::SearchEngineInfoDataView,
                    user_data_importer::SearchEngineInfo> {
  static const std::u16string& display_name(
      const user_data_importer::SearchEngineInfo& value) {
    return value.display_name;
  }
  static const std::u16string& keyword(
      const user_data_importer::SearchEngineInfo& value) {
    return value.keyword;
  }
  static const std::u16string& url(
      const user_data_importer::SearchEngineInfo& value) {
    return value.url;
  }

  static bool Read(user_data_importer::mojom::SearchEngineInfoDataView data,
                   user_data_importer::SearchEngineInfo* out);
};

template <>
struct StructTraits<user_data_importer::mojom::FaviconUsageDataDataView,
                    favicon_base::FaviconUsageData> {
  static const GURL& favicon_url(const favicon_base::FaviconUsageData& value) {
    return value.favicon_url;
  }
  static const std::vector<unsigned char>& png_data(
      const favicon_base::FaviconUsageData& value) {
    return value.png_data;
  }
  static const std::set<GURL>& urls(
      const favicon_base::FaviconUsageData& value) {
    return value.urls;
  }

  static bool Read(user_data_importer::mojom::FaviconUsageDataDataView data,
                   favicon_base::FaviconUsageData* out);
};

template <>
struct StructTraits<user_data_importer::mojom::ParsedBookmarksDataView,
                    user_data_importer::BookmarkParser::ParsedBookmarks> {
  static const std::vector<user_data_importer::ImportedBookmarkEntry>&
  bookmarks(const user_data_importer::BookmarkParser::ParsedBookmarks& value) {
    return value.bookmarks;
  }
  static const std::vector<user_data_importer::ImportedBookmarkEntry>&
  reading_list(
      const user_data_importer::BookmarkParser::ParsedBookmarks& value) {
    return value.reading_list;
  }
  static const std::vector<user_data_importer::SearchEngineInfo>&
  search_engines(
      const user_data_importer::BookmarkParser::ParsedBookmarks& value) {
    return value.search_engines;
  }
  static const std::vector<favicon_base::FaviconUsageData>& favicons(
      const user_data_importer::BookmarkParser::ParsedBookmarks& value) {
    return value.favicons;
  }

  static bool Read(user_data_importer::mojom::ParsedBookmarksDataView data,
                   user_data_importer::BookmarkParser::ParsedBookmarks* out);
};

}  // namespace mojo

#endif  // COMPONENTS_USER_DATA_IMPORTER_MOJOM_BOOKMARK_HTML_PARSER_TRAITS_H_