Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: third_party/WebKit/Source/modules/document_metadata/CopylessPasteExtractor.h

Issue 2793103002: Parse JSON in Blink for CopylessPaste. (Closed)
Patch Set: address wychen comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698