base: Closing channel without problem does not close immediately

When closing a channel we send a request to bridge to close the
channel. However we also short circuit the close, so that we aren't
waiting for an unresponsive bridge.

This short circuit shouldn't happen when the channel is closed without
a problem.

Closing a channel without a problem is used to indicate end-of-input
to channels like 'stream'.

Closes #1506
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
man: Update and fix bug reporting links in man pages

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
man: Remove authors sections of man pages

Although Cockpit owes David Zeuthen a lot, it would be incorrect
to describe him as the current author of either of these programs
given the small amount of original code remaining.

Lets just leave these out, its confusing.

Closes #1501
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
tools: Use package.json to identify which nodejs deps to install

Fixes #1498
Closes #1502
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
base: Make it easier to use proxies without CamelCase

 * Support proxy.call(name, args)
 * Support a "signal" event on proxies to catch any signal

Together with the 'data' field already on proxies, this makes it
possible to use proxies without CamelCase properties, methods, signals.
It's slightly less convenient but works well.

In addition this allows calling methods on proxies that are still loading.

Fixes #1500
Closes #1503
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
base: Fix null dereference when qualifying module path

This happens because resolve_path_dots() can return null for
invalid paths.

Closes #1504
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
ws: Add cockpit_web_server_get_document_roots() function

This is a handy accessor to get the already resolved expanded
root document paths from the web server.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
pkg: Simpler AMD module ID calculation

Simplify the calculation of AMD loader IDs, and finding paths to
where to load other modules from. In particular, remove hard coded
base paths.

Then take away the 'cockpit/' prefix, in our module ids. It was
repetitious and made it hard for tests to run in our checkout tree.

Closes #1507
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge: Allow calls without arguments without introspection

Calls without arguments can proceed without introspection data. In
addition default to zero arguments when a DBus call is made without
arguments.

Closes #1510
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
shell: Hide everything but top bar until ready

The shell initializes asyncronously, it waits for package loading,
and soon it will wait for AMD modules as well.

Only show the very top bar until we're ready to start interacting
with the user.

Otherwise we see very ugly things like a half drawn dashboard before
jumping to another screen.

Closes #1509
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
shell: Use watchdog channel for disconnects, and reload on Reconnect

Use a watchdog 'null' channel to watch for disconnects.

Given channels other than dbus, it's not possible to just reconnect
channels and try to patch things up on a disconnect. We really do
have to reload the current page.

We try to reestablish a connection as we're showing the Disconnected
dialog, which keeps our session alive until the user chooses whether
to Reconnect or Logout.

Closes #1508
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
shell: Migrate networking code to dbus-json3

This is the first step to moving the Networking page into a component.

Closes #1511
bridge: Remove support for dbus-json2

It's no longer in use now that the networking code has been
migrated to dbus-json3

We also no longer need the CockpitFakeManager code since all of
the dbus-json1 callers are interacting directly with ObjectManager
based services.

Fixes #1388