[webkit-changes] cvs commit: WebCore/khtml/ecma kjs_window.cpp kjs_window.h kjs_window.lut.h

Adele adele at opensource.apple.com
Tue Jul 12 21:26:00 PDT 2005


adele       05/07/12 21:26:00

  Modified:    .        Tag: Safari-1-3-branch ChangeLog
               khtml/ecma Tag: Safari-1-3-branch kjs_window.cpp
                        kjs_window.h kjs_window.lut.h
  Log:
          Merged fix from TOT to Safari-1-3-branch
          <rdar://problem/4164993>
  
      2005-05-02  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
          Added two layout tests for regression testing.
  
          - redid frameElement (fix for 4091082 below)
  
          The first version lacked a security check, and was also broken.
  
          * khtml/ecma/kjs_window.cpp:
          (frameElement): Refactored into separate function; added isSafeScript check.
          (Window::get): Call the new frameElement function.
  
      2005-04-22  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4091082> Google Suggest no longer works due to lack of "frameElement"
  
          * khtml/ecma/kjs_window.h: Added FrameElement.
          * khtml/ecma/kjs_window.cpp: (Window::get): Added "frameElement".
          * khtml/ecma/kjs_window.lut.h: Regenerated.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4108.4.38 +28 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.4108.4.37
  retrieving revision 1.4108.4.38
  diff -u -r1.4108.4.37 -r1.4108.4.38
  --- ChangeLog	13 Jul 2005 01:08:30 -0000	1.4108.4.37
  +++ ChangeLog	13 Jul 2005 04:25:52 -0000	1.4108.4.38
  @@ -1,6 +1,34 @@
   2005-07-12  Adele Peterson  <adele at apple.com>
   
           Merged fix from TOT to Safari-1-3-branch
  +        <rdar://problem/4164993>
  +
  +    2005-05-02  Darin Adler  <darin at apple.com>
  +
  +        Reviewed by Vicki.
  +        Added two layout tests for regression testing.
  +
  +        - redid frameElement (fix for 4091082 below)
  +
  +        The first version lacked a security check, and was also broken.
  +
  +        * khtml/ecma/kjs_window.cpp:
  +        (frameElement): Refactored into separate function; added isSafeScript check.
  +        (Window::get): Call the new frameElement function.
  +
  +    2005-04-22  Darin Adler  <darin at apple.com>
  +
  +        Reviewed by John.
  +
  +        - fixed <rdar://problem/4091082> Google Suggest no longer works due to lack of "frameElement"
  +
  +        * khtml/ecma/kjs_window.h: Added FrameElement.
  +        * khtml/ecma/kjs_window.cpp: (Window::get): Added "frameElement".
  +        * khtml/ecma/kjs_window.lut.h: Regenerated.
  +
  +2005-07-12  Adele Peterson  <adele at apple.com>
  +
  +        Merged fix from TOT to Safari-1-3-branch
           <rdar://problem/4178198>
   
       2005-07-12  Kevin Decker  <kdecker at apple.com>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.146.6.6 +34 -0     WebCore/khtml/ecma/kjs_window.cpp
  
  Index: kjs_window.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/kjs_window.cpp,v
  retrieving revision 1.146.6.5
  retrieving revision 1.146.6.6
  diff -u -r1.146.6.5 -r1.146.6.6
  --- kjs_window.cpp	12 Jul 2005 22:21:08 -0000	1.146.6.5
  +++ kjs_window.cpp	13 Jul 2005 04:25:59 -0000	1.146.6.6
  @@ -76,6 +76,7 @@
   
   using DOM::DocumentImpl;
   using DOM::DOMString;
  +using DOM::ElementImpl;
   using DOM::Node;
   using DOM::Position;
   using khtml::TypingCommand;
  @@ -308,6 +309,7 @@
     onselect	Window::Onselect	DontDelete
     onsubmit	Window::Onsubmit	DontDelete
     onunload	Window::Onunload	DontDelete
  +  frameElement  Window::FrameElement    DontDelete|ReadOnly
     showModalDialog Window::ShowModalDialog    DontDelete|Function 1
   @end
   */
  @@ -680,6 +682,32 @@
       return returnValue;
   }
   
  +static ElementImpl *frameElement(ExecState *exec, KHTMLPart *part)
  +{
  +    // Find the frame element.
  +    DocumentImpl *document = part->xmlDocImpl();
  +    if (!document)
  +        return 0;
  +    ElementImpl *frameElement = document->ownerElement();
  +    if (!frameElement)
  +        return 0;
  +
  +    // Find the window object for the frame element, and do a cross-domain check.
  +    DocumentImpl *frameElementDocument = frameElement->getDocument();
  +    if (!frameElementDocument)
  +        return 0;
  +    KHTMLPart *frameElementPart = frameElementDocument->part();
  +    if (!frameElementPart)
  +        return 0;
  +    Window *frameElementWindow = Window::retrieveWindow(frameElementPart);
  +    if (!frameElementWindow)
  +        return 0;
  +    if (!frameElementWindow->isSafeScript(exec))
  +        return 0;
  +
  +    return frameElement;
  +}
  +
   Value Window::get(ExecState *exec, const Identifier &p) const
   {
   #ifdef KJS_VERBOSE
  @@ -1053,6 +1081,12 @@
           return getListener(exec,DOM::EventImpl::UNLOAD_EVENT);
         else
           return Undefined();
  +    case FrameElement: {
  +      ElementImpl *fe = frameElement(exec, m_part);
  +      if (!fe)
  +        return Undefined();
  +      return getDOMNode(exec, fe);
  +    }
       }
     }
   
  
  
  
  1.34.6.4  +1 -1      WebCore/khtml/ecma/kjs_window.h
  
  Index: kjs_window.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/kjs_window.h,v
  retrieving revision 1.34.6.3
  retrieving revision 1.34.6.4
  diff -u -r1.34.6.3 -r1.34.6.4
  --- kjs_window.h	12 Jul 2005 21:59:03 -0000	1.34.6.3
  +++ kjs_window.h	13 Jul 2005 04:25:59 -0000	1.34.6.4
  @@ -145,7 +145,7 @@
   	   Onfocus, Onkeydown, Onkeypress, Onkeyup, Onload, Onmousedown, Onmousemove,
              Onmouseout, Onmouseover, Onmouseup, Onmove, Onreset, Onresize, Onscroll, Onsearch,
              Onselect, Onsubmit, Onunload,
  -           Statusbar, Toolbar, ShowModalDialog };
  +           Statusbar, Toolbar, FrameElement, ShowModalDialog };
     protected:
       Value getListener(ExecState *exec, int eventId) const;
       void setListener(ExecState *exec, int eventId, Value func);
  
  
  
  1.17.10.3 +1 -1      WebCore/khtml/ecma/Attic/kjs_window.lut.h
  
  Index: kjs_window.lut.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/Attic/kjs_window.lut.h,v
  retrieving revision 1.17.10.2
  retrieving revision 1.17.10.3
  diff -u -r1.17.10.2 -r1.17.10.3
  --- kjs_window.lut.h	12 Jul 2005 00:06:43 -0000	1.17.10.2
  +++ kjs_window.lut.h	13 Jul 2005 04:25:59 -0000	1.17.10.3
  @@ -76,7 +76,7 @@
      { "innerWidth", Window::InnerWidth, DontDelete|ReadOnly, 0, &WindowTableEntries[120] },
      { "defaultstatus", Window::DefaultStatus, DontDelete, 0, 0 },
      { "name", Window::Name, DontDelete, 0, 0 },
  -   { 0, 0, 0, 0, 0 },
  +   { "frameElement", Window::FrameElement, DontDelete|ReadOnly, 0, 0 },
      { "offscreenBuffering", Window::OffscreenBuffering, DontDelete|ReadOnly, 0, 0 },
      { 0, 0, 0, 0, 0 },
      { "onscroll", Window::Onscroll, DontDelete, 0, 0 },
  
  
  



More information about the webkit-changes mailing list