Deprecate DeleteUnexpectedReceivedFileFix flag.

PiperOrigin-RevId: 874097299
This commit is contained in:
Francis Tsui
2026-02-23 08:56:31 -08:00
committed by Copybara-Service
parent 4a059b0669
commit bfd0ce1ab4
4 changed files with 10 additions and 124 deletions
@@ -61,9 +61,6 @@ constexpr auto kLoggingLevel =
// Enable/disable auto-update on settings page
constexpr auto kShowAutoUpdateSetting =
flags::Flag<bool>(kConfigPackage, "45409033", false);
// When true, delete the file payload which received unexpectedly.
constexpr auto kDeleteUnexpectedReceivedFileFix =
flags::Flag<bool>(kConfigPackage, "45657036", false);
// The default time in milliseconds a cached entry can be in LOST state.
constexpr auto kDiscoveryCacheLostExpiryMs =
flags::Flag<int64_t>(kConfigPackage, "45658774", 15000);
@@ -112,7 +109,6 @@ inline absl::btree_map<int, const flags::Flag<bool>&> GetBoolFlags() {
{45418908, kEnableSelfShareUi},
{45459748, kEnableSendingDesktopEvents},
{45409033, kShowAutoUpdateSetting},
{45657036, kDeleteUnexpectedReceivedFileFix},
{45673628, kEnableWifiHotspotForHpRealtekDevices},
{45683539, kUseAlternateServiceUuidForDiscovery},
{45662570, kEnableBetaLabel},
+10 -50
View File
@@ -783,26 +783,18 @@ void NearbyConnectionsManagerImpl::OnPayloadReceived(
absl::string_view endpoint_id, Payload& payload) {
MutexLock lock(&mutex_);
VLOG(1) << "Received payload id=" << payload.id;
if (NearbyFlags::GetInstance().GetBoolFlag(
sharing::config_package_nearby::nearby_sharing_feature::
kDeleteUnexpectedReceivedFileFix)) {
if (payload.content.type != PayloadContent::Type::kBytes &&
!payload_status_listeners_.contains(payload.id)) {
LOG(WARNING) << __func__ << ": Received unknown payload. Canceling.";
DeleteUnknownFilePayloadAndCancel(payload);
return;
}
if (!incoming_payloads_.contains(payload.id)) {
incoming_payloads_.emplace(payload.id, std::move(payload));
return;
}
LOG(WARNING) << __func__ << ": Payload id already exists. Canceling.";
if (payload.content.type != PayloadContent::Type::kBytes &&
!payload_status_listeners_.contains(payload.id)) {
LOG(WARNING) << __func__ << ": Received unknown payload. Canceling.";
DeleteUnknownFilePayloadAndCancel(payload);
} else {
[[maybe_unused]] auto result =
incoming_payloads_.emplace(payload.id, std::move(payload));
DCHECK(result.second);
return;
}
if (!incoming_payloads_.contains(payload.id)) {
incoming_payloads_.emplace(payload.id, std::move(payload));
return;
}
LOG(WARNING) << __func__ << ": Payload id already exists. Canceling.";
DeleteUnknownFilePayloadAndCancel(payload);
}
void NearbyConnectionsManagerImpl::DeleteUnknownFilePayloadAndCancel(
@@ -814,20 +806,6 @@ void NearbyConnectionsManagerImpl::DeleteUnknownFilePayloadAndCancel(
Cancel(payload.id);
}
void NearbyConnectionsManagerImpl::ProcessUnknownFilePathsToDelete(
PayloadStatus status, PayloadContent::Type type, const FilePath& path) {
// Unknown payload comes as kInProgress and kCanceled status with kFile type
// from NearbyConnections. Delete it.
if ((status == PayloadStatus::kCanceled ||
status == PayloadStatus::kInProgress) &&
type == PayloadContent::Type::kFile) {
LOG(WARNING) << __func__
<< ": Unknown payload has been canceled, removing.";
MutexLock lock(&mutex_);
file_paths_to_delete_.insert(path);
}
}
std::optional<
std::weak_ptr<NearbyConnectionsManagerImpl::PayloadStatusListener>>
NearbyConnectionsManagerImpl::GetStatusListenerForId(int64_t payload_id) const {
@@ -892,19 +870,6 @@ void NearbyConnectionsManagerImpl::OnPayloadTransferUpdate(
auto payload = GetIncomingPayload(update.payload_id);
if (payload == nullptr) return;
if (!NearbyFlags::GetInstance().GetBoolFlag(
sharing::config_package_nearby::nearby_sharing_feature::
kDeleteUnexpectedReceivedFileFix)) {
if (payload->content.type != PayloadContent::Type::kBytes) {
LOG(WARNING) << "Received unknown payload of file type. Cancelling.";
nearby_connections_service_->CancelPayload(kServiceId, payload->id,
[](Status status) {});
ProcessUnknownFilePathsToDelete(update.status, payload->content.type,
payload->content.file_payload.file_path);
return;
}
}
if (update.status != PayloadStatus::kSuccess) return;
NearbyConnectionImpl* connection = GetConnectionForId(endpoint_id);
@@ -1004,11 +969,6 @@ void NearbyConnectionsManagerImpl::AddUnknownFilePathsToDeleteForTesting(
file_paths_to_delete_.insert(file_path);
}
void NearbyConnectionsManagerImpl::ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus status, PayloadContent::Type type, const FilePath& path) {
ProcessUnknownFilePathsToDelete(status, type, path);
}
void NearbyConnectionsManagerImpl::OnPayloadTransferUpdateForTesting(
absl::string_view endpoint_id, const PayloadTransferUpdate& update) {
OnPayloadTransferUpdate(endpoint_id, update);
@@ -98,9 +98,6 @@ class NearbyConnectionsManagerImpl : public NearbyConnectionsManager {
absl::flat_hash_set<FilePath> GetUnknownFilePathsToDeleteForTesting();
void AddUnknownFilePathsToDeleteForTesting(FilePath file_path);
void ProcessUnknownFilePathsToDeleteForTesting(PayloadStatus status,
PayloadContent::Type type,
const FilePath& path);
void OnPayloadTransferUpdateForTesting(absl::string_view endpoint_id,
const PayloadTransferUpdate& update);
void OnPayloadReceivedForTesting(absl::string_view endpoint_id,
@@ -127,9 +124,6 @@ class NearbyConnectionsManagerImpl : public NearbyConnectionsManager {
void OnConnectionTimedOut(absl::string_view endpoint_id);
void OnConnectionRequested(absl::string_view endpoint_id,
ConnectionsStatus status);
void ProcessUnknownFilePathsToDelete(PayloadStatus status,
PayloadContent::Type type,
const FilePath& path);
void DeleteUnknownFilePayloadAndCancel(Payload& payload);
absl::flat_hash_set<FilePath> GetUnknownFilePathsToDelete();
@@ -1897,12 +1897,6 @@ TEST_F(NearbyConnectionsManagerImplTest, OnPayloadReceivedForUnknownFile) {
FilePath file = Files::GetTemporaryDirectory().append(FilePath("file.jpg"));
payload_listener_remote.payload_cb(kRemoteEndpointId,
Payload(kPayloadId, file));
// Flag is on. Add unknown file paths with kCanceled to the list.
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_sharing_feature::
kDeleteUnexpectedReceivedFileFix,
true);
nearby_connections_manager_->ClearIncomingPayloads();
Payload payload(kPayloadId, file);
nearby_connections_manager_->OnPayloadReceivedForTesting(kRemoteEndpointId,
@@ -1933,11 +1927,6 @@ TEST_F(NearbyConnectionsManagerImplTest, OnPayloadReceivedForUnknownFile) {
TEST_F(NearbyConnectionsManagerImplTest,
OnPayloadReceivedDeletePreviousFileWithSamePayloadId) {
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_sharing_feature::
kDeleteUnexpectedReceivedFileFix,
true);
NearbyConnectionsService::ConnectionListener connection_listener_remote;
testing::NiceMock<MockIncomingConnectionListener>
incoming_connection_listener;
@@ -1997,59 +1986,6 @@ TEST_F(NearbyConnectionsManagerImplTest,
kSynchronizationTimeOut));
}
TEST_F(NearbyConnectionsManagerImplTest, ProcessUnknownFilePathsToDelete) {
FilePath file = Files::GetTemporaryDirectory().append(FilePath("file.jpg"));
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kCanceled, PayloadContent::Type::kFile, file);
absl::flat_hash_set<FilePath> unknown_file_paths =
nearby_connections_manager_->GetUnknownFilePathsToDeleteForTesting();
EXPECT_EQ(unknown_file_paths.size(), 1);
nearby_connections_manager_->GetAndClearUnknownFilePathsToDelete();
// Check we add kInProgress status.
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kInProgress, PayloadContent::Type::kFile, file);
unknown_file_paths =
nearby_connections_manager_->GetUnknownFilePathsToDeleteForTesting();
EXPECT_EQ(unknown_file_paths.size(), 1);
nearby_connections_manager_->GetAndClearUnknownFilePathsToDelete();
// Check only one file is added to the list, since we use hash set.
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kInProgress, PayloadContent::Type::kFile, file);
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kCanceled, PayloadContent::Type::kFile, file);
unknown_file_paths =
nearby_connections_manager_->GetUnknownFilePathsToDeleteForTesting();
EXPECT_EQ(unknown_file_paths.size(), 1);
nearby_connections_manager_->GetAndClearUnknownFilePathsToDelete();
// Check kSuccess or kFailure are not added to the list.
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kSuccess, PayloadContent::Type::kFile, file);
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kFailure, PayloadContent::Type::kFile, file);
unknown_file_paths =
nearby_connections_manager_->GetUnknownFilePathsToDeleteForTesting();
EXPECT_TRUE(unknown_file_paths.empty());
nearby_connections_manager_->GetAndClearUnknownFilePathsToDelete();
// Check only kFile type is added to the list.
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kSuccess, PayloadContent::Type::kBytes, file);
unknown_file_paths =
nearby_connections_manager_->GetUnknownFilePathsToDeleteForTesting();
EXPECT_TRUE(unknown_file_paths.empty());
nearby_connections_manager_->GetAndClearUnknownFilePathsToDelete();
nearby_connections_manager_->ProcessUnknownFilePathsToDeleteForTesting(
PayloadStatus::kFailure, PayloadContent::Type::kFile, file);
unknown_file_paths =
nearby_connections_manager_->GetUnknownFilePathsToDeleteForTesting();
EXPECT_TRUE(unknown_file_paths.empty());
nearby_connections_manager_->GetAndClearUnknownFilePathsToDelete();
}
TEST_F(NearbyConnectionsManagerImplTest, OverrideSavePath) {
EXPECT_CALL(*nearby_connections_,
OverrideSavePath(kRemoteEndpointId, "/tmp/test"));