| 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 860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 { | 871 { |
| 872 if (!frame()) | 872 if (!frame()) |
| 873 return 0; | 873 return 0; |
| 874 | 874 |
| 875 FrameHost* host = frame()->host(); | 875 FrameHost* host = frame()->host(); |
| 876 if (!host) | 876 if (!host) |
| 877 return 0; | 877 return 0; |
| 878 | 878 |
| 879 ChromeClient& chromeClient = host->chromeClient(); | 879 ChromeClient& chromeClient = host->chromeClient(); |
| 880 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) | 880 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) |
| 881 return lroundf(chromeClient.windowRect().height() * chromeClient.screenI
nfo().deviceScaleFactor); | 881 return lroundf(chromeClient.rootWindowRect().height() * chromeClient.scr
eenInfo().deviceScaleFactor); |
| 882 return chromeClient.windowRect().height(); | 882 return chromeClient.rootWindowRect().height(); |
| 883 } | 883 } |
| 884 | 884 |
| 885 int LocalDOMWindow::outerWidth() const | 885 int LocalDOMWindow::outerWidth() const |
| 886 { | 886 { |
| 887 if (!frame()) | 887 if (!frame()) |
| 888 return 0; | 888 return 0; |
| 889 | 889 |
| 890 FrameHost* host = frame()->host(); | 890 FrameHost* host = frame()->host(); |
| 891 if (!host) | 891 if (!host) |
| 892 return 0; | 892 return 0; |
| 893 | 893 |
| 894 ChromeClient& chromeClient = host->chromeClient(); | 894 ChromeClient& chromeClient = host->chromeClient(); |
| 895 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) | 895 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) |
| 896 return lroundf(chromeClient.windowRect().width() * chromeClient.screenIn
fo().deviceScaleFactor); | 896 return lroundf(chromeClient.rootWindowRect().width() * chromeClient.scre
enInfo().deviceScaleFactor); |
| 897 | 897 |
| 898 return chromeClient.windowRect().width(); | 898 return chromeClient.rootWindowRect().width(); |
| 899 } | 899 } |
| 900 | 900 |
| 901 FloatSize LocalDOMWindow::getViewportSize(IncludeScrollbarsInRect scrollbarInclu
sion) const | 901 FloatSize LocalDOMWindow::getViewportSize(IncludeScrollbarsInRect scrollbarInclu
sion) const |
| 902 { | 902 { |
| 903 if (!frame()) | 903 if (!frame()) |
| 904 return FloatSize(); | 904 return FloatSize(); |
| 905 | 905 |
| 906 FrameView* view = frame()->view(); | 906 FrameView* view = frame()->view(); |
| 907 if (!view) | 907 if (!view) |
| 908 return FloatSize(); | 908 return FloatSize(); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 951 { | 951 { |
| 952 if (!frame()) | 952 if (!frame()) |
| 953 return 0; | 953 return 0; |
| 954 | 954 |
| 955 FrameHost* host = frame()->host(); | 955 FrameHost* host = frame()->host(); |
| 956 if (!host) | 956 if (!host) |
| 957 return 0; | 957 return 0; |
| 958 | 958 |
| 959 ChromeClient& chromeClient = host->chromeClient(); | 959 ChromeClient& chromeClient = host->chromeClient(); |
| 960 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) | 960 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) |
| 961 return lroundf(chromeClient.windowRect().x() * chromeClient.screenInfo()
.deviceScaleFactor); | 961 return lroundf(chromeClient.rootWindowRect().x() * chromeClient.screenIn
fo().deviceScaleFactor); |
| 962 return chromeClient.windowRect().x(); | 962 return chromeClient.rootWindowRect().x(); |
| 963 } | 963 } |
| 964 | 964 |
| 965 int LocalDOMWindow::screenY() const | 965 int LocalDOMWindow::screenY() const |
| 966 { | 966 { |
| 967 if (!frame()) | 967 if (!frame()) |
| 968 return 0; | 968 return 0; |
| 969 | 969 |
| 970 FrameHost* host = frame()->host(); | 970 FrameHost* host = frame()->host(); |
| 971 if (!host) | 971 if (!host) |
| 972 return 0; | 972 return 0; |
| 973 | 973 |
| 974 ChromeClient& chromeClient = host->chromeClient(); | 974 ChromeClient& chromeClient = host->chromeClient(); |
| 975 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) | 975 if (host->settings().reportScreenSizeInPhysicalPixelsQuirk()) |
| 976 return lroundf(chromeClient.windowRect().y() * chromeClient.screenInfo()
.deviceScaleFactor); | 976 return lroundf(chromeClient.rootWindowRect().y() * chromeClient.screenIn
fo().deviceScaleFactor); |
| 977 return chromeClient.windowRect().y(); | 977 return chromeClient.rootWindowRect().y(); |
| 978 } | 978 } |
| 979 | 979 |
| 980 double LocalDOMWindow::scrollX() const | 980 double LocalDOMWindow::scrollX() const |
| 981 { | 981 { |
| 982 if (!frame() || !frame()->host()) | 982 if (!frame() || !frame()->host()) |
| 983 return 0; | 983 return 0; |
| 984 | 984 |
| 985 if (!frame()->host()->settings().inertVisualViewport()) | 985 if (!frame()->host()->settings().inertVisualViewport()) |
| 986 return m_visualViewport->pageX(); | 986 return m_visualViewport->pageX(); |
| 987 | 987 |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1225 | 1225 |
| 1226 void LocalDOMWindow::moveBy(int x, int y) const | 1226 void LocalDOMWindow::moveBy(int x, int y) const |
| 1227 { | 1227 { |
| 1228 if (!frame() || !frame()->isMainFrame()) | 1228 if (!frame() || !frame()->isMainFrame()) |
| 1229 return; | 1229 return; |
| 1230 | 1230 |
| 1231 FrameHost* host = frame()->host(); | 1231 FrameHost* host = frame()->host(); |
| 1232 if (!host) | 1232 if (!host) |
| 1233 return; | 1233 return; |
| 1234 | 1234 |
| 1235 IntRect windowRect = host->chromeClient().windowRect(); | 1235 IntRect windowRect = host->chromeClient().rootWindowRect(); |
| 1236 windowRect.move(x, y); | 1236 windowRect.move(x, y); |
| 1237 // Security check (the spec talks about UniversalBrowserWrite to disable thi
s check...) | 1237 // Security check (the spec talks about UniversalBrowserWrite to disable thi
s check...) |
| 1238 host->chromeClient().setWindowRectWithAdjustment(windowRect); | 1238 host->chromeClient().setWindowRectWithAdjustment(windowRect, *frame()); |
| 1239 } | 1239 } |
| 1240 | 1240 |
| 1241 void LocalDOMWindow::moveTo(int x, int y) const | 1241 void LocalDOMWindow::moveTo(int x, int y) const |
| 1242 { | 1242 { |
| 1243 if (!frame() || !frame()->isMainFrame()) | 1243 if (!frame() || !frame()->isMainFrame()) |
| 1244 return; | 1244 return; |
| 1245 | 1245 |
| 1246 FrameHost* host = frame()->host(); | 1246 FrameHost* host = frame()->host(); |
| 1247 if (!host) | 1247 if (!host) |
| 1248 return; | 1248 return; |
| 1249 | 1249 |
| 1250 IntRect windowRect = host->chromeClient().windowRect(); | 1250 IntRect windowRect = host->chromeClient().rootWindowRect(); |
| 1251 windowRect.setLocation(IntPoint(x, y)); | 1251 windowRect.setLocation(IntPoint(x, y)); |
| 1252 // Security check (the spec talks about UniversalBrowserWrite to disable thi
s check...) | 1252 // Security check (the spec talks about UniversalBrowserWrite to disable thi
s check...) |
| 1253 host->chromeClient().setWindowRectWithAdjustment(windowRect); | 1253 host->chromeClient().setWindowRectWithAdjustment(windowRect, *frame()); |
| 1254 } | 1254 } |
| 1255 | 1255 |
| 1256 void LocalDOMWindow::resizeBy(int x, int y) const | 1256 void LocalDOMWindow::resizeBy(int x, int y) const |
| 1257 { | 1257 { |
| 1258 if (!frame() || !frame()->isMainFrame()) | 1258 if (!frame() || !frame()->isMainFrame()) |
| 1259 return; | 1259 return; |
| 1260 | 1260 |
| 1261 FrameHost* host = frame()->host(); | 1261 FrameHost* host = frame()->host(); |
| 1262 if (!host) | 1262 if (!host) |
| 1263 return; | 1263 return; |
| 1264 | 1264 |
| 1265 IntRect fr = host->chromeClient().windowRect(); | 1265 IntRect fr = host->chromeClient().rootWindowRect(); |
| 1266 IntSize dest = fr.size() + IntSize(x, y); | 1266 IntSize dest = fr.size() + IntSize(x, y); |
| 1267 IntRect update(fr.location(), dest); | 1267 IntRect update(fr.location(), dest); |
| 1268 host->chromeClient().setWindowRectWithAdjustment(update); | 1268 host->chromeClient().setWindowRectWithAdjustment(update, *frame()); |
| 1269 } | 1269 } |
| 1270 | 1270 |
| 1271 void LocalDOMWindow::resizeTo(int width, int height) const | 1271 void LocalDOMWindow::resizeTo(int width, int height) const |
| 1272 { | 1272 { |
| 1273 if (!frame() || !frame()->isMainFrame()) | 1273 if (!frame() || !frame()->isMainFrame()) |
| 1274 return; | 1274 return; |
| 1275 | 1275 |
| 1276 FrameHost* host = frame()->host(); | 1276 FrameHost* host = frame()->host(); |
| 1277 if (!host) | 1277 if (!host) |
| 1278 return; | 1278 return; |
| 1279 | 1279 |
| 1280 IntRect fr = host->chromeClient().windowRect(); | 1280 IntRect fr = host->chromeClient().rootWindowRect(); |
| 1281 IntSize dest = IntSize(width, height); | 1281 IntSize dest = IntSize(width, height); |
| 1282 IntRect update(fr.location(), dest); | 1282 IntRect update(fr.location(), dest); |
| 1283 host->chromeClient().setWindowRectWithAdjustment(update); | 1283 host->chromeClient().setWindowRectWithAdjustment(update, *frame()); |
| 1284 } | 1284 } |
| 1285 | 1285 |
| 1286 int LocalDOMWindow::requestAnimationFrame(FrameRequestCallback* callback) | 1286 int LocalDOMWindow::requestAnimationFrame(FrameRequestCallback* callback) |
| 1287 { | 1287 { |
| 1288 callback->m_useLegacyTimeBase = false; | 1288 callback->m_useLegacyTimeBase = false; |
| 1289 if (Document* doc = document()) | 1289 if (Document* doc = document()) |
| 1290 return doc->requestAnimationFrame(callback); | 1290 return doc->requestAnimationFrame(callback); |
| 1291 return 0; | 1291 return 0; |
| 1292 } | 1292 } |
| 1293 | 1293 |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1542 { | 1542 { |
| 1543 // If the LocalDOMWindow still has a frame reference, that frame must point | 1543 // If the LocalDOMWindow still has a frame reference, that frame must point |
| 1544 // back to this LocalDOMWindow: otherwise, it's easy to get into a situation | 1544 // back to this LocalDOMWindow: otherwise, it's easy to get into a situation |
| 1545 // where script execution leaks between different LocalDOMWindows. | 1545 // where script execution leaks between different LocalDOMWindows. |
| 1546 if (m_frameObserver->frame()) | 1546 if (m_frameObserver->frame()) |
| 1547 ASSERT_WITH_SECURITY_IMPLICATION(m_frameObserver->frame()->domWindow() =
= this); | 1547 ASSERT_WITH_SECURITY_IMPLICATION(m_frameObserver->frame()->domWindow() =
= this); |
| 1548 return m_frameObserver->frame(); | 1548 return m_frameObserver->frame(); |
| 1549 } | 1549 } |
| 1550 | 1550 |
| 1551 } // namespace blink | 1551 } // namespace blink |
| OLD | NEW |