| 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 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 URLTestHelpers::registerMockedURLLoadWithCustomResponse(toKURL(fullStrin
g.c_str()), WebString::fromUTF8(fileName.c_str()), WebString::fromUTF8(""), resp
onse); | 208 URLTestHelpers::registerMockedURLLoadWithCustomResponse(toKURL(fullStrin
g.c_str()), WebString::fromUTF8(fileName.c_str()), WebString::fromUTF8(""), resp
onse); |
| 209 } | 209 } |
| 210 | 210 |
| 211 void registerMockedHttpURLLoadWithMimeType(const std::string& fileName, cons
t std::string& mimeType) | 211 void registerMockedHttpURLLoadWithMimeType(const std::string& fileName, cons
t std::string& mimeType) |
| 212 { | 212 { |
| 213 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseU
RL.c_str()), WebString::fromUTF8(fileName.c_str()), WebString::fromUTF8(mimeType
)); | 213 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseU
RL.c_str()), WebString::fromUTF8(fileName.c_str()), WebString::fromUTF8(mimeType
)); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void applyViewportStyleOverride(FrameTestHelpers::WebViewHelper* webViewHelp
er) | 216 void applyViewportStyleOverride(FrameTestHelpers::WebViewHelper* webViewHelp
er) |
| 217 { | 217 { |
| 218 RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::
create(CSSParserContext(UASheetMode, 0)); | 218 RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(CSSPa
rserContext(UASheetMode, 0)); |
| 219 styleSheet->parseString(loadResourceAsASCIIString("viewportAndroid.css")
); | 219 styleSheet->parseString(loadResourceAsASCIIString("viewportAndroid.css")
); |
| 220 OwnPtrWillBeRawPtr<RuleSet> ruleSet = RuleSet::create(); | 220 RawPtr<RuleSet> ruleSet = RuleSet::create(); |
| 221 ruleSet->addRulesFromSheet(styleSheet.get(), MediaQueryEvaluator("screen
")); | 221 ruleSet->addRulesFromSheet(styleSheet.get(), MediaQueryEvaluator("screen
")); |
| 222 | 222 |
| 223 Document* document = toLocalFrame(webViewHelper->webViewImpl()->page()->
mainFrame())->document(); | 223 Document* document = toLocalFrame(webViewHelper->webViewImpl()->page()->
mainFrame())->document(); |
| 224 document->ensureStyleResolver().viewportStyleResolver()->collectViewport
Rules(ruleSet.get(), ViewportStyleResolver::UserAgentOrigin); | 224 document->ensureStyleResolver().viewportStyleResolver()->collectViewport
Rules(ruleSet.get(), ViewportStyleResolver::UserAgentOrigin); |
| 225 document->ensureStyleResolver().viewportStyleResolver()->resolve(); | 225 document->ensureStyleResolver().viewportStyleResolver()->resolve(); |
| 226 } | 226 } |
| 227 | 227 |
| 228 static void configueCompositingWebView(WebSettings* settings) | 228 static void configueCompositingWebView(WebSettings* settings) |
| 229 { | 229 { |
| 230 settings->setAcceleratedCompositingEnabled(true); | 230 settings->setAcceleratedCompositingEnabled(true); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 249 webViewHelper->initializeAndLoad(url, true); | 249 webViewHelper->initializeAndLoad(url, true); |
| 250 webViewHelper->webView()->settings()->setDefaultFontSize(12); | 250 webViewHelper->webView()->settings()->setDefaultFontSize(12); |
| 251 webViewHelper->resize(WebSize(640, 480)); | 251 webViewHelper->resize(WebSize(640, 480)); |
| 252 } | 252 } |
| 253 | 253 |
| 254 PassOwnPtr<DragImage> nodeImageTestSetup(FrameTestHelpers::WebViewHelper* we
bViewHelper, const std::string& testcase) | 254 PassOwnPtr<DragImage> nodeImageTestSetup(FrameTestHelpers::WebViewHelper* we
bViewHelper, const std::string& testcase) |
| 255 { | 255 { |
| 256 registerMockedHttpURLLoad("nodeimage.html"); | 256 registerMockedHttpURLLoad("nodeimage.html"); |
| 257 webViewHelper->initializeAndLoad(m_baseURL + "nodeimage.html"); | 257 webViewHelper->initializeAndLoad(m_baseURL + "nodeimage.html"); |
| 258 webViewHelper->resize(WebSize(640, 480)); | 258 webViewHelper->resize(WebSize(640, 480)); |
| 259 RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webVi
ewImpl()->page()->mainFrame()); | 259 RawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webViewImpl()->pa
ge()->mainFrame()); |
| 260 ASSERT(frame); | 260 ASSERT(frame); |
| 261 Element* element = frame->document()->getElementById(testcase.c_str()); | 261 Element* element = frame->document()->getElementById(testcase.c_str()); |
| 262 return frame->nodeImage(*element); | 262 return frame->nodeImage(*element); |
| 263 } | 263 } |
| 264 | 264 |
| 265 void removeElementById(WebLocalFrameImpl* frame, const AtomicString& id) | 265 void removeElementById(WebLocalFrameImpl* frame, const AtomicString& id) |
| 266 { | 266 { |
| 267 Element* element = frame->frame()->document()->getElementById(id); | 267 Element* element = frame->frame()->document()->getElementById(id); |
| 268 ASSERT(element); | 268 ASSERT(element); |
| 269 element->remove(); | 269 element->remove(); |
| (...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 std::string content = WebFrameContentDumper::dumpFrameTreeAsText(webViewHelp
er.webView()->mainFrame()->toWebLocalFrame(), 1024).utf8(); | 840 std::string content = WebFrameContentDumper::dumpFrameTreeAsText(webViewHelp
er.webView()->mainFrame()->toWebLocalFrame(), 1024).utf8(); |
| 841 EXPECT_NE(std::string::npos, content.find("Message 1.")); | 841 EXPECT_NE(std::string::npos, content.find("Message 1.")); |
| 842 EXPECT_EQ(std::string::npos, content.find("Message 2.")); | 842 EXPECT_EQ(std::string::npos, content.find("Message 2.")); |
| 843 } | 843 } |
| 844 | 844 |
| 845 TEST_P(ParameterizedWebFrameTest, PostMessageThenDetach) | 845 TEST_P(ParameterizedWebFrameTest, PostMessageThenDetach) |
| 846 { | 846 { |
| 847 FrameTestHelpers::WebViewHelper webViewHelper(this); | 847 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 848 webViewHelper.initializeAndLoad("about:blank"); | 848 webViewHelper.initializeAndLoad("about:blank"); |
| 849 | 849 |
| 850 RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper.webViewImp
l()->page()->mainFrame()); | 850 RawPtr<LocalFrame> frame = toLocalFrame(webViewHelper.webViewImpl()->page()-
>mainFrame()); |
| 851 NonThrowableExceptionState exceptionState; | 851 NonThrowableExceptionState exceptionState; |
| 852 frame->domWindow()->postMessage(SerializedScriptValueFactory::instance().cre
ate("message"), 0, "*", frame->localDOMWindow(), exceptionState); | 852 frame->domWindow()->postMessage(SerializedScriptValueFactory::instance().cre
ate("message"), 0, "*", frame->localDOMWindow(), exceptionState); |
| 853 webViewHelper.reset(); | 853 webViewHelper.reset(); |
| 854 EXPECT_FALSE(exceptionState.hadException()); | 854 EXPECT_FALSE(exceptionState.hadException()); |
| 855 | 855 |
| 856 // Success is not crashing. | 856 // Success is not crashing. |
| 857 runPendingTasks(); | 857 runPendingTasks(); |
| 858 } | 858 } |
| 859 | 859 |
| 860 namespace { | 860 namespace { |
| (...skipping 3065 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3926 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3926 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| 3927 webViewHelper.resize(WebSize(640, 480)); | 3927 webViewHelper.resize(WebSize(640, 480)); |
| 3928 runPendingTasks(); | 3928 runPendingTasks(); |
| 3929 | 3929 |
| 3930 const char kFindString[] = "result"; | 3930 const char kFindString[] = "result"; |
| 3931 const int kFindIdentifier = 12345; | 3931 const int kFindIdentifier = 12345; |
| 3932 | 3932 |
| 3933 WebFindOptions options; | 3933 WebFindOptions options; |
| 3934 WebString searchText = WebString::fromUTF8(kFindString); | 3934 WebString searchText = WebString::fromUTF8(kFindString); |
| 3935 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 3935 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3936 RefPtrWillBeRawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(main
Frame->traverseNext(false)); | 3936 RawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(mainFrame->trave
rseNext(false)); |
| 3937 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); | 3937 RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); |
| 3938 | 3938 |
| 3939 // Detach the frame before finding. | 3939 // Detach the frame before finding. |
| 3940 removeElementById(mainFrame, "frame"); | 3940 removeElementById(mainFrame, "frame"); |
| 3941 | 3941 |
| 3942 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; | 3942 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 3943 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false,
0)); | 3943 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false,
0)); |
| 3944 | 3944 |
| 3945 runPendingTasks(); | 3945 runPendingTasks(); |
| 3946 EXPECT_FALSE(client.findResultsAreReady()); | 3946 EXPECT_FALSE(client.findResultsAreReady()); |
| 3947 | 3947 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3965 webViewHelper.resize(WebSize(640, 480)); | 3965 webViewHelper.resize(WebSize(640, 480)); |
| 3966 runPendingTasks(); | 3966 runPendingTasks(); |
| 3967 | 3967 |
| 3968 const char kFindString[] = "result"; | 3968 const char kFindString[] = "result"; |
| 3969 const int kFindIdentifier = 12345; | 3969 const int kFindIdentifier = 12345; |
| 3970 | 3970 |
| 3971 WebFindOptions options; | 3971 WebFindOptions options; |
| 3972 WebString searchText = WebString::fromUTF8(kFindString); | 3972 WebString searchText = WebString::fromUTF8(kFindString); |
| 3973 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 3973 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3974 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); | 3974 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); |
| 3975 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); | 3975 RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); |
| 3976 | 3976 |
| 3977 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3977 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3978 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); | 3978 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); |
| 3979 | 3979 |
| 3980 runPendingTasks(); | 3980 runPendingTasks(); |
| 3981 EXPECT_FALSE(client.findResultsAreReady()); | 3981 EXPECT_FALSE(client.findResultsAreReady()); |
| 3982 | 3982 |
| 3983 // Detach the frame between finding and scoping. | 3983 // Detach the frame between finding and scoping. |
| 3984 removeElementById(mainFrame, "frame"); | 3984 removeElementById(mainFrame, "frame"); |
| 3985 | 3985 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4003 webViewHelper.resize(WebSize(640, 480)); | 4003 webViewHelper.resize(WebSize(640, 480)); |
| 4004 runPendingTasks(); | 4004 runPendingTasks(); |
| 4005 | 4005 |
| 4006 const char kFindString[] = "result"; | 4006 const char kFindString[] = "result"; |
| 4007 const int kFindIdentifier = 12345; | 4007 const int kFindIdentifier = 12345; |
| 4008 | 4008 |
| 4009 WebFindOptions options; | 4009 WebFindOptions options; |
| 4010 WebString searchText = WebString::fromUTF8(kFindString); | 4010 WebString searchText = WebString::fromUTF8(kFindString); |
| 4011 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 4011 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 4012 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); | 4012 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); |
| 4013 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); | 4013 RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); |
| 4014 | 4014 |
| 4015 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 4015 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 4016 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); | 4016 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); |
| 4017 | 4017 |
| 4018 runPendingTasks(); | 4018 runPendingTasks(); |
| 4019 EXPECT_FALSE(client.findResultsAreReady()); | 4019 EXPECT_FALSE(client.findResultsAreReady()); |
| 4020 | 4020 |
| 4021 mainFrame->resetMatchCount(); | 4021 mainFrame->resetMatchCount(); |
| 4022 | 4022 |
| 4023 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 4023 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4078 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; | 4078 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 4079 | 4079 |
| 4080 mainFrame->resetMatchCount(); | 4080 mainFrame->resetMatchCount(); |
| 4081 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true); | 4081 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true); |
| 4082 | 4082 |
| 4083 runPendingTasks(); | 4083 runPendingTasks(); |
| 4084 EXPECT_TRUE(client.findResultsAreReady()); | 4084 EXPECT_TRUE(client.findResultsAreReady()); |
| 4085 | 4085 |
| 4086 // Get the tickmarks for the original find request. | 4086 // Get the tickmarks for the original find request. |
| 4087 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 4087 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
| 4088 RefPtrWillBeRawPtr<Scrollbar> scrollbar = frameView->createScrollbar(Horizon
talScrollbar); | 4088 RawPtr<Scrollbar> scrollbar = frameView->createScrollbar(HorizontalScrollbar
); |
| 4089 Vector<IntRect> originalTickmarks; | 4089 Vector<IntRect> originalTickmarks; |
| 4090 scrollbar->getTickmarks(originalTickmarks); | 4090 scrollbar->getTickmarks(originalTickmarks); |
| 4091 EXPECT_EQ(4u, originalTickmarks.size()); | 4091 EXPECT_EQ(4u, originalTickmarks.size()); |
| 4092 | 4092 |
| 4093 // Override the tickmarks. | 4093 // Override the tickmarks. |
| 4094 Vector<IntRect> overridingTickmarksExpected; | 4094 Vector<IntRect> overridingTickmarksExpected; |
| 4095 overridingTickmarksExpected.append(IntRect(0, 0, 100, 100)); | 4095 overridingTickmarksExpected.append(IntRect(0, 0, 100, 100)); |
| 4096 overridingTickmarksExpected.append(IntRect(0, 20, 100, 100)); | 4096 overridingTickmarksExpected.append(IntRect(0, 20, 100, 100)); |
| 4097 overridingTickmarksExpected.append(IntRect(0, 30, 100, 100)); | 4097 overridingTickmarksExpected.append(IntRect(0, 30, 100, 100)); |
| 4098 mainFrame->setTickmarks(overridingTickmarksExpected); | 4098 mainFrame->setTickmarks(overridingTickmarksExpected); |
| (...skipping 1699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5798 { | 5798 { |
| 5799 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5799 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5800 TestNavigationPolicyWebFrameClient client; | 5800 TestNavigationPolicyWebFrameClient client; |
| 5801 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5801 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5802 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue, &client); | 5802 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue, &client); |
| 5803 | 5803 |
| 5804 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 5804 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 5805 KURL destination = document->url(); | 5805 KURL destination = document->url(); |
| 5806 destination.setFragmentIdentifier("test"); | 5806 destination.setFragmentIdentifier("test"); |
| 5807 | 5807 |
| 5808 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, | 5808 RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false
, |
| 5809 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::NoModifiers,
1, 0, nullptr, 0, | 5809 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::NoModifiers,
1, 0, nullptr, 0, |
| 5810 PlatformMouseEvent::RealOrIndistinguishable, String()); | 5810 PlatformMouseEvent::RealOrIndistinguishable, String()); |
| 5811 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); | 5811 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); |
| 5812 frameRequest.setTriggeringEvent(event); | 5812 frameRequest.setTriggeringEvent(event); |
| 5813 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); | 5813 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); |
| 5814 } | 5814 } |
| 5815 | 5815 |
| 5816 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { | 5816 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { |
| 5817 public: | 5817 public: |
| 5818 virtual WebView* createView(WebLocalFrame*, const WebURLRequest&, const WebW
indowFeatures&, | 5818 virtual WebView* createView(WebLocalFrame*, const WebURLRequest&, const WebW
indowFeatures&, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 5848 registerMockedHttpURLLoad("hello_world.html"); | 5848 registerMockedHttpURLLoad("hello_world.html"); |
| 5849 TestNewWindowWebViewClient webViewClient; | 5849 TestNewWindowWebViewClient webViewClient; |
| 5850 TestNewWindowWebFrameClient webFrameClient; | 5850 TestNewWindowWebFrameClient webFrameClient; |
| 5851 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5851 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5852 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, &webFra
meClient, &webViewClient); | 5852 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, &webFra
meClient, &webViewClient); |
| 5853 | 5853 |
| 5854 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 5854 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 5855 KURL destination = toKURL(m_baseURL + "hello_world.html"); | 5855 KURL destination = toKURL(m_baseURL + "hello_world.html"); |
| 5856 | 5856 |
| 5857 // ctrl+click event | 5857 // ctrl+click event |
| 5858 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, | 5858 RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false
, |
| 5859 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::CtrlKey, 0, 0
, nullptr, 0, | 5859 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::CtrlKey, 0, 0
, nullptr, 0, |
| 5860 PlatformMouseEvent::RealOrIndistinguishable, String()); | 5860 PlatformMouseEvent::RealOrIndistinguishable, String()); |
| 5861 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); | 5861 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); |
| 5862 frameRequest.setTriggeringEvent(event); | 5862 frameRequest.setTriggeringEvent(event); |
| 5863 UserGestureIndicator gesture(DefinitelyProcessingUserGesture); | 5863 UserGestureIndicator gesture(DefinitelyProcessingUserGesture); |
| 5864 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); | 5864 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); |
| 5865 FrameTestHelpers::pumpPendingRequestsForFrameToLoad(webViewHelper.webView()-
>mainFrame()); | 5865 FrameTestHelpers::pumpPendingRequestsForFrameToLoad(webViewHelper.webView()-
>mainFrame()); |
| 5866 | 5866 |
| 5867 // decidePolicyForNavigation should be called both for the original request
and the ctrl+click. | 5867 // decidePolicyForNavigation should be called both for the original request
and the ctrl+click. |
| 5868 EXPECT_EQ(2, webFrameClient.decidePolicyCallCount()); | 5868 EXPECT_EQ(2, webFrameClient.decidePolicyCallCount()); |
| 5869 } | 5869 } |
| 5870 | 5870 |
| 5871 TEST_P(ParameterizedWebFrameTest, BackToReload) | 5871 TEST_P(ParameterizedWebFrameTest, BackToReload) |
| 5872 { | 5872 { |
| 5873 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5873 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5874 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5874 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5875 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); | 5875 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); |
| 5876 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5876 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5877 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5877 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5878 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); | 5878 Persistent<HistoryItem> firstItem = mainFrameLoader.currentItem(); |
| 5879 EXPECT_TRUE(firstItem); | 5879 EXPECT_TRUE(firstItem); |
| 5880 | 5880 |
| 5881 registerMockedHttpURLLoad("white-1x1.png"); | 5881 registerMockedHttpURLLoad("white-1x1.png"); |
| 5882 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); | 5882 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); |
| 5883 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); | 5883 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); |
| 5884 | 5884 |
| 5885 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem.get()), We
bHistoryDifferentDocumentLoad, WebURLRequest::UseProtocolCachePolicy); | 5885 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem.get()), We
bHistoryDifferentDocumentLoad, WebURLRequest::UseProtocolCachePolicy); |
| 5886 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); | 5886 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); |
| 5887 | 5887 |
| 5888 FrameTestHelpers::reloadFrame(frame); | 5888 FrameTestHelpers::reloadFrame(frame); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5933 EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationT
ype()); | 5933 EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationT
ype()); |
| 5934 } | 5934 } |
| 5935 | 5935 |
| 5936 TEST_P(ParameterizedWebFrameTest, LoadHistoryItemReload) | 5936 TEST_P(ParameterizedWebFrameTest, LoadHistoryItemReload) |
| 5937 { | 5937 { |
| 5938 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5938 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5939 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5939 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5940 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); | 5940 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); |
| 5941 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5941 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5942 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5942 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5943 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); | 5943 Persistent<HistoryItem> firstItem = mainFrameLoader.currentItem(); |
| 5944 EXPECT_TRUE(firstItem); | 5944 EXPECT_TRUE(firstItem); |
| 5945 | 5945 |
| 5946 registerMockedHttpURLLoad("white-1x1.png"); | 5946 registerMockedHttpURLLoad("white-1x1.png"); |
| 5947 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); | 5947 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); |
| 5948 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); | 5948 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); |
| 5949 | 5949 |
| 5950 // Cache policy overrides should take. | 5950 // Cache policy overrides should take. |
| 5951 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem), WebHisto
ryDifferentDocumentLoad, WebURLRequest::ReloadIgnoringCacheData); | 5951 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem), WebHisto
ryDifferentDocumentLoad, WebURLRequest::ReloadIgnoringCacheData); |
| 5952 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); | 5952 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); |
| 5953 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().getCachePolicy()); | 5953 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().getCachePolicy()); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6017 registerMockedHttpURLLoad("iframe_reload.html"); | 6017 registerMockedHttpURLLoad("iframe_reload.html"); |
| 6018 registerMockedHttpURLLoad("visible_iframe.html"); | 6018 registerMockedHttpURLLoad("visible_iframe.html"); |
| 6019 TestCachePolicyWebFrameClient mainClient(0); | 6019 TestCachePolicyWebFrameClient mainClient(0); |
| 6020 TestCachePolicyWebFrameClient childClient(&mainClient); | 6020 TestCachePolicyWebFrameClient childClient(&mainClient); |
| 6021 mainClient.setChildWebFrameClient(&childClient); | 6021 mainClient.setChildWebFrameClient(&childClient); |
| 6022 | 6022 |
| 6023 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6023 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6024 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai
nClient); | 6024 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai
nClient); |
| 6025 | 6025 |
| 6026 WebLocalFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl(); | 6026 WebLocalFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl(); |
| 6027 RefPtrWillBeRawPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainF
rame->firstChild()); | 6027 RawPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainFrame->firstC
hild()); |
| 6028 ASSERT_EQ(childFrame->client(), &childClient); | 6028 ASSERT_EQ(childFrame->client(), &childClient); |
| 6029 EXPECT_EQ(mainClient.childFrameCreationCount(), 1); | 6029 EXPECT_EQ(mainClient.childFrameCreationCount(), 1); |
| 6030 EXPECT_EQ(childClient.willSendRequestCallCount(), 1); | 6030 EXPECT_EQ(childClient.willSendRequestCallCount(), 1); |
| 6031 EXPECT_EQ(childClient.getCachePolicy(), WebURLRequest::UseProtocolCachePolic
y); | 6031 EXPECT_EQ(childClient.getCachePolicy(), WebURLRequest::UseProtocolCachePolic
y); |
| 6032 | 6032 |
| 6033 FrameTestHelpers::reloadFrame(mainFrame); | 6033 FrameTestHelpers::reloadFrame(mainFrame); |
| 6034 | 6034 |
| 6035 // A new WebFrame should have been created, but the child WebFrameClient sho
uld be reused. | 6035 // A new WebFrame should have been created, but the child WebFrameClient sho
uld be reused. |
| 6036 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild())); | 6036 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild())); |
| 6037 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie
nt); | 6037 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie
nt); |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6198 private: | 6198 private: |
| 6199 WebHistoryCommitType m_lastCommitType; | 6199 WebHistoryCommitType m_lastCommitType; |
| 6200 }; | 6200 }; |
| 6201 | 6201 |
| 6202 TEST_P(ParameterizedWebFrameTest, SameDocumentHistoryNavigationCommitType) | 6202 TEST_P(ParameterizedWebFrameTest, SameDocumentHistoryNavigationCommitType) |
| 6203 { | 6203 { |
| 6204 registerMockedHttpURLLoad("push_state.html"); | 6204 registerMockedHttpURLLoad("push_state.html"); |
| 6205 TestDidNavigateCommitTypeWebFrameClient client; | 6205 TestDidNavigateCommitTypeWebFrameClient client; |
| 6206 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6206 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6207 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push
_state.html", true, &client); | 6207 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push
_state.html", true, &client); |
| 6208 RefPtrWillBePersistent<HistoryItem> item = toLocalFrame(webViewImpl->page()-
>mainFrame())->loader().currentItem(); | 6208 Persistent<HistoryItem> item = toLocalFrame(webViewImpl->page()->mainFrame()
)->loader().currentItem(); |
| 6209 runPendingTasks(); | 6209 runPendingTasks(); |
| 6210 | 6210 |
| 6211 toLocalFrame(webViewImpl->page()->mainFrame())->loader().load( | 6211 toLocalFrame(webViewImpl->page()->mainFrame())->loader().load( |
| 6212 FrameLoadRequest(nullptr, FrameLoader::resourceRequestFromHistoryItem( | 6212 FrameLoadRequest(nullptr, FrameLoader::resourceRequestFromHistoryItem( |
| 6213 item.get(), UseProtocolCachePolicy)), | 6213 item.get(), UseProtocolCachePolicy)), |
| 6214 FrameLoadTypeBackForward, item.get(), HistorySameDocumentLoad); | 6214 FrameLoadTypeBackForward, item.get(), HistorySameDocumentLoad); |
| 6215 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); | 6215 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); |
| 6216 } | 6216 } |
| 6217 | 6217 |
| 6218 class TestHistoryWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 6218 class TestHistoryWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6799 { | 6799 { |
| 6800 registerMockedHttpURLLoad("link-manifest-change.html"); | 6800 registerMockedHttpURLLoad("link-manifest-change.html"); |
| 6801 | 6801 |
| 6802 ManifestChangeWebFrameClient webFrameClient; | 6802 ManifestChangeWebFrameClient webFrameClient; |
| 6803 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6803 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6804 webViewHelper.initializeAndLoad(m_baseURL + "link-manifest-change.html", tru
e, &webFrameClient); | 6804 webViewHelper.initializeAndLoad(m_baseURL + "link-manifest-change.html", tru
e, &webFrameClient); |
| 6805 | 6805 |
| 6806 EXPECT_EQ(14, webFrameClient.manifestChangeCount()); | 6806 EXPECT_EQ(14, webFrameClient.manifestChangeCount()); |
| 6807 } | 6807 } |
| 6808 | 6808 |
| 6809 static PassRefPtrWillBeRawPtr<Resource> fetchManifest(Document* document, const
KURL& url) | 6809 static RawPtr<Resource> fetchManifest(Document* document, const KURL& url) |
| 6810 { | 6810 { |
| 6811 FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiato
rInfo()); | 6811 FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiato
rInfo()); |
| 6812 fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::Reque
stContextManifest); | 6812 fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::Reque
stContextManifest); |
| 6813 | 6813 |
| 6814 return RawResource::fetchSynchronously(fetchRequest, document->fetcher()); | 6814 return RawResource::fetchSynchronously(fetchRequest, document->fetcher()); |
| 6815 } | 6815 } |
| 6816 | 6816 |
| 6817 TEST_P(ParameterizedWebFrameTest, ManifestFetch) | 6817 TEST_P(ParameterizedWebFrameTest, ManifestFetch) |
| 6818 { | 6818 { |
| 6819 registerMockedHttpURLLoad("foo.html"); | 6819 registerMockedHttpURLLoad("foo.html"); |
| 6820 registerMockedHttpURLLoad("link-manifest-fetch.json"); | 6820 registerMockedHttpURLLoad("link-manifest-fetch.json"); |
| 6821 | 6821 |
| 6822 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6822 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6823 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6823 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6824 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6824 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6825 | 6825 |
| 6826 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_bas
eURL + "link-manifest-fetch.json")); | 6826 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_baseURL + "link
-manifest-fetch.json")); |
| 6827 | 6827 |
| 6828 EXPECT_TRUE(resource->isLoaded()); | 6828 EXPECT_TRUE(resource->isLoaded()); |
| 6829 } | 6829 } |
| 6830 | 6830 |
| 6831 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) | 6831 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) |
| 6832 { | 6832 { |
| 6833 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6833 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6834 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); | 6834 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); |
| 6835 | 6835 |
| 6836 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6836 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6837 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6837 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6838 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6838 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6839 | 6839 |
| 6840 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_not
BaseURL + "link-manifest-fetch.json")); | 6840 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "l
ink-manifest-fetch.json")); |
| 6841 | 6841 |
| 6842 EXPECT_TRUE(resource->isLoaded()); | 6842 EXPECT_TRUE(resource->isLoaded()); |
| 6843 } | 6843 } |
| 6844 | 6844 |
| 6845 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) | 6845 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) |
| 6846 { | 6846 { |
| 6847 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6847 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6848 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); | 6848 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); |
| 6849 | 6849 |
| 6850 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6850 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6851 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6851 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6852 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6852 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6853 | 6853 |
| 6854 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_not
BaseURL + "link-manifest-fetch.json")); | 6854 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "l
ink-manifest-fetch.json")); |
| 6855 | 6855 |
| 6856 EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed. | 6856 EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed. |
| 6857 } | 6857 } |
| 6858 | 6858 |
| 6859 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) | 6859 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) |
| 6860 { | 6860 { |
| 6861 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6861 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6862 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* repor
t only */ true); | 6862 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* repor
t only */ true); |
| 6863 | 6863 |
| 6864 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6864 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6865 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6865 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6866 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6866 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6867 | 6867 |
| 6868 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_not
BaseURL + "link-manifest-fetch.json")); | 6868 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "l
ink-manifest-fetch.json")); |
| 6869 | 6869 |
| 6870 EXPECT_TRUE(resource->isLoaded()); | 6870 EXPECT_TRUE(resource->isLoaded()); |
| 6871 } | 6871 } |
| 6872 | 6872 |
| 6873 TEST_P(ParameterizedWebFrameTest, ReloadBypassingCache) | 6873 TEST_P(ParameterizedWebFrameTest, ReloadBypassingCache) |
| 6874 { | 6874 { |
| 6875 // Check that a reload ignoring cache on a frame will result in the cache | 6875 // Check that a reload ignoring cache on a frame will result in the cache |
| 6876 // policy of the request being set to ReloadBypassingCache. | 6876 // policy of the request being set to ReloadBypassingCache. |
| 6877 registerMockedHttpURLLoad("foo.html"); | 6877 registerMockedHttpURLLoad("foo.html"); |
| 6878 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6878 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7022 { | 7022 { |
| 7023 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t
o | 7023 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t
o |
| 7024 // write tests with a top-level remote frame. | 7024 // write tests with a top-level remote frame. |
| 7025 FrameTestHelpers::TestWebViewClient viewClient; | 7025 FrameTestHelpers::TestWebViewClient viewClient; |
| 7026 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 7026 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
| 7027 WebView* view = WebView::create(&viewClient); | 7027 WebView* view = WebView::create(&viewClient); |
| 7028 view->setMainFrame(remoteClient.frame()); | 7028 view->setMainFrame(remoteClient.frame()); |
| 7029 WebLocalFrame* childFrame = FrameTestHelpers::createLocalChild(view->mainFra
me()->toWebRemoteFrame()); | 7029 WebLocalFrame* childFrame = FrameTestHelpers::createLocalChild(view->mainFra
me()->toWebRemoteFrame()); |
| 7030 | 7030 |
| 7031 // Purposely keep the LocalFrame alive so it's the last thing to be destroye
d. | 7031 // Purposely keep the LocalFrame alive so it's the last thing to be destroye
d. |
| 7032 RefPtrWillBePersistent<Frame> childCoreFrame = childFrame->toImplBase()->fra
me(); | 7032 Persistent<Frame> childCoreFrame = childFrame->toImplBase()->frame(); |
| 7033 view->close(); | 7033 view->close(); |
| 7034 childCoreFrame.clear(); | 7034 childCoreFrame.clear(); |
| 7035 } | 7035 } |
| 7036 | 7036 |
| 7037 class WebFrameSwapTest : public WebFrameTest { | 7037 class WebFrameSwapTest : public WebFrameTest { |
| 7038 protected: | 7038 protected: |
| 7039 WebFrameSwapTest() | 7039 WebFrameSwapTest() |
| 7040 { | 7040 { |
| 7041 registerMockedHttpURLLoad("frame-a-b-c.html"); | 7041 registerMockedHttpURLLoad("frame-a-b-c.html"); |
| 7042 registerMockedHttpURLLoad("subframe-a.html"); | 7042 registerMockedHttpURLLoad("subframe-a.html"); |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7626 ASSERT_TRUE(mainFrame()->firstChild()->isWebRemoteFrame()); | 7626 ASSERT_TRUE(mainFrame()->firstChild()->isWebRemoteFrame()); |
| 7627 LocalDOMWindow* mainWindow = toWebLocalFrameImpl(mainFrame())->frame()->loca
lDOMWindow(); | 7627 LocalDOMWindow* mainWindow = toWebLocalFrameImpl(mainFrame())->frame()->loca
lDOMWindow(); |
| 7628 | 7628 |
| 7629 KURL destination = toKURL("data:text/html:destination"); | 7629 KURL destination = toKURL("data:text/html:destination"); |
| 7630 mainWindow->open(destination.getString(), "frame1", "", mainWindow, mainWind
ow); | 7630 mainWindow->open(destination.getString(), "frame1", "", mainWindow, mainWind
ow); |
| 7631 ASSERT_FALSE(remoteClient.lastRequest().isNull()); | 7631 ASSERT_FALSE(remoteClient.lastRequest().isNull()); |
| 7632 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); | 7632 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); |
| 7633 | 7633 |
| 7634 // Pointing a named frame to an empty URL should just return a reference to | 7634 // Pointing a named frame to an empty URL should just return a reference to |
| 7635 // the frame's window without navigating it. | 7635 // the frame's window without navigating it. |
| 7636 RefPtrWillBeRawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", ma
inWindow, mainWindow); | 7636 RawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", mainWindow, ma
inWindow); |
| 7637 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); | 7637 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); |
| 7638 EXPECT_EQ(result, remoteFrame->toImplBase()->frame()->domWindow()); | 7638 EXPECT_EQ(result, remoteFrame->toImplBase()->frame()->domWindow()); |
| 7639 | 7639 |
| 7640 reset(); | 7640 reset(); |
| 7641 } | 7641 } |
| 7642 | 7642 |
| 7643 class RemoteWindowCloseClient : public FrameTestHelpers::TestWebViewClient { | 7643 class RemoteWindowCloseClient : public FrameTestHelpers::TestWebViewClient { |
| 7644 public: | 7644 public: |
| 7645 RemoteWindowCloseClient() | 7645 RemoteWindowCloseClient() |
| 7646 : m_closed(false) | 7646 : m_closed(false) |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7823 { | 7823 { |
| 7824 FrameTestHelpers::WebViewHelper webViewHelper(this); | 7824 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 7825 webViewHelper.initializeAndLoad("about:blank"); | 7825 webViewHelper.initializeAndLoad("about:blank"); |
| 7826 | 7826 |
| 7827 SchemeRegistry::registerURLSchemeAsDisplayIsolated("chrome"); | 7827 SchemeRegistry::registerURLSchemeAsDisplayIsolated("chrome"); |
| 7828 | 7828 |
| 7829 // Cross-origin request. | 7829 // Cross-origin request. |
| 7830 KURL resourceUrl(ParsedURLString, "chrome://test.pdf"); | 7830 KURL resourceUrl(ParsedURLString, "chrome://test.pdf"); |
| 7831 registerMockedChromeURLLoad("test.pdf"); | 7831 registerMockedChromeURLLoad("test.pdf"); |
| 7832 | 7832 |
| 7833 RefPtrWillBeRawPtr<LocalFrame> frame(toLocalFrame(webViewHelper.webViewImpl(
)->page()->mainFrame())); | 7833 RawPtr<LocalFrame> frame(toLocalFrame(webViewHelper.webViewImpl()->page()->m
ainFrame())); |
| 7834 | 7834 |
| 7835 MockDocumentThreadableLoaderClient client; | 7835 MockDocumentThreadableLoaderClient client; |
| 7836 ThreadableLoaderOptions options; | 7836 ThreadableLoaderOptions options; |
| 7837 | 7837 |
| 7838 // First try to load the request with regular access. Should fail. | 7838 // First try to load the request with regular access. Should fail. |
| 7839 options.crossOriginRequestPolicy = UseAccessControl; | 7839 options.crossOriginRequestPolicy = UseAccessControl; |
| 7840 ResourceLoaderOptions resourceLoaderOptions; | 7840 ResourceLoaderOptions resourceLoaderOptions; |
| 7841 DocumentThreadableLoader::loadResourceSynchronously( | 7841 DocumentThreadableLoader::loadResourceSynchronously( |
| 7842 *frame->document(), ResourceRequest(resourceUrl), client, options, resou
rceLoaderOptions); | 7842 *frame->document(), ResourceRequest(resourceUrl), client, options, resou
rceLoaderOptions); |
| 7843 EXPECT_TRUE(client.failed()); | 7843 EXPECT_TRUE(client.failed()); |
| (...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8478 } | 8478 } |
| 8479 | 8479 |
| 8480 WebFrame* mainFrame() { return m_frame; } | 8480 WebFrame* mainFrame() { return m_frame; } |
| 8481 WebRemoteFrameImpl* remoteFrame() { return m_webRemoteFrame; } | 8481 WebRemoteFrameImpl* remoteFrame() { return m_webRemoteFrame; } |
| 8482 TestWebRemoteFrameClientForVisibility* remoteFrameClient() { return &m_remot
eFrameClient; } | 8482 TestWebRemoteFrameClientForVisibility* remoteFrameClient() { return &m_remot
eFrameClient; } |
| 8483 | 8483 |
| 8484 private: | 8484 private: |
| 8485 TestWebRemoteFrameClientForVisibility m_remoteFrameClient; | 8485 TestWebRemoteFrameClientForVisibility m_remoteFrameClient; |
| 8486 FrameTestHelpers::WebViewHelper m_webViewHelper; | 8486 FrameTestHelpers::WebViewHelper m_webViewHelper; |
| 8487 WebFrame* m_frame; | 8487 WebFrame* m_frame; |
| 8488 RawPtrWillBePersistent<WebRemoteFrameImpl> m_webRemoteFrame; | 8488 Persistent<WebRemoteFrameImpl> m_webRemoteFrame; |
| 8489 }; | 8489 }; |
| 8490 | 8490 |
| 8491 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange) | 8491 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange) |
| 8492 { | 8492 { |
| 8493 swapLocalFrameToRemoteFrame(); | 8493 swapLocalFrameToRemoteFrame(); |
| 8494 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'none';")); | 8494 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'none';")); |
| 8495 EXPECT_FALSE(remoteFrameClient()->isVisible()); | 8495 EXPECT_FALSE(remoteFrameClient()->isVisible()); |
| 8496 | 8496 |
| 8497 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'block';")); | 8497 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'block';")); |
| 8498 EXPECT_TRUE(remoteFrameClient()->isVisible()); | 8498 EXPECT_TRUE(remoteFrameClient()->isVisible()); |
| 8499 } | 8499 } |
| 8500 | 8500 |
| 8501 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) | 8501 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) |
| 8502 { | 8502 { |
| 8503 swapLocalFrameToRemoteFrame(); | 8503 swapLocalFrameToRemoteFrame(); |
| 8504 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); | 8504 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); |
| 8505 EXPECT_FALSE(remoteFrameClient()->isVisible()); | 8505 EXPECT_FALSE(remoteFrameClient()->isVisible()); |
| 8506 } | 8506 } |
| 8507 | 8507 |
| 8508 } // namespace blink | 8508 } // namespace blink |
| OLD | NEW |