User:Salvatore Ingala/Review 2

From mediawiki.org
  • I'd like to be able at least to see the numeric value of track bars. Ideally, it should be possible to enter from keyboard.
    Yes Done except for keyboard input; added something similar to tooltips in r94778; keyboard input needs this jQuery.UI bug to be fixed to be useful. Salvatore Ingala 17:41, 17 August 2011 (UTC)
  • "Settings saved successfully" message box is too intrusive, better use a non-modal confirmation.
    Yes Done in r94959. Salvatore Ingala 23:12, 18 August 2011 (UTC)
  • Save button should be clickable only if settings are actually changed.
    Yes Done in r94959. Salvatore Ingala 23:12, 18 August 2011 (UTC)
  • Use standard buttons in dialog, otherwise Mac users might want to apply tar and feathers to you.
    Probably unfeasible, would break the jQuery.UI theme. Salvatore Ingala 23:12, 18 August 2011 (UTC)
    $( '.ui-button' ).removeClass().unbind( 'mouseover' ) will not break anything. Max Semenik 15:21, 19 August 2011 (UTC)
    Yeah, Yes Done in r95032. Salvatore Ingala 21:39, 19 August 2011 (UTC)
  • Re-check proxy caching headers for Gadget API modules and module visibility for RL modules to avoid leaking private data.
    Summary of current setup:
    • API
      • getgadgetprefs has cache mode 'private' (which is the default); it allows GET, but client side caching is disabled as of r95199.
      • setgadgetprefs has cache mode 'private' and requires POST requests.
    • Modules
      • GadgetsMainModule ('ext.gadgets') has no private info, only setups the mw.gadgets object and the list of configurable gadgets;
      • ResourceLoaderGadgetModule ('ext.gadget.Foo') only contains gadget's code, so it is safe to leave it public. As of r95083, the output script is made independent of whether the gadget has preferences or not.
      • GadgetOptionsResourceLoaderModule ('ext.gadget.Foo.prefs') contains the user preferences: it is in the group 'private'.
    I think it's the right setup. Salvatore Ingala 18:28, 20 August 2011 (UTC)

Errors[edit]

