| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
std::vector<raw_ptr<const PageNode>> GetPageNodesToLoad(
const PageNode* page_node) override {
std::vector<raw_ptr<const PageNode, DanglingUntriaged>> to_load =
split_nodes_map_[page_node];
if (to_load.empty()) {
return {page_node};
} else {
return base::ToVector(to_load, [](const auto& node) {
return raw_ptr<const PageNode>(node.get());
});
}
}
void AddTabSplit(std::vector<raw_ptr<const PageNode>> split_nodes) {
// Tab splits are symmetrical: return all pages provided in `split_nodes`
// when looking up any of them. The pointers are converted to
// DanglingUntriaged to safely survive test teardown.
auto dangling_nodes = base::ToVector(split_nodes, [](const auto& node) {
return raw_ptr<const PageNode, DanglingUntriaged>(node.get());
});
for (const PageNode* page_node : split_nodes) {
split_nodes_map_[page_node] = dangling_nodes;
}
}
private:
std::map<const PageNode*,
std::vector<raw_ptr<const PageNode, DanglingUntriaged>>>
split_nodes_map_;Converting from raw_ptr to raw_ptr<DanglingUntriaged> is okay, but the opposite direction isn't.
I feel this part of the change is going to be challenging. What about extracting it out and land everything else?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
std::vector<raw_ptr<const PageNode>> GetPageNodesToLoad(
const PageNode* page_node) override {
std::vector<raw_ptr<const PageNode, DanglingUntriaged>> to_load =
split_nodes_map_[page_node];
if (to_load.empty()) {
return {page_node};
} else {
return base::ToVector(to_load, [](const auto& node) {
return raw_ptr<const PageNode>(node.get());
});
}
}
void AddTabSplit(std::vector<raw_ptr<const PageNode>> split_nodes) {
// Tab splits are symmetrical: return all pages provided in `split_nodes`
// when looking up any of them. The pointers are converted to
// DanglingUntriaged to safely survive test teardown.
auto dangling_nodes = base::ToVector(split_nodes, [](const auto& node) {
return raw_ptr<const PageNode, DanglingUntriaged>(node.get());
});
for (const PageNode* page_node : split_nodes) {
split_nodes_map_[page_node] = dangling_nodes;
}
}
private:
std::map<const PageNode*,
std::vector<raw_ptr<const PageNode, DanglingUntriaged>>>
split_nodes_map_;Converting from raw_ptr to raw_ptr<DanglingUntriaged> is okay, but the opposite direction isn't.
I feel this part of the change is going to be challenging. What about extracting it out and land everything else?
Done, follow-up in https://chromium-review.googlesource.com/8029247
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |