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

Unified Diff: rlz/lib/rlz_lib.h

Issue 10642009: Add a regenerate button to regenerate the password in Windows. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Sync and Merge. Created 8 years, 6 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 | « rlz/lib/rlz_enums.h ('k') | rlz/lib/rlz_lib.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: rlz/lib/rlz_lib.h
diff --git a/rlz/lib/rlz_lib.h b/rlz/lib/rlz_lib.h
deleted file mode 100644
index 9d4cf3bb619518a006ee949512698f5c4274ebad..0000000000000000000000000000000000000000
--- a/rlz/lib/rlz_lib.h
+++ /dev/null
@@ -1,335 +0,0 @@
-// Copyright (c) 2012 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.
-//
-// A library to manage RLZ information for access-points shared
-// across different client applications.
-//
-// All functions return true on success and false on error.
-// This implemenation is thread safe.
-
-
-#ifndef RLZ_LIB_RLZ_LIB_H_
-#define RLZ_LIB_RLZ_LIB_H_
-
-#include <stdio.h>
-#include <string>
-
-#include "build/build_config.h"
-
-#include "rlz/lib/rlz_enums.h"
-
-#if defined(OS_WIN)
-#define RLZ_LIB_API __cdecl
-#else
-#define RLZ_LIB_API
-#endif
-
-// Define one of
-// + RLZ_NETWORK_IMPLEMENTATION_WIN_INET: Uses win inet to send financial pings.
-// + RLZ_NETWORK_IMPLEMENTATION_CHROME_NET: Uses chrome's network stack to send
-// financial pings. rlz_lib::SetURLRequestContext() must be called before
-// any calls to SendFinancialPing().
-#if defined(RLZ_NETWORK_IMPLEMENTATION_WIN_INET) && \
- defined(RLZ_NETWORK_IMPLEMENTATION_CHROME_NET)
-#error Exactly one of RLZ_NETWORK_IMPLEMENTATION_WIN_INET and \
- RLZ_NETWORK_IMPLEMENTATION_CHROME_NET should be defined.
-#endif
-#if !defined(RLZ_NETWORK_IMPLEMENTATION_WIN_INET) && \
- !defined(RLZ_NETWORK_IMPLEMENTATION_CHROME_NET)
-#if defined(OS_WIN)
-#define RLZ_NETWORK_IMPLEMENTATION_WIN_INET
-#else
-#define RLZ_NETWORK_IMPLEMENTATION_CHROME_NET
-#endif
-#endif
-
-#if defined(RLZ_NETWORK_IMPLEMENTATION_CHROME_NET)
-namespace net {
-class URLRequestContextGetter;
-} // namespace net
-#endif
-
-namespace rlz_lib {
-
-class ScopedRlzValueStoreLock;
-
-// The maximum length of an access points RLZ in bytes.
-const int kMaxRlzLength = 64;
-// The maximum length of an access points RLZ in bytes.
-const int kMaxDccLength = 128;
-// The maximum length of a CGI string in bytes.
-const int kMaxCgiLength = 2048;
-// The maximum length of a ping response we will parse in bytes. If the response
-// is bigger, please break it up into separate calls.
-const int kMaxPingResponseLength = 0x4000; // 16K
-
-#if defined(RLZ_NETWORK_IMPLEMENTATION_CHROME_NET)
-// Set the URLRequestContextGetter used by SendFinancialPing(). The IO message
-// loop returned by this context will be used for the IO done by
-// SendFinancialPing().
-bool RLZ_LIB_API SetURLRequestContext(net::URLRequestContextGetter* context);
-#endif
-
-// RLZ storage functions.
-
-// Get all the events reported by this product as a CGI string to append to
-// the daily ping.
-// Access: HKCU read.
-bool RLZ_LIB_API GetProductEventsAsCgi(Product product, char* unescaped_cgi,
- size_t unescaped_cgi_size);
-
-// Records an RLZ event.
-// Some events can be product-independent (e.g: First search from home page),
-// and some can be access point independent (e.g. Pack installed). However,
-// product independent events must still include the product which cares about
-// that information being reported.
-// Access: HKCU write.
-bool RLZ_LIB_API RecordProductEvent(Product product, AccessPoint point,
- Event event_id);
-
-// Clear an event reported by this product. This should be called after a
-// successful ping to the RLZ server.
-// Access: HKCU write.
-bool RLZ_LIB_API ClearProductEvent(Product product, AccessPoint point,
- Event event_id);
-
-// Clear all reported events and recorded stateful events of this product.
-// This should be called on complete uninstallation of the product.
-// Access: HKCU write.
-bool RLZ_LIB_API ClearAllProductEvents(Product product);
-
-// Clears all product-specifc state from the RLZ registry.
-// Should be called during product uninstallation.
-// This removes outstanding product events, product financial ping times,
-// the product RLS argument (if any), and any RLZ's for access points being
-// uninstalled with the product.
-// access_points is an array terminated with NO_ACCESS_POINT.
-// IMPORTANT: These are the access_points the product is removing as part
-// of the uninstallation, not necessarily all the access points passed to
-// SendFinancialPing() and GetPingParams().
-// access_points can be NULL if no points are being uninstalled.
-// No return value - this is best effort. Will assert in debug mode on
-// failed attempts.
-// Access: HKCU write.
-void RLZ_LIB_API ClearProductState(Product product,
- const AccessPoint* access_points);
-
-// Get the RLZ value of the access point. If the access point is not Google, the
-// RLZ will be the empty string and the function will return false.
-// Access: HKCU read.
-bool RLZ_LIB_API GetAccessPointRlz(AccessPoint point, char* rlz,
- size_t rlz_size);
-
-// Set the RLZ for the access-point. Fails and asserts if called when the access
-// point is not set to Google.
-// new_rlz should come from a server-response. Client applications should not
-// create their own RLZ values.
-// Access: HKCU write.
-bool RLZ_LIB_API SetAccessPointRlz(AccessPoint point, const char* new_rlz);
-
-// Financial Server pinging functions.
-// These functions deal with pinging the RLZ financial server and parsing and
-// acting upon the response. Clients should SendFinancialPing() to avoid needing
-// these functions. However, these functions allow clients to split the various
-// parts of the pinging process up as needed (to avoid firewalls, etc).
-
-// Forms the HTTP request to send to the RLZ financial server.
-//
-// product : The product to ping for.
-// access_points : The access points this product affects. Array must be
-// terminated with NO_ACCESS_POINT.
-// product_signature : The signature sent with daily pings (e.g. swg, ietb)
-// product_brand : The brand of the pinging product, if any.
-// product_id : The product-specific installation ID (can be NULL).
-// product_lang : The language for the product (used to determine cohort).
-// exclude_machine_id : Whether the Machine ID should be explicitly excluded
-// based on the products privacy policy.
-// request : The buffer where the function returns the HTTP request.
-// request_buffer_size: The size of the request buffer in bytes. The buffer
-// size (kMaxCgiLength+1) is guaranteed to be enough.
-//
-// Access: HKCU read.
-bool RLZ_LIB_API FormFinancialPingRequest(Product product,
- const AccessPoint* access_points,
- const char* product_signature,
- const char* product_brand,
- const char* product_id,
- const char* product_lang,
- bool exclude_machine_id,
- char* request,
- size_t request_buffer_size);
-
-// Pings the financial server and returns the HTTP response. This will fail
-// if it is too early to ping the server since the last ping.
-//
-// If RLZ_NETWORK_IMPLEMENTATION_CHROME_NET is set, SetURLRequestContext() needs
-// to be called before calling this function.
-//
-// product : The product to ping for.
-// request : The HTTP request (for example, returned by
-// FormFinancialPingRequest).
-// response : The buffer in which the HTTP response is returned.
-// response_buffer_size : The size of the response buffer in bytes. The buffer
-// size (kMaxPingResponseLength+1) is enough for all
-// legitimate server responses (any response that is
-// bigger should be considered the same way as a general
-// network problem).
-//
-// Access: HKCU read.
-bool RLZ_LIB_API PingFinancialServer(Product product,
- const char* request,
- char* response,
- size_t response_buffer_size);
-
-// Checks if a ping response is valid - ie. it has a checksum line which
-// is the CRC-32 checksum of the message uptil the checksum. If
-// checksum_idx is not NULL, it will get the index of the checksum, i.e. -
-// the effective end of the message.
-// Access: No restrictions.
-bool RLZ_LIB_API IsPingResponseValid(const char* response,
- int* checksum_idx);
-
-
-// Complex helpers built on top of other functions.
-
-// Parses the responses from the financial server and updates product state
-// and access point RLZ's in registry. Like ParsePingResponse(), but also
-// updates the last ping time.
-// Access: HKCU write.
-bool RLZ_LIB_API ParseFinancialPingResponse(Product product,
- const char* response);
-
-// Send the ping with RLZs and events to the PSO server.
-// This ping method should be called daily. (More frequent calls will fail).
-// Also, if there are no events, the call will succeed only once a week.
-//
-// If RLZ_NETWORK_IMPLEMENTATION_CHROME_NET is set, SetURLRequestContext() needs
-// to be called before calling this function.
-//
-// product : The product to ping for.
-// access_points : The access points this product affects. Array must be
-// terminated with NO_ACCESS_POINT.
-// product_signature : The signature sent with daily pings (e.g. swg, ietb)
-// product_brand : The brand of the pinging product, if any.
-// product_id : The product-specific installation ID (can be NULL).
-// product_lang : The language for the product (used to determine cohort).
-// exclude_machine_id : Whether the Machine ID should be explicitly excluded
-// based on the products privacy policy.
-//
-// Returns true on successful ping and response, false otherwise.
-// Access: HKCU write.
-bool RLZ_LIB_API SendFinancialPing(Product product,
- const AccessPoint* access_points,
- const char* product_signature,
- const char* product_brand,
- const char* product_id,
- const char* product_lang,
- bool exclude_machine_id);
-
-// An alternate implementations of SendFinancialPing with the same behavior,
-// except the caller can optionally choose to skip the timing check.
-bool RLZ_LIB_API SendFinancialPing(Product product,
- const AccessPoint* access_points,
- const char* product_signature,
- const char* product_brand,
- const char* product_id,
- const char* product_lang,
- bool exclude_machine_id,
- const bool skip_time_check);
-
-// Parses RLZ related ping response information from the server.
-// Updates stored RLZ values and clears stored events accordingly.
-// Access: HKCU write.
-bool RLZ_LIB_API ParsePingResponse(Product product, const char* response);
-
-
-// Copies the events associated with the product and the RLZ's for each access
-// point in access_points into cgi. This string can be directly appended
-// to a ping (will need an & if not first paramter).
-// access_points must be an array of AccessPoints terminated with
-// NO_ACCESS_POINT.
-// Access: HKCU read.
-bool RLZ_LIB_API GetPingParams(Product product,
- const AccessPoint* access_points,
- char* unescaped_cgi, size_t unescaped_cgi_size);
-
-#if defined(OS_WIN)
-// OEM Deal confirmation storage functions. OEM Deals are windows-only.
-
-// Makes the OEM Deal Confirmation code writable by all users on the machine.
-// This should be called before calling SetMachineDealCode from a non-admin
-// account.
-// Access: HKLM write.
-bool RLZ_LIB_API CreateMachineState(void);
-
-// Set the OEM Deal Confirmation Code (DCC). This information is used for RLZ
-// initalization.
-// Access: HKLM write, or
-// HKCU read if rlz_lib::CreateMachineState() has been sucessfully called.
-bool RLZ_LIB_API SetMachineDealCode(const char* dcc);
-
-// Get the DCC cgi argument string to append to a daily ping.
-// Should be used only by OEM deal trackers. Applications should use the
-// GetMachineDealCode method which has an AccessPoint paramter.
-// Access: HKLM read.
-bool RLZ_LIB_API GetMachineDealCodeAsCgi(char* cgi, size_t cgi_size);
-
-// Get the DCC value stored in registry.
-// Should be used only by OEM deal trackers. Applications should use the
-// GetMachineDealCode method which has an AccessPoint paramter.
-// Access: HKLM read.
-bool RLZ_LIB_API GetMachineDealCode(char* dcc, size_t dcc_size);
-
-// Parses a ping response, checks if it is valid and sets the machine DCC
-// from the response. The ping must also contain the current DCC value in
-// order to be considered valid.
-// Access: HKLM write;
-// HKCU write if CreateMachineState() has been successfully called.
-bool RLZ_LIB_API SetMachineDealCodeFromPingResponse(const char* response);
-
-#endif
-
-// Segment RLZ persistence based on branding information.
-// All information for a given product is persisted under keys with the either
-// product's name or its access point's name. This assumes that only
-// one instance of the product is installed on the machine, and that only one
-// product brand is associated with it.
-//
-// In some cases, a given product may be using supplementary brands. The RLZ
-// information must be kept separately for each of these brands. To achieve
-// this segmentation, scope all RLZ library calls that deal with supplementary
-// brands within the lifetime of an rlz_lib::ProductBranding instance.
-//
-// For example, to record events for a supplementary brand, do the following:
-//
-// {
-// rlz_lib::SupplementaryBranding branding("AAAA");
-// // This call to RecordProductEvent is scoped to the AAAA brand.
-// rlz_lib::RecordProductEvent(rlz_lib::DESKTOP, rlz_lib::GD_DESKBAND,
-// rlz_lib::INSTALL);
-// }
-//
-// // This call to RecordProductEvent is not scoped to any supplementary brand.
-// rlz_lib::RecordProductEvent(rlz_lib::DESKTOP, rlz_lib::GD_DESKBAND,
-// rlz_lib::INSTALL);
-//
-// In particular, this affects the recording of stateful events and the sending
-// of financial pings. In the former case, a stateful event recorded while
-// scoped to a supplementary brand will be recorded again when scoped to a
-// different supplementary brand (or not scoped at all). In the latter case,
-// the time skip check is specific to each supplementary brand.
-class SupplementaryBranding {
- public:
- SupplementaryBranding(const char* brand);
- ~SupplementaryBranding();
-
- static const std::string& GetBrand();
-
- private:
- ScopedRlzValueStoreLock* lock_;
-};
-
-} // namespace rlz_lib
-
-#endif // RLZ_LIB_RLZ_LIB_H_
« no previous file with comments | « rlz/lib/rlz_enums.h ('k') | rlz/lib/rlz_lib.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698