Flutter Engine
The Flutter Engine
|
Utf8Decoder
and JsonDecoder
to avoid extra type conversions.VmService
instance has been disposed.4.15
of the spec.closureReceiver
property to Instance
and InstanceRef
.Finalizer
, NativeFinalizer
, and FinalizerEntry
instance kinds.HeapSnapshotGraph.toChunks()
.calculateReferrers
, decodeObjectData
, decodeExternalProperties
, and decodeIdentityHashCodes
parameters to HeapSnapshotGraph.fromChunks()
.RPCErrorKind
:kVmMustBePaused
kCannotAddBreakpoint
kIsolateMustBeRunnable
kIsolateCannotBeResumed
kIsolateIsReloading
kIsolateCannotReload
kIsolateNoReloadChangesApplied
kInvalidTimelineRequest
4.0
of the Dart IO service protocol extensions by making the following changes:updatedSince
parameter of getHttpProfile
from int?
to DateTime?
.timestamp
property of HttpProfile
from int
to DateTime
.events
property to HttpProfileRequestRef
and HttpProfileRequest
.startTime
property of HttpProfileRequestRef
and HttpProfileRequest
from int
to DateTime
.endTime
property of HttpProfileRequestRef
and HttpProfileRequest
from int?
to DateTime?
.events
and method
properties from HttpProfileRequestData
.contentLength
, cookies
, followRedirects
, headers
, maxRedirects
, method
, and persistentConnection
properties of HttpProfileRequestData
nullable.startTime
property of HttpProfileResponseData
from int
to DateTime?
.endTime
property of HttpProfileResponseData
from int?
to DateTime?
.cookies
, headers
, compressionState
, reasonPhrase
, isRedirect
, persistentConnection
, contentLength
, statusCode
, and startTime
properties of HttpProfileResponseData
nullable.isDirect
and port
properties to HttpProfileProxyData
.arguments
property to HttpProfileRequestEvent
.timestamp
property of HttpProfileRequestEvent
from int
to DateTime
.isSocketProfilingAvailable
isHttpTimelineLoggingAvailable
isHttpProfilingAvailable
.startSocketProfiling
pauseSocketProfiling
getHttpEnableTimelineLogging
setHttpEnableTimelineLogging
vmServiceConnect
from package:vm_service/vm_service_io.dart
.RPCError
.wrapFuture
method that can be overridden to add additional logic to each VM service RPC call (like logging, tracking values, etc.).vmServiceConnectUriWithFactory
helper that can create a generic [VmService] instance and connect it to a web socket URI.VmServiceFactory
typedef.VmService.defaultFactory
that provides a VmServiceFactory
method for the VmService
class.4.13
of the spec.librariesAlreadyCompiled
parameter to getSourceReport
RPC.wsUri
property to VmService
. If set, this property can be used to associate a VmService
instance to its targeted VM service based on its URI.4.12
of the spec.TypeParametersRef
; change supertype of TypeParameters
to Obj
.4.11
of the spec.isGetter
and isSetter
properties to FuncRef
and Func
.4.10
of the spec.Breakpoint.isSyntheticAsyncContinuation
.dap
event stream extensions.package:dds
.4.7
of the spec.Stack.awaiterFrames
.FrameKind.kAsyncActivation
.4.6
of the spec.getPerfettoCpuSamples
RPC.InstanceKind.TypeRef
.4.5
of the spec.getPerfettoVMTimeline
RPC.4.4
of the spec.label
property to InstanceRef
.kUserTag
to InstanceKind
.VmServerConnection
from converting SentinelException
s into RPCError
s.4.3
of the spec.isSealed
, isMixinClass
, isBaseClass
, isInterfaceClass
, and isFinal
properties to Class
.toJson()
methods.4.2
of the spec.getInstancesAsList
RPC..toJson()
on int
s.HttpProfileRequestRef.id
type from int
to String
.SocketStatistic.id
type from int
to String
.ext.dart.io.getHttpProfileRequest
id
parameter type from int
to String
.ext.dart.io.httpEnableTimelineLogging
parameter from 'enable' to 'enabled'..toJson()
on String
s.4.1
of the spec.includeSubclasses
and includeImplementers
parameters to getInstances
.4.0
of the spec.WeakReference
's target
, WeakProperty
's key
and value
, and MirrorReference
's mirrorReferent
.Set
, Record
, and RecordType
to InstanceKind
.decl
property of BoundField
.name
property to BoundField
.parentListIndex
property of InboundReference
.parentField
property of InboundReference
from FieldRef
to FieldRef|String|int
.parentListIndex
property of RetainingObject
.parentField
property of RetainingObject
from String
to String|int
.timeSpan
property from CpuSamples
.timeSpan
property from CpuSamplesEvent
.3.61
of the spec.isolateGroupId
property to @Isolate
and Isolate
.3.60
of the spec.gcType
property to Event
.3.59
of the spec.abstract
flag to FuncRef
.required
keyword from most of the named parameters in the constructors of the Dart API objects.3.58
of the spec.local
parameter to lookupResolvedPackageUris
RPC.3.57
of the spec.libraryFilters
parameter to getSourceReport
RPC.FieldRef
and FuncRef
.SocketStatistic
:endTime
lastReadTime
lastWriteTime
UriList.uris
from dynamic
to List<String?>?
.3.56
of the spec.line
and column
properties to SourceLocation
.SourceReportKind
, BranchCoverage
, which reports branch level coverage information.3.55
of the spec.streamCpuSamplesWithUserTag
RPC.3.54
of the spec.Event.cpuSamples
from CpuSamples
to CpuSamplesEvent
, which is less expensive to generate and serialize.CpuSamplesEvent
object.3.53
of the spec.setIsolatePauseMode
RPC.setExceptionPauseMode
in favor of setIsolatePauseMode
.3.52
of the spec.lookupResolvedPackageUris
and lookupPackageUris
RPCs and UriList
type.3.51
of the spec.reportLines
parameter to getSourceReport
RPC.3.48
of the spec.shows
and hides
properties to LibraryDependency
.Profiler
stream, UserTagChanged
event kind, and updatedTag
and previousTag
properties to Event
.3.46
of the spec.sourcePosition
properties into ClassRef
, FieldRef
, and FuncRef
.Context
.setBreakpointState
RPC and updated Breakpoint
class to include enabled
property.getHttpProfile
and clearHttpProfile
dart:io
service extensions.StackTrace
s are now attached to RPCError
s and SentinelException
s.identityHashCode
property to InstanceRef
and Instance
.HeapSnapshot.classes
and the sentinel HeapSnapshotObject
was omitted from HeapSnapshot.objects
identityHashCode
property to HeapSnapshotObject
, which can be used to compare objects across heap snapshots.successors
iterable to HeapSnapshotObject
, which provides a convenient way to access children of a given object.klass
getter to HeapSnapshotObject
.null
could be returned instead of InstanceRef
of type Null
.getAllocationTraces
and setTraceClassAllocation
RPCs.CpuSample
to include identityHashCode
and classId
properties.Class
to include traceAllocations
property.Instance
properties were not being populated correctly.SourceReportRange.coverage
if no coverage information was provided.Response.type
and classes which override Response.type
were returning the name of the package:vm_service
reference object (e.g., InstanceRef) instead of the type specified in the specification (e.g., @Instance).Field.staticValue
to dynamic
in order to properly allow for uninitialized sentinel values.VmService.onDone
could complete before the provided DisposeHandler
had finished executing.3.42.0
of the spec.limit
parameter to getStack
RPC.3.41.0
of the spec.PortList
class.getPorts
RPC.portId
, allocationLocation
, and debugName
to InstanceRef
and Instance
.State
class to _State
to avoid class name conflicts with Flutter.dart:io
extensions version 1.5.socketProfilingEnabled
.startSocketProfiling
and pauseSocketProfiling
.3.40.0
of the spec.IsolateFlag
class.isolateFlags
property to Isolate
.dart:io
extensions version 1.3.httpEnableTimelineLogging
.getHttpEnableTimelineLogging
and setHttpEnableTimelineLogging
.dart:io
extensions version 1.2.getOpenFiles
, getOpenFileById
, getSpawnedProcesses
, and getSpawnedProcessById
RPCs.OpenFileList
, OpenFileRef
, OpenFile
, SpawnedProcessList
, SpawnedProcessRef
, and SpawnedProcess
objects.3.39.0
of the spec.ClientName
and WebSocketTarget
objectsgetClientName
, getWebSocketTarget
, requirePermissionToResume
, and setClientName
RPCs.isSystemIsolate
property to IsolateRef
and Isolate
.isSystemIsolateGroup
property to IsolateGroupRef
and IsolateGroup
.serviceIsolates
and serviceIsolateGroups
properties to VM
.VmServerConnection
would always response with a string ID even if the request ID was not a string.3.37.0
of the spec.getProcessMemoryUsage
RPC and ProcessMemoryUsage
and ProcessMemoryItem
objects.getWebSocketTarget
RPC and WebSocketTarget
object.3.35.0
of the spec.@required
parameters on the named constructors of VM service objects.3.34.0
of the spec.TimelineEvents
was not a valid service event kind.TimelineStreamSubscriptionsUpdate
event, which is broadcast when setVMTimelineFlags
is used to change the set of currently recording timeline streams.3.33.0
of the spec.RPCError
.RPCError
and add a toMap() method.getClassList
RPC.Sentinel
will now throw a SentinelException
if a Sentinel
is received as a response.Future<Response>
rather than Future<dynamic>
.RPCError
now implements Exception
.Future<dynamic>
as a Sentinel
can be returned if the target isolate no longer exists.getClientName
, setClientName
, and requireResumePermission
methods.ClientName
class.dart:io
extensions were not being exported.getHttpEnableTimelineLogging
and setHttpEnableTimelineLogging
methods.HttpTimelineLoggingState
class.TimelineEvent.toJson
always returned an empty map.TimelineEvent
always had no content.VmService.dispose
is invoked will now complete with an RPCError
exception rather than a String
exception.getLineNumberFromTokenPos
and getColumnNumberFromTokenPos
methods to Script
.HeapSnapshotGraph
class which parses the binary events posted to the HeapSnapshot
stream after a requestHeapSnapshot
invocation.EventStream.kHeapSnapshot
and calling requestHeapSnapshot
would throw an exception.@required
.getCpuSamples
and clearCpuSamples
methodsCpuSamples
, CpuSample
, and ProfileFunction
classes.closureFunction
and closureContext
were only expected in Instance
objects rather than InstanceRef
.getInboundReferences
, getRetainingPath
methodsInboundReferences
, InboundReference
, RetainingPath
, and RetainingObject
objectsoperatingSystem
property to VM
objectvm_service_lib
into the Dart SDK.package:vm_service_lib
to package:vm_service
.registerService
RPC and Service
stream not being handled correctly.library
property in Class
objects from ObjectRef
to LibraryRef
.registerService
RPC and Service
stream are now public.Event
has been updated to include the optional service
, method
, and alias
properties.InstanceRef
of type null
could be returned instead of null for non-InstanceRef
properties and return values. As a result, some property and return types have been changed from Obj to their correct types.getVMTimeline
callServiceExtension
InstanceSet
and AllocationProfile
getVmWsUriFromObservatoryUri
to convertToWebSocketUrl
evaluate
getVmWsUriFromObservatoryUri
, a helper function to convert observatory URIs into the required WebSocket URI for connecting to the VM service.Script.tokenPosTable
values_Service
stream in the VmServerConnection
directly.dart:developer
should be handled by the VmServiceInterface
implementation (which should invoke the registered callback directly).ServiceExtensionRegistry
class, which tracks which clients have registered which service extensions.VmServer
to VmServerConnection
.VmServerConnection
should be created per client connection to the server. These should typically all share the same underlying VmServiceInterface
instance, as well as the same ServiceExtensionRegistry
instance.callServiceExtension
method to the VmServiceInterface
class.VmServer
will delegate all requests whose methods start with ext.
to that implementation.VmServiceInterface
and VmServer
classes, which can handle routing jsonrpc2 requests to a VmServiceInterface
instance, and serializing the responses back.toJson
methods to all classes.getSourceReport
callv3.14
v3.12
isolate.getScripts()
isolate.getInstances()
Script.source
Script.tokenPosTable
3.9
of the specinvoke
Null
type to NullVal
Instance
objectsawaiterFrames
fieldframeIndex
param for the step callPausePostRequest
eventNone
event type3.3
3.2
ServiceExtensionAdded
eventEvent.inspectee
fieldexceptionPauseMode
to the Isolate classhashCode
and operator==
methods to classes supporting object identitytype
field of BoundVariable
and BoundField
setExceptionPauseMode
method