OLD | NEW |
---|---|
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CopylessPasteExtractor_h | 5 #ifndef CopylessPasteExtractor_h |
6 #define CopylessPasteExtractor_h | 6 #define CopylessPasteExtractor_h |
7 | 7 |
8 #include "modules/ModulesExport.h" | 8 #include "modules/ModulesExport.h" |
9 #include "wtf/text/WTFString.h" | 9 #include "public/platform/modules/document_metadata/copyless_paste.mojom-blink.h " |
10 | 10 |
11 namespace blink { | 11 namespace blink { |
12 | 12 |
13 class Document; | 13 class Document; |
14 class Element; | |
15 class JSONArray; | |
16 class JSONObject; | |
17 | |
18 using mojom::blink::Entity; | |
19 using mojom::blink::EntityPtr; | |
20 using mojom::blink::Values; | |
21 using mojom::blink::WebPage; | |
14 | 22 |
15 // Extract structured metadata (currently schema.org in JSON-LD) for the | 23 // Extract structured metadata (currently schema.org in JSON-LD) for the |
16 // Copyless Paste feature. The extraction must be done after the document | 24 // Copyless Paste feature. The extraction must be done after the document |
17 // has finished parsing. | 25 // has finished parsing. |
18 class MODULES_EXPORT CopylessPasteExtractor final { | 26 class MODULES_EXPORT CopylessPasteExtractor final { |
19 public: | 27 public: |
20 static String extract(Document&); | 28 static bool extract(const Document&, mojom::blink::WebPage&); |
29 | |
30 private: | |
31 static bool extractMetadata(const Element&, Vector<EntityPtr>&); | |
wychen
2017/04/04 23:15:32
Can these be non-member local functions like befor
dproctor
2017/04/04 23:42:22
Done.
| |
32 static void extractEntityFromTopLevelObject(const JSONObject&, | |
33 Vector<EntityPtr>&); | |
34 static void extractEntitiesFromArray(JSONArray&, Vector<EntityPtr>&); | |
35 static void extractTopLevelEntity(const JSONObject&, Vector<EntityPtr>&); | |
36 static void extractEntity(const JSONObject&, Entity&, int); | |
37 static bool parseRepeatedValue(JSONArray*, Values&, int); | |
21 }; | 38 }; |
22 | 39 |
23 } // namespace blink | 40 } // namespace blink |
24 | 41 |
25 #endif // CopylessPasteExtractor_h | 42 #endif // CopylessPasteExtractor_h |
OLD | NEW |