Skip to content

Commit

Permalink
Update naming of Android Client Hint Headers (#541)
Browse files Browse the repository at this point in the history
b/188060079
  • Loading branch information
gbournou committed Jun 5, 2023
1 parent 6a97cc7 commit ea69d45
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 52 deletions.
7 changes: 4 additions & 3 deletions cobalt/browser/client_hint_headers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,11 @@ std::vector<std::string> GetClientHintHeaders(
const UserAgentPlatformInfo& platform_info) {
std::vector<std::string> headers;

AddHeader(headers, "Firmware-Version-Details",
platform_info.firmware_version_details());
AddHeader(headers, "Android-Build-Fingerprint",
platform_info.android_build_fingerprint());

AddHeader(headers, "OS-Experience", platform_info.os_experience());
AddHeader(headers, "Android-OS-Experience",
platform_info.android_os_experience());

return headers;
}
Expand Down
8 changes: 4 additions & 4 deletions cobalt/browser/client_hint_headers_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ using ::testing::UnorderedElementsAre;

TEST(ClientHintHeadersTest, GetClientHintHeaders) {
UserAgentPlatformInfo platform_info;
platform_info.set_firmware_version_details("abc/def:123.456/xy-z");
platform_info.set_os_experience("Amati");
platform_info.set_android_build_fingerprint("abc/def:123.456/xy-z");
platform_info.set_android_os_experience("Amati");

std::vector<std::string> headers = GetClientHintHeaders(platform_info);
EXPECT_THAT(headers,
UnorderedElementsAre(
"Sec-CH-UA-Co-Firmware-Version-Details:abc/def:123.456/xy-z",
"Sec-CH-UA-Co-OS-Experience:Amati"));
"Sec-CH-UA-Co-Android-Build-Fingerprint:abc/def:123.456/xy-z",
"Sec-CH-UA-Co-Android-OS-Experience:Amati"));
}

} // namespace
Expand Down
30 changes: 15 additions & 15 deletions cobalt/browser/user_agent_platform_info.cc
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,9 @@ void InitializeUserAgentPlatformInfoFields(UserAgentPlatformInfo& info) {
result = platform_info_extension->GetFirmwareVersionDetails(
value, kSystemPropertyMaxLength);
if (result) {
info.set_firmware_version_details(value);
info.set_android_build_fingerprint(value);
}
info.set_os_experience(platform_info_extension->GetOsExperience());
info.set_android_os_experience(platform_info_extension->GetOsExperience());
}

