Releases: google/closure-library
Closure Library v20180716
New Additions
- Remove goog.require by path (was meant to be used to require ES6 modules). Add a new goog.module.declareNamespace for use within ES6 module to associate a Closure namespace with ES6 modules.
- Add a new assertRejects function to goog.asserts that asserts that an IThenable rejects.
- Added KaiOS type to goog.labs.userAgent.platform. Added goog.userAgent.KAIOS constant.
- Propagate CSP nonce to scripts created via document.write().
- Have Closure transpile to what the browser needs rather than always to ES3.
- Added support for year of week in Date and DateTimeFormatter.
- Add goog.testing.asserts.assertNullOrUnderfined for asserting that an expression can be either null or undefined.
- Use setAttribute instead of IDL property. Firefox doesn't support nonce assignment via IDL yet.
Backwards Incompatible Changes
- Throw if cloneWithParams is used on a URL with #.
Other Changes
- i18n datetime constants are now marked
@const
- Use an integer uniqueId.
- If a tearDown() method logs two JSUnit exceptions, then throws the first one, the test will no longer incorrectly pass.
- rolling back to fix a gmail release blocker
- Loosen the type signature of a few methods so the signature does not actually change with up coming compiler changes.
- Adds a faster code path for goog.math.Long.toString for numbers fit 53 bits.
- Make remove function have same argument types as set.
- Allow additional types for "content" in testing/net/xhrio.js to match net/xhrio.js
- Adds a faster code path for goog.math.Long.fromString for numbers fit 53 bits.
- Add missing property types for goog.ui.Dialog.Event
- Suppressing deprecation warnings from using goog.ui.Dialog.ButtonSet, which happens to rely on a deprecated Map implementation for now.
- Update KeyHandler and ActionHandler to use keydown events as the source for KeyEvents when using Gecko, rather than keypress events. This was only necessary pre-Gecko 4. T...
- Improve TestCase error stripping to match changes in Chrome reporting.
- On IE load ES6 modules during load rather than after completion.
- n/a. comment change only
- Correct goog.testing.net.XhrIo to extend from goog.net.XhrIo.
- Addresses an issue where goog.i18n.mime.encode() doesn't correctly encode Unicode characters outside Unicode's Basic Multilingual Plane.
- Optimizes goog.math.Long#negate
- KeyboardEvent.key now includes home, end, enter, and arrow keys.
- Reduce size of DateIntervalFormat locale data.
- Fix a bug in goog.Timer where there can be more than one pending timeouts.
- Expose ModuleManager module info Object to subclasses.
- Bug fix for datetimeformat.format milliseconds with dates before Unix epoch.
- Don't use PointerAsMouseEventType for MOUSEOVER/MOUSEOUT events.
- Update KeyHandler and ActionHandler to use keydown events as the source for KeyEvents when using Gecko, rather than keypress events. This was only necessary pre-Gecko 4. This brings the handling in line with other browsers and fixes https://github\.com/google/closure-library/issues/883\.
- CLDR 33.1 locale data update.
- Attempt to fill in the keyCode value for the events fired by goog.testing.events.fireNonAsciiKeySequence.
Closure Library v20180506
New Additions
- goog.ui.ac.Renderer can now take an optional maxWidthProvider to specify the autocomplete dropdown max width (the existing widthProvider sets the min width).
- goog.ui.ac.InputHandler exposes setter to override the replacement separator behavior (when a row gets selected, it checks whether row.toString() ends with a separator and if not, appends a default separator automatically).
- Add support for ES6 modules in the debug loader.
- Add support for manual CSP nonce propagation for safe scripts and module loading.
Backwards Incompatible Changes
- IFRAME_POLLING Transport type in CrossPagechannel is now set by passing the constructor as the CfgFields.TRANSPORT option.
- Rename TestCase.setCompletedCallback() to addCompletedCallback() and allow multiple callbacks.
- the preserveParameterTypesCompatibilityFlag is being removed. Code setting this flag to true will need to change.
Other Changes
- Ignore null in checkTypedStringEquality.
- Report global errors as part of the test results.
- Move goog.ui.Component#getMouseEventType to goog.ui.ComponentUtil.getMouseEventType.
- Extend the tests of safehtmlformatter to showcase safe types compatibility
- Improve performance of ModuleManager#getNotYetLoadedTransitiveDepIds
- Report swallowed JSUnit exceptions even if the test failed with some other error.
- Simplify keyboard shortcut handling logic for OS X Gecko, removing logic which was needed to circumvent a bug in Gecko 1.8 on OS X.
- Support touch input in goog.ui.DimensionPicker. Added goog.ui.Component#setPointerEventsEnabled method to listen for pointer events instead of mouse events in goog.ui.Control and goog.ui.Container. Removed dependencies on mouse hover logic in goog.ui.DimensionPicker.
- no-op to sliderbase class, will set manageFocus_ variable to false in sub class.
- Allow matrix() in SafeStyle.create.
- Improved type annotations on goog.i18n.DateTimePatterns.
- Store the test result serializer function to avoid it being overwritten by a mock.
- Remove json stringify from TestCase, only use one in TestRunner.
- Add ar_EG to the main list of regional variants.
- Don't log JSUnit exceptions twice.
- CLDR 33 locale data update.
Closure Library v20180405
Special Note Closure Library was broken on 20180402 and 20180319, which is when there were compiler releases. Thus there is no Closure 20180402 or 20180319. To make up for it we're doing a release with the 20180402 transpiler today (20180405), so there will not be a 20180405 compiler release either. Sorry for any confusion!
New Additions
- goog.ui.ac.Renderer can now take an optional maxWidthProvider to specify the autocomplete dropdown max width (the existing widthProvider sets the min width).
- Support goog.userAgent.getNavigatorTyped
- Add a new goog.bootstrap method for use when loading code through Closure. This method should now be used in place where goog.require was used to bootstrap. As we add ES6 module support bootstrap goog.requires will no longer have the same guarantees they used to. This method is a safe way to determine when the debug loaded application has finished loading.
Backwards Incompatible Changes
- Delete goog.json.EvalJsonProcessor
- The "callWithoutLogging" function from goog.testing.asserts has been removed.
- When TestCase is constructed with setObject (e.g. via testSuite), global object is no longer automatically inspected for test methods.
Other Changes
- support complete 0-RTT handshake with WebChannel.fastHandshake option.
- Throw if testSuite() is called twice.
- Document that assertSameElements uses strict equality
- Adding an optional timeout to goog.net.tmpnetwork.testGoogleCom.
- introduced a new WebChannelOption - requestRefreshingThresholds. To be implemented.
- introduced a new WebChannel options (Options.InternalChannelParams)
- goog.crypt.byteArrayToHex now accepts an optional separator.
- Use the latest version of the parse5 node module in generate_closure_unit_tests
- goog.events.EventType is updated with devicechange event.
- Improve inter-operability between goog.Promise and $jscomp.PolyfillPromise
- Document that MockRandom modifies the provided sequence array.
- fix the goog.dom.safe.setButtonFormAction and goog.dom.safe.setInputFormAction
- goog.testing.testSuite now takes an optional options parameter with an order attribute that can be used to set the order in which tests are run.
- Support number formats with symbols that are not from the binary's locale.
- Regenerate javascript/closure/i18n/charpickerdata.js.
- Reworked the Closure Debug Loader to allow for clarity and ES6 module support (latter is behind a flag while in development).
- Fix bug in SliderBase's drag handling while in RTL mode to correctly calculate the new slider value.
- RespondingChannel can now wait for asynchronous services before sending responses to cross-channel messages.
- Add integration tests for the debug loader using goog.require.
- Export the logicmatcher's convenience functions via goog.provide.
- Introduced a new WebChannel options (Options.xmlHttpFactory)
- TestCase: Call doError() only with the completed TestCase.Test. Add a new recordError() function to report an error that comes from or is related to a test. This way, the test completion callback will always be called exactly once, even if a single test has multiple related errors (eg, from the test and from tearDown).
Closure Library v20180204
New Additions
- Add a fromConstantAndArgs() method to goog.html.SafeScript.
- Adding 'video/quicktime' as an allowed type to goog.html.SafeUrl.fromBlob(...) and goog.html.SafeUrl.fromDataURL(...)
- Added Chromecast OS type to goog.labs.userAgent.platform.
- Added extra check in Disposable.dispose() that, when Disposable.MonitoringMode is on, ensures that all disposables that have been registered to an object (via object.registerDisposable) have been disposed of and that all callbacks (added via object.addOnDisposeCallback) have been called.
Backwards Incompatible Changes
- Backwards compatible change.
- Remove now unused goog.date.fromIsoString() in favor of goog.date.DateTime.fromIsoString().
- goog.html.TrustedResourceUrl.format now disallows the format string starting with "about:blank".
Other Changes
- Fix FetchXmlHttp to not crash when reading headers that haven't been received.
- Deprecate old date formatting methods that don't use CLDR data
- Adding nullability annotations
- CLDR 32 locale data update.
- goog.async.Deferred.fromPromise() now accepts all Thenable types.
- Custom Module Managers can now be specified with goog.loader.activeModuleManager.set()
- Removed goog.labs.structs.Map. We recommend the JavaScript Map class instead: https://developer\.mozilla\.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/Map
- Fixed a typo in the comments that the linter flagged. "Overridden" was misspelled.
- Applicable goog.module.ModuleManager methods now enforce on-nullability.
- Added util function for detecting string is html or not.
- goog.labs.structs.Multimap now accepts any type of key, not just a string. This is accomplished using the ES6 Map class, which means Multimap cannot be used on IE8 and below, and will require ES6-to-ES5 transpilation for some browsers.
- remove the newly introduced WebChannel FailureRecovery option (to be implemented later).
- Add test utils that allows function to return value after throw.
- Better documentation for the DateFormat creation
- No-op re-implementation of goog.structs.Map.addAll.
- Work around bug Chrome that causes referrer to be retained when using goog.window.open() with the 'noreferrer' option.
- Change in the way goog.module() files are represented in deps.js files. See https://github\.com/google/closure-compiler/issues/2786 for details
- fixing a bug to avoid starting traces with the ids of the outstanding traces also adding an optional parameter to the stop callback function.
- moving StopTraceDetail definition to goog.debug to avoid JS compiler NTI problems.
- a new WebChannel option to support custom Failure-Recovery algorithms for back-channels. API spec only.
Closure Library v20171203
New Additions
- Provide safe API for module loading.
- Add new HTML5.1 tags to
goog.dom.TagName
. - Add
goog.date.Date.fromIsoString()
andgoog.date.DateTime.fromIsoString()
for control over the return type. - Add
goog.dom.safe.setVideoSrc
- Changed zippy and animatedzippy to allow role override for improved accessibility.
- Implement a simple delegate system.
Backwards Incompatible Changes
- Add protected
getThumbCssClass
method togoog.ui.Slider
. - Disallow passing
string
orgoog.Uri
toJsonp
. - Delete deprecated API for module loading.
- Fix bug in
SliderBase
's drag handling while in RTL mode to correctly calculate the new slider value. - Delete deprecated
goog.editor.Field#setHtml
. - Change all non-mutating functions in
goog.array
to acceptIArrayLike
instead ofArray
. - Delete
goog.html.testing.testTypedStringEquality
.
Other Changes
- Remove the
goog.string
dependency fromgoog.asserts
. - new
WebChannelOptions.clientProfile
to support custom configs, e.g. for mobile/cellular clients. - Updated some
goog.testing.PropertyReplacer
examples to usereplace
instead ofset
, and pointed out the possible need forgoog.reflect.objectProperty
. WebChannel
supports dynamic timeout config for back-channel requests. This is a backward compatible change.- Fixed a bug to avoid starting traces with the same id.
- Use standard 'focusin' and 'focusout' events.
- Remove the delay between onload and test initialization.
- Fixed a bug in
goog.vec.Quaternion.fromRotationMatrix4
.
Closure Library v20171112
New Additions
- goog.dom.asserts.assertIsHTML(Form|Input|Button)Element
- Allow importing test assertions.
- Adds the assertion 'assertFinite' to goog.asserts.
- added goog.soy.Renderer#getDom (protected method).
- Add a new createTest method that can be used instead of createTestFromAutoDiscoveredFunction
- Added goog.math.Vec2.rescaled() and goog.math.Vec3.rescaled() static functions.
- Add TrustedResourceUrl#cloneWithParams.
- Add callback support to goog.debug.Trace for its following functions: startTrace, stopTrace, and addComment
- Make goog.events.* support MediaQueryList (from window.matchMedia).
- Add goog.html.testing.checkTypedStringEquality.
- Introduced a module to calculate specificity of CSS selectors.
- goog.dom.safe.replaceLocation, goog.dom.safe.setFormElementAction, setInputFormAction, setButtonFormAction
Backwards Incompatible Changes
- Store goog.editor.Field#cssStyles as SafeStyleSheet.
- Removal of goog.labs.promise.run.
- Pass testSource instead of goog.global.
- changes how the HTML sanitizer inlines style rules.
- Add support in the HTML and CSSSanitizer for inlining style rules found in style tags into style attributes.
- By default, restrict the effect of sanitized STYLE tags to the current HtmlSanitizer.sanitize call.
- Remove createTestFromAutoDiscoveredFunction now that createTest exists.
- Delete unused inheritBlendedCSS.
- Added support for allowing STYLE tags in the HtmlSanitizer.
- removed unused API
Other Changes
- Fix file:// protocol loading.
- new WebChannel disableRedact option.
- decodeStringToUint8Array returns a Uint8Array with a buffer with a more accurate size.
- specified client-initiated half-close as a public API (to be implemented).
- WebChannel: 1) new messageContentType option; 2) send() now takes raw strings.
- Fix bug with nested testSuites rerun on the same page.
- goog.debug.Logger no longer logs to an attached profiler log by default.
- Introduces a workaround for window.open(..., 'noopener') which will cause the the URL to open in a new browser window with no bookmark bar or ability to add tabs. This is a known issue tracked here: https://github\.com/whatwg/html/issues/1902
- Removed all instance of goog.log.info from the Closure's combobox component. This was the last ui component to still use goog.log.info in uncompiled code.
- make webchannel close() work from react-native, which doesn't support sendBeacon or Image.
- Make ObjectSerializer support camelCase in addition to underscore_delimited field names for serialized JSON.
- add metadata dispatching support for WebChannel. See goog.net.WebChannel.MessageEvent.prototype.metadataKey
- bug fix - stop IE from logging profile output to console.
- Tighten the return type of installSafeStyleSheet().
- Improve error message when a testing assertion method gets an incorrect number of arguments.
- Make goog.debug.catchErrors() and goog.debug.ErrorReporter() play more nicely.
- Update TRY currency symbol.
- new WebChannel disableRedact option
- Add a 1/2 second delay to allow the inappropriate synchronous test to work even though it should be async.
- Add the new Belarusian ruble (BYN) to the tier 2 Closure currencies.
- Provide safe API for Jsonp.
- Annotates a callsite where the argument can never be null
- DateTime.toUTCRfc3339String() will properly print milliseconds, padded with zeroes.
- Improve accessibility for DatePicker widget:
- Fix goog.globalEval in the event it runs in CSP compliant contexts.
- Allow tests to be objects in addition to functions. This allows users to add additional setup and teardown methods.
Closure Library v20170910
New Additions
- Support arrays in goog.html.TrustedResourceUrl.formatWithParams.
- Whitelist additional ARIA attributes in the HtmlSanitizer.
- Added binaryType support to goog.net.WebSocket.
- goog.dom.uri.normalizeUri which uses a DOM anchor element to normalize a URI.
- Add goog.debug.freeze() which freezes its argument, but only in debug mode.
- Add basic support for pointer event types.
- Add toTrustedResourceUrl to Soy.
Backwards Incompatible Changes
- goog.dom.dataset now only accepts valid dataset property names.
- Re-add goog.dom.uri.normalizeUri.
- Delete deprecated goog.json.unsafeParse. Use JSON.parse instead.
- Delete deprecated goog.net.jsloader.load. Use .safeLoad instead, take 2.
- Delete deprecated goog.style.setStyles. Use setSafeStyleSheet.
- goog.object.getValueByKeys is now null-safe, returning undefined when it encounters a null along the path, whereas previously it would throw a TypeError exception. If the final value is null, the function will continue to return null.
- Use https in media URLs.
- Allow text/csv in data: SafeUrls.
- Require TrustedResourceUrl in goog.editor.Field#makeEditable.
- Deleted string HTML versions of goog.ui.editor.messages messages. Use SafeHtml getters instead.
- Delete deprecated goog.style.installStyles. Use installSafeStyleSheet instead.
Other Changes
- Fixed a bug in goog.getObjectByName where invalid paths could return incorrect values.
- Cleaning up files to suppress closure warnings.
- Make it clear that tickPromise does not work with native browser promises.
- Rolling back API.
- Fixed negative numbers being prefixed with unlocalized minus sign.
- Clarify the webchannel 0-RTT send() behavior.
- Add Unicode 10 support to goog.i18n.GraphemeBreak.
- Allows compiler to enforce that only constructors implementing the goog.events.Listenable interface be marked as implementing said interface.
- Make SafeHtmlFormatter work with DETECT_DOUBLE_ESCAPING.
- Report correct value for goog.events.BrowserFeature.TOUCH_ENABLED in Microsoft Edge 15 browser.
- new API: goog.net.WebChannel.RuntimeProperties.getPendingRequestCount()
- Fixed goog.style.bidi.setScrollLeft for Safari 10 and later.
- Fixes issue where fullscreenchange events weren't being captured in Edge because the string for the event was 'fullscreenchange' when it should be 'webkitfullscreenchange'
- Add convenience method to goog.debug that allows for adding context to an error object and simultaneously converting the object to an Error.
- fixed the WebChannel message delivery latency from chrome/firefox background tabs.
- Allow goog.json.hybrid.parse('null').
- Deprecate goog.json.parse. Use JSON.parse.
Closure Library v20170806
New Additions
- More audio MIME types supported in data: and blob: URLs created with SafeUrl functions: 3gpp, 3gpp2, mp4, and mpeg.
- Add goog.debug.errorcontext to support adding arbitrary context key-value pairs to errors. The context is reported in the closure error reporter.
- Expose the key or mouse event that triggered a Zippy ACTION.
- Add colindex and rowindex to goog.a11y.aria.Attributes. aria-colindex and aria-rowindex are two properties in aria 1.1 which define and element's position within a table, grid, or treegrid. See https://www\.w3\.org/TR/wai-aria-1\.1/\#aria-rowindex and https://www\.w3\.org/TR/wai-aria-1\.1/\#aria-rowindex for more information.
- Added support for getAllKeys().
- Added new median function, goog.testing.PerformanceTimer.median.
- Support SafeUrl and array in SafeStyle.create.
- audio/x-m4a in data: and blob: URLs created with SafeUrl functions.
- Add goog.soy.data.SanitizedCss#toSafeStyleSheet.
- Audio MIME types supported in data: and blob: URLs.
- Add legacyconversions.safeScriptFromString.
- Add goog.soy.data.SanitizedStyle.
Backwards Incompatible Changes
- goog.debug.Logger no longer uses the long deprecated console.markTimeline()
- Delete goog.net.jsloader.loadAndVerify. Use safeLoadAndVerify instead.
- Delete goog.net.jsloader.loadMany (goog.net.jsloader.safeLoadMany is preferred).
Other Changes
- fixed debug.Console to display INFO logs on Chrome 58+.
- Initialize the test runner using the local, consistent variable.
- Use switch-case instead of if-tree for i18n data
- Fixed goog.style.bidi.getScrollLeft for IOS 10 and later.
- goog.array.bucket's return type is now more specific.
- Don't use document.write in unit tests; add the body tag statically.
- Use goog.json.hybrid.parse in XhrIo.
- goog.dom.forms supports meter and progress elements.
- Fix multi-stroke keyboard shortcuts where consecutive strokes are the same firing too soon in Windows non-Firefox browsers.
- doc-only change
- Make goog.debug.RelativeTimeProvider a proper singleton so that it can be stripped by the compiler when unused.
- Fixes Microsoft Edge 15 error "Unable to get property ‘handleEvent’ of undefined or null reference" in browserfeature.js
- Abort XHR requests when cancelling goog.labs.net.xhr promises.
- support WebChannelOptions.fastHandshake (enable QUIC 0-RTT).
- Added jsdoc.
Closure Library v20170626
New Additions
- Add TrustedResourceUrl.formatWithParams.
- Add goog.dom.getElementByTagNameAndClass.
- Adds a goog.html.textextractor module to extract textual content from HTML strings.
- Add goog.dom.asserts.
- Add SafeStyleSheet.createRule.
- duration get function added to goog.fx.animation
- Add goog.fx.Dragger#disableSetCapture() to avoid breaking interactive draggable elements on browsers with setCapture().
- Add argument matchers to goog.html.testing.
- Expose new events for the entire dragger clone lifecycle in goog.fx.DragListGroup.
- goog.events.listen(Once) & EventHandler now accept {passive: true} for DOM elements.
Backwards Incompatible Changes
- Remove eval from RichRemoteArrayMatcher.
- Delete goog.json.hybrid.unsafeParse.
- Deleted goog.structs.weak.
Other Changes
- Give subclasses access to goog.ui.ac.Renderer's widthProvider_ field by making it protected.
- Support translate(), scale() and rotate() in SafeStyle.
- "Add exa (E), zetta (Z), and yotta (Y) SI and Binary scale prefixes to goog.format number formatters."
- Enables turning on channel-test as part of the webchannel initial handshake.
- Override goog.ui.Dialog.ButtonSet#clear() to clear default / cancel buttons too.
- Support DOM assertions across frames.
- Fix bug when parsing numbers using NumberFormat.parse().
- Fix bug when parsing dates using DateTimeParse.
- Add Offshore Chinese Yuan (CNH) to the tier 2 Closure currencies.
- Change the channel-test to enabled by default.
- Replace the implicit dependency on G_testRunner with one on TestCase.
- clarify the WebChannel API spec on ERROR and CLOSE event dispatching behavior.
- make WebChannelOptions.backgroundChannelTest default to true.
- Allow multiple functions in SafeStyle values.
- Remove extra stack frames from synchronous test cases.
- Add a unique ID each time a TestCase is initialized.
- Depswriter allows importing multiple dependencies from a module.
- Add goog.iter.es6.ShimIterable to adapt between goog.iter and ES6 iterators.
- Add option uuid to isFinished() to verify that the page has not navigated.
- Fix blocker for w3c IndexedDB API update.
- Add getter to static instance of goog.net.Cookies
- Record time taken by each test function, available in callback.
- turn off channel-test as part of the webchannel initial handshake, by default.
- goog.structs.Map and goog.structs.Set are deprecated.
- Make DragScrollSupport support <body>.
- Support sanitized url() in SafeStyle, take 2.
- PropertyReplacer.replace optionally permits the changing of a value to/from null and undefined.
- goog.fx.Dragger works with touch.
- Make DragScrollSupport support <html>.
- Stop checking whether setTimeout was restored or not after all the tests have finished.
Closure Library v20170521
New Additions
- goog.date.DateTime now has an RFC 3339 string method, toUTCRfc3339.
- Added goog.uri.utils.setParamsFromMap() for updating multiple URI params at once.
- goog.fx.DragListGroup.EventType is strongly-typed.
- goog.fx.DragListGroup.prototype.isDragging()
- Currently, goog.ui.ac.RichRemote evals the first element of the response and uses it as a function to pass the remaining elements. This is dangerous (use of eval) and cumbersome (requires exporting the name of the function used in the response). This change allows specifying a row builder which takes both type and the response.
- Add goog.dom.safe.setScriptContent.
- Add goog.Uri.QueryData.prototype.forEach().
Backwards Incompatible Changes
- Delete goog.debug.logRecordSerializer.unsafeParse.
- Fixed possible XSS in goog.html.SafeStyle caused by goog.html.sanitizer.CssSanitizer.sanitizeInlineStyle[String] being passed a opt_urlRewriter that returns a string instead of a SafeUrl.
- Change proto serializer to produce valid JSON.
- Improved handling of non-int value in Long.fromInt
- Delete goog.json.HybridJsonProcessor.
- The CSS sanitizer will not convert property names to lowercase by default any longer.
- Remove unused deprecated goog.dom.$F alias.
- Drop support for preloaded jsunit test managers.
- Change goog.json.unsafeParse to JSON.parse in goog.net packages
- goog.object.getAllPropertyNames excludes the Function.prototype properties by default.
- goog.net.cookies is now typed as non-nullable and const.
- If you use any of the render* methods on goog.soy.Renderer to render Closure Templates, you must update your Closure Templates compiler to https://github\.com/google/closure-templates/commit/a061cb1f619a4ec75e0a28c52b570b94e217429d or later.
- Make BrowserChannel only accept object literals, not legacy goog.structs.Map.
- goog.debug.deepExpose no longer has the side-effect of adding Uids to objects being exposed, The output also contains the UID of any objects that cause reference loops.
- Use JSON.parse in goog.debug.logRecordSerializer.parse.
Other Changes
- SafeUrl.sanitize() becomes slightly more permissive, allowing & before /?#.
- Non functional annotation cleanup on goog.net.cookies
- Disable calls to getResponse*() methods outsdie of event callbacks by default by setting goog.net.testing.XhrIo.allowUnsafeAccessToXhrIoOutsideCallbacks to false. To maintain old behavior, set goog.net.testing.XhrIo.allowUnsafeAccessToXhrIoOutsideCallbacks to true within a test.
- Add optional callback for each completed test.
- Fixes bug in goog.i18n.NumberFormat that caused small numbers to be formatted incorrectly (with non-printable characters) when a high value for maximum fractional digits was used.
- goog.dom.createDom() / goog.dom.setProperties() now accept Safe* values.
- JsDoc fix.
- Add another check for undefined global property to satisfy IE.
- Delete deprecated closure/caja/string/html/htmlsanitizer. Existing users should migrate to directly using the Caja project or use javascript/closure/html/sanitizer/htmlsanitizer.
- CLDR 31 locale data update.
- Add a goog.require for the interface goog.crypt.BlockCipher from goog.crypt.Cbc
- Allow about:blank in TrustedResourceUrl.format.
- Protect against gadget-based CSP bypasses.
- Fixed sanitization of vendor-prefixed CSS properties in IE8.
- Deprecate goog.json.usnafeParse.
- goog.events.EventType is updated with Service Worker events.
- goog.base is deprecated.