| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1564 } | 1564 } |
| 1565 | 1565 |
| 1566 void DOMWindow::printErrorMessage(const String& message) | 1566 void DOMWindow::printErrorMessage(const String& message) |
| 1567 { | 1567 { |
| 1568 if (message.isEmpty()) | 1568 if (message.isEmpty()) |
| 1569 return; | 1569 return; |
| 1570 | 1570 |
| 1571 pageConsole()->addMessage(JSMessageSource, ErrorMessageLevel, message); | 1571 pageConsole()->addMessage(JSMessageSource, ErrorMessageLevel, message); |
| 1572 } | 1572 } |
| 1573 | 1573 |
| 1574 // FIXME: Once we're throwing exceptions for cross-origin access violations, we
will always sanitize the target |
| 1575 // frame details, so we can safely combine 'crossDomainAccessErrorMessage' with
this method after considering |
| 1576 // exactly which details may be exposed to JavaScript. |
| 1577 // |
| 1578 // http://crbug.com/17325 |
| 1579 String DOMWindow::sanitizedCrossDomainAccessErrorMessage(DOMWindow* activeWindow
) |
| 1580 { |
| 1581 const KURL& activeWindowURL = activeWindow->document()->url(); |
| 1582 if (activeWindowURL.isNull()) |
| 1583 return String(); |
| 1584 |
| 1585 ASSERT(!activeWindow->document()->securityOrigin()->canAccess(document()->se
curityOrigin())); |
| 1586 |
| 1587 SecurityOrigin* activeOrigin = activeWindow->document()->securityOrigin(); |
| 1588 String message = "Blocked a frame with origin \"" + activeOrigin->toString()
+ "\" from accessing a cross-origin frame."; |
| 1589 |
| 1590 // FIXME: Evaluate which details from 'crossDomainAccessErrorMessage' may sa
fely be reported to JavaScript. |
| 1591 |
| 1592 return message; |
| 1593 } |
| 1594 |
| 1574 String DOMWindow::crossDomainAccessErrorMessage(DOMWindow* activeWindow) | 1595 String DOMWindow::crossDomainAccessErrorMessage(DOMWindow* activeWindow) |
| 1575 { | 1596 { |
| 1576 const KURL& activeWindowURL = activeWindow->document()->url(); | 1597 const KURL& activeWindowURL = activeWindow->document()->url(); |
| 1577 if (activeWindowURL.isNull()) | 1598 if (activeWindowURL.isNull()) |
| 1578 return String(); | 1599 return String(); |
| 1579 | 1600 |
| 1580 ASSERT(!activeWindow->document()->securityOrigin()->canAccess(document()->se
curityOrigin())); | 1601 ASSERT(!activeWindow->document()->securityOrigin()->canAccess(document()->se
curityOrigin())); |
| 1581 | 1602 |
| 1582 // FIXME: This message, and other console messages, have extra newlines. Sho
uld remove them. | 1603 // FIXME: This message, and other console messages, have extra newlines. Sho
uld remove them. |
| 1583 SecurityOrigin* activeOrigin = activeWindow->document()->securityOrigin(); | 1604 SecurityOrigin* activeOrigin = activeWindow->document()->securityOrigin(); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1725 | 1746 |
| 1726 Frame* child = frame->tree()->scopedChild(index); | 1747 Frame* child = frame->tree()->scopedChild(index); |
| 1727 if (child) | 1748 if (child) |
| 1728 return child->domWindow(); | 1749 return child->domWindow(); |
| 1729 | 1750 |
| 1730 return 0; | 1751 return 0; |
| 1731 } | 1752 } |
| 1732 | 1753 |
| 1733 | 1754 |
| 1734 } // namespace WebCore | 1755 } // namespace WebCore |
| OLD | NEW |