OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 6896 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6907 v8::Local<v8::Value> localWindowTop = mainFrame()->executeScriptAndReturnVal
ue(WebScriptSource( | 6907 v8::Local<v8::Value> localWindowTop = mainFrame()->executeScriptAndReturnVal
ue(WebScriptSource( |
6908 "document.querySelector('#frame2').contentWindow.top;")); | 6908 "document.querySelector('#frame2').contentWindow.top;")); |
6909 EXPECT_TRUE(windowTop->StrictEquals(localWindowTop)); | 6909 EXPECT_TRUE(windowTop->StrictEquals(localWindowTop)); |
6910 | 6910 |
6911 // Manually reset to break WebViewHelper's dependency on the stack allocated | 6911 // Manually reset to break WebViewHelper's dependency on the stack allocated |
6912 // TestWebFrameClient. | 6912 // TestWebFrameClient. |
6913 reset(); | 6913 reset(); |
6914 remoteFrame->close(); | 6914 remoteFrame->close(); |
6915 } | 6915 } |
6916 | 6916 |
6917 TEST_F(WebFrameSwapTest, SwapInitializesGlobal) | |
6918 { | |
6919 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
6920 | |
6921 v8::Local<v8::Value> windowTop = mainFrame()->executeScriptAndReturnValue(We
bScriptSource("window")); | |
6922 ASSERT_TRUE(windowTop->IsObject()); | |
6923 | |
6924 v8::Local<v8::Value> lastChild = mainFrame()->executeScriptAndReturnValue(We
bScriptSource("saved = window[2]")); | |
6925 ASSERT_TRUE(lastChild->IsObject()); | |
6926 | |
6927 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | |
6928 WebRemoteFrame* remoteFrame = remoteClient.frame(); | |
6929 mainFrame()->lastChild()->swap(remoteFrame); | |
6930 remoteFrame->setReplicatedOrigin(SecurityOrigin::createUnique()); | |
6931 v8::Local<v8::Value> remoteWindowTop = mainFrame()->executeScriptAndReturnVa
lue(WebScriptSource("saved.top")); | |
6932 EXPECT_TRUE(remoteWindowTop->IsObject()); | |
6933 EXPECT_TRUE(windowTop->StrictEquals(remoteWindowTop)); | |
6934 | |
6935 FrameTestHelpers::TestWebFrameClient client; | |
6936 WebLocalFrame* localFrame = WebLocalFrame::create(&client); | |
6937 localFrame->initializeToReplaceRemoteFrame(remoteFrame, "", WebSandboxFlags:
:None); | |
6938 remoteFrame->swap(localFrame); | |
6939 v8::Local<v8::Value> localWindowTop = mainFrame()->executeScriptAndReturnVal
ue(WebScriptSource("saved.top")); | |
6940 EXPECT_TRUE(localWindowTop->IsObject()); | |
6941 EXPECT_TRUE(windowTop->StrictEquals(localWindowTop)); | |
6942 | |
6943 reset(); | |
6944 } | |
6945 | |
6946 TEST_F(WebFrameSwapTest, RemoteFramesAreIndexable) | 6917 TEST_F(WebFrameSwapTest, RemoteFramesAreIndexable) |
6947 { | 6918 { |
6948 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 6919 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
6949 | 6920 |
6950 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 6921 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
6951 WebRemoteFrame* remoteFrame = remoteClient.frame(); | 6922 WebRemoteFrame* remoteFrame = remoteClient.frame(); |
6952 mainFrame()->lastChild()->swap(remoteFrame); | 6923 mainFrame()->lastChild()->swap(remoteFrame); |
6953 remoteFrame->setReplicatedOrigin(SecurityOrigin::createUnique()); | 6924 remoteFrame->setReplicatedOrigin(SecurityOrigin::createUnique()); |
6954 v8::Local<v8::Value> remoteWindow = mainFrame()->executeScriptAndReturnValue
(WebScriptSource("window[2]")); | 6925 v8::Local<v8::Value> remoteWindow = mainFrame()->executeScriptAndReturnValue
(WebScriptSource("window[2]")); |
6955 EXPECT_TRUE(remoteWindow->IsObject()); | 6926 EXPECT_TRUE(remoteWindow->IsObject()); |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7260 ASSERT_EQ(2u, popupWebFrameClient.messages.size()); | 7231 ASSERT_EQ(2u, popupWebFrameClient.messages.size()); |
7261 EXPECT_TRUE(std::string::npos != popupWebFrameClient.messages[1].text.utf8()
.find("Blocked a frame")); | 7232 EXPECT_TRUE(std::string::npos != popupWebFrameClient.messages[1].text.utf8()
.find("Blocked a frame")); |
7262 | 7233 |
7263 // Manually reset to break WebViewHelpers' dependencies on the stack | 7234 // Manually reset to break WebViewHelpers' dependencies on the stack |
7264 // allocated WebFrameClients. | 7235 // allocated WebFrameClients. |
7265 webViewHelper.reset(); | 7236 webViewHelper.reset(); |
7266 popupWebViewHelper.reset(); | 7237 popupWebViewHelper.reset(); |
7267 } | 7238 } |
7268 | 7239 |
7269 } // namespace blink | 7240 } // namespace blink |
OLD | NEW |