[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