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

Side by Side Diff: components/dom_distiller/core/page_distiller.cc

Issue 211493008: Make DistillerPageWebContentsTest a real test that uses the distiller. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
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/core/page_distiller.h" 5 #include "components/dom_distiller/core/page_distiller.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 } 56 }
57 57
58 void PageDistiller::OnExecuteJavaScriptDone(const GURL& page_url, 58 void PageDistiller::OnExecuteJavaScriptDone(const GURL& page_url,
59 const base::Value* value) { 59 const base::Value* value) {
60 DVLOG(1) << "Distillation complete; extracting resources for " 60 DVLOG(1) << "Distillation complete; extracting resources for "
61 << page_url.spec(); 61 << page_url.spec();
62 62
63 scoped_ptr<DistilledPageInfo> page_info(new DistilledPageInfo()); 63 scoped_ptr<DistilledPageInfo> page_info(new DistilledPageInfo());
64 std::string result; 64 std::string result;
65 const base::ListValue* result_list = NULL; 65 const base::ListValue* result_list = NULL;
66 bool found_content = false;
66 if (!value->GetAsList(&result_list)) { 67 if (!value->GetAsList(&result_list)) {
67 base::MessageLoop::current()->PostTask( 68 base::MessageLoop::current()->PostTask(
68 FROM_HERE, 69 FROM_HERE,
69 base::Bind(page_distiller_callback_, base::Passed(&page_info), false)); 70 base::Bind(page_distiller_callback_, base::Passed(&page_info), false));
70 } else { 71 } else {
71 int i = 0; 72 int i = 0;
72 for (base::ListValue::const_iterator iter = result_list->begin(); 73 for (base::ListValue::const_iterator iter = result_list->begin();
73 iter != result_list->end(); 74 iter != result_list->end();
74 ++iter, ++i) { 75 ++iter, ++i) {
75 std::string item; 76 std::string item;
76 (*iter)->GetAsString(&item); 77 (*iter)->GetAsString(&item);
77 // The JavaScript returns an array where the first element is the title, 78 // The JavaScript returns an array where the first element is the title,
78 // the second element is the article content HTML, and the remaining 79 // the second element is the article content HTML, and the remaining
79 // elements are image URLs referenced in the HTML. 80 // elements are image URLs referenced in the HTML.
80 switch (i) { 81 switch (i) {
81 case 0: 82 case 0:
82 page_info->title = item; 83 page_info->title = item;
83 break; 84 break;
84 case 1: 85 case 1:
85 page_info->html = item; 86 page_info->html = item;
87 found_content = true;
86 break; 88 break;
87 case 2: 89 case 2:
88 page_info->next_page_url = item; 90 page_info->next_page_url = item;
89 break; 91 break;
90 case 3: 92 case 3:
91 page_info->prev_page_url = item; 93 page_info->prev_page_url = item;
92 break; 94 break;
93 default: 95 default:
94 page_info->image_urls.push_back(item); 96 GURL unvalidated_gurl(item);
97 if (!unvalidated_gurl.is_empty() && unvalidated_gurl.is_valid()) {
98 page_info->image_urls.push_back(item);
99 }
95 } 100 }
96 } 101 }
97 base::MessageLoop::current()->PostTask( 102 base::MessageLoop::current()->PostTask(
98 FROM_HERE, 103 FROM_HERE,
99 base::Bind(page_distiller_callback_, base::Passed(&page_info), true)); 104 base::Bind(page_distiller_callback_,
105 base::Passed(&page_info),
106 found_content));
100 } 107 }
101 } 108 }
102 109
103 } // namespace dom_distiller 110 } // namespace dom_distiller
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698