Just a minor thing that is bothersome. Renaming classes and functions is a bit more of an impact than is worth right now, so have settled for littering TODO comments all over the place.
Fixes https://github.com/vector-im/riot-web/issues/13131
Widgets can request an OpenID token to authenticate the user when the widget is missing authentication information. A common case for this is the Dimension sticker picker: sometimes the Riot is running in doesn't have the configuration to match the Dimension instance, so Riot rightly refuses to send an auth token to the widget. When this happens, it requests a token through postMessage().
There's a toggle on the permission dialog to remember the setting, which is the widget's security key. As an added measure, the security key generation ensures the widget URL matches as the 'remember this choice' toggle will silently work in the background, and it could be dangerous if the widget's URL changed and Riot secretly allows the widget to identify the user. This check was failing because the WidgetMessaging class was being set up with the rendered URL, which will not match the widget's URL at all. To fix this, we simply use the widget's URL to set up the messaging, which by proxy uses the right URL in calculating the security key.
For https://github.com/vector-im/riot-web/issues/12877
Original error:
```
Warning: Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.
Check the render method of PersistedElement.
in PersistedElement (created by AppTile)
in div (created by AppTile)
in div (created by AppTile)
in AppTile (created by AppsDrawer)
in div (created by AppsDrawer)
in div (created by AppsDrawer)
in AppsDrawer (created by AuxPanel)
in div (created by AutoHideScrollbar)
in AutoHideScrollbar (created by AuxPanel)
in AuxPanel (created by RoomView)
in div (created by RoomView)
in div (created by MainSplit)
in MainSplit (created by RoomView)
in ErrorBoundary (created by RoomView)
in main (created by RoomView)
in RoomView (created by LoggedInView)
in div (created by LoggedInView)
in DragDropContext (created by LoggedInView)
in div (created by LoggedInView)
in LoggedInView (created by MatrixChat)
in ErrorBoundary (created by MatrixChat)
in MatrixChat
```
Move the URL processing into AppTile so that the widget can have a
URL used for embedding in the page and a separate one for popping
out into a browser.
These TODO comments are expected to be fixed ASAP, but until that happens let's minimize the errors in the console for development.
For https://github.com/vector-im/riot-web/issues/12877
These all aren't using componentDidMount because they do something which causes application instability if componentDidMount were used. Much of these calls are expected to move into constructors once they are converted to real classes.
This fixes a common React warning we see. Most of these components should be using constructors instead, however componentDidMount is just as good (and doesn't require converting most of these).
Conversion to classes will be done in a later stage of React warning fixes.
For https://github.com/vector-im/riot-web/issues/12877