Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
This document shows all the changes and improvements made in each version of
[Page Graph](https://github.com/brave/brave-browser/wiki/PageGraph).

## Version 0.7.5

Fix crashing issue where a disconnected document can cause a crash because
of an error in how the `security origin` was determined by Pagegraph.

## Version 0.7.4

Add `security origin` attribute for `NodeDOMRoot` objects, to explicitly
Expand Down
19 changes: 15 additions & 4 deletions third_party/blink/renderer/core/brave_page_graph/page_graph.cc
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ namespace blink {

namespace {

constexpr char kPageGraphVersion[] = "0.7.4";
constexpr char kPageGraphVersion[] = "0.7.5";
constexpr char kPageGraphUrl[] =
"https://github.com/brave/brave-browser/wiki/PageGraph";

Expand Down Expand Up @@ -325,6 +325,18 @@ static int GetListenerScriptId(blink::EventTarget* event_target,
return listener_function->ScriptId();
}

static void AssignSecurityOriginToNodeDOMRoot(
blink::Document* document,
brave_page_graph::NodeDOMRoot* node_domroot) {
if (document->GetExecutionContext()) {
const auto* security_origin =
document->GetExecutionContext()->GetSecurityOrigin();
if (security_origin) {
node_domroot->SetSecurityOrigin(security_origin->ToString());
}
}
}

} // namespace

// static
Expand Down Expand Up @@ -523,7 +535,7 @@ void PageGraph::DidCommitLoad(blink::LocalFrame* local_frame,
auto* node_domroot = To<NodeDOMRoot>(
GetHTMLElementNode(blink::DOMNodeIds::IdForNode(document)));
node_domroot->SetURL(document->Url());
node_domroot->SetSecurityOrigin(document->TopFrameOrigin()->ToString());
AssignSecurityOriginToNodeDOMRoot(document, node_domroot);
}

void PageGraph::WillSendNavigationRequest(uint64_t identifier,
Expand Down Expand Up @@ -1308,8 +1320,7 @@ void PageGraph::RegisterDocumentNodeCreated(blink::Document* document) {
source_url_ = url;
}

auto security_origin = document->TopFrameOrigin();
dom_root->SetSecurityOrigin(security_origin->ToString());
AssignSecurityOriginToNodeDOMRoot(document, dom_root);

auto execution_context_nodes_it =
execution_context_nodes_.find(execution_context);
Expand Down
Loading