Skip to content

Commit 1de819c

Browse files
authored
Merge pull request #68 from sohomdatta1/fptp-issues
Fix origin struct incompatibility with fptp
2 parents 98d3a25 + 36164e1 commit 1de819c

File tree

2 files changed

+30
-19
lines changed

2 files changed

+30
-19
lines changed

.github/workflows/chromium-build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
GIT_DIFF: ${{ steps.diff.outputs.diff }}
7171
with:
7272
script: |
73-
const shouldPublish = '${{ steps.get_release.outputs.chromeReleaseVersion }}' != '${{ steps.get_release.outputs.fullVersion }}' || '${{ steps.get_release.outputs.currentGitCommit }}' != '${{ steps.get_release.outputs.commit }}' && process.env.GIT_DIFF != 'empty';
73+
const shouldPublish = '${{ steps.get_release.outputs.chromeReleaseVersion }}' != '${{ steps.get_release.outputs.fullVersion }}' || ( '${{ steps.get_release.outputs.currentGitCommit }}' != '${{ steps.get_release.outputs.commit }}' && process.env.GIT_DIFF != 'empty' );
7474
console.log(`shouldPublish: ${shouldPublish}`);
7575
core.setOutput('shouldPublish', shouldPublish);
7676
- name: Build VisibleV8

post-processor/fptp/main.go

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package fptp
33
import (
44
"database/sql"
55
"encoding/json"
6+
"fmt"
67
"io"
78
"log"
89
"net/url"
10+
"strings"
911

1012
"github.com/lib/pq"
1113
"github.ncsu.edu/jjuecks/vv8-post-processor/core"
@@ -55,6 +57,16 @@ func (agg *fptpAggregator) IngestRecord(ctx *core.ExecutionContext, lineNumber i
5557
return nil
5658
}
5759

60+
func (agg *fptpAggregator) accessEntityPropertyMap(origin string) (*EntityProperty, error) {
61+
for domain, entityProperty := range agg.eMap.EntityPropertyMap {
62+
if strings.Contains(origin, domain) {
63+
return entityProperty, nil
64+
}
65+
}
66+
67+
return nil, fmt.Errorf("no entity property found for origin %s", origin)
68+
}
69+
5870
var firstPartyThirdPartyFields = [...]string{
5971
"sha2",
6072
"root_domain",
@@ -87,10 +99,8 @@ func (agg *fptpAggregator) DumpToPostgresql(ctx *core.AggregationContext, sqlDb
8799

88100
rootURLOrigin := rootURL.Hostname()
89101

90-
var ok bool
91-
92-
agg.firstPartyProperty, ok = agg.eMap.EntityPropertyMap[rootURLOrigin]
93-
if !ok {
102+
agg.firstPartyProperty, err = agg.accessEntityPropertyMap(rootURLOrigin)
103+
if err != nil {
94104
agg.firstPartyProperty = &EntityProperty{
95105
DisplayName: rootURLOrigin,
96106
Tracking: 0.0,
@@ -128,16 +138,17 @@ func (agg *fptpAggregator) DumpToPostgresql(ctx *core.AggregationContext, sqlDb
128138
scriptURLOrigin := scriptURL.Hostname()
129139
originURLOrigin := originURL.Hostname()
130140

131-
scriptProperty, ok := agg.eMap.EntityPropertyMap[scriptURLOrigin]
132-
if !ok {
141+
scriptProperty, err := agg.accessEntityPropertyMap(scriptURLOrigin)
142+
if err != nil {
133143
scriptProperty = &EntityProperty{
134144
DisplayName: scriptURLOrigin,
135145
Tracking: 0.0,
136146
}
137147
agg.eMap.EntityPropertyMap[scriptURLOrigin] = scriptProperty
138148
}
139-
originProperty, ok := agg.eMap.EntityPropertyMap[originURLOrigin]
140-
if !ok {
149+
tracking := scriptProperty.Tracking
150+
originProperty, err := agg.accessEntityPropertyMap(originURLOrigin)
151+
if err != nil {
141152
originProperty = &EntityProperty{
142153
DisplayName: scriptURLOrigin,
143154
Tracking: 0.0,
@@ -149,13 +160,13 @@ func (agg *fptpAggregator) DumpToPostgresql(ctx *core.AggregationContext, sqlDb
149160
script.info.CodeHash.SHA2[:],
150161
rootDomain,
151162
script.info.URL,
152-
script.info.FirstOrigin,
163+
script.info.FirstOrigin.Origin,
153164
agg.firstPartyProperty.DisplayName,
154165
scriptProperty.DisplayName,
155166
originProperty.DisplayName,
156-
scriptProperty.DisplayName != originProperty.DisplayName,
157-
scriptProperty.DisplayName != agg.firstPartyProperty.DisplayName,
158-
agg.eMap.EntityPropertyMap[scriptURLOrigin].Tracking,
167+
scriptProperty.DisplayName == originProperty.DisplayName,
168+
scriptProperty.DisplayName == agg.firstPartyProperty.DisplayName,
169+
tracking,
159170
)
160171

161172
if err != nil {
@@ -198,16 +209,16 @@ func (agg *fptpAggregator) DumpToStream(ctx *core.AggregationContext, stream io.
198209
scriptURLOrigin := scriptURL.Hostname()
199210
originURLOrigin := originURL.Hostname()
200211

201-
scriptProperty, ok := agg.eMap.EntityPropertyMap[scriptURLOrigin]
202-
if !ok {
212+
scriptProperty, err := agg.accessEntityPropertyMap(scriptURLOrigin)
213+
if err != nil {
203214
scriptProperty = &EntityProperty{
204215
DisplayName: scriptURLOrigin,
205216
Tracking: 0.0,
206217
}
207218
agg.eMap.EntityPropertyMap[scriptURLOrigin] = scriptProperty
208219
}
209-
originProperty, ok := agg.eMap.EntityPropertyMap[originURLOrigin]
210-
if !ok {
220+
originProperty, err := agg.accessEntityPropertyMap(originURLOrigin)
221+
if err != nil {
211222
originProperty = &EntityProperty{
212223
DisplayName: scriptURLOrigin,
213224
Tracking: 0.0,
@@ -218,10 +229,10 @@ func (agg *fptpAggregator) DumpToStream(ctx *core.AggregationContext, stream io.
218229
jstream.Encode(core.JSONArray{"firstpartythirdparty", core.JSONObject{
219230
"SHA2": script.info.CodeHash.SHA2[:],
220231
"URL": script.info.URL,
221-
"FirstOrigin": script.info.FirstOrigin,
232+
"FirstOrigin": script.info.FirstOrigin.Origin,
222233
"ScriptProperty": scriptProperty.DisplayName,
223234
"OriginProperty": originProperty.DisplayName,
224-
"ThirdParty": scriptProperty.DisplayName != originProperty.DisplayName,
235+
"ThirdParty": scriptProperty.DisplayName == originProperty.DisplayName,
225236
"Tracking": scriptProperty.Tracking,
226237
}})
227238
}

0 commit comments

Comments
 (0)