Eliminate the FOUCS on wired.com. innerWidth and innerHeight on window should not...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 May 2005 20:24:45 +0000 (20:24 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 May 2005 20:24:45 +0000 (20:24 +0000)
pending stylesheets, since even if stylesheets are loading the correct window dimensions can be determined with
a normal layout.

The radar # is 4109888.

        Reviewed by rjw

        * khtml/ecma/kjs_window.cpp:
        (Window::get):
        (Window::updateLayout):
        * khtml/ecma/kjs_window.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9127 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/ecma/kjs_window.cpp
WebCore/khtml/ecma/kjs_window.h

index 139d2fa04ea6207dda48198765c8a013106e273e..faddb64c19ec8f56eeadd2b597bbefb318f33f08 100644 (file)
@@ -1,3 +1,18 @@
+2005-05-05  David Hyatt  <hyatt@apple.com>
+
+       Eliminate the FOUCS on wired.com.  innerWidth and innerHeight on window should not do a layout that ignores
+       pending stylesheets, since even if stylesheets are loading the correct window dimensions can be determined with
+       a normal layout.
+
+       The radar # is 4109888.
+       
+        Reviewed by rjw
+
+        * khtml/ecma/kjs_window.cpp:
+        (Window::get):
+        (Window::updateLayout):
+        * khtml/ecma/kjs_window.h:
+
 2005-05-05  David Hyatt  <hyatt@apple.com>
 
        Fix for 4109667, sIFR flash replacement technique often malfunctions.  This bug occurs when the plugin
index d96b54cada6b4642c6adce220e24abd5d7af705f..9a181d0e062fc6e7e386a1be68085d4d100b9b3c 100644 (file)
@@ -572,12 +572,12 @@ Value Window::get(ExecState *exec, const Identifier &p) const
     case InnerHeight:
       if (!m_part->view())
         return Undefined();
-      updateLayout();
+      updateLayout(false);
       return Number(m_part->view()->visibleHeight());
     case InnerWidth:
       if (!m_part->view())
         return Undefined();
-      updateLayout();
+      updateLayout(false);
       return Number(m_part->view()->visibleWidth());
     case Length:
       return Number(m_part->frames().count());
@@ -1876,11 +1876,14 @@ Value WindowFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
   return Undefined();
 }
 
-void Window::updateLayout() const
+void Window::updateLayout(bool ignoreStylesheets) const
 {
   DOM::DocumentImpl* docimpl = static_cast<DOM::DocumentImpl *>(m_part->document().handle());
   if (docimpl) {
-    docimpl->updateLayoutIgnorePendingStylesheets();
+    if (ignoreStylesheets)
+      docimpl->updateLayoutIgnorePendingStylesheets();
+    else
+      docimpl->updateLayout();
   }
 }
 
index 14a147e37ee03ab4ebe483cfdd2e1da6bc4d7d8c..5d499a5ddc8c5b34aedae8e9e288cad2812d90b1 100644 (file)
@@ -147,7 +147,7 @@ namespace KJS {
     Value getListener(ExecState *exec, int eventId) const;
     void setListener(ExecState *exec, int eventId, Value func);
   private:
-    void updateLayout() const;
+    void updateLayout(bool ignoreStylesheets = true) const;
 
     QGuardedPtr<KHTMLPart> m_part;
     Screen *screen;