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

Unified Diff: chrome/common/render_messages.h

Issue 46055: RSS feed support (part 1), 2nd attempt (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/views/location_bar_view.cc ('k') | chrome/common/render_messages_internal.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/render_messages.h
===================================================================
--- chrome/common/render_messages.h (revision 11648)
+++ chrome/common/render_messages.h (working copy)
@@ -28,6 +28,7 @@
#include "webkit/glue/autofill_form.h"
#include "webkit/glue/cache_manager.h"
#include "webkit/glue/context_menu.h"
+#include "webkit/glue/feed.h"
#include "webkit/glue/form_data.h"
#include "webkit/glue/password_form.h"
#include "webkit/glue/password_form_dom_manager.h"
@@ -43,6 +44,17 @@
#include "skia/include/SkBitmap.h"
#endif
+struct ViewHostMsg_UpdateFeedList_Params {
+ // The page_id for this navigation, or -1 if it is a new navigation. Back,
+ // Forward, and Reload navigations should have a valid page_id. If the load
+ // succeeds, then this page_id will be reflected in the resulting
+ // ViewHostMsg_FrameNavigate message.
+ int32 page_id;
+
+ // The list of available feeds.
+ scoped_refptr<FeedList> feedlist;
+};
+
// Parameters structure for ViewMsg_Navigate, which has too many data
// parameters to be reasonably put in a predefined IPC message.
struct ViewMsg_Navigate_Params {
@@ -513,7 +525,68 @@
}
};
+// Traits for ViewHostMsg_UpdateFeedList_Params structure to pack/unpack.
template <>
+struct ParamTraits<ViewHostMsg_UpdateFeedList_Params> {
+ typedef ViewHostMsg_UpdateFeedList_Params param_type;
+ static void Write(Message* msg, const param_type& param) {
+ WriteParam(msg, param.page_id);
+ WriteParam(msg, param.feedlist->list().size());
+ for (std::vector<FeedItem>::const_iterator iter =
+ param.feedlist->list().begin();
+ iter != param.feedlist->list().end(); iter++) {
+ WriteParam(msg, iter->title);
+ WriteParam(msg, iter->type);
+ WriteParam(msg, iter->url);
+ }
+ }
+ static bool Read(const Message* msg, void** iter, param_type* param) {
+ param->feedlist = new FeedList();
+ if (!ReadParam(msg, iter, &param->page_id))
+ return false;
+
+ size_t arraysize = 0;
+ if (!ReadParam(msg, iter, &arraysize))
+ return false;
+
+ if (arraysize > FeedList::kMaxFeeds) {
+ NOTREACHED() << L"Too many feeds sent by the renderer";
+ return false;
+ }
+
+ bool ret = true;
+ for (size_t i = 0; i < arraysize; i++) {
+ FeedItem feeditem;
+ ret = ReadParam(msg, iter, &feeditem.title) &&
+ ReadParam(msg, iter, &feeditem.type) &&
+ ReadParam(msg, iter, &feeditem.url);
+ if (!ret)
+ return ret;
+ param->feedlist->Add(feeditem);
+ }
+
+ return ret;
+ }
+ static void Log(const param_type& param, std::wstring* log) {
+ log->append(L"(");
+ LogParam(param.page_id, log);
+ log->append(L", {");
+ for (std::vector<FeedItem>::const_iterator iter =
+ param.feedlist->list().begin();
+ iter != param.feedlist->list().end(); iter++) {
+ log->append(L"[");
+ LogParam(iter->title, log);
+ log->append(L", ");
+ LogParam(iter->type, log);
+ log->append(L", ");
+ LogParam(iter->url, log);
+ log->append(L"]");
+ }
+ log->append(L"})");
+ }
+};
+
+template <>
struct ParamTraits<AccessibilityInParams> {
typedef AccessibilityInParams param_type;
static void Write(Message* m, const param_type& p) {
@@ -721,7 +794,6 @@
result = result && ReadParam(m, iter, &elements_size);
p->elements.resize(elements_size);
for (size_t i = 0; i < elements_size; i++) {
- std::wstring s;
result = result && ReadParam(m, iter, &(p->elements[i].name));
result = result && ReadParam(m, iter, &(p->elements[i].value));
}
« no previous file with comments | « chrome/browser/views/location_bar_view.cc ('k') | chrome/common/render_messages_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698