mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 15:36:12 -04:00
Deprecate DeleteUnexpectedReceivedFileFix flag.
PiperOrigin-RevId: 874097299
This commit is contained in:
committed by
Copybara-Service
parent
4a059b0669
commit
bfd0ce1ab4
@@ -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},
|
||||
|
||||
@@ -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"));
|
||||
|
||||
Reference in New Issue
Block a user