func (c *IndexedDB) RequestDatabaseNamesWithParams(v *IndexedDBRequestDatabaseNamesParams) ([]string, error) {
	resp, err := gcdmessage.SendCustomReturn(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.requestDatabaseNames", Params: v})
	if err != nil {
		return nil, err
	}
	var chromeData struct {
		Result struct {
			DatabaseNames []string
		}
	}
	if resp == nil {
		return nil, &gcdmessage.ChromeEmptyResponseErr{}
	}
	cerr := &gcdmessage.ChromeErrorResponse{}
	json.Unmarshal(resp.Data, cerr)
	if cerr != nil && cerr.Error != nil {
		return nil, &gcdmessage.ChromeRequestErr{Resp: cerr}
	}
	if err := json.Unmarshal(resp.Data, &chromeData); err != nil {
		return nil, err
	}
	return chromeData.Result.DatabaseNames, nil
}
RequestDatabaseNamesWithParams - Requests database names for given security origin.
Returns -  databaseNames - Database names for origin.
package gcdapi
import (
	"encoding/json"
	"github.com/wirepair/gcd/gcdmessage"
)
type IndexedDBDatabaseWithObjectStores struct {
	Name         string                  `json:"name"`          
	Version      int                     `json:"version"`       
	ObjectStores []*IndexedDBObjectStore `json:"objectStores"`  
}
type IndexedDBObjectStore struct {
	Name          string                       `json:"name"`           
	KeyPath       *IndexedDBKeyPath            `json:"keyPath"`        
	AutoIncrement bool                         `json:"autoIncrement"`  
	Indexes       []*IndexedDBObjectStoreIndex `json:"indexes"`        
}
type IndexedDBObjectStoreIndex struct {
	Name       string            `json:"name"`        
	KeyPath    *IndexedDBKeyPath `json:"keyPath"`     
	Unique     bool              `json:"unique"`      
	MultiEntry bool              `json:"multiEntry"`  
}
type IndexedDBKey struct {
	Type   string          `json:"type"`              
	Number float64         `json:"number,omitempty"`  
	String string          `json:"string,omitempty"`  
	Date   float64         `json:"date,omitempty"`    
	Array  []*IndexedDBKey `json:"array,omitempty"`   
}
type IndexedDBKeyRange struct {
	Lower     *IndexedDBKey `json:"lower,omitempty"`  
	Upper     *IndexedDBKey `json:"upper,omitempty"`  
	LowerOpen bool          `json:"lowerOpen"`        
	UpperOpen bool          `json:"upperOpen"`        
}
type IndexedDBDataEntry struct {
	Key        *RuntimeRemoteObject `json:"key"`         
	PrimaryKey *RuntimeRemoteObject `json:"primaryKey"`  
	Value      *RuntimeRemoteObject `json:"value"`       
}
type IndexedDBKeyPath struct {
	Type   string   `json:"type"`              
	String string   `json:"string,omitempty"`  
	Array  []string `json:"array,omitempty"`   
}
type IndexedDB struct {
	target gcdmessage.ChromeTargeter
}
func NewIndexedDB(target gcdmessage.ChromeTargeter) *IndexedDB {
	c := &IndexedDB{target: target}
	return c
}
type IndexedDBClearObjectStoreParams struct {
	SecurityOrigin string `json:"securityOrigin"`
	DatabaseName string `json:"databaseName"`
	ObjectStoreName string `json:"objectStoreName"`
}
func (c *IndexedDB) ClearObjectStoreWithParams(v *IndexedDBClearObjectStoreParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.clearObjectStore", Params: v})
}
func (c *IndexedDB) ClearObjectStore(securityOrigin string, databaseName string, objectStoreName string) (*gcdmessage.ChromeResponse, error) {
	var v IndexedDBClearObjectStoreParams
	v.SecurityOrigin = securityOrigin
	v.DatabaseName = databaseName
	v.ObjectStoreName = objectStoreName
	return c.ClearObjectStoreWithParams(&v)
}
type IndexedDBDeleteDatabaseParams struct {
	SecurityOrigin string `json:"securityOrigin"`
	DatabaseName string `json:"databaseName"`
}
func (c *IndexedDB) DeleteDatabaseWithParams(v *IndexedDBDeleteDatabaseParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.deleteDatabase", Params: v})
}
func (c *IndexedDB) DeleteDatabase(securityOrigin string, databaseName string) (*gcdmessage.ChromeResponse, error) {
	var v IndexedDBDeleteDatabaseParams
	v.SecurityOrigin = securityOrigin
	v.DatabaseName = databaseName
	return c.DeleteDatabaseWithParams(&v)
}
type IndexedDBDeleteObjectStoreEntriesParams struct {
	SecurityOrigin string `json:"securityOrigin"`
	DatabaseName string `json:"databaseName"`
	ObjectStoreName string `json:"objectStoreName"`
	KeyRange *IndexedDBKeyRange `json:"keyRange"`
}
func (c *IndexedDB) DeleteObjectStoreEntriesWithParams(v *IndexedDBDeleteObjectStoreEntriesParams) (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.deleteObjectStoreEntries", Params: v})
}
func (c *IndexedDB) DeleteObjectStoreEntries(securityOrigin string, databaseName string, objectStoreName string, keyRange *IndexedDBKeyRange) (*gcdmessage.ChromeResponse, error) {
	var v IndexedDBDeleteObjectStoreEntriesParams
	v.SecurityOrigin = securityOrigin
	v.DatabaseName = databaseName
	v.ObjectStoreName = objectStoreName
	v.KeyRange = keyRange
	return c.DeleteObjectStoreEntriesWithParams(&v)
}
func (c *IndexedDB) Disable() (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.disable"})
}
func (c *IndexedDB) Enable() (*gcdmessage.ChromeResponse, error) {
	return gcdmessage.SendDefaultRequest(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.enable"})
}
type IndexedDBRequestDataParams struct {
	SecurityOrigin string `json:"securityOrigin"`
	DatabaseName string `json:"databaseName"`
	ObjectStoreName string `json:"objectStoreName"`
	IndexName string `json:"indexName"`
	SkipCount int `json:"skipCount"`
	PageSize int `json:"pageSize"`
	KeyRange *IndexedDBKeyRange `json:"keyRange,omitempty"`
}
func (c *IndexedDB) RequestDataWithParams(v *IndexedDBRequestDataParams) ([]*IndexedDBDataEntry, bool, error) {
	resp, err := gcdmessage.SendCustomReturn(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.requestData", Params: v})
	if err != nil {
		return nil, false, err
	}
	var chromeData struct {
		Result struct {
			ObjectStoreDataEntries []*IndexedDBDataEntry
			HasMore                bool
		}
	}
	if resp == nil {
		return nil, false, &gcdmessage.ChromeEmptyResponseErr{}
	}
	cerr := &gcdmessage.ChromeErrorResponse{}
	json.Unmarshal(resp.Data, cerr)
	if cerr != nil && cerr.Error != nil {
		return nil, false, &gcdmessage.ChromeRequestErr{Resp: cerr}
	}
	if err := json.Unmarshal(resp.Data, &chromeData); err != nil {
		return nil, false, err
	}
	return chromeData.Result.ObjectStoreDataEntries, chromeData.Result.HasMore, nil
}
func (c *IndexedDB) RequestData(securityOrigin string, databaseName string, objectStoreName string, indexName string, skipCount int, pageSize int, keyRange *IndexedDBKeyRange) ([]*IndexedDBDataEntry, bool, error) {
	var v IndexedDBRequestDataParams
	v.SecurityOrigin = securityOrigin
	v.DatabaseName = databaseName
	v.ObjectStoreName = objectStoreName
	v.IndexName = indexName
	v.SkipCount = skipCount
	v.PageSize = pageSize
	v.KeyRange = keyRange
	return c.RequestDataWithParams(&v)
}
type IndexedDBRequestDatabaseParams struct {
	SecurityOrigin string `json:"securityOrigin"`
	DatabaseName string `json:"databaseName"`
}
func (c *IndexedDB) RequestDatabaseWithParams(v *IndexedDBRequestDatabaseParams) (*IndexedDBDatabaseWithObjectStores, error) {
	resp, err := gcdmessage.SendCustomReturn(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "IndexedDB.requestDatabase", Params: v})
	if err != nil {
		return nil, err
	}
	var chromeData struct {
		Result struct {
			DatabaseWithObjectStores *IndexedDBDatabaseWithObjectStores
		}
	}
	if resp == nil {
		return nil, &gcdmessage.ChromeEmptyResponseErr{}
	}
	cerr := &gcdmessage.ChromeErrorResponse{}
	json.Unmarshal(resp.Data, cerr)
	if cerr != nil && cerr.Error != nil {
		return nil, &gcdmessage.ChromeRequestErr{Resp: cerr}
	}
	if err := json.Unmarshal(resp.Data, &chromeData); err != nil {
		return nil, err
	}
	return chromeData.Result.DatabaseWithObjectStores, nil
}
func (c *IndexedDB) RequestDatabase(securityOrigin string, databaseName string) (*IndexedDBDatabaseWithObjectStores, error) {
	var v IndexedDBRequestDatabaseParams
	v.SecurityOrigin = securityOrigin
	v.DatabaseName = databaseName
	return c.RequestDatabaseWithParams(&v)
}
type IndexedDBRequestDatabaseNamesParams struct {
	SecurityOrigin string `json:"securityOrigin"`
}