Tests Application Panel's handling of storages in iframes.

Initial tree...

Application
 Manifest
 Service Workers
 Storage
Storage
 Local Storage
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 Session Storage
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 IndexedDB
  Database-iframe - http://devtools.oopif.test:8000
   Database-iframe
  Database-main-frame - http://127.0.0.1:8000
 Web SQL
 Cookies
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 Trust Tokens
Cache
 Cache Storage
 Application Cache
Background Services
 Background Fetch
 Background Sync
 Notifications
 Payment Handler
 Periodic Background Sync
 Push Messaging
Frames
 top
  indexeddb-in-iframe.html
   indexeddb-in-iframe.html
  inspected-page.html

Remove iframe from page...

Application
 Manifest
 Service Workers
 Storage
Storage
 Local Storage
  http://127.0.0.1:8000
 Session Storage
  http://127.0.0.1:8000
 IndexedDB
  Database-main-frame - http://127.0.0.1:8000
 Web SQL
 Cookies
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 Trust Tokens
Cache
 Cache Storage
 Application Cache
Background Services
 Background Fetch
 Background Sync
 Notifications
 Payment Handler
 Periodic Background Sync
 Push Messaging
Frames
 top
  inspected-page.html

Add iframe to page again...

Application
 Manifest
 Service Workers
 Storage
Storage
 Local Storage
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 Session Storage
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 IndexedDB
  Database-main-frame - http://127.0.0.1:8000
  Database-iframe - http://devtools.oopif.test:8000
   Database-iframe
 Web SQL
 Cookies
  http://127.0.0.1:8000
  http://devtools.oopif.test:8000
 Trust Tokens
Cache
 Cache Storage
 Application Cache
Background Services
 Background Fetch
 Background Sync
 Notifications
 Payment Handler
 Periodic Background Sync
 Push Messaging
Frames
 top
  indexeddb-in-iframe.html
   indexeddb-in-iframe.html
  inspected-page.html

