HN user

skaul

755 karma

https://x.com/shivan_kaul https://github.com/shivankaul

Posts25
Comments44
View on HN
chromium-drift.pages.dev 2mo ago

How far behind is each major Chromium browser?

skaul
197pts66
github.com 3mo ago

Bash script to check if you were hit by the axios supply chain attack

skaul
1pts0
brave.com 4mo ago

Why Brave is opposing Google's Android developer registry

skaul
7pts0
brave.com 6mo ago

Brave overhauled its Rust adblock engine with FlatBuffers, cutting memory 75%

skaul
507pts274
shivankaul.com 8mo ago

Comet sends all your URLs to Perplexity servers and there's no way to stop it

skaul
2pts2
pitg.gitlab.io 11mo ago

Browser Fingerprinting in 2025

skaul
5pts1
twitter.com 3y ago

Brave will debounce all Google AMP cache URLs to the publishers' sites

skaul
36pts10
www.thurrott.com 3y ago

DuckDuckGo to Now Block Microsoft Trackers

skaul
26pts0
github.com 5y ago

FLoC Block – Extension to Remove FLoC API from Chrome

skaul
3pts0
shivankaul.com 7y ago

Browser-based consent – the case of WebRTC

skaul
2pts0
shivankaul.com 8y ago

Ethereum Scam on Brian Acton's #deletefacebook Tweet

skaul
2pts1
shivankaul.com 9y ago

Zero-length arrays in C: A cautionary tale

skaul
3pts2
www.nytimes.com 9y ago

S.E.C. To Let All Companies File I.P.O. Documents Secretly

skaul
1pts0
shivankaul.com 9y ago

Show HN: Brief intro to NFA, DFA and how they relate to regexes

skaul
1pts0
www.youtube.com 9y ago

Split Stories by Splitwise

skaul
1pts0
chrome.google.com 9y ago

Show HN: Random news headline every time you open a new tab

skaul
1pts0
shivankaul.com 9y ago

'Clean your desk': My Amazon interview experience

skaul
911pts510
shivankaul.com 9y ago

Show HN: Rubber ducky, for when you need to think things through

skaul
2pts0
chrome.google.com 10y ago

Show HN: PrettyPrintGmail, Chrome Extension to clean up print view for emails

skaul
1pts0
chrome.google.com 10y ago

Transform your cursor into an existentialist statement

skaul
1pts0
shivankaul.com 10y ago

Yet Another Boingo HotSpot Loophole for Free Wi-Fi at Airports

skaul
3pts1
chrome.google.com 10y ago

Show HN: Hide StackOverflow's annoying sidebars

skaul
6pts0
chrome.google.com 11y ago

Show HN: Chrome Extension for Adding Google Maps Search to Omnibox

skaul
1pts0
chrome.google.com 11y ago

Show HN: PrettyPrintGmail, Chrome Extension to clean up printing for emails

skaul
5pts2
chrome.google.com 11y ago

Show HN: Chrome Extension to Replace New Tab Page with Headline from NYTimes

skaul
1pts0

Programming languages need to give the developer a way to iterate (map, fold, for-loop, whatever) over a collection of items. Over time we've come up with more elegant ways of doing this, but as a programmer, until LLMs, you've still had to be actively involved in the control logic. My point is that a developer's relationship with the code is very different now, in a way that wasn't true with previous low-to-high level language climbs.

Programming with LLMs is fundamentally different than going from a lower-level to a higher-level language, even apart from the whole non-determinism thing. With a programming language, you're still writing a for-loop, whether that's in C, Java or Rust. There's language primitives that help you think better in certain languages, but they're still, at the end of the day, code and context that you have to hold in your head and be intimately familiar with.

That changes with LLMs. For now, you can use LLMs to help you code that way; a programming buddy whose code you review. That's soon going to become "quaint" (to quote the author) given the projected productivity gains of agents (and for many developers it already has).

[BOTH FILLED] Brave Software | C++ Engineer, Filterlist Engineer | REMOTE | Full-time

Brave is building a privacy-first browser and a more transparent Web for over 100M users.

On the privacy team, we are looking for:

- C++ Engineer: Working on privacy features in our Chromium-based core engine. Link: https://job-boards.greenhouse.io/brave/jobs/7339167

