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

Unified Diff: components/ntp_snippets/remote/ntp_snippets_request_params.h

Issue 2578173002: NTP: Extract JSON requests from Fetcher. (Closed)
Patch Set: No outside accesses to ntp_snippets::internal::* Created 4 years 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
Index: components/ntp_snippets/remote/ntp_snippets_request_params.h
diff --git a/components/ntp_snippets/remote/ntp_snippets_request_params.h b/components/ntp_snippets/remote/ntp_snippets_request_params.h
new file mode 100644
index 0000000000000000000000000000000000000000..e833ac155307044f405bdd6685da25d2b62290c0
--- /dev/null
+++ b/components/ntp_snippets/remote/ntp_snippets_request_params.h
@@ -0,0 +1,58 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_NTP_SNIPPETS_REMOTE_NTP_SNIPPETS_REQUEST_PARAMS_H_
+#define COMPONENTS_NTP_SNIPPETS_REMOTE_NTP_SNIPPETS_REQUEST_PARAMS_H_
+
+#include <memory>
+#include <set>
+#include <string>
+
+#include "base/callback.h"
+#include "base/optional.h"
+#include "base/values.h"
+#include "components/ntp_snippets/category.h"
+
+namespace ntp_snippets {
+
+// Enumeration listing all possible variants of dealing with personalization.
+enum class Personalization { kPersonal, kNonPersonal, kBoth };
+
+// Contains all parameters for fetching NTPSnippets.
+struct NTPSnippetsRequestParams {
+ NTPSnippetsRequestParams();
+ NTPSnippetsRequestParams(const NTPSnippetsRequestParams&);
+ ~NTPSnippetsRequestParams();
+
+ // BCP 47 language code specifying the user's UI language.
+ std::string language_code;
+
+ // A set of suggestion IDs that should not be returned again.
+ std::set<std::string> excluded_ids;
+
+ // Maximum number of snippets to fetch.
+ int count_to_fetch = 0;
+
+ // Whether this is an interactive request, i.e. triggered by an explicit
+ // user action. Typically, non-interactive requests are subject to a daily
+ // quota.
+ bool interactive_request = false;
+
+ // If set, only return results for this category.
+ base::Optional<Category> exclusive_category;
+};
+
+// Callbacks for JSON parsing, needed because the parsing is platform-
tschumann 2016/12/20 10:22:26 nit: Callbacks for JSON parsing to allow injecting
fhorschig 2016/12/20 10:30:32 Done.
+// dependent.
+using SuccessCallback =
+ base::Callback<void(std::unique_ptr<base::Value> result)>;
+using ErrorCallback = base::Callback<void(const std::string& error)>;
+using ParseJSONCallback =
+ base::Callback<void(const std::string& raw_json_string,
+ const SuccessCallback& success_callback,
+ const ErrorCallback& error_callback)>;
+
+} // namespace ntp_snippets
+
+#endif // COMPONENTS_NTP_SNIPPETS_REMOTE_NTP_SNIPPETS_REQUEST_PARAMS_H_

Powered by Google App Engine
This is Rietveld 408576698