Index: chrome/browser/ui/autofill/save_card_bubble_controller_impl.h |
diff --git a/chrome/browser/ui/autofill/save_card_bubble_controller_impl.h b/chrome/browser/ui/autofill/save_card_bubble_controller_impl.h |
index dfcd522e8cd80d18c55472f79482f3570095c990..4f104fad4df4b9ce52b89380450d1ce5ccd871f1 100644 |
--- a/chrome/browser/ui/autofill/save_card_bubble_controller_impl.h |
+++ b/chrome/browser/ui/autofill/save_card_bubble_controller_impl.h |
@@ -31,6 +31,35 @@ class SaveCardBubbleControllerImpl |
void InitializeForUpload(const base::Closure& save_card_callback, |
scoped_ptr<base::DictionaryValue> legal_message); |
+ // TODO(bondd): Combine SetLegalMessage() with InitializeForUpload(). |
+ // Example of valid |lines| data: |
+ // [ { |
+ // "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 '{'" |
+ // 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). |
+ // |
+ // Returns false if contents of |lines| are invalid. |
+ bool SetLegalMessage(const base::ListValue& lines); |
+ |
// InitializeForLocalSave() or InitializeForUpload() must be called first. |
void ShowBubble(bool user_action); |
@@ -46,8 +75,11 @@ class SaveCardBubbleControllerImpl |
void OnSaveButton() override; |
void OnCancelButton() override; |
void OnLearnMoreClicked() override; |
+ void OnLegalMessageLinkClicked(const GURL& url) override; |
void OnBubbleClosed() override; |
+ const LegalMessageLines& GetLegalMessageLines() const override; |
+ |
private: |
friend class content::WebContentsUserData<SaveCardBubbleControllerImpl>; |
@@ -57,6 +89,8 @@ class SaveCardBubbleControllerImpl |
// Update the visibility and toggled state of the Omnibox save card icon. |
void UpdateIcon(); |
+ void OpenUrl(const GURL& url); |
+ |
// content::WebContentsObserver: |
void DidNavigateMainFrame( |
const content::LoadCommittedDetails& details, |
@@ -73,6 +107,9 @@ class SaveCardBubbleControllerImpl |
// Governs whether the upload or local save version of the UI should be shown. |
bool is_uploading_; |
+ // If no legal message should be shown then this variable is an empty vector. |
+ LegalMessageLines legal_message_lines_; |
+ |
// Used to measure the amount of time on a page; if it's less than some |
// reasonable limit, then don't close the bubble upon navigation. |
scoped_ptr<base::ElapsedTimer> timer_; |