Salesforce Summer 23 Release Notes – My Favorite

Experience Improved Performance on More Record Home Pages

With Lightning Web Components (LWC)-enabled objects, you can create, view, or edit the record home pages with improved performance, stronger accessibility support, and better service availability. Over 100 more objects now use LWC to render record home pages, bringing the total objects to over 1,000.

Undo Field Changes with a Click

When you type in an input field on a Lightning Web Components record page, an undo button appears and the background color changes until you save. Clicking the undo button removes your unsaved changes. This functionality doesn’t occur in Dynamic Forms—enabled pages. Previously, to use the undo button, you clicked a field, entered content, and then clicked outside the field.

Enable JsonAccess Annotation Validation for the Visualforce JavaScript Remoting API

The Visualforce Remoting API uses JavaScript to directly call methods in Apex controllers from Visualforce pages. To prevent unauthorized serialization and deserialization across packaging namespaces, this update validates the JsonAccess annotation of your Apex classes. This update was first available in Winter ’23.

Use Lightning Web Security for Lightning Web Components and Aura Components (Generally Available)

Lightning Web Security (LWS) for Aura components is generally available.

LWS for Aura is controlled by the Use Lightning Web Security for Lightning web components and Aura components setting in Session Settings in Setup. This setting was called Use Lightning Web Security for Lightning web components through Winter ’23 when LWS applied only to LWC. In Spring ’23, the setting was called Use Lightning Web Security for Lightning web components (GA) and Aura components (Beta) and controlled LWS for LWC and Aura components.

The Use Lightning Web Security for Lightning web components and Aura components setting applies to all existing and new custom Lightning web components and Aura components.

The primary test method is manual validation of your components in a sandbox. We recommend that you set up two identical sandboxes. To compare your components’ behavior with LWS versus Lightning Locker, enable the LWS setting in Setup for one of the sandboxes. To compare behaviors if you have only one sandbox, enable or disable the LWS setting in Setup for each comparison.

If you plan to deploy existing or packaged Lightning web components or Aura components to production, test first in a sandbox with LWS enabled.

If your org had the Use Lightning Web Security for Lightning web components setting enabled before Spring ’23 and your org contains custom Aura components, LWS remains enabled but affects only your Lightning web components. Your org was excluded from LWS for Aura (beta) and is still excluded now that the feature is GA so that it doesn’t affect your Aura components in Summer ’23. The goal of our gradual LWS rollout is to start with orgs that aren’t expected to be affected by LWS and to eventually enable LWS for all orgs.

Enable Third-Party Integrations with Light DOM 

Light DOM is now generally available. Lightning web components render in shadow DOM by default, providing strong encapsulation but posing challenges for global styling and many third-party integrations. With light DOM, your component markup is attached to the host element instead of its shadow tree. You can then access it like any other content in the document host.

Attribute Names Support More Patterns

Attribute name restrictions are loosened to support more use cases. Previously, issues could arise when attribute names were used with a less restrictive syntax environment, such as with a Java-based compiler. Additionally, only a subset of all the possible public properties could be addressed declaratively via the template. Some patterns like $myattribute and _myattribute are valid public properties that couldn’t set set via an LWC template.

Synchronize Component Data Without a Page Refresh Using RefreshView API

Whether user-driven or app-invoked, the ability to synchronize data without reloading an entire page is a key user experience requirement. The new lightning/refresh module and RefreshView API provide a standard way to refresh component data in Lightning web components (LWC) and Aura components. Previously, LWC lacked a data refresh API and could only refresh using an Aura wrapper and the legacy force:refreshView, which doesn’t meet the requirements of modern web development. RefreshView API’s detailed control of refresh scope lets developers create refined user experiences while maintaining backward compatibility. This feature, now generally available, includes some changes since the last release.

Access Labels in Apex Dynamically

Use the System.Label.get(namespace, label, language) method to get a custom label, optionally specifying a language. The feature now allows dynamic resolution of label names at run time, including overriding the user’s current language if a translation exists for the requested language. Previously, retrieving labels required compile-time knowledge of the label API name.

Use the Iterable Interface with Set Type

The Set class now implements the Iterable interface, so you can directly iterate over sets. Both sets and lists are iterable, allowing for more code reuse.

Query Five Levels of Parent-to-Child Relationships in SOQL Queries

SOQL now supports relationship queries that traverse up to five levels of parent-child records. Use a single SOQL query to get parent-child records from five different levels. This ability is limited to SOQL queries via the REST and SOAP query calls on standards and custom objects.

SELECT Name,
    (SELECT LastName,
        (SELECT AssetLevel,
            (SELECT Description,
                (SELECT LineItemNumber FROM WorkOrderLineItems)    
            FROM WorkOrders)    
        FROM Assets)    
    FROM Contacts)    
FROM Account

New Process Creation Is No Longer Available

To take the next step toward retiring Process Builder processes, you can no longer create new processes. You can still activate, deactivate, and edit your existing Process Builder processes and continue to create automations in Flow Builder. To test and create processes for use in managed packages, developer orgs still allow you to create processes. Most Process Builder use cases are now supported in and work better in Flow. To facilitate migrating your processes, use the Migrate to Flow tool.

Reference: https://help.salesforce.com/s/articleView?id=release-notes.rn_security_domains.htm&release=244&type=5