func (c *LayerTree) CompositingReasonsWithParams(v *LayerTreeCompositingReasonsParams) ([]string, []string, error) {
	resp, err := gcdmessage.SendCustomReturn(c.target, c.target.GetSendCh(), &gcdmessage.ParamRequest{Id: c.target.GetId(), Method: "LayerTree.compositingReasons", Params: v})
	if err != nil {
		return nil, nil, err
	}
	var chromeData struct {
		Result struct {
			CompositingReasons   []string
			CompositingReasonIds []string
		}
	}
	if resp == nil {
		return nil, nil, &gcdmessage.ChromeEmptyResponseErr{}
	}
	cerr := &gcdmessage.ChromeErrorResponse{}
	json.Unmarshal(resp.Data, cerr)
	if cerr != nil && cerr.Error != nil {
		return nil, nil, &gcdmessage.ChromeRequestErr{Resp: cerr}
	}
	if err := json.Unmarshal(resp.Data, &chromeData); err != nil {
		return nil, nil, err
	}
	return chromeData.Result.CompositingReasons, chromeData.Result.CompositingReasonIds, nil
}
CompositingReasonsWithParams - Provides the reasons why the given layer was composited.
Returns -  compositingReasons - A list of strings specifying reasons for the given layer to become composited. compositingReasonIds - A list of strings specifying reason IDs for the given layer to become composited.
package gcdapi
import (
	"github.com/wirepair/gcd/gcdmessage"
)
type LayerTreeScrollRect struct {
	Rect *DOMRect `json:"rect"`  
	Type string   `json:"type"`  
}
type LayerTreeStickyPositionConstraint struct {
	StickyBoxRect                       *DOMRect `json:"stickyBoxRect"`                                  
	ContainingBlockRect                 *DOMRect `json:"containingBlockRect"`                            
	NearestLayerShiftingStickyBox       string   `json:"nearestLayerShiftingStickyBox,omitempty"`        
	NearestLayerShiftingContainingBlock string   `json:"nearestLayerShiftingContainingBlock,omitempty"`  
}
type LayerTreePictureTile struct {
	X       float64 `json:"x"`        
	Y       float64 `json:"y"`        
	Picture string  `json:"picture"`  
}
type LayerTreeLayer struct {
	LayerId                  string                             `json:"layerId"`                             
	ParentLayerId            string                             `json:"parentLayerId,omitempty"`             
	BackendNodeId            int                                `json:"backendNodeId,omitempty"`             
	OffsetX                  float64                            `json:"offsetX"`                             
	OffsetY                  float64                            `json:"offsetY"`                             
	Width                    float64                            `json:"width"`                               
	Height                   float64                            `json:"height"`                              
	Transform                []float64                          `json:"transform,omitempty"`                 
	AnchorX                  float64                            `json:"anchorX,omitempty"`                   
	AnchorY                  float64                            `json:"anchorY,omitempty"`                   
	AnchorZ                  float64                            `json:"anchorZ,omitempty"`                   
	PaintCount               int                                `json:"paintCount"`                          
	DrawsContent             bool                               `json:"drawsContent"`                        
	Invisible                bool                               `json:"invisible,omitempty"`                 
	ScrollRects              []*LayerTreeScrollRect             `json:"scrollRects,omitempty"`               
	StickyPositionConstraint *LayerTreeStickyPositionConstraint `json:"stickyPositionConstraint,omitempty"`  
}
type LayerTreeLayerPaintedEvent struct {
	Method string `json:"method"`
	Params struct {
		LayerId string   `json:"layerId"`  
		Clip    *DOMRect `json:"clip"`     
	} `json:"Params,omitempty"`
}
type LayerTreeLayerTreeDidChangeEvent struct {
	Method string `json:"method"`
	Params struct {
		Layers []*LayerTreeLayer `json:"layers,omitempty"`  
	} `json:"Params,omitempty"`
}
type LayerTree struct {
	target gcdmessage.ChromeTargeter
}
func NewLayerTree(target gcdmessage.ChromeTargeter) *LayerTree {
	c := &LayerTree{target: target}
	return c
}
type LayerTreeCompositingReasonsParams struct {
	LayerId string `json:"layerId"`
}