src/share/classes/java/awt/Window.java
Print this page
*** 193,206 ****
}
/**
* This represents the warning message that is
* to be displayed in a non secure window. ie :
! * a window that has a security manager installed for
! * which calling SecurityManager.checkTopLevelWindow()
! * is false. This message can be displayed anywhere in
! * the window.
*
* @serial
* @see #getWarningString
*/
String warningString;
--- 193,205 ----
}
/**
* This represents the warning message that is
* to be displayed in a non secure window. ie :
! * a window that has a security manager installed that denies
! * {@code AWTPermission("showWindowWithoutWarningBanner")}.
! * This message can be displayed anywhere in the window.
*
* @serial
* @see #getWarningString
*/
String warningString;
*** 415,440 ****
/**
* Constructs a new, initially invisible window in default size with the
* specified {@code GraphicsConfiguration}.
* <p>
! * If there is a security manager, this method first calls
! * the security manager's {@code checkTopLevelWindow}
! * method with {@code this}
! * as its argument to determine whether or not the window
! * must be displayed with a warning banner.
*
* @param gc the {@code GraphicsConfiguration} of the target screen
* device. If {@code gc} is {@code null}, the system default
* {@code GraphicsConfiguration} is assumed
* @exception IllegalArgumentException if {@code gc}
* is not from a screen device
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
- * @see java.lang.SecurityManager#checkTopLevelWindow
*/
Window(GraphicsConfiguration gc) {
init(gc);
}
--- 414,437 ----
/**
* Constructs a new, initially invisible window in default size with the
* specified {@code GraphicsConfiguration}.
* <p>
! * If there is a security manager, then it is invoked to check
! * {@code AWTPermission("showWindowWithoutWarningBanner")}
! * to determine whether or not the window must be displayed with
! * a warning banner.
*
* @param gc the {@code GraphicsConfiguration} of the target screen
* device. If {@code gc} is {@code null}, the system default
* {@code GraphicsConfiguration} is assumed
* @exception IllegalArgumentException if {@code gc}
* is not from a screen device
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
*/
Window(GraphicsConfiguration gc) {
init(gc);
}
*** 509,537 ****
SunToolkit.checkAndSetPolicy(this);
}
/**
* Constructs a new, initially invisible window in the default size.
! *
! * <p>First, if there is a security manager, its
! * {@code checkTopLevelWindow}
! * method is called with {@code this}
! * as its argument
! * to see if it's ok to display the window without a warning banner.
! * If the default implementation of {@code checkTopLevelWindow}
! * is used (that is, that method is not overriden), then this results in
! * a call to the security manager's {@code checkPermission} method
! * with an {@code AWTPermission("showWindowWithoutWarningBanner")}
! * permission. It that method raises a SecurityException,
! * {@code checkTopLevelWindow} returns false, otherwise it
! * returns true. If it returns false, a warning banner is created.
*
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
- * @see java.lang.SecurityManager#checkTopLevelWindow
*/
Window() throws HeadlessException {
GraphicsEnvironment.checkHeadless();
init((GraphicsConfiguration)null);
}
--- 506,525 ----
SunToolkit.checkAndSetPolicy(this);
}
/**
* Constructs a new, initially invisible window in the default size.
! * <p>
! * If there is a security manager set, it is invoked to check
! * {@code AWTPermission("showWindowWithoutWarningBanner")}.
! * If that check fails with a {@code SecurityException} then a warning
! * banner is created.
*
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
*/
Window() throws HeadlessException {
GraphicsEnvironment.checkHeadless();
init((GraphicsConfiguration)null);
}
*** 539,563 ****
/**
* Constructs a new, initially invisible window with the specified
* {@code Frame} as its owner. The window will not be focusable
* unless its owner is showing on the screen.
* <p>
! * If there is a security manager, this method first calls
! * the security manager's {@code checkTopLevelWindow}
! * method with {@code this}
! * as its argument to determine whether or not the window
! * must be displayed with a warning banner.
*
* @param owner the {@code Frame} to act as owner or {@code null}
* if this window has no owner
* @exception IllegalArgumentException if the {@code owner}'s
* {@code GraphicsConfiguration} is not from a screen device
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless} returns {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
- * @see java.lang.SecurityManager#checkTopLevelWindow
* @see #isShowing
*/
public Window(Frame owner) {
this(owner == null ? (GraphicsConfiguration)null :
owner.getGraphicsConfiguration());
--- 527,549 ----
/**
* Constructs a new, initially invisible window with the specified
* {@code Frame} as its owner. The window will not be focusable
* unless its owner is showing on the screen.
* <p>
! * If there is a security manager set, it is invoked to check
! * {@code AWTPermission("showWindowWithoutWarningBanner")}.
! * If that check fails with a {@code SecurityException} then a warning
! * banner is created.
*
* @param owner the {@code Frame} to act as owner or {@code null}
* if this window has no owner
* @exception IllegalArgumentException if the {@code owner}'s
* {@code GraphicsConfiguration} is not from a screen device
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless} returns {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
* @see #isShowing
*/
public Window(Frame owner) {
this(owner == null ? (GraphicsConfiguration)null :
owner.getGraphicsConfiguration());
*** 568,593 ****
* Constructs a new, initially invisible window with the specified
* {@code Window} as its owner. This window will not be focusable
* unless its nearest owning {@code Frame} or {@code Dialog}
* is showing on the screen.
* <p>
! * If there is a security manager, this method first calls
! * the security manager's {@code checkTopLevelWindow}
! * method with {@code this}
! * as its argument to determine whether or not the window
! * must be displayed with a warning banner.
*
* @param owner the {@code Window} to act as owner or
* {@code null} if this window has no owner
* @exception IllegalArgumentException if the {@code owner}'s
* {@code GraphicsConfiguration} is not from a screen device
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns
* {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
- * @see java.lang.SecurityManager#checkTopLevelWindow
* @see #isShowing
*
* @since 1.2
*/
public Window(Window owner) {
--- 554,577 ----
* Constructs a new, initially invisible window with the specified
* {@code Window} as its owner. This window will not be focusable
* unless its nearest owning {@code Frame} or {@code Dialog}
* is showing on the screen.
* <p>
! * If there is a security manager set, it is invoked to check
! * {@code AWTPermission("showWindowWithoutWarningBanner")}.
! * If that check fails with a {@code SecurityException} then a
! * warning banner is created.
*
* @param owner the {@code Window} to act as owner or
* {@code null} if this window has no owner
* @exception IllegalArgumentException if the {@code owner}'s
* {@code GraphicsConfiguration} is not from a screen device
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns
* {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
* @see #isShowing
*
* @since 1.2
*/
public Window(Window owner) {
*** 601,615 ****
* {@code Window} and a {@code GraphicsConfiguration}
* of a screen device. The Window will not be focusable unless
* its nearest owning {@code Frame} or {@code Dialog}
* is showing on the screen.
* <p>
! * If there is a security manager, this method first calls
! * the security manager's {@code checkTopLevelWindow}
! * method with {@code this}
! * as its argument to determine whether or not the window
! * must be displayed with a warning banner.
*
* @param owner the window to act as owner or {@code null}
* if this window has no owner
* @param gc the {@code GraphicsConfiguration} of the target
* screen device; if {@code gc} is {@code null},
--- 585,598 ----
* {@code Window} and a {@code GraphicsConfiguration}
* of a screen device. The Window will not be focusable unless
* its nearest owning {@code Frame} or {@code Dialog}
* is showing on the screen.
* <p>
! * If there is a security manager set, it is invoked to check
! * {@code AWTPermission("showWindowWithoutWarningBanner")}. If that
! * check fails with a {@code SecurityException} then a warning banner
! * is created.
*
* @param owner the window to act as owner or {@code null}
* if this window has no owner
* @param gc the {@code GraphicsConfiguration} of the target
* screen device; if {@code gc} is {@code null},
*** 619,629 ****
* @exception HeadlessException when
* {@code GraphicsEnvironment.isHeadless()} returns
* {@code true}
*
* @see java.awt.GraphicsEnvironment#isHeadless
- * @see java.lang.SecurityManager#checkTopLevelWindow
* @see GraphicsConfiguration#getBounds
* @see #isShowing
* @since 1.3
*/
public Window(Window owner, GraphicsConfiguration gc) {
--- 602,611 ----
*** 1360,1394 ****
/**
* Gets the warning string that is displayed with this window.
* If this window is insecure, the warning string is displayed
* somewhere in the visible area of the window. A window is
! * insecure if there is a security manager, and the security
! * manager's {@code checkTopLevelWindow} method returns
! * {@code false} when this window is passed to it as an
! * argument.
* <p>
* If the window is secure, then {@code getWarningString}
* returns {@code null}. If the window is insecure, this
* method checks for the system property
* {@code awt.appletWarning}
* and returns the string value of that property.
* @return the warning string for this window.
- * @see java.lang.SecurityManager#checkTopLevelWindow(java.lang.Object)
*/
public final String getWarningString() {
return warningString;
}
private void setWarningString() {
warningString = null;
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
! if (!sm.checkTopLevelWindow(this)) {
// make sure the privileged action is only
// for getting the property! We don't want the
! // above checkTopLevelWindow call to always succeed!
warningString = AccessController.doPrivileged(
new GetPropertyAction("awt.appletWarning",
"Java Applet Window"));
}
}
--- 1342,1376 ----
/**
* Gets the warning string that is displayed with this window.
* If this window is insecure, the warning string is displayed
* somewhere in the visible area of the window. A window is
! * insecure if there is a security manager and the security
! * manager denies
! * {@code AWTPermission("showWindowWithoutWarningBanner")}.
* <p>
* If the window is secure, then {@code getWarningString}
* returns {@code null}. If the window is insecure, this
* method checks for the system property
* {@code awt.appletWarning}
* and returns the string value of that property.
* @return the warning string for this window.
*/
public final String getWarningString() {
return warningString;
}
private void setWarningString() {
warningString = null;
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
! try {
! sm.checkPermission(SecurityConstants.AWT.TOPLEVEL_WINDOW_PERMISSION);
! } catch (SecurityException se) {
// make sure the privileged action is only
// for getting the property! We don't want the
! // above checkPermission call to always succeed!
warningString = AccessController.doPrivileged(
new GetPropertyAction("awt.appletWarning",
"Java Applet Window"));
}
}