[27007] updated the browser-resize detection for subclasses of _LayoutWidget, but not for subclasses of !ContentPane.    Adding in code for !ContentPane too.   However, that exposes the infinite loop problem, where !ContentPane.resize() causes a(nother) browser resize event, so have to add guard code to detect spurious resize notifications, hence a new !Viewport.js helper module.

Also modifying Dialog to leverage the viewport resize events it gets as a !ContentPane subclass, rather than setting up it's own listener.

Also modifying robotx.js so that it sets the iframe size before dojo loads (inside the iframe), rather than after.   The !BorderContainer_full.html test was hitting a corner case (on IE) where DOH resized the iframe after the !BorderContainer layout() ran, but the !BorderContainer didn't get a resize event (like on a true browser resize), so it didn't resize itself.

Refs #14247 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@27262 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 936fd91d48c48b4a826dc2478f92718599e9c7ef)
Fix MID's in dojo/ and dijit/ modules to be relative paths (when possible), and convert "." --> "./main".

The "./main" references in dijit/ modules are for exporting symbols to the "dijit" namespace and thus will be removed in 2.0, but before that (for consistency) maybe it's worth changing the code to export via setObject(), like dojo.declare() does.

Fixes #14742 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@27778 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 0564589f5cb9cdefc763f47355ea02268e654d7d)

Conflicts:
	robotx.js
Some fixes for robot to be able to run against AMD (baseless) iframe.   Refs #14929 1strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@28089 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit b95f1305ce555e1564c35c5ed8f825fdadccdfe5)
Convert robot*.js files to baseless AMD, and remove document.write() usage.

 To get util/doh/robot.js to play nice with AMD (no document.write(), and no reference to dojo global), I introduced a dependency to dojo which theoretically wasn't needed before.   Perhaps it can be removed in the future.   If isolation is desired, the dojo-dependent code should be moved to dojo/robot.js, not put if if(){...} blocks.

 Also removed the document.write() usage in dojo/robotx.js to create a console div.   On IE6/IE7, we are already getting a firebug-lite console, so just using that.   (This might be dependent on having isDebug:true in the data-dojo-config of the test file though.)

 Theoretically fixes #14929 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@28336 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 40773a908934997a42eeb0f425fbf79117d26846)

Conflicts:
	robot.js
	robotx.js

Conflicts:
	robotx.js
fix path to doh/main, refs #14929 !strict

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@28448 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 858109db9e00a554b1536c625514b8bef54db243)
make window and document from iframe (loaded by initRobot()) available from robot module export, refs #14929 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@28569 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit b4b69a9772290e13ae27e54d2be1ce20800acf38)
Various DOH robot updates:

   - Don't include dijit code into page with robot test code; dijit should only be loaded in the content iframe.
   - Fix double scrollbar on tests (on IE8) caused by overflow:visible setting on <html>
   - Prefer dojo/domReady! to dojo/ready, in order to support other AMD loaders.   However, dojo/ready is still needed for the outer frame to detect when the inner frame (with the content) has completed initializing.
   - Since robot depends on dojo, use domClass.add() and remove() to add dohRobot class to <html> node, to avoid getting a space character in the class string.

 Fixes #15865, refs #15616 on 1.8/ branch !strict.

git-svn-id: http://svn.dojotoolkit.org/src/branches/1.8/dojo@29506 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit ffc6bd0481e461ca2364ff62eaf43dd5ea1e5e3c)

Conflicts:
	robotx.js
Refactor robot so initRobot() is implemented as an asynchronous test fixture, rather than using monkey patching code that doesn't work well, having two places calling doh._run() in a race condition.   This design also makes better code separation between vanilla DOH and robot.

I plan to do the same for startRobot() in the next check in.

Also fixes priority of ready() call inside DOH.   The default priority is 1000, so we need to be higher than that, so that DOH doesn't execute until the iframe's dojo.ready() call has finished executing.

Fixes #16386 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@30060 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 6698b8f5f307bd1c8ded908e22b8b91e1b1a6047)
(cherry picked from commit 57cacb66b7ed89c4a9ca2eb4ec7587fb95ef1ab5)

Conflicts:
	robotx.js
Refactor robot so startRobot() is implemented as an asynchronous test fixture, rather than monkey patching doh.run().  This design makes better code separation between vanilla DOH and robot.

Refs #16386 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@30074 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 28f564e8186eb26efc4f99746ac1d0c7d3038bb0)
(cherry picked from commit c52544a0e0ede89178bb3393cb4e737baf0026ca)
Correct detection of focusin support

Fixes #17599

(cherry picked from commit e245ce5c80b85351642fd1ffc18a2d77bbbb0770)
(cherry picked from commit ca391f932e3a3f032dd8b84566c4176857eb8ac3)
Improve focusin detection support

This change prevents unintentional scrolling and unfocusing of
whatever element was in focus before the feature detect in browsers
that need to do the long feature detect.

Adds test case.

Refs #17599

(cherry picked from commit 2536e5cd0935cc7356d584bab6ac2c73d3ad6164)

Conflicts:
	tests/on/on.js

(cherry picked from commit f774568707ea95b9a56bf646b2ce46e1c57907f8)
Position test element so it is actually fixed to viewport

Fixes #17626

(cherry picked from commit 65e989efbcda628e72c9616faf11d480aacebf2f)
(cherry picked from commit ab088a9741a6383495a20bc34e84403e2962ed03)
Just use onfocusin as a detection test for focusin support

Due to various restrictions on what dojo/on can depend on,
and a desire to resolve this issue so that a release can be issued,
simply check for a matching event key on the has-test element.
This stops focusin/focusout from being used in WebKit and Blink
in lieu of event capturing, which is not ideal, but is not any
worse than what was happening before.

Refs #17599.

(cherry picked from commit 81e1c7d6b52e2f42a3bbc8259f875bd83aaa8541)
(cherry picked from commit df47713a809bb5dfdd9a6dad472b6693c501b866)
Do mousemove timing in javascript, rather than in java.   This is getting intermittent failures on Tree_dnd.html but I think I can resolve them after the next checkin, where I monitor events on the document to tell when java robot actually executes each command.   Refs #15590 !strict.

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@29202 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 0eb6042a4a93aaf709d134f8ce1aadc1a13aa6f9)
Rework mouse.enter/mouse.leave to work properly with selectors by using the selector itself to compare the exit and entry nodes for filtering the event, fixes #14509 !strict

git-svn-id: http://svn.dojotoolkit.org/src/dojo/trunk@27489 560b804f-0ae3-0310-86f3-f6aa0a117693
(cherry picked from commit 7fabe75b277662b2b1cc91eae9b7cb5afa5832e5)