Modal popup: Reuse the viewport size to avoid some layout thrashing.
When showing the modal popup, first the viewport size is measured to determine the size of the background and later it's measured again to determine the position to center the popup. In between the size of the background is set. So the second time the viewport size is measured, the browser needs to recalculate styles and layout. We avoid this by avoiding measuring the viewport size for a second time.

See also #13 on b/13672409.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66785455
Automated g4 rollback of changelist 66785455.

*** Reason for rollback ***

Caused test failures: https://test.corp.google.com/ui#cl=66785455

*** Original change description ***

Modal popup: Reuse the viewport size to avoid some layout thrashing.
When showing the modal popup, first the viewport size is measured to determine the size of the background and later it's measured again to determine the position to center the popup. In between the size of the background is set. So the second time the viewport size is measured, the browser needs to recalculate styles and layout. We avoid this by avoiding measuring the viewport size for a second time.

See also #13 on b/13672409...

***
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66791422
Change goog.events.EventTarget to use .concat rather than goog.array.clone as the instances being cloned are Array and not ArrayLike.

Unscientifically, this should be a small perf win, as microbenchmarks demonstrate concat is faster than the code in goog.array.clone. Profiles in Docs verify this to be the case for cases that generate many events.

A similar change was done to goog.events in http://cl/65954086
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66796544
github pull request
https://github.com/google/closure-library/pull/282

Fix broken old project repository links to GitHub and Developer docs

Fixes #282
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66798009
Handle height for an empty iframe correctly in IE.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66798366
Tighten types of enum {*} where possible.

Results from global TAP presubmit (AFAICT, the failures are flaky):
https://test.corp.google.com/ui#id=OCL:66647928:BASE:66744898:1399780055127:c055c021
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66806108
Update MessageEvent typing.

Tested:
TAP presubmits for global presubmit queue
http://test/OCL:66672435:BASE:66723495:1399722563098:10f556c5
Some tests failed; test failures are believed to be unrelated to this CL
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66830564
Changes goog.Disposable#addOnDisposeCallback to only use goog.bind when opt_scope is defined. When #addOnDisposeCallback is not passed a scope to call the callback in, simply push the callback to the onDisposeCallbacks array. This change increases the performance of goog.Disposeable#registerDisposable because we are no longer making a call to goog.bind.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66837537
Make htmlEscape() idempotent when it receives a SafeHtml and thus equivalent to from(). Deprecated from() in favor of it.

Currently htmlEscape() and from() are nearly equivalent, with the exception being that htmlEscape() escapes a SafeHtml whereas from() passes it through. So the only reason to call htmlEscape() now is to escape a SafeHtml, which seems like a very rare thing one would want to do.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66876224
Fixes mistake in call to base in example code.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66898900
Replacing the deprecated method with the new method.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=66900984
Fixed goog.ui.select so screenreaders correctly read the label select value. Also fixed bug where select items had the wrong aria role so they weren't being read correctly by screenreaders.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67005259
Templatize the EventHandler return value for chained goog.events.EventHandler calls.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67022110
Promote goog.defineClass out of labs.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67037145
Javascript Readability
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67045058
Changes all Closure uses of the depreacted goog.html.SafeHtml.from() to goog.html.SafeHtml.htmlEscape(). Fix documentation that refers to the deprecated function.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67104002
Add cautionary note to create(), calling out the fact that invalid tag and attribute names throw.

Since these are passed a regular strings, as opposed to goog.string.Const, it seems like a good idea to have a short warning.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67108207
From the HTML spec http://www.w3.org/TR/2011/WD-html5-20110525/common-input-element-attributes.html#the-placeholder-attribute - The placeholder attribute should not be used as an alternative to a label.

Ensuring that label inputs have a label set regardless of whether the browser supports placeholder attribute. This fixes an issue where VoiceOver did not speak anything helpful when focus moves to a label input.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67145219
Automated g4 rollback of changelist 67145219.

*** Reason for rollback ***

Broke Sharing autocomplete behavior.

*** Original change description ***

From the HTML spec http://www.w3.org/TR/2011/WD-html5-20110525/common-input-element-attributes.html#the-placeholder-attribute - The placeholder attribute should not be used as an alternative to a label.

Ensuring that label inputs have a label set regardless of whether the browser supports placeholder attribute. This fixes an issue where VoiceOver did not speak anything helpful when focus moves to a label input.

***
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67159648
goog.structs.Queue improvements:
* New 2-stack implementation, which is several times faster on enqueue/dequeue, though slower on some less common operations (get values; contains for small sizes). Arguably, for a queue, performance of enqueue/dequeue is more important.
* Added queue_perf.html benchmark
* Made queue_test.html tests more "difficult"

Benchmark for old queue: https://screenshot.googleplex.com/wpCVNk2bj0.png
Benchmark for new queue: https://screenshot.googleplex.com/C4QG7zpOVC.png
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67174509