- Filterlist Engineer: Working on adblocking and JavaScript fixes for websites. Link: https://job-boards.greenhouse.io/brave/jobs/7434948

We are a remote-friendly company with a very-low-meeting culture.

Even if you know the source of the text before you feed it to the model you still need to solve the problem of how to send untrusted text from a user through a model without that untrusted text being able to trigger additional tool calls or actions.

We're exploring taking the action plan that a reasoning model (which sees both trusted and untrusted text) comes up with and passing it to a second model, which doesn't see the untrusted text and which then evaluates it.

The most credible pattern I've seen for that comes from the DeepMind CaMeL paper

Yeah we're aware of the CaMeL paper and are looking into it, but it's definitely challenging from an implementation pov.

Also, I see that we said "The browser should clearly separate the user’s instructions from the website’s contents when sending them as context to the model" in the blog post. That should have been "backend", not "model". Agreed that once you feed both trusted and untrusted tokens into the LLM the output must be considered unsafe.

You're right that if the user logs into a sensitive website, the "isolated browsing" mitigation stops helping. We don't want the user to accidentally end up in that state though. Separately, I can also imagine use-cases for agentic browsing where the user doesn't have to be logged into sensitive websites. Summarizing Hacker News front page, for one.

I haven't seen a single credible technique from anyone that can distinguish content from instructions

You specifically mean that it's ~impossible to distinguish between content and instructions ONCE it is fed to the model, right? I agree with that. I was talking about a prior step, at the browser level. At the point that the query is sent to the backend, the browser would be able to distinguish between web contents and user prompt. This is useful for checking user-alignment of the output of the reasoning model (keeping in mind that the moment you feed in untrusted text into a model all bets are off).

We're actively thinking and working on this, so will have more to announce soon, but this discussion is useful!

you reply to me like I need to be lectured

That's not my intention! Just stating how we're thinking about this.

defense in depth is to prevent one layer failure from getting to the next

We think a separate model can help with one layer of this: checking if the planner model's actions are aligned with the user's request. But we also need guarantees at other layers, like distinguishing web contents from user instructions, or locking down what tools the model has access to in what context. Fundamentally, though, like we said in the blog post:

"The attack we developed shows that traditional Web security assumptions don’t hold for agentic AI, and that we need new security and privacy architectures for agentic browsing."

That was in the blog from the starting, and it's also the most important mitigation we identified immediately when starting to think about building agentic AI into the browser. Isolating agentic browsing while still enabling important use-cases (which is why users want to use agentic browsing in the first place) is the hard part, which is presumably why many browsers are just rolling out agentic capabilities in regular browsing.

(I lead privacy at Brave and am one of the authors)

Instead they believe model alignment, trying to understand when a user is doing a dangerous task, etc. will be enough.

No, we never claimed or believe that those will be enough. Those are just easy things that browser vendors should be doing, and would have prevented this simple attack. These are necessary, not sufficient.

(disclaimer: I lead privacy at Brave and wrote the article)

Windows lets browser apps (more technically, apps that have an `http` or `https` protocol handler registered) to use `SetInputScope` function to set `IS_PRIVATE` for a window. We were able to use that and have it apply for all Brave windows, and thus granularly turn off Recall without affecting non-Recall screen readers or screenshot capabilities.

Signal doesn't have protocol handlers for `http` and `https`, so it can't do the same.

(Disclaimer: I lead privacy at Brave)

Mozilla uses the core protocol for Divvi Up for its privacy-preserving advertising. Brave recently wrote about why we disagree with the design of that system: https://brave.com/blog/mozilla-ppa/. The core difference is that Mozilla's system is a lot more complicated and expensive to operate, and it needs that complexity because they're trying to work with the existing third-party based advertising ecosystem and its enormous financial incentive for ad fraud.

Brave's DP system Nebula is not ads-related and is only used for product analytics, so it's a lot simpler while still preserving user privacy because it's not operating under the same constraints.

I thought this was what MuleSoft was designed to be, though I haven't kept track of what it looks like now

Brave has an option to block cookie notices - you need to enable the "Filter obtrusive cookie notices" list in brave://adblock. https://twitter.com/shivan_kaul/status/1488989740690853888

We're experimenting with blocking cookie notices by default in Nightly. There's webcompat risk - some websites just break if you block the cookie notice. "Works on 90% of websites" is just not good enough when deploying to 50 million Web users.