digraph graphname {
graph [fontname = "helvetica", fontsize=11];
node [shape="box", fontname = "helvetica", fontsize=11];
edge [fontname = "helvetica", fontsize=11];
rankdir="TB";
subgraph cluster_browser {
label = "Browser Process";
subgraph cluster_proxy_tree {
label = "Proxy accessibility tree";
rankdir="TB";
root_proxy [label="Root proxy"];
root_proxy -> { button_proxy, other_proxy } [dir=none];
button_proxy [label="Button proxy"];
other_proxy [label="..."];
}
}
subgraph cluster_render {
label = "Render Process";
subgraph cluster_ax_tree {
label = "Accessibility tree";
rankdir="TB";
root_node [label="Root"];
root_node -> { button_node, other_node } [dir=none];
button_node [label="Button"];
other_node [label="..."];
}
subgraph cluster_dom_tree {
label = "DOM tree";
rankdir="TB";
root_dom_node [label="<body>"];
root_dom_node -> { button_dom_node, other_dom_node } [dir=none];
root_dom_node -> other_dom_node;
button_dom_node [label="<button>"];
other_dom_node [label="..."];
}
}
os [label="Operating System"];
os -> root_proxy [dir=both];
root_proxy -> root_node [dir=both, label="Blocking IPC"];
root_node -> root_dom_node [dir=both];
}