OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "components/dom_distiller/webui/dom_distiller_handler.h" | 5 #include "components/dom_distiller/webui/dom_distiller_handler.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 args->GetString(0, &url); | 63 args->GetString(0, &url); |
64 GURL gurl(url); | 64 GURL gurl(url); |
65 if (gurl.is_valid()) { | 65 if (gurl.is_valid()) { |
66 service_->AddToList( | 66 service_->AddToList( |
67 gurl, | 67 gurl, |
68 service_->CreateDefaultDistillerPage( | 68 service_->CreateDefaultDistillerPage( |
69 web_ui()->GetWebContents()->GetContainerBounds().size()), | 69 web_ui()->GetWebContents()->GetContainerBounds().size()), |
70 base::Bind(base::Bind(&DomDistillerHandler::OnArticleAdded, | 70 base::Bind(base::Bind(&DomDistillerHandler::OnArticleAdded, |
71 base::Unretained(this)))); | 71 base::Unretained(this)))); |
72 } else { | 72 } else { |
73 web_ui()->CallJavascriptFunction("domDistiller.onArticleAddFailed"); | 73 web_ui()->CallJavascriptFunctionUnsafe("domDistiller.onArticleAddFailed"); |
74 } | 74 } |
75 } | 75 } |
76 | 76 |
77 void DomDistillerHandler::HandleViewUrl(const base::ListValue* args) { | 77 void DomDistillerHandler::HandleViewUrl(const base::ListValue* args) { |
78 GURL view_url = GetViewUrlFromArgs(article_scheme_, args); | 78 GURL view_url = GetViewUrlFromArgs(article_scheme_, args); |
79 if (view_url.is_valid()) { | 79 if (view_url.is_valid()) { |
80 web_ui()->GetWebContents()->GetController().LoadURL( | 80 web_ui()->GetWebContents()->GetController().LoadURL( |
81 view_url, | 81 view_url, |
82 content::Referrer(), | 82 content::Referrer(), |
83 ui::PAGE_TRANSITION_GENERATED, | 83 ui::PAGE_TRANSITION_GENERATED, |
84 std::string()); | 84 std::string()); |
85 } else { | 85 } else { |
86 web_ui()->CallJavascriptFunction("domDistiller.onViewUrlFailed"); | 86 web_ui()->CallJavascriptFunctionUnsafe("domDistiller.onViewUrlFailed"); |
87 } | 87 } |
88 } | 88 } |
89 | 89 |
90 void DomDistillerHandler::HandleSelectArticle(const base::ListValue* args) { | 90 void DomDistillerHandler::HandleSelectArticle(const base::ListValue* args) { |
91 std::string entry_id; | 91 std::string entry_id; |
92 args->GetString(0, &entry_id); | 92 args->GetString(0, &entry_id); |
93 GURL url = | 93 GURL url = |
94 url_utils::GetDistillerViewUrlFromEntryId(article_scheme_, entry_id); | 94 url_utils::GetDistillerViewUrlFromEntryId(article_scheme_, entry_id); |
95 DCHECK(url.is_valid()); | 95 DCHECK(url.is_valid()); |
96 web_ui()->GetWebContents()->GetController().LoadURL( | 96 web_ui()->GetWebContents()->GetController().LoadURL( |
(...skipping 13 matching lines...) Expand all Loading... |
110 DCHECK(IsEntryValid(article)); | 110 DCHECK(IsEntryValid(article)); |
111 std::unique_ptr<base::DictionaryValue> entry(new base::DictionaryValue()); | 111 std::unique_ptr<base::DictionaryValue> entry(new base::DictionaryValue()); |
112 entry->SetString("entry_id", article.entry_id()); | 112 entry->SetString("entry_id", article.entry_id()); |
113 std::string title = (!article.has_title() || article.title().empty()) | 113 std::string title = (!article.has_title() || article.title().empty()) |
114 ? article.entry_id() | 114 ? article.entry_id() |
115 : article.title(); | 115 : article.title(); |
116 entry->SetString("title", net::EscapeForHTML(title)); | 116 entry->SetString("title", net::EscapeForHTML(title)); |
117 entries.Append(entry.release()); | 117 entries.Append(entry.release()); |
118 } | 118 } |
119 // TODO(nyquist): Write a test that ensures we sanitize the data we send. | 119 // TODO(nyquist): Write a test that ensures we sanitize the data we send. |
120 web_ui()->CallJavascriptFunction("domDistiller.onReceivedEntries", entries); | 120 web_ui()->CallJavascriptFunctionUnsafe("domDistiller.onReceivedEntries", |
| 121 entries); |
121 } | 122 } |
122 | 123 |
123 void DomDistillerHandler::OnArticleAdded(bool article_available) { | 124 void DomDistillerHandler::OnArticleAdded(bool article_available) { |
124 // TODO(nyquist): Update this function. | 125 // TODO(nyquist): Update this function. |
125 if (article_available) { | 126 if (article_available) { |
126 HandleRequestEntries(NULL); | 127 HandleRequestEntries(NULL); |
127 } else { | 128 } else { |
128 web_ui()->CallJavascriptFunction("domDistiller.onArticleAddFailed"); | 129 web_ui()->CallJavascriptFunctionUnsafe("domDistiller.onArticleAddFailed"); |
129 } | 130 } |
130 } | 131 } |
131 | 132 |
132 } // namespace dom_distiller | 133 } // namespace dom_distiller |
OLD | NEW |