Author: [EMAIL PROTECTED]
Date: Mon Oct  6 15:12:24 2008
New Revision: 3721

Modified:
     
changes/spoon/runAsync/dev/core/src/com/google/gwt/dev/jjs/impl/FragmentLoaderCreator.java
     
changes/spoon/runAsync/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java

Log:
Signal AsyncFragmentLoader once a fragment finishes downloading.
This sets the stage for fragmentation strategies where the order
fragments arrive needs to be controlled.

Modified:  
changes/spoon/runAsync/dev/core/src/com/google/gwt/dev/jjs/impl/FragmentLoaderCreator.java
==============================================================================
---  
changes/spoon/runAsync/dev/core/src/com/google/gwt/dev/jjs/impl/FragmentLoaderCreator.java
       
(original)
+++  
changes/spoon/runAsync/dev/core/src/com/google/gwt/dev/jjs/impl/FragmentLoaderCreator.java
       
Mon Oct  6 15:12:24 2008
@@ -120,15 +120,15 @@

    private void generateOnLoadMethod(PrintWriter srcWriter) {
      srcWriter.println("public static void onLoad() {");
-    srcWriter.println("loaded = true;");
-    srcWriter.println("instance = new " + getLoaderSimpleName() + "();");
      srcWriter.println(ASYNC_FRAGMENT_LOADER  
+ ".logEventProgress(\"download"
          + entryNumber + "\", \"end\");");
-    srcWriter.println(ASYNC_FRAGMENT_LOADER
-        + ".logEventProgress(\"runCallbacks" + entryNumber + "\",  
\"begin\");");
+    srcWriter.println("loaded = true;");
+    srcWriter.println("instance = new " + getLoaderSimpleName() + "();");
+    srcWriter.println(ASYNC_FRAGMENT_LOADER + ".fragmentHasLoaded("
+        + entryNumber + ");");
+
      srcWriter.println("instance.runCallbacks();");
-    srcWriter.println(ASYNC_FRAGMENT_LOADER
-        + ".logEventProgress(\"runCallbacks" + entryNumber + "\",  
\"end\");");
+
      srcWriter.println("}");
    }

@@ -167,7 +167,7 @@
    }

    private void generateRunCallbacksMethod(PrintWriter srcWriter) {
-    srcWriter.println("protected void runCallbacks() {");
+    srcWriter.println("public void runCallbacks() {");
      // TODO(spoon): this runs the callbacks in reverse order
      // TODO(spoon): this runs the callbacks immediately; deferred would be
      // better
@@ -265,9 +265,9 @@
    /**
     * Create a stand-in superclass of the actual loader. This is used to  
keep the
     * liveness analyzer from thinking the real <code>runCallbacks()</code>
-   * method is available until <code>onLoad</code> has been called an the  
real
-   * load instantiated. A little work on TypeTightener could prevent the  
for
-   * this class.
+   * method is available until <code>onLoad</code> has been called and the
+   * real loader instantiated. A little work on TypeTightener could  
prevent the
+   * need for this class.
     */
    private void writeLoaderSuperclass(TreeLogger logger, GeneratorContext  
ctx)
        throws UnableToCompleteException {
@@ -282,7 +282,7 @@
      printWriter.println("package " + getPackage() + ";");
      printWriter.println("public class " + getLoaderSuperclassSimpleName()
          + " {");
-    printWriter.println("protected void runCallbacks() { }");
+    printWriter.println("public void runCallbacks() { }");
      printWriter.println("}");

      printWriter.close();

Modified:  
changes/spoon/runAsync/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java
==============================================================================
---  
changes/spoon/runAsync/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java
      
(original)
+++  
changes/spoon/runAsync/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java
      
Mon Oct  6 15:12:24 2008
@@ -19,9 +19,20 @@
  import com.google.gwt.user.client.Element;

  /**
- *
+ * Low-level support to download an extra fragment of code. This should  
not be
+ * invoked directly by user code.
   */
  public class AsyncFragmentLoader {
+  /**
+   * Inform the loader that the code for an entry point has now finished
+   * loading.
+   *
+   * @param entry The entry whose code fragment is now loaded.
+   */
+  public static void fragmentHasLoaded(int entry) {
+    // There is nothing to do with the current fragmentation strategy
+  }
+
    /**
     * Loads the specified fragment asynchronously.
     *

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to