| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/content/dom_distiller_viewer_source.h" | 5 #include "components/dom_distiller/content/dom_distiller_viewer_source.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 : public ViewRequestDelegate { | 52 : public ViewRequestDelegate { |
| 53 public: | 53 public: |
| 54 explicit RequestViewerHandle( | 54 explicit RequestViewerHandle( |
| 55 const content::URLDataSource::GotDataCallback& callback); | 55 const content::URLDataSource::GotDataCallback& callback); |
| 56 virtual ~RequestViewerHandle(); | 56 virtual ~RequestViewerHandle(); |
| 57 | 57 |
| 58 // ViewRequestDelegate implementation. | 58 // ViewRequestDelegate implementation. |
| 59 virtual void OnArticleReady(const DistilledArticleProto* article_proto) | 59 virtual void OnArticleReady(const DistilledArticleProto* article_proto) |
| 60 OVERRIDE; | 60 OVERRIDE; |
| 61 | 61 |
| 62 virtual void OnArticleUpdated(ArticleDistillationUpdate article_update) |
| 63 OVERRIDE; |
| 64 |
| 62 void TakeViewerHandle(scoped_ptr<ViewerHandle> viewer_handle); | 65 void TakeViewerHandle(scoped_ptr<ViewerHandle> viewer_handle); |
| 63 | 66 |
| 64 private: | 67 private: |
| 65 // The handle to the view request towards the DomDistillerService. It | 68 // The handle to the view request towards the DomDistillerService. It |
| 66 // needs to be kept around to ensure the distillation request finishes. | 69 // needs to be kept around to ensure the distillation request finishes. |
| 67 scoped_ptr<ViewerHandle> viewer_handle_; | 70 scoped_ptr<ViewerHandle> viewer_handle_; |
| 68 | 71 |
| 69 // This holds the callback to where the data retrieved is sent back. | 72 // This holds the callback to where the data retrieved is sent back. |
| 70 content::URLDataSource::GotDataCallback callback_; | 73 content::URLDataSource::GotDataCallback callback_; |
| 71 }; | 74 }; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 95 title = l10n_util::GetStringUTF8(IDS_DOM_DISTILLER_VIEWER_NO_DATA_TITLE); | 98 title = l10n_util::GetStringUTF8(IDS_DOM_DISTILLER_VIEWER_NO_DATA_TITLE); |
| 96 unsafe_article_html = | 99 unsafe_article_html = |
| 97 l10n_util::GetStringUTF8(IDS_DOM_DISTILLER_VIEWER_NO_DATA_CONTENT); | 100 l10n_util::GetStringUTF8(IDS_DOM_DISTILLER_VIEWER_NO_DATA_CONTENT); |
| 98 } | 101 } |
| 99 std::string unsafe_page_html = | 102 std::string unsafe_page_html = |
| 100 ReplaceHtmlTemplateValues(title, unsafe_article_html); | 103 ReplaceHtmlTemplateValues(title, unsafe_article_html); |
| 101 callback_.Run(base::RefCountedString::TakeString(&unsafe_page_html)); | 104 callback_.Run(base::RefCountedString::TakeString(&unsafe_page_html)); |
| 102 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); | 105 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
| 103 } | 106 } |
| 104 | 107 |
| 108 void DomDistillerViewerSource::RequestViewerHandle::OnArticleUpdated( |
| 109 ArticleDistillationUpdate article_update) { |
| 110 // TODO(nyquist): Add support for displaying pages incrementally. |
| 111 } |
| 112 |
| 105 void DomDistillerViewerSource::RequestViewerHandle::TakeViewerHandle( | 113 void DomDistillerViewerSource::RequestViewerHandle::TakeViewerHandle( |
| 106 scoped_ptr<ViewerHandle> viewer_handle) { | 114 scoped_ptr<ViewerHandle> viewer_handle) { |
| 107 viewer_handle_ = viewer_handle.Pass(); | 115 viewer_handle_ = viewer_handle.Pass(); |
| 108 } | 116 } |
| 109 | 117 |
| 110 DomDistillerViewerSource::DomDistillerViewerSource( | 118 DomDistillerViewerSource::DomDistillerViewerSource( |
| 111 DomDistillerServiceInterface* dom_distiller_service, | 119 DomDistillerServiceInterface* dom_distiller_service, |
| 112 const std::string& scheme) | 120 const std::string& scheme) |
| 113 : scheme_(scheme), dom_distiller_service_(dom_distiller_service) {} | 121 : scheme_(scheme), dom_distiller_service_(dom_distiller_service) {} |
| 114 | 122 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 } | 180 } |
| 173 | 181 |
| 174 bool DomDistillerViewerSource::ShouldServiceRequest( | 182 bool DomDistillerViewerSource::ShouldServiceRequest( |
| 175 const net::URLRequest* request) const { | 183 const net::URLRequest* request) const { |
| 176 return request->url().SchemeIs(scheme_.c_str()); | 184 return request->url().SchemeIs(scheme_.c_str()); |
| 177 } | 185 } |
| 178 | 186 |
| 179 // TODO(nyquist): Start tracking requests using this method. | 187 // TODO(nyquist): Start tracking requests using this method. |
| 180 void DomDistillerViewerSource::WillServiceRequest( | 188 void DomDistillerViewerSource::WillServiceRequest( |
| 181 const net::URLRequest* request, | 189 const net::URLRequest* request, |
| 182 std::string* path) const {}; | 190 std::string* path) const {} |
| 183 | 191 |
| 184 std::string DomDistillerViewerSource::GetContentSecurityPolicyObjectSrc() | 192 std::string DomDistillerViewerSource::GetContentSecurityPolicyObjectSrc() |
| 185 const { | 193 const { |
| 186 return "object-src 'none'; style-src 'self';"; | 194 return "object-src 'none'; style-src 'self';"; |
| 187 } | 195 } |
| 188 | 196 |
| 189 scoped_ptr<ViewerHandle> DomDistillerViewerSource::CreateViewRequest( | 197 scoped_ptr<ViewerHandle> DomDistillerViewerSource::CreateViewRequest( |
| 190 const std::string& path, | 198 const std::string& path, |
| 191 ViewRequestDelegate* view_request_delegate) { | 199 ViewRequestDelegate* view_request_delegate) { |
| 192 std::string entry_id = | 200 std::string entry_id = |
| (...skipping 18 matching lines...) Expand all Loading... |
| 211 } else if (has_valid_url) { | 219 } else if (has_valid_url) { |
| 212 return dom_distiller_service_->ViewUrl(view_request_delegate, requested_url) | 220 return dom_distiller_service_->ViewUrl(view_request_delegate, requested_url) |
| 213 .Pass(); | 221 .Pass(); |
| 214 } | 222 } |
| 215 | 223 |
| 216 // It is invalid to not specify a query param for |kEntryIdKey| or |kUrlKey|. | 224 // It is invalid to not specify a query param for |kEntryIdKey| or |kUrlKey|. |
| 217 return scoped_ptr<ViewerHandle>(); | 225 return scoped_ptr<ViewerHandle>(); |
| 218 } | 226 } |
| 219 | 227 |
| 220 } // namespace dom_distiller | 228 } // namespace dom_distiller |
| OLD | NEW |