You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide a runnable UI5 app and Playwright test proving unsanitized flow through an inherited bindElement context before static modeling.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve relative default-model bindings through the nearest statically known bindElement context while preserving closer aggregation contexts and view isolation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Accept the Code Scanning output produced by workflow run 37006051980 for the bindElement context regression.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Exercise JSON control containment and context precedence, and assert every positive and negative runtime sink independently.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Accept the Code Scanning output produced by workflow run 37032867682 after the latest UI5 context regressions.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
With bindElement("/customer/"), UI5 resolves {name} to /customer/name, but this helper produces /customer//name. Manifest-backed flow compares absolute paths exactly, so an input bound to /customer/name no longer reaches this sink. Reuse an existing trailing separator, and add a path-resolution regression for this case.
Both jsonCustomerDetails and jsonOtherDetails are sap.m.VBox controls, which use the inherited items aggregation, not content. UI5 therefore cannot attach these children as written, even though the expected results treat them as an inherited-context XSS flow and a nested context override. Change both child aggregations to items so the fixture represents a valid UI5 hierarchy.
sap.ui.commons.Carousel has a content aggregation, not items, so items: "{/otherList}" does not create a list-entry context in UI5. The expected /otherList/name result thus validates a context that this fixture cannot produce. Use a control with an items aggregation and a valid JSONView binding/template, then update both expected-result files to verify aggregation precedence on that hierarchy.
The List renders clones of its template, with IDs such as ...--aggregationSink-__clone0. The current suffix selector misses those clones, so the aggregationSink negative assertion passes even if a rendered clone contains the injected marker. Match cloned sink IDs as well as the original IDs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What This PR Contributes
bindElementcontext:Inputwrites to the absolute default-model path/customer/name.HTMLcontrols read relative{name}beneath string and object-formbindElementcontexts.control.bindElement("/absolute/path").control.bindElement("/absolute/path", parameters)overload.control.bindElement({ path: "/absolute/path", ... })object binding information.bindElementcontext.itemsaggregation context instead of incorrectly using an outer element context.model>pathstrings.bindElementoverrides.itemsaggregation precedence.npm ci && npm run test:runtimeinjavascript/frameworks/ui5/test/queries/UI5Xss/xss-bind-element-context— passed (1/1 Playwright test).codeql test run javascript/frameworks/ui5/test— passed (81/81 CodeQL tests).git diff --check— passed.Future Works
bindObject.setBindingContext,createBindingContext, and context-producing APIs.