GoogleChromeLabs / chromium-bidi

Implementation of WebDriver BiDi for Chromium
https://googlechromelabs.github.io/chromium-bidi/
Apache License 2.0
90 stars 30 forks source link

OOPIFs are not recovered on reconnect #2362

Closed OrKoN closed 2 months ago

OrKoN commented 3 months ago

The test from https://github.com/puppeteer/puppeteer/pull/12677/files

    const {server, page, puppeteer, browser} = state;

    await page.goto(server.EMPTY_PAGE);
    const frame1Promise = page.waitForFrame(frame => {
      return page.frames().indexOf(frame) === 1;
    });
    const frame2Promise = page.waitForFrame(frame => {
      return page.frames().indexOf(frame) === 2;
    });
    await attachFrame(
      page,
      'frame1',
      server.CROSS_PROCESS_PREFIX + '/frames/one-frame.html'
    );
    await Promise.all([frame1Promise, frame2Promise]);
    const dump1 = await dumpFrames(page.mainFrame());

    using browserTwo = await puppeteer.connect({
      browserWSEndpoint: browser.wsEndpoint(),
      protocol: browser.protocol,
    });
    const pages = await browserTwo.pages();
    const emptyPages = pages.filter(page => {
      return page.url() === server.EMPTY_PAGE;
    });
    expect(emptyPages.length).toBe(1);
    const dump2 = await dumpFrames(emptyPages[0]!.mainFrame());
    expect(dump1).toEqual(dump2);

it looks like chromium-bidi does not recover out-of-process iframes on reconnect.

OrKoN commented 3 months ago

cc @sadym-chromium

Lightning00Blade commented 2 months ago

@sadym-chromium Should this be closed?

sadym-chromium commented 2 months ago

fixed by https://github.com/GoogleChromeLabs/chromium-bidi/pull/2381