Chromium Code Reviews| 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 |