Giter VIP home page Giter VIP logo

Comments (7)

gunesacar avatar gunesacar commented on June 6, 2024 1

Here are the mutation events that add and remove the social proof message on tkmaxx.com.

social-proof-1

Removal is done by adding t098-hide to the class name:
social-proof-2

from dark-patterns.

gunesacar avatar gunesacar commented on June 6, 2024 1

Next steps we discussed in the meeting today:

  • only process mutation events for elements in the viewport
  • start capturing events after onload
  • find the segment responsible for each element
  • log all mut. evt,. details, element attributes (style, innerText, innerHtml) and segment attributes
  • try https://github.com/rafaelw/mutation-summary to see if it'll make the event processing simpler and faster

from dark-patterns.

gunesacar avatar gunesacar commented on June 6, 2024

I started a new branch of OpenWPM and added the mutation observer code. Here are observer console logs from two pages: https://gist.github.com/gunesacar/dd1b5db95bcc5d8ea04d5b9f2cf447b1

I excluded logs created during the page load.

If you can give me a short list of interesting pages to check, I can get us the mutation observer logs.

from dark-patterns.

aruneshmathur avatar aruneshmathur commented on June 6, 2024

https://www.the-house.com/ac3asw06bs18zz-arcteryx-vests.html [Look for stock notifications on click]

https://voe21.com/collections/all-products-1/products/2018-version-of-anti-theft-backpack [Look for the countdown clock and social proof]

https://www.tkmaxx.com/women/activewear/outdoor/pastel-blue-lightweight-padded-milo-jacket/p/07026204 [Social proof]

We also need a way to organize these logs together based on target.

from dark-patterns.

aruneshmathur avatar aruneshmathur commented on June 6, 2024

What other records do we see? Could you please share a log for this website (post page load)?

from dark-patterns.

gunesacar avatar gunesacar commented on June 6, 2024

Sure, all three are here: https://gist.github.com/gunesacar/fddfc3e41001ea0aa1e90dccd1546193

Here are the logs voe21, I filtered them to better show the countdown events. Scroll right to see the timer countdown.

untitled:2: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:6: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "19" }  2018-version-of-anti-theft-backpack:646:11
untitled:10: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "4" }  2018-version-of-anti-theft-backpack:646:11
untitled:18: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:22: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:26: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "19" }  2018-version-of-anti-theft-backpack:646:11
untitled:30: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "3" }  2018-version-of-anti-theft-backpack:646:11
untitled:38: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:42: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:46: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "19" }  2018-version-of-anti-theft-backpack:646:11
untitled:50: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "2" }  2018-version-of-anti-theft-backpack:646:11
untitled:58: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:62: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:66: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "19" }  2018-version-of-anti-theft-backpack:646:11
untitled:70: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "1" }  2018-version-of-anti-theft-backpack:646:11
untitled:78: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:82: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:86: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "19" }  2018-version-of-anti-theft-backpack:646:11
untitled:90: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:101: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:105: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "0" }  2018-version-of-anti-theft-backpack:646:11
untitled:109: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "18" }  2018-version-of-anti-theft-backpack:646:11
untitled:113: MutationRecord { type: "attributes", target: <span.soon-group.soon-group-sub>, addedNodes: NodeList[0], removedNodes: NodeList[0], previousSibling: null, nextSibling: null, attributeName: "data-value", attributeNamespace: null, oldValue: "59" }  2018-version-of-anti-theft-backpack:646:11

from dark-patterns.

gunesacar avatar gunesacar commented on June 6, 2024

We instead used Mutation Summary library, which worked more efficiently and appear to capture all the changes we need. The relevant issue is here: #14

from dark-patterns.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.