Log 
[13-Aug-2011 21:24:10] PHP Notice:  Undefined index: name in D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetHooks.php on line 308
[13-Aug-2011 21:24:10] PHP Stack trace:
[13-Aug-2011 21:24:10] PHP   1. {main}() D:\Projects\MediaWiki\api.php:0
[13-Aug-2011 21:24:10] PHP   2. ApiMain->execute() D:\Projects\MediaWiki\api.php:115
[13-Aug-2011 21:24:10] PHP   3. ApiMain->executeActionWithErrorHandling() D:\Projects\MediaWiki\includes\api\ApiMain.php:342
[13-Aug-2011 21:24:10] PHP   4. ApiMain->executeAction() D:\Projects\MediaWiki\includes\api\ApiMain.php:358
[13-Aug-2011 21:24:10] PHP   5. ApiSetGadgetPrefs->execute() D:\Projects\MediaWiki\includes\api\ApiMain.php:692
[13-Aug-2011 21:24:10] PHP   6. Gadget->setPrefs() D:\Projects\MediaWiki branches\gsoc11\Gadgets\api\ApiSetGadgetPrefs.php:54
[13-Aug-2011 21:24:10] PHP   7. User->saveSettings() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\Gadget.php:507
[13-Aug-2011 21:24:10] PHP   8. User->saveOptions() D:\Projects\MediaWiki\includes\User.php:2824
[13-Aug-2011 21:24:10] PHP   9. wfRunHooks() D:\Projects\MediaWiki\includes\User.php:4012
[13-Aug-2011 21:24:10] PHP  10. Hooks::run() D:\Projects\MediaWiki\includes\GlobalFunctions.php:3558
[13-Aug-2011 21:24:10] PHP  11. call_user_func_array() D:\Projects\MediaWiki\includes\Hooks.php:216
[13-Aug-2011 21:24:10] PHP  12. GadgetHooks::userSaveOptions() D:\Projects\MediaWiki\includes\Hooks.php:0
[13-Aug-2011 21:24:10] PHP Notice:  Undefined index: default in D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetHooks.php on line 309
[13-Aug-2011 21:24:10] PHP Stack trace:
[13-Aug-2011 21:24:10] PHP   1. {main}() D:\Projects\MediaWiki\api.php:0
[13-Aug-2011 21:24:10] PHP   2. ApiMain->execute() D:\Projects\MediaWiki\api.php:115
[13-Aug-2011 21:24:10] PHP   3. ApiMain->executeActionWithErrorHandling() D:\Projects\MediaWiki\includes\api\ApiMain.php:342
[13-Aug-2011 21:24:10] PHP   4. ApiMain->executeAction() D:\Projects\MediaWiki\includes\api\ApiMain.php:358
[13-Aug-2011 21:24:10] PHP   5. ApiSetGadgetPrefs->execute() D:\Projects\MediaWiki\includes\api\ApiMain.php:692
[13-Aug-2011 21:24:10] PHP   6. Gadget->setPrefs() D:\Projects\MediaWiki branches\gsoc11\Gadgets\api\ApiSetGadgetPrefs.php:54
[13-Aug-2011 21:24:10] PHP   7. User->saveSettings() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\Gadget.php:507
[13-Aug-2011 21:24:10] PHP   8. User->saveOptions() D:\Projects\MediaWiki\includes\User.php:2824
[13-Aug-2011 21:24:10] PHP   9. wfRunHooks() D:\Projects\MediaWiki\includes\User.php:4012
[13-Aug-2011 21:24:10] PHP  10. Hooks::run() D:\Projects\MediaWiki\includes\GlobalFunctions.php:3558
[13-Aug-2011 21:24:10] PHP  11. call_user_func_array() D:\Projects\MediaWiki\includes\Hooks.php:216
[13-Aug-2011 21:24:10] PHP  12. GadgetHooks::userSaveOptions() D:\Projects\MediaWiki\includes\Hooks.php:0
[13-Aug-2011 21:24:10] PHP Notice:  Undefined index:  in D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetHooks.php on line 310
[13-Aug-2011 21:24:10] PHP Stack trace:
[13-Aug-2011 21:24:10] PHP   1. {main}() D:\Projects\MediaWiki\api.php:0
[13-Aug-2011 21:24:10] PHP   2. ApiMain->execute() D:\Projects\MediaWiki\api.php:115
[13-Aug-2011 21:24:10] PHP   3. ApiMain->executeActionWithErrorHandling() D:\Projects\MediaWiki\includes\api\ApiMain.php:342
[13-Aug-2011 21:24:10] PHP   4. ApiMain->executeAction() D:\Projects\MediaWiki\includes\api\ApiMain.php:358
[13-Aug-2011 21:24:10] PHP   5. ApiSetGadgetPrefs->execute() D:\Projects\MediaWiki\includes\api\ApiMain.php:692
[13-Aug-2011 21:24:10] PHP   6. Gadget->setPrefs() D:\Projects\MediaWiki branches\gsoc11\Gadgets\api\ApiSetGadgetPrefs.php:54
[13-Aug-2011 21:24:10] PHP   7. User->saveSettings() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\Gadget.php:507
[13-Aug-2011 21:24:10] PHP   8. User->saveOptions() D:\Projects\MediaWiki\includes\User.php:2824
[13-Aug-2011 21:24:10] PHP   9. wfRunHooks() D:\Projects\MediaWiki\includes\User.php:4012
[13-Aug-2011 21:24:10] PHP  10. Hooks::run() D:\Projects\MediaWiki\includes\GlobalFunctions.php:3558
[13-Aug-2011 21:24:10] PHP  11. call_user_func_array() D:\Projects\MediaWiki\includes\Hooks.php:216
[13-Aug-2011 21:24:10] PHP  12. GadgetHooks::userSaveOptions() D:\Projects\MediaWiki\includes\Hooks.php:0
Yes Done, should be fixed in r94736. Salvatore Ingala 09:08, 17 August 2011 (UTC)

