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

Unified Diff: components/autofill/core/browser/legal_message_line.h

Issue 1540423004: Add card details and legal message to Android save credit card infobar. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Allow copying LegalMessageLine. Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/legal_message_line.h
diff --git a/components/autofill/core/browser/legal_message_line.h b/components/autofill/core/browser/legal_message_line.h
new file mode 100644
index 0000000000000000000000000000000000000000..16fbd89619a86d47de0fdb14d755a5f75d59b979
--- /dev/null
+++ b/components/autofill/core/browser/legal_message_line.h
@@ -0,0 +1,82 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_LEGAL_MESSAGE_LINE_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_LEGAL_MESSAGE_LINE_H_
+
+#include <vector>
+
+#include "base/gtest_prod_util.h"
+#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/strings/string16.h"
+#include "ui/gfx/range/range.h"
+#include "url/gurl.h"
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace autofill {
+
+class LegalMessageLine;
+
+using LegalMessageLines = std::vector<LegalMessageLine>;
+
+class LegalMessageLine {
+ public:
+ struct Link {
+ gfx::Range range;
+ GURL url;
+ };
+
+ // Parses |legal_message|. Returns false on failure.
+ //
+ // Example of valid |legal_message| data:
+ // {
+ // "line" : [ {
+ // "template" : "The legal documents are: {0} and {1}",
+ // "template_parameter" : [ {
+ // "display_text" : "Terms of Service",
+ // "url": "http://www.example.com/tos"
+ // }, {
+ // "display_text" : "Privacy Policy",
+ // "url": "http://www.example.com/pp"
+ // } ],
+ // }, {
+ // "template" : "This is the second line and it has no parameters"
+ // } ]
+ // }
+ //
+ // Caveats:
+ // 1. '{' and '}' may be displayed by escaping them with an apostrophe in the
+ // template string, e.g. "template" : "Here is a literal '{'"
Peter Kasting 2016/01/14 04:19:25 Nit: I think if you remove the quoted word "templa
please use gerrit instead 2016/01/14 17:51:57 Done.
+ // 2. Two or more consecutive dollar signs in the template string will not
+ // expand correctly.
+ // 3. "${" anywhere in the template string is invalid.
+ // 4. "\n" embedded anywhere in the template string, or an empty template
+ // string, can be used to separate paragraphs. It is not possible to create
+ // a completely blank line by using two consecutive newlines (they will be
+ // treated as a single newline by views::StyledLabel).
+ static bool Parse(const base::DictionaryValue& legal_message,
+ LegalMessageLines* out);
Peter Kasting 2016/01/14 04:19:25 Nit: Per the style guide, static methods go below
please use gerrit instead 2016/01/14 17:51:57 Done.
+
+ LegalMessageLine();
+ virtual ~LegalMessageLine(); // Overridden in TestLegalMessageLine.
+
+ const base::string16& text() const { return text_; }
+ const std::vector<Link>& links() const { return links_; }
+
+ private:
+ friend class TestLegalMessageLine;
+
+ bool ParseLine(const base::DictionaryValue& line);
+
+ base::string16 text_;
+ std::vector<Link> links_;
+};
+
+} // namespace autofill
+
+#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_LEGAL_MESSAGE_LINE_H_

Powered by Google App Engine
This is Rietveld 408576698