Skip to content

Commit 02cc954

Browse files
committed
store owner element and pass it on in call
1 parent 58eaca8 commit 02cc954

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

flow-server/src/main/java/com/vaadin/flow/server/StreamResourceRegistry.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.Map;
2323
import java.util.Optional;
2424

25+
import com.vaadin.flow.dom.Element;
2526
import com.vaadin.flow.server.communication.StreamRequestHandler;
2627

2728
/**
@@ -114,12 +115,15 @@ public StreamRegistration registerResource(
114115
*
115116
* @param elementRequestHandler
116117
* element request handler to register
118+
* @param owner
119+
* owner element this request handler is scoped to
120+
*
117121
* @return registration handler
118122
*/
119123
public StreamRegistration registerResource(
120-
ElementRequestHandler elementRequestHandler) {
124+
ElementRequestHandler elementRequestHandler, Element owner) {
121125
AbstractStreamResource wrappedResource = new ElementStreamResource(
122-
elementRequestHandler);
126+
elementRequestHandler, owner);
123127
session.checkHasLock(
124128
"Session needs to be locked when registering stream resources.");
125129
StreamRegistration registration = new Registration(this,
@@ -135,11 +139,13 @@ public StreamRegistration registerResource(
135139
* For internal use only. May be renamed or removed in a future release.
136140
*/
137141
public static class ElementStreamResource extends AbstractStreamResource {
138-
ElementRequestHandler elementRequestHandler;
142+
private final ElementRequestHandler elementRequestHandler;
143+
private final Element owner;
139144

140145
public ElementStreamResource(
141-
ElementRequestHandler elementRequestHandler) {
146+
ElementRequestHandler elementRequestHandler, Element owner) {
142147
this.elementRequestHandler = elementRequestHandler;
148+
this.owner = owner;
143149
}
144150

145151
public ElementRequestHandler getElementRequestHandler() {
@@ -151,6 +157,10 @@ public String getName() {
151157
return elementRequestHandler.getUrlPostfix() == null ? ""
152158
: elementRequestHandler.getUrlPostfix();
153159
}
160+
161+
public Element getOwner() {
162+
return owner;
163+
}
154164
}
155165

156166
/**

flow-server/src/main/java/com/vaadin/flow/server/communication/StreamRequestHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public boolean handleRequest(VaadinSession session, VaadinRequest request,
110110
AbstractStreamResource resource = abstractStreamResource.get();
111111
if (resource instanceof StreamResourceRegistry.ElementStreamResource elementRequest) {
112112
elementRequest.getElementRequestHandler().handleRequest(request,
113-
response, session, null);
113+
response, session, elementRequest.getOwner());
114114
} else if (resource instanceof StreamResource) {
115115
resourceHandler.handleRequest(session, request, response,
116116
(StreamResource) resource);

0 commit comments

Comments
 (0)