All of the functions defined in *chromeObject*, whether getters/setters or methods, close over the scope of the *init()* function, which means they have access to both the *GlobalSimulatorScreen* global and the *aWindow* argument. So you don't need to assign those values to properties of SimulatorScreen, and you don't need to assign *this* to *self*. Just use *GlobalSimulatorScreen* and *aWindow* directly in all the functions.

As for *_onmozorientationchange*, it is only ever defined and used by *chromeObject*, so it can be simply a property of that object. But note that you specify it as "rw", yet you don't include a getter for it, only a setter.