info.set_cobalt_version(COBALT_VERSION);
Expand Down Expand Up @@ -422,12 +422,12 @@ void InitializeUserAgentPlatformInfoFields(UserAgentPlatformInfo& info) {
} else if (!input.first.compare("evergreen_version")) {
info.set_evergreen_version(input.second);
LOG(INFO) << "Set evergreen version to " << input.second;
} else if (!input.first.compare("firmware_version_details")) {
info.set_firmware_version_details(input.second);
LOG(INFO) << "Set firmware version details to " << input.second;
} else if (!input.first.compare("os_experience")) {
info.set_os_experience(input.second);
LOG(INFO) << "Set os experience to " << input.second;
} else if (!input.first.compare("android_build_fingerprint")) {
info.set_android_build_fingerprint(input.second);
LOG(INFO) << "Set android build fingerprint to " << input.second;
} else if (!input.first.compare("android_os_experience")) {
info.set_android_os_experience(input.second);
LOG(INFO) << "Set android os experience to " << input.second;
} else if (!input.first.compare("cobalt_version")) {
info.set_cobalt_version(input.second);
LOG(INFO) << "Set cobalt type to " << input.second;
Expand Down Expand Up @@ -542,15 +542,15 @@ void UserAgentPlatformInfo::set_evergreen_version(
evergreen_version_ = Sanitize(evergreen_version, isTCHAR);
}

void UserAgentPlatformInfo::set_firmware_version_details(
const std::string& firmware_version_details) {
firmware_version_details_ =
Sanitize(firmware_version_details, isVCHARorSpace);
void UserAgentPlatformInfo::set_android_build_fingerprint(
const std::string& android_build_fingerprint) {
android_build_fingerprint_ =
Sanitize(android_build_fingerprint, isVCHARorSpace);
}

void UserAgentPlatformInfo::set_os_experience(
const std::string& os_experience) {
os_experience_ = Sanitize(os_experience, isTCHAR);
void UserAgentPlatformInfo::set_android_os_experience(
const std::string& android_os_experience) {
android_os_experience_ = Sanitize(android_os_experience, isTCHAR);
}

void UserAgentPlatformInfo::set_cobalt_version(
Expand Down
18 changes: 10 additions & 8 deletions cobalt/browser/user_agent_platform_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,12 @@ class UserAgentPlatformInfo : public web::UserAgentPlatformInfo {
const std::string& evergreen_version() const override {
return evergreen_version_;
}
const std::string& firmware_version_details() const override {
return firmware_version_details_;
const std::string& android_build_fingerprint() const override {
return android_build_fingerprint_;
}
const std::string& android_os_experience() const override {
return android_os_experience_;
}
const std::string& os_experience() const override { return os_experience_; }
const std::string& cobalt_version() const override { return cobalt_version_; }
const std::string& cobalt_build_version_number() const override {
return cobalt_build_version_number_;
Expand Down Expand Up @@ -111,9 +113,9 @@ class UserAgentPlatformInfo : public web::UserAgentPlatformInfo {
void set_evergreen_type(const std::string& evergreen_type);
void set_evergreen_file_type(const std::string& evergreen_file_type);
void set_evergreen_version(const std::string& evergreen_version);
void set_firmware_version_details(
const std::string& firmware_version_details);
void set_os_experience(const std::string& os_experience);
void set_android_build_fingerprint(
const std::string& android_build_fingerprint);
void set_android_os_experience(const std::string& android_os_experience);
void set_cobalt_version(const std::string& cobalt_version);
void set_cobalt_build_version_number(
const std::string& cobalt_build_version_number);
Expand All @@ -138,8 +140,8 @@ class UserAgentPlatformInfo : public web::UserAgentPlatformInfo {
std::string evergreen_type_;
std::string evergreen_file_type_;
std::string evergreen_version_;
std::string firmware_version_details_; // Only via Client Hints
std::string os_experience_; // Only via Client Hints
std::string android_build_fingerprint_; // Only via Client Hints
std::string android_os_experience_; // Only via Client Hints

std::string cobalt_version_;
std::string cobalt_build_version_number_;
Expand Down
4 changes: 2 additions & 2 deletions cobalt/web/cobalt_ua_data_values.idl
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ dictionary CobaltUADataValues : UADataValues {
DOMString evergreenType;
DOMString evergreenFileType;
DOMString evergreenVersion;
DOMString firmwareVersionDetails;
DOMString osExperience;
DOMString androidBuildFingerprint;
DOMString androidOsExperience;
DOMString starboardVersion;
DOMString originalDesignManufacturer;
DOMString deviceType;
Expand Down
8 changes: 4 additions & 4 deletions cobalt/web/cobalt_ua_data_values_interface.cc
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ CobaltUADataValuesInterface::CobaltUADataValuesInterface(
if (init_dict.has_evergreen_version()) {
evergreen_version_ = init_dict.evergreen_version();
}
if (init_dict.has_firmware_version_details()) {
firmware_version_details_ = init_dict.firmware_version_details();
if (init_dict.has_android_build_fingerprint()) {
android_build_fingerprint_ = init_dict.android_build_fingerprint();
}
if (init_dict.has_os_experience()) {
os_experience_ = init_dict.os_experience();
if (init_dict.has_android_os_experience()) {
android_os_experience_ = init_dict.android_os_experience();
}
if (init_dict.has_starboard_version()) {
starboard_version_ = init_dict.starboard_version();
Expand Down
12 changes: 7 additions & 5 deletions cobalt/web/cobalt_ua_data_values_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,12 @@ class CobaltUADataValuesInterface : public script::Wrappable {
return evergreen_file_type_;
}
const std::string& evergreen_version() const { return evergreen_version_; }
const std::string& firmware_version_details() const {
return firmware_version_details_;
const std::string& android_build_fingerprint() const {
return android_build_fingerprint_;
}
const std::string& android_os_experience() const {
return android_os_experience_;
}
const std::string& os_experience() const { return os_experience_; }
const std::string& starboard_version() const { return starboard_version_; }
const std::string& original_design_manufacturer() const {
return original_design_manufacturer_;
Expand Down Expand Up @@ -83,8 +85,8 @@ class CobaltUADataValuesInterface : public script::Wrappable {
std::string evergreen_type_;
std::string evergreen_file_type_;
std::string evergreen_version_;
std::string firmware_version_details_;
std::string os_experience_;
std::string android_build_fingerprint_;
std::string android_os_experience_;
std::string starboard_version_;
std::string original_design_manufacturer_;
std::string device_type_;
Expand Down
4 changes: 2 additions & 2 deletions cobalt/web/cobalt_ua_data_values_interface.idl
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ interface CobaltUADataValuesInterface {
readonly attribute DOMString evergreenType;
readonly attribute DOMString evergreenFileType;
readonly attribute DOMString evergreenVersion;
readonly attribute DOMString firmwareVersionDetails;
readonly attribute DOMString osExperience;
readonly attribute DOMString androidBuildFingerprint;
readonly attribute DOMString androidOsExperience;
readonly attribute DOMString starboardVersion;
readonly attribute DOMString originalDesignManufacturer;
readonly attribute DOMString deviceType;
Expand Down
7 changes: 4 additions & 3 deletions cobalt/web/navigator_ua_data.cc
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,10 @@ NavigatorUAData::NavigatorUAData(
platform_info->evergreen_file_type());
all_high_entropy_values_.set_evergreen_version(
platform_info->evergreen_version());
all_high_entropy_values_.set_firmware_version_details(
platform_info->firmware_version_details());
all_high_entropy_values_.set_os_experience(platform_info->os_experience());
all_high_entropy_values_.set_android_build_fingerprint(
platform_info->android_build_fingerprint());
all_high_entropy_values_.set_android_os_experience(
platform_info->android_os_experience());
all_high_entropy_values_.set_starboard_version(
platform_info->starboard_version());
all_high_entropy_values_.set_original_design_manufacturer(
Expand Down
6 changes: 4 additions & 2 deletions cobalt/web/testing/mock_user_agent_platform_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,12 @@ class MockUserAgentPlatformInfo : public web::UserAgentPlatformInfo {
const std::string& evergreen_version() const override {
return empty_string_;
}
const std::string& firmware_version_details() const override {
const std::string& android_build_fingerprint() const override {
return empty_string_;
}
const std::string& android_os_experience() const override {
return empty_string_;
}
const std::string& os_experience() const override { return empty_string_; }
const std::string& cobalt_version() const override { return empty_string_; }
const std::string& cobalt_build_version_number() const override {
return empty_string_;
Expand Down
4 changes: 2 additions & 2 deletions cobalt/web/user_agent_platform_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ class UserAgentPlatformInfo {
virtual const std::string& evergreen_type() const = 0;
virtual const std::string& evergreen_file_type() const = 0;
virtual const std::string& evergreen_version() const = 0;
virtual const std::string& firmware_version_details() const = 0;
virtual const std::string& os_experience() const = 0;
virtual const std::string& android_build_fingerprint() const = 0;
virtual const std::string& android_os_experience() const = 0;

virtual const std::string& cobalt_version() const = 0;
virtual const std::string& cobalt_build_version_number() const = 0;
Expand Down
4 changes: 2 additions & 2 deletions starboard/extension/platform_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ typedef struct CobaltExtensionPlatformInfoApi {

// The fields below this point were added in version 1 or later.

// Returns details about the device firmware version. This can be something
// like Android build fingerprint (go/android-build-fingerprint).
// Returns details about the device firmware version. On Android, this will
// be the Android build fingerprint (go/android-build-fingerprint).
bool (*GetFirmwareVersionDetails)(char* out_value, int value_length);

// Returns the OS experience. (e.g. Amati or Watson on an Android device).
Expand Down

0 comments on commit ea69d45

Please sign in to comment.