If we try to save prefs with invalid JSON:

Log 
[14-Aug-2011 10:04:51] PHP Warning:  Invalid argument supplied for foreach() in D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetPrefs.php on line 396
[14-Aug-2011 10:04:51] PHP Stack trace:
[14-Aug-2011 10:04:51] PHP   1. {main}() D:\Projects\MediaWiki\index.php:0
[14-Aug-2011 10:04:51] PHP   2. MediaWiki->run() D:\Projects\MediaWiki\index.php:58
[14-Aug-2011 10:04:51] PHP   3. MediaWiki->main() D:\Projects\MediaWiki\includes\Wiki.php:528
[14-Aug-2011 10:04:51] PHP   4. MediaWiki->performRequest() D:\Projects\MediaWiki\includes\Wiki.php:621
[14-Aug-2011 10:04:51] PHP   5. MediaWiki->performAction() D:\Projects\MediaWiki\includes\Wiki.php:236
[14-Aug-2011 10:04:51] PHP   6. EditPage->submit() D:\Projects\MediaWiki\includes\Wiki.php:496
[14-Aug-2011 10:04:51] PHP   7. EditPage->edit() D:\Projects\MediaWiki\includes\EditPage.php:353
[14-Aug-2011 10:04:51] PHP   8. EditPage->attemptSave() D:\Projects\MediaWiki\includes\EditPage.php:472
[14-Aug-2011 10:04:51] PHP   9. EditPage->internalAttemptSave() D:\Projects\MediaWiki\includes\EditPage.php:2797
[14-Aug-2011 10:04:51] PHP  10. Article->doEdit() D:\Projects\MediaWiki\includes\EditPage.php:1154
[14-Aug-2011 10:04:51] PHP  11. Article->__call() D:\Projects\MediaWiki\includes\Article.php:0
[14-Aug-2011 10:04:51] PHP  12. call_user_func_array() D:\Projects\MediaWiki\includes\Article.php:2020
[14-Aug-2011 10:04:51] PHP  13. WikiPage->doEdit() D:\Projects\MediaWiki\includes\Article.php:0
[14-Aug-2011 10:04:51] PHP  14. wfRunHooks() D:\Projects\MediaWiki\includes\WikiPage.php:1285
[14-Aug-2011 10:04:51] PHP  15. Hooks::run() D:\Projects\MediaWiki\includes\GlobalFunctions.php:3567
[14-Aug-2011 10:04:51] PHP  16. call_user_func_array() D:\Projects\MediaWiki\includes\Hooks.php:216
[14-Aug-2011 10:04:51] PHP  17. GadgetHooks::articleSaveComplete() D:\Projects\MediaWiki\includes\Hooks.php:0
[14-Aug-2011 10:04:51] PHP  18. Gadget::loadStructuredList() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetHooks.php:38
[14-Aug-2011 10:04:51] PHP  19. Gadget::newFromDefinition() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\Gadget.php:423
[14-Aug-2011 10:04:51] PHP  20. GadgetPrefs::getDefaults() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\Gadget.php:118
[14-Aug-2011 10:04:51] PHP  21. GadgetPrefs::matchPrefsWithDescription() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetPrefs.php:832
[14-Aug-2011 10:04:51] PHP  22. GadgetPrefs::flattenPrefsDescription() D:\Projects\MediaWiki branches\gsoc11\Gadgets\backend\GadgetPrefs.php:794
Yes Done, should be fixed as per this change in r94653. Salvatore Ingala 09:08, 17 August 2011 (UTC)