I don't consider this a critical issue, now that I've had some time to think about it. However, here is my use case below:
You can use
chrome.runtime.sendMessage to send messages from one window to other windows in the packaged app. Any window that has registered a listener using
chrome.runtime.onMessage.addListener will receive the message. I was able to verify this from the console of one of my open windows.
As an aside, the API for sendMessage doesn't have a parameter to allow you to specify which window to target; all windows receive the message. In other words, if I have a phone.html and a settings.html, settings.html can pass some new data to phone.html -- or even to all open windows that are listening -- without needing to reload the entire window. This, for instance, creates a smoother user experience, one where windows don't need to be reloaded simply to update their state.
As for why the URL property is important, let me explain: As you can imagine, when you add a background page to the mix, and other windows, and communication between the windows is limited to passing asynchronous messages back and forth, debugging the application can become quite complex.
The main advantage the url property has for me is simply for debugging purposes. It helps to be able to see where one process hands off control to another. I wouldn't ever suggest anyone use the url for logic purposes, such as determining what action to take when a message is received, but it can be effective in helping developers understand the flow by looking at debug logs. This is also helpful in debugging errors that involve tracing the flow backwards.
I've thought about this a bit, and I'd say this isn't a critical issue by any means, and I can definitely live without this. So if you guys do mark this as not critical, we'll just simply either pass the url in manually, or we'll use the debugging tools built into Chrome. I'd much prefer the packaged app UI bugs, WebRTC bugs such as the STUN binding issues, the --app-id startup flag bug get fixed instead, or perhaps we could see an API created for adding a system tray icon implemented. Those would be much more beneficial. :)
However, I wouldn't suggest removing this sendMessage or onMessage from the docs. This documentation definitely is for Packaged apps, and the ability to communicate state between windows and the background page is critical to creating a "local" user experience.
Hope this helps! Please let me know if I can provide any more details. Thank you again for the follow up!
James