Fire 'appwidgetready' regardless sequence of executing injection scripts
authorYunchan Cho <yunchan.cho@samsung.com>
Mon, 24 Jun 2013 05:22:29 +0000 (14:22 +0900)
committerYunchan Cho <yunchan.cho@samsung.com>
Wed, 26 Jun 2013 13:37:20 +0000 (22:37 +0900)
[Issue#] N/A
[Problem] If injection script was already executed before loading main resource of box/pd,
          'appwidgetready' event on the main resource is not fired.
[Cause] Generally the injection script fires 'appwidgetready' event,
        if it is executed after loading main resource of box/pd.
        However, in this case, the injection scripts didn't fire 'appwidgetready' event.
[Solution] For fixing this bug, injections script is modified
           to fire 'appwidgetready' event even in this case.

Change-Id: I75a4174a6753550e8e3ec3df150e3adb86bcc76f

src/Core/View/injection.js

index 0780755..0fb5660 100644 (file)
@@ -10,6 +10,14 @@ if (typeof window.tizen == 'undefined') {
 // For future, only window.appwidget will be used
 window.appwidget = new Object();
 
+
+window.appwidget.fireReadyEvent = function () {
+    // If every functionalities of appwidget are initialized, fire appwidget ready event
+    var readyevent = document.createEvent("CustomEvent");
+    readyevent.initCustomEvent("appwidgetready", true, true);
+    document.dispatchEvent(readyevent);
+};
+
 // these are functions for overriding standard javascript functions regarding event
 var original_addEventListener = window.addEventListener;
 var original_removeEventListener = window.removeEventListener;
@@ -30,6 +38,11 @@ window.addEventListener = function(event, callback, capture) {
     } else {
         original_addEventListener.call(window, event, callback, capture);
     }
+
+    if (e == 'appwidgetready') {
+        // fire ready event to content
+        setTimeout(window.appwidget.fireReadyEvent(), 0);
+    }
 };
 
 window.removeEventListener = function(event, callback, capture) {
@@ -111,8 +124,3 @@ if (!appTizenObject) {
     window.tizen.appwidget.scrollStart = window.appwidget.scrollStart;
     window.tizen.appwidget.scrollStop = window.appwidget.scrollStop;
 }
-
-// If every functionalities of appwidget are initialized, fire appwidget ready event
-var readyevent = document.createEvent("CustomEvent");
-readyevent.initCustomEvent("appwidgetready", true, true);
-document.dispatchEvent(readyevent);