Skip to content

chore: isolate page in new_context that will be cleaned by ferrum#592

Merged
yann120 merged 2 commits into
mainfrom
chore/isolate-browser-context
Jul 1, 2026
Merged

chore: isolate page in new_context that will be cleaned by ferrum#592
yann120 merged 2 commits into
mainfrom
chore/isolate-browser-context

Conversation

@yann120

@yann120 yann120 commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

test avec 5000 puis 10000 sans relancer entre les deux
607250692-0e228133-d389-44ad-b27d-c9cdbd413a65

J'ai remarqué avec la commande suivante que des fenetres ouvertes en popup ne se ferment pas :

watch -n 0.5 '
docker compose exec jobs ruby -r net/http -r json -e '\''Dir["/tmp/chrome-*/DevToolsActivePort"].sort.each do |path|
  port = File.readlines(path).first.to_s.strip

  begin
    targets = JSON.parse(Net::HTTP.get(URI("http://127.0.0.1:#{port}/json/list")))
  rescue
    next
  end

  next if targets.empty?

  puts "### #{File.dirname(path)} port=#{port} targets=#{targets.size}"
  targets.each { |target| puts [target["type"], target["url"], target["title"]].join(" | ") }
end'\''
'

Ex avant, le site tarot-ana.fr s'ouvrait et restait ouvert pendant toute la durée de vie du navigateur
Maintenant ces fenetres popup se ferment avec ce fix.

Mais, il y a encore les service worker qui restent ouvert : a voir dans un autre ticket ?

service_worker | https://usseldallier.fr/superpwa-sw.js?2.2.2 | Service Worker https://usseldallier.fr/superpwa-sw.js?2.2.2
service_worker | https://www.saints-en-puisaye.fr/mentions-legales/sw.js | Service Worker https://www.saints-en-puisaye.fr/mentions-legales/sw.js
service_worker | https://www.semarey.fr/mentions-legales/sw.js | Service Worker https://www.semarey.fr/mentions-legales/sw.js
service_worker | https://www.toutry.fr/mentions-legales/sw.js | Service Worker https://www.toutry.fr/mentions-legales/sw.js
service_worker | https://www.saintprix.fr/?wp_service_worker=1 | Service Worker https://www.saintprix.fr/?wp_service_worker=1
service_worker | https://www.sauzet-drome.fr/runtime-service-worker.js?v=3 | Service Worker https://www.sauzet-drome.fr/runtime-service-worker.js?v=3

A tester peut etre par la suite : fusion jemalloc + new_context ?

@Josyann

Josyann commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator
image image

On est pas du tout bon en local, j'ai encore énormément de process chrome + la RAM ne redescend pas après les imports. On en discute demain !

Comment thread app/models/browser.rb

def create_page
browser.create_page.tap do |page|
browser.create_page(new_context: true) do |page|

@yann120 yann120 Jun 17, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/rubycdp/ferrum/blob/9fae889c724ab4388bee2c5f54a440e0e095b86a/lib/ferrum/browser.rb#L146
Ici on ouvre maintenant une page dans un contexte isolé.
Et Ferrum s'occupe a la fin de fermer la page et le contexte

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans le changelog, on a une meilleur explication :

Ferrum::Browser#create_page accepts now new_context: true which can create a page in incognito context, and yields
a block with this page, after which the page is closed.

https://github.com/rubycdp/ferrum/releases/tag/v0.12

@yann120 yann120 force-pushed the chore/isolate-browser-context branch from 8782ae5 to cc17f6e Compare June 18, 2026 13:49
@yann120 yann120 marked this pull request as ready for review June 18, 2026 13:52
@yann120 yann120 requested a review from Josyann June 18, 2026 13:52
@yann120 yann120 added the chore Technical task label Jun 30, 2026

@Josyann Josyann left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oui

@yann120 yann120 merged commit 9458967 into main Jul 1, 2026
10 checks passed
@yann120 yann120 deleted the chore/isolate-browser-context branch July 1, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Technical task

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CHORE] Fermer les fenetres popup ouverte après avoir terminé de visiter la page

2 participants