diff --git a/browser/components/newtab/lib/DiscoveryStreamFeed.jsm b/browser/components/newtab/lib/DiscoveryStreamFeed.jsm index 8bacb3c29ed8..da40a471cb51 100644 --- a/browser/components/newtab/lib/DiscoveryStreamFeed.jsm +++ b/browser/components/newtab/lib/DiscoveryStreamFeed.jsm @@ -978,13 +978,6 @@ this.DiscoveryStreamFeed = class DiscoveryStreamFeed { items.map(item => this.scoreItem(item, personalizedByType)) ) ) - // Remove spocs that are scored too low. - .filter(s => { - if (s.score >= s.min_score) { - return true; - } - return false; - }) // Sort by highest scores. .sort(this.sortItem); @@ -993,7 +986,6 @@ this.DiscoveryStreamFeed = class DiscoveryStreamFeed { async scoreItem(item, personalizedByType) { item.score = item.item_score; - item.min_score = item.min_score || 0; if (item.score !== 0 && !item.score) { item.score = 1; } diff --git a/browser/components/newtab/lib/TopStoriesFeed.jsm b/browser/components/newtab/lib/TopStoriesFeed.jsm index 4b7b89bda6bd..0b1426e0b634 100644 --- a/browser/components/newtab/lib/TopStoriesFeed.jsm +++ b/browser/components/newtab/lib/TopStoriesFeed.jsm @@ -210,9 +210,7 @@ this.TopStoriesFeed = class TopStoriesFeed { this.spocCampaignMap = new Map( body.spocs.map(s => [s.id, `${s.campaign_id}`]) ); - this.spocs = this.transform(body.spocs).filter( - s => s.score >= s.min_score - ); + this.spocs = this.transform(body.spocs); this.cleanUpCampaignImpressionPref(); } this.storiesLastUpdated = Date.now(); @@ -237,9 +235,7 @@ this.TopStoriesFeed = class TopStoriesFeed { this.spocCampaignMap = new Map( data.stories.spocs.map(s => [s.id, `${s.campaign_id}`]) ); - this.spocs = this.transform(data.stories.spocs).filter( - s => s.score >= s.min_score - ); + this.spocs = this.transform(data.stories.spocs); this.cleanUpCampaignImpressionPref(); } } @@ -273,7 +269,6 @@ this.TopStoriesFeed = class TopStoriesFeed { image: this.normalizeUrl(s.image_src), referrer: this.stories_referrer, url: s.url, - min_score: s.min_score || 0, score: s.item_score || 1, spoc_meta: this.show_spocs ? { campaign_id: s.campaign_id, caps: s.caps } diff --git a/browser/components/newtab/test/unit/lib/DiscoveryStreamFeed.test.js b/browser/components/newtab/test/unit/lib/DiscoveryStreamFeed.test.js index d5a70da0ea6d..f42226214105 100644 --- a/browser/components/newtab/test/unit/lib/DiscoveryStreamFeed.test.js +++ b/browser/components/newtab/test/unit/lib/DiscoveryStreamFeed.test.js @@ -877,7 +877,7 @@ describe("DiscoveryStreamFeed", () => { title: "", sponsor: "", sponsored_by_override: undefined, - items: [{ id: "data", min_score: 0, score: 1 }], + items: [{ id: "data", score: 1 }], }, }, lastUpdated: 0, @@ -885,7 +885,7 @@ describe("DiscoveryStreamFeed", () => { assert.deepEqual( feed.store.getState().DiscoveryStream.spocs.data.spocs.items[0], - { id: "data", min_score: 0, score: 1 } + { id: "data", score: 1 } ); }); it("should normalizeSpocsItems for older spoc data", async () => { @@ -899,7 +899,7 @@ describe("DiscoveryStreamFeed", () => { assert.deepEqual( feed.store.getState().DiscoveryStream.spocs.data.spocs.items[0], - { id: "data", min_score: 0, score: 1 } + { id: "data", score: 1 } ); }); it("should call personalizationVersionOverride with feature_flags", async () => { @@ -937,7 +937,7 @@ describe("DiscoveryStreamFeed", () => { context: "", sponsor: "", sponsored_by_override: undefined, - items: [{ id: "data", score: 1, min_score: 0 }], + items: [{ id: "data", score: 1 }], }, placement2: { title: "", @@ -972,7 +972,7 @@ describe("DiscoveryStreamFeed", () => { context: "context", sponsor: "", sponsored_by_override: undefined, - items: [{ id: "data", score: 1, min_score: 0 }], + items: [{ id: "data", score: 1 }], }, }); }); @@ -1173,26 +1173,28 @@ describe("DiscoveryStreamFeed", () => { it("should sort based on item_score", async () => { const { data: result } = await feed.scoreItems([ - { id: 2, flight_id: 2, item_score: 0.8, min_score: 0.1 }, - { id: 3, flight_id: 3, item_score: 0.7, min_score: 0.1 }, - { id: 1, flight_id: 1, item_score: 0.9, min_score: 0.1 }, + { id: 2, flight_id: 2, item_score: 0.8 }, + { id: 4, flight_id: 4, item_score: 0.5 }, + { id: 3, flight_id: 3, item_score: 0.7 }, + { id: 1, flight_id: 1, item_score: 0.9 }, ]); assert.deepEqual(result, [ - { id: 1, flight_id: 1, item_score: 0.9, score: 0.9, min_score: 0.1 }, - { id: 2, flight_id: 2, item_score: 0.8, score: 0.8, min_score: 0.1 }, - { id: 3, flight_id: 3, item_score: 0.7, score: 0.7, min_score: 0.1 }, + { id: 1, flight_id: 1, item_score: 0.9, score: 0.9 }, + { id: 2, flight_id: 2, item_score: 0.8, score: 0.8 }, + { id: 3, flight_id: 3, item_score: 0.7, score: 0.7 }, + { id: 4, flight_id: 4, item_score: 0.5, score: 0.5 }, ]); }); it("should sort based on priority", async () => { const { data: result } = await feed.scoreItems([ - { id: 6, flight_id: 6, priority: 2, item_score: 0.7, min_score: 0.1 }, - { id: 2, flight_id: 3, priority: 1, item_score: 0.2, min_score: 0.1 }, - { id: 4, flight_id: 4, item_score: 0.6, min_score: 0.1 }, - { id: 5, flight_id: 5, priority: 2, item_score: 0.8, min_score: 0.1 }, - { id: 3, flight_id: 3, item_score: 0.8, min_score: 0.1 }, - { id: 1, flight_id: 1, priority: 1, item_score: 0.3, min_score: 0.1 }, + { id: 6, flight_id: 6, priority: 2, item_score: 0.7 }, + { id: 2, flight_id: 3, priority: 1, item_score: 0.2 }, + { id: 4, flight_id: 4, item_score: 0.6 }, + { id: 5, flight_id: 5, priority: 2, item_score: 0.8 }, + { id: 3, flight_id: 3, item_score: 0.8 }, + { id: 1, flight_id: 1, priority: 1, item_score: 0.3 }, ]); assert.deepEqual(result, [ @@ -1202,7 +1204,6 @@ describe("DiscoveryStreamFeed", () => { priority: 1, score: 0.3, item_score: 0.3, - min_score: 0.1, }, { id: 2, @@ -1210,7 +1211,6 @@ describe("DiscoveryStreamFeed", () => { priority: 1, score: 0.2, item_score: 0.2, - min_score: 0.1, }, { id: 5, @@ -1218,7 +1218,6 @@ describe("DiscoveryStreamFeed", () => { priority: 2, score: 0.8, item_score: 0.8, - min_score: 0.1, }, { id: 6, @@ -1226,46 +1225,19 @@ describe("DiscoveryStreamFeed", () => { priority: 2, score: 0.7, item_score: 0.7, - min_score: 0.1, }, - { id: 3, flight_id: 3, item_score: 0.8, score: 0.8, min_score: 0.1 }, - { id: 4, flight_id: 4, item_score: 0.6, score: 0.6, min_score: 0.1 }, - ]); - }); - - it("should remove items with scores lower than min_score", async () => { - const { data: result } = await feed.scoreItems([ - { id: 2, flight_id: 2, item_score: 0.8, min_score: 0.9 }, - { id: 3, flight_id: 3, item_score: 0.7, min_score: 0.7 }, - { id: 1, flight_id: 1, item_score: 0.9, min_score: 0.8 }, - ]); - - assert.deepEqual(result, [ - { id: 1, flight_id: 1, item_score: 0.9, score: 0.9, min_score: 0.8 }, - { id: 3, flight_id: 3, item_score: 0.7, score: 0.7, min_score: 0.7 }, + { id: 3, flight_id: 3, item_score: 0.8, score: 0.8 }, + { id: 4, flight_id: 4, item_score: 0.6, score: 0.6 }, ]); }); it("should add a score prop to spocs", async () => { const { data: result } = await feed.scoreItems([ - { flight_id: 1, item_score: 0.9, min_score: 0.1 }, + { flight_id: 1, item_score: 0.9 }, ]); assert.equal(result[0].score, 0.9); }); - it("should score items using item_score and min_score", async () => { - const { data: result } = await feed.scoreItems([ - { item_score: 0.8, min_score: 0.1 }, - { item_score: 0.5, min_score: 0.6 }, - { item_score: 0.7, min_score: 0.1 }, - { item_score: 0.9, min_score: 0.1 }, - ]); - assert.deepEqual(result, [ - { item_score: 0.9, score: 0.9, min_score: 0.1 }, - { item_score: 0.8, score: 0.8, min_score: 0.1 }, - { item_score: 0.7, score: 0.7, min_score: 0.1 }, - ]); - }); }); describe("#filterBlocked", () => { @@ -2547,12 +2519,10 @@ describe("DiscoveryStreamFeed", () => { recommendations: [ { id: "first", - min_score: 0.5, item_score: 0.7, }, { id: "second", - min_score: 0.5, item_score: 0.6, }, ], @@ -2566,17 +2536,14 @@ describe("DiscoveryStreamFeed", () => { recommendations: [ { id: "third", - min_score: 0.5, item_score: 0.4, }, { id: "fourth", - min_score: 0.5, item_score: 0.6, }, { id: "fifth", - min_score: 0.5, item_score: 0.8, }, ], @@ -2593,13 +2560,11 @@ describe("DiscoveryStreamFeed", () => { recommendations: [ { id: "second", - min_score: 0.5, item_score: 0.6, score: 0.6, }, { id: "first", - min_score: 0.5, item_score: 0.7, score: 0.7, }, @@ -2614,16 +2579,19 @@ describe("DiscoveryStreamFeed", () => { recommendations: [ { id: "fifth", - min_score: 0.5, item_score: 0.8, score: 0.8, }, { id: "fourth", - min_score: 0.5, item_score: 0.6, score: 0.6, }, + { + id: "third", + item_score: 0.4, + score: 0.4, + }, ], settings: { recsExpireTime, @@ -2682,15 +2650,12 @@ describe("DiscoveryStreamFeed", () => { placement1: { items: [ { - min_score: 0.5, item_score: 0.6, }, { - min_score: 0.5, item_score: 0.4, }, { - min_score: 0.5, item_score: 0.8, }, ], @@ -2698,11 +2663,9 @@ describe("DiscoveryStreamFeed", () => { placement2: { items: [ { - min_score: 0.5, item_score: 0.6, }, { - min_score: 0.5, item_score: 0.8, }, ], @@ -2719,26 +2682,26 @@ describe("DiscoveryStreamFeed", () => { placement1: { items: [ { - min_score: 0.5, score: 0.8, item_score: 0.8, }, { - min_score: 0.5, score: 0.6, item_score: 0.6, }, + { + score: 0.4, + item_score: 0.4, + }, ], }, placement2: { items: [ { - min_score: 0.5, score: 0.8, item_score: 0.8, }, { - min_score: 0.5, score: 0.6, item_score: 0.6, }, @@ -2860,21 +2823,6 @@ describe("DiscoveryStreamFeed", () => { assert.isTrue(!feed.affinityProvider); }); }); - describe("#scoreItems", () => { - it("should score items using item_score and min_score", async () => { - const { data: result } = await feed.scoreItems([ - { item_score: 0.8, min_score: 0.1 }, - { item_score: 0.5, min_score: 0.6 }, - { item_score: 0.7, min_score: 0.1 }, - { item_score: 0.9, min_score: 0.1 }, - ]); - assert.deepEqual(result, [ - { item_score: 0.9, score: 0.9, min_score: 0.1 }, - { item_score: 0.8, score: 0.8, min_score: 0.1 }, - { item_score: 0.7, score: 0.7, min_score: 0.1 }, - ]); - }); - }); describe("#scoreItem", () => { it("should call calculateItemRelevanceScore with affinity provider", async () => { const item = {}; @@ -2900,16 +2848,5 @@ describe("DiscoveryStreamFeed", () => { const result = await feed.scoreItem(item); assert.equal(result.score, 0.6); }); - it("should add min_score of 0 if undefined", async () => { - const item = {}; - feed._prefCache.config = { - personalized: true, - }; - feed.affinityProvider = { - calculateItemRelevanceScore: () => 0.5, - }; - const result = await feed.scoreItem(item); - assert.equal(result.min_score, 0); - }); }); }); diff --git a/browser/components/newtab/test/unit/lib/TopStoriesFeed.test.js b/browser/components/newtab/test/unit/lib/TopStoriesFeed.test.js index 2dd847a7973d..dfbda3dbe7e4 100644 --- a/browser/components/newtab/test/unit/lib/TopStoriesFeed.test.js +++ b/browser/components/newtab/test/unit/lib/TopStoriesFeed.test.js @@ -500,7 +500,6 @@ describe("Top Stories Feed", () => { referrer: "referrer", url: "rec-url", hostname: "rec-url", - min_score: 0, score: 1, spoc_meta: {}, }, @@ -570,7 +569,6 @@ describe("Top Stories Feed", () => { referrer: "referrer", url: "rec-url", hostname: "domain", - min_score: 0, score: 1, spoc_meta: {}, }, @@ -1734,7 +1732,6 @@ describe("Top Stories Feed", () => { referrer: "referrer", url: "rec-url", hostname: "rec-url", - min_score: 0, score: 0.98, spoc_meta: {}, }, @@ -1806,7 +1803,6 @@ describe("Top Stories Feed", () => { hostname: undefined, icon: undefined, image: undefined, - min_score: 0, referrer: "referrer", score: 1, spoc_meta: {},