Change CopyableLabel to hide onKeyUp

This changes the CopyableLabel to hide itself onKeyUp, after a
copy, since hiding onKeyPress would hide the text box before Safari
had a chance to copy it.  Ultimately, the effect is the same, it
just delays the processing a little further on.

Bug: Issue 2635
Change-Id: I06a25b81c1da7286a09561732510fe4d6835a2a7
Add asciidoc build back in the Documentation folder

Although we now build the documentation with buck, the asciidoc
build is much faster and more convenient for quickly generating
html files while making documentation updates.

Note that due to some asciidoctor specific formatting, not all of
the documents render correctly with asciidoc.

This should of course not be used for verifying documentation
changes, or for building any official documentation.

Change-Id: I92ecde69e066d08920a1b419e76bf594e87c9bd3
Fix a possibility to overcome BLOCK permission

This patch closes the possibility to overwrite BLOCK
permission from parent project by simply re-adding exactly
the same BLOCK entry followed by ALLOW entry in the child project.

The two new unit tests in RefControlTest show the problem.

Change-Id: I0bf0f0cd549185d72f8753d04f02d87d8709a3b2
Signed-off-by: Eryk Szymanski <eryksz@gmail.com>
Merge "Fix a possibility to overcome BLOCK permission" into stable-2.9
Merge "Add asciidoc build back in the Documentation folder" into stable-2.9
Merge "Change CopyableLabel to hide onKeyUp" into stable-2.9
Fix the request wrapper for http requests served from plugins

A request wrapper is used to provide servlets contributed by plugins
with a context that is rooted in the plugins path segment of the request
URI. For example a plugin myPlugin that is invoked under
'/a/plugins/myPlugin' should be provided with the context path
'/a/plugins/myPlugin'. The request '/a/plugins/myPlugin/myResource'
should give the following info for the wrapped context:

contextPath: '/a/plugins/myPlugin'
servletPath: ''
pathInfo:    '/myResource'
requestURI:  '/a/plugins/myPlugin/myResource'

The request wrapper failed to comply with the servlet specification
(servlet specification 3.1, §3.5). For example the invariant

requestURI = contextPath + servletPath + pathInfo

was violated.

The request mapping mechanism is now extracted to a ContextMapper class.

Change-Id: Ie8d9a9ac151162efb080a6e676a121a53bc11852
Merge "Fix the request wrapper for http requests served from plugins" into stable-2.9
[BugFix] set Last-Modified on cached Documentation resources

When a plugin documentation resource was served from
the resourceCache, the Last-Modified HTTP Header was
not set, causing continue HTTP 200 on the same pages
even if the Browser had a cached copy.

This was due to a missing setLastModified() call 
when caching documentation resources. This has now
been fixed with this change and documentation resources
should be more responsive and scalable.

Change-Id: I3dde4178603f930601544219ea6835858384d80b
Reindex: Include exception cause when dying

Change-Id: I2602b2b857a594fb65e5b791bb14f888c95ff4c5
Link to solved issues from 2.9 release notes

This adds some more features and bug-fixes to the release notes.

Change-Id: I478172f75c140374fb61b45dcd0c3c01cd3c497f
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Merge branch 'stable-2.9'

* stable-2.9:
  Link to solved issues from 2.9 release notes
  Reindex: Include exception cause when dying
  Fix the request wrapper for http requests served from plugins
  Fix a possibility to overcome BLOCK permission
  Add asciidoc build back in the Documentation folder
  Change CopyableLabel to hide onKeyUp

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/project/PermissionCollection.java

Change-Id: I1ebcc44873eb12acd80b4a0a98d22a73c69a886c
Merge "[BugFix] set Last-Modified on cached Documentation resources"