ipcz: Remove unused argument from CreateNode
Minor ABI cleanup for finalizing v1. This removes an unused and
unnecessary driver handle argument from the CreateNode() ABI.
The original intent was to provide driver-defined context for every
driver API call ipcz makes on behalf of the created node; but in
practice driver API calls which require context already take some other
form, either as a driver transport or memory object.
Fixed: 1450337
Change-Id: I366a0b5d05675bddcb7c3dd732215c36d713fe8a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4581108
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/main@{#1152118}
NOKEYCHECK=True
GitOrigin-RevId: 28cae410716c053f5ea9db5d78b0df953098e581
diff --git a/include/ipcz/ipcz.h b/include/ipcz/ipcz.h
index b6621ac..b172df7 100644
--- a/include/ipcz/ipcz.h
+++ b/include/ipcz/ipcz.h
@@ -1035,11 +1035,6 @@
// Nodes which will be interconnected must use the same or compatible driver
// implementations.
//
- // `driver_node` is a driver-side handle to assign to the node throughout its
- // lifetime. This handle provides the driver with additional context when ipcz
- // makes driver API calls pertaining to a specific node. May be
- // IPCZ_INVALID_DRIVER_HANDLE if not used by the driver.
- //
// If `flags` contains IPCZ_CREATE_NODE_AS_BROKER then the node will act as
// the broker in its cluster of connected nodes. See details on that flag
// description above.
@@ -1061,7 +1056,6 @@
// lock-free 32-bit and 64-bit atomics.
IpczResult(IPCZ_API* CreateNode)(
const struct IpczDriver* driver, // in
- IpczDriverHandle driver_node, // in
IpczCreateNodeFlags flags, // in
const struct IpczCreateNodeOptions* options, // in
IpczHandle* node); // out
diff --git a/src/api.cc b/src/api.cc
index 97f8239..9b618a7 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -31,7 +31,6 @@
}
IpczResult CreateNode(const IpczDriver* driver,
- IpczDriverHandle driver_node,
IpczCreateNodeFlags flags,
const IpczCreateNodeOptions* options,
IpczHandle* node) {
@@ -67,7 +66,7 @@
auto node_ptr = ipcz::MakeRefCounted<ipcz::Node>(
(flags & IPCZ_CREATE_NODE_AS_BROKER) != 0 ? ipcz::Node::Type::kBroker
: ipcz::Node::Type::kNormal,
- *driver, driver_node, options);
+ *driver, options);
*node = ipcz::Node::ReleaseAsHandle(std::move(node_ptr));
return IPCZ_RESULT_OK;
}
diff --git a/src/api_test.cc b/src/api_test.cc
index 1eb5b3b..5b7548b 100644
--- a/src/api_test.cc
+++ b/src/api_test.cc
@@ -28,20 +28,18 @@
// Null driver.
EXPECT_EQ(IPCZ_RESULT_INVALID_ARGUMENT,
- ipcz().CreateNode(nullptr, IPCZ_INVALID_DRIVER_HANDLE,
- IPCZ_NO_FLAGS, nullptr, &node));
+ ipcz().CreateNode(nullptr, IPCZ_NO_FLAGS, nullptr, &node));
// Null output handle.
- EXPECT_EQ(IPCZ_RESULT_INVALID_ARGUMENT,
- ipcz().CreateNode(&kDefaultDriver, IPCZ_INVALID_DRIVER_HANDLE,
- IPCZ_NO_FLAGS, nullptr, nullptr));
+ EXPECT_EQ(
+ IPCZ_RESULT_INVALID_ARGUMENT,
+ ipcz().CreateNode(&kDefaultDriver, IPCZ_NO_FLAGS, nullptr, nullptr));
}
TEST_F(APITest, CreateNode) {
IpczHandle node;
EXPECT_EQ(IPCZ_RESULT_OK,
- ipcz().CreateNode(&kDefaultDriver, IPCZ_INVALID_DRIVER_HANDLE,
- IPCZ_NO_FLAGS, nullptr, &node));
+ ipcz().CreateNode(&kDefaultDriver, IPCZ_NO_FLAGS, nullptr, &node));
EXPECT_EQ(IPCZ_RESULT_OK, ipcz().Close(node, IPCZ_NO_FLAGS, nullptr));
}
diff --git a/src/ipcz/buffer_pool_test.cc b/src/ipcz/buffer_pool_test.cc
index a009ffe..ee21cb2 100644
--- a/src/ipcz/buffer_pool_test.cc
+++ b/src/ipcz/buffer_pool_test.cc
@@ -27,8 +27,7 @@
private:
const Ref<Node> node_{
MakeRefCounted<Node>(Node::Type::kBroker,
- reference_drivers::kSyncReferenceDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
+ reference_drivers::kSyncReferenceDriver)};
};
TEST_F(BufferPoolTest, AddBlockBuffer) {
diff --git a/src/ipcz/message_test.cc b/src/ipcz/message_test.cc
index ee85d11..5257ba2 100644
--- a/src/ipcz/message_test.cc
+++ b/src/ipcz/message_test.cc
@@ -120,9 +120,8 @@
private:
::testing::StrictMock<test::MockDriver> driver_;
- const Ref<Node> node_{MakeRefCounted<Node>(Node::Type::kNormal,
- test::kMockDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
+ const Ref<Node> node_{
+ MakeRefCounted<Node>(Node::Type::kNormal, test::kMockDriver)};
const Ref<DriverTransport> transport_{MakeRefCounted<DriverTransport>(
DriverObject(test::kMockDriver, kTransportHandle))};
std::queue<ReceivedMessage> received_messages_;
diff --git a/src/ipcz/node.cc b/src/ipcz/node.cc
index e5979e6..c8639cd 100644
--- a/src/ipcz/node.cc
+++ b/src/ipcz/node.cc
@@ -91,12 +91,8 @@
Node::Node(Type type,
const IpczDriver& driver,
- IpczDriverHandle driver_node,
const IpczCreateNodeOptions* options)
- : type_(type),
- driver_(driver),
- driver_node_(driver_node),
- options_(CopyOrUseDefaultOptions(options)) {
+ : type_(type), driver_(driver), options_(CopyOrUseDefaultOptions(options)) {
if (type_ == Type::kBroker) {
// Only brokers assign their own names.
assigned_name_ = GenerateRandomName();
diff --git a/src/ipcz/node.h b/src/ipcz/node.h
index c343789..e988cf2 100644
--- a/src/ipcz/node.h
+++ b/src/ipcz/node.h
@@ -51,17 +51,13 @@
};
// Constructs a new node of the given `type`, using `driver` to support IPC.
- // Note that `driver` must outlive the Node. `driver_node` is an arbitrary
- // driver-specific handle that may be used for additional context when
- // interfacing with the driver regarding this node.
+ // Note that `driver` must outlive the Node.
Node(Type type,
const IpczDriver& driver,
- IpczDriverHandle driver_node,
const IpczCreateNodeOptions* options = nullptr);
Type type() const { return type_; }
const IpczDriver& driver() const { return driver_; }
- IpczDriverHandle driver_node() const { return driver_node_; }
const IpczCreateNodeOptions& options() const { return options_; }
// APIObject:
@@ -196,7 +192,6 @@
const Type type_;
const IpczDriver& driver_;
- const IpczDriverHandle driver_node_;
const IpczCreateNodeOptions options_;
absl::Mutex mutex_;
diff --git a/src/ipcz/node_connector_test.cc b/src/ipcz/node_connector_test.cc
index 1d822d6..90d9f24 100644
--- a/src/ipcz/node_connector_test.cc
+++ b/src/ipcz/node_connector_test.cc
@@ -27,13 +27,11 @@
class NodeConnectorTest : public test::Test {
protected:
Ref<Node> CreateBrokerNode() {
- return MakeRefCounted<Node>(Node::Type::kBroker, kDriver,
- IPCZ_INVALID_DRIVER_HANDLE);
+ return MakeRefCounted<Node>(Node::Type::kBroker, kDriver);
}
Ref<Node> CreateNonBrokerNode() {
- return MakeRefCounted<Node>(Node::Type::kNormal, kDriver,
- IPCZ_INVALID_DRIVER_HANDLE);
+ return MakeRefCounted<Node>(Node::Type::kNormal, kDriver);
}
Ref<Portal> CreatePortal(Ref<Node> node) {
diff --git a/src/ipcz/node_link_memory_test.cc b/src/ipcz/node_link_memory_test.cc
index 5871d3f..7f38837 100644
--- a/src/ipcz/node_link_memory_test.cc
+++ b/src/ipcz/node_link_memory_test.cc
@@ -85,12 +85,10 @@
}
private:
- const Ref<Node> node_a_{MakeRefCounted<Node>(Node::Type::kBroker,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
- const Ref<Node> node_b_{MakeRefCounted<Node>(Node::Type::kNormal,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
+ const Ref<Node> node_a_{
+ MakeRefCounted<Node>(Node::Type::kBroker, kTestDriver)};
+ const Ref<Node> node_b_{
+ MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver)};
Ref<NodeLink> link_a_;
Ref<NodeLink> link_b_;
};
@@ -273,8 +271,8 @@
.size = sizeof(options),
.memory_flags = IPCZ_MEMORY_FIXED_PARCEL_CAPACITY,
};
- const Ref<Node> node_c{MakeRefCounted<Node>(
- Node::Type::kNormal, kTestDriver, IPCZ_INVALID_DRIVER_HANDLE, &options)};
+ const Ref<Node> node_c{
+ MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver, &options)};
node_c->SetAssignedName(kOtherTestNonBrokerName);
auto links = ConnectNodes(node_a(), node_c);
diff --git a/src/ipcz/node_link_test.cc b/src/ipcz/node_link_test.cc
index 29c26eb..9d5cff2 100644
--- a/src/ipcz/node_link_test.cc
+++ b/src/ipcz/node_link_test.cc
@@ -57,10 +57,8 @@
using NodeLinkTest = testing::Test;
TEST_F(NodeLinkTest, BasicTransmission) {
- Ref<Node> node0 = MakeRefCounted<Node>(Node::Type::kBroker, kDriver,
- IPCZ_INVALID_DRIVER_HANDLE);
- Ref<Node> node1 = MakeRefCounted<Node>(Node::Type::kNormal, kDriver,
- IPCZ_INVALID_DRIVER_HANDLE);
+ Ref<Node> node0 = MakeRefCounted<Node>(Node::Type::kBroker, kDriver);
+ Ref<Node> node1 = MakeRefCounted<Node>(Node::Type::kNormal, kDriver);
// The choice of OperationContext is arbitrary and irrelevant for this test.
const OperationContext context{OperationContext::kTransportNotification};
diff --git a/src/ipcz/node_test.cc b/src/ipcz/node_test.cc
index 20ebb84..1f3caa6 100644
--- a/src/ipcz/node_test.cc
+++ b/src/ipcz/node_test.cc
@@ -64,15 +64,12 @@
node_link->Activate();
}
- const Ref<Node> broker_{MakeRefCounted<Node>(Node::Type::kBroker,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
- const Ref<Node> node_a_{MakeRefCounted<Node>(Node::Type::kNormal,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
- const Ref<Node> node_b_{MakeRefCounted<Node>(Node::Type::kNormal,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
+ const Ref<Node> broker_{
+ MakeRefCounted<Node>(Node::Type::kBroker, kTestDriver)};
+ const Ref<Node> node_a_{
+ MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver)};
+ const Ref<Node> node_b_{
+ MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver)};
};
TEST_F(NodeTest, EstablishExistingLinks) {
@@ -180,8 +177,8 @@
TEST_F(NodeTest, EstablishLinkFailureWithoutBrokerLink) {
// A node with no broker link can't be introduced to anyone.
bool failed = false;
- const Ref<Node> node_c = MakeRefCounted<Node>(
- Node::Type::kNormal, kTestDriver, IPCZ_INVALID_DRIVER_HANDLE);
+ const Ref<Node> node_c =
+ MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver);
EXPECT_TRUE(broker().GetLink(kNodeAName));
node_c->EstablishLink(kNodeAName, [&](NodeLink* link) {
EXPECT_FALSE(link);
diff --git a/src/ipcz/ref_counted_fragment_test.cc b/src/ipcz/ref_counted_fragment_test.cc
index d5a2243..69c14d5 100644
--- a/src/ipcz/ref_counted_fragment_test.cc
+++ b/src/ipcz/ref_counted_fragment_test.cc
@@ -159,8 +159,7 @@
}
TEST_F(RefCountedFragmentTest, Free) {
- auto node = MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE);
+ auto node = MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver);
DriverMemoryWithMapping buffer = NodeLinkMemory::AllocateMemory(kTestDriver);
auto memory =
NodeLinkMemory::Create(std::move(node), std::move(buffer.mapping));
diff --git a/src/ipcz/router_link_test.cc b/src/ipcz/router_link_test.cc
index 36c23ff..7676daf 100644
--- a/src/ipcz/router_link_test.cc
+++ b/src/ipcz/router_link_test.cc
@@ -117,12 +117,10 @@
}
private:
- const Ref<Node> node_a_{MakeRefCounted<Node>(Node::Type::kBroker,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
- const Ref<Node> node_b_{MakeRefCounted<Node>(Node::Type::kNormal,
- kTestDriver,
- IPCZ_INVALID_DRIVER_HANDLE)};
+ const Ref<Node> node_a_{
+ MakeRefCounted<Node>(Node::Type::kBroker, kTestDriver)};
+ const Ref<Node> node_b_{
+ MakeRefCounted<Node>(Node::Type::kNormal, kTestDriver)};
Ref<NodeLink> node_link_a_;
Ref<NodeLink> node_link_b_;
};
diff --git a/src/test/multinode_test.cc b/src/test/multinode_test.cc
index 3c157b4..8f9ca93 100644
--- a/src/test/multinode_test.cc
+++ b/src/test/multinode_test.cc
@@ -324,8 +324,7 @@
GetDetails().is_broker ? IPCZ_CREATE_NODE_AS_BROKER : IPCZ_NO_FLAGS;
ABSL_ASSERT(node_ == IPCZ_INVALID_HANDLE);
const IpczResult result =
- ipcz().CreateNode(&test_driver_->GetIpczDriver(),
- IPCZ_INVALID_DRIVER_HANDLE, flags, nullptr, &node_);
+ ipcz().CreateNode(&test_driver_->GetIpczDriver(), flags, nullptr, &node_);
ABSL_ASSERT(result == IPCZ_RESULT_OK);
}
diff --git a/src/test/test_base.cc b/src/test/test_base.cc
index 50dcd2a..f20617e 100644
--- a/src/test/test_base.cc
+++ b/src/test/test_base.cc
@@ -23,8 +23,7 @@
const IpczDriver& driver,
IpczCreateNodeFlags flags,
IpczHandle& handle) {
- const IpczResult result = ipcz.CreateNode(&driver, IPCZ_INVALID_DRIVER_HANDLE,
- flags, nullptr, &handle);
+ const IpczResult result = ipcz.CreateNode(&driver, flags, nullptr, &handle);
ASSERT_EQ(IPCZ_RESULT_OK, result);
}