| 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 3032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3893 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3893 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| 3894 webViewHelper.resize(WebSize(640, 480)); | 3894 webViewHelper.resize(WebSize(640, 480)); |
| 3895 runPendingTasks(); | 3895 runPendingTasks(); |
| 3896 | 3896 |
| 3897 const char kFindString[] = "result"; | 3897 const char kFindString[] = "result"; |
| 3898 const int kFindIdentifier = 12345; | 3898 const int kFindIdentifier = 12345; |
| 3899 | 3899 |
| 3900 WebFindOptions options; | 3900 WebFindOptions options; |
| 3901 WebString searchText = WebString::fromUTF8(kFindString); | 3901 WebString searchText = WebString::fromUTF8(kFindString); |
| 3902 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 3902 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3903 RefPtrWillBeRawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(main
Frame->traverseNext(false)); | 3903 RawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(mainFrame->trave
rseNext(false)); |
| 3904 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); | 3904 RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); |
| 3905 | 3905 |
| 3906 // Detach the frame before finding. | 3906 // Detach the frame before finding. |
| 3907 removeElementById(mainFrame, "frame"); | 3907 removeElementById(mainFrame, "frame"); |
| 3908 | 3908 |
| 3909 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; | 3909 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 3910 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false,
0)); | 3910 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false,
0)); |
| 3911 | 3911 |
| 3912 runPendingTasks(); | 3912 runPendingTasks(); |
| 3913 EXPECT_FALSE(client.findResultsAreReady()); | 3913 EXPECT_FALSE(client.findResultsAreReady()); |
| 3914 | 3914 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3932 webViewHelper.resize(WebSize(640, 480)); | 3932 webViewHelper.resize(WebSize(640, 480)); |
| 3933 runPendingTasks(); | 3933 runPendingTasks(); |
| 3934 | 3934 |
| 3935 const char kFindString[] = "result"; | 3935 const char kFindString[] = "result"; |
| 3936 const int kFindIdentifier = 12345; | 3936 const int kFindIdentifier = 12345; |
| 3937 | 3937 |
| 3938 WebFindOptions options; | 3938 WebFindOptions options; |
| 3939 WebString searchText = WebString::fromUTF8(kFindString); | 3939 WebString searchText = WebString::fromUTF8(kFindString); |
| 3940 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 3940 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3941 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); | 3941 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); |
| 3942 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); | 3942 RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); |
| 3943 | 3943 |
| 3944 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3944 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3945 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); | 3945 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); |
| 3946 | 3946 |
| 3947 runPendingTasks(); | 3947 runPendingTasks(); |
| 3948 EXPECT_FALSE(client.findResultsAreReady()); | 3948 EXPECT_FALSE(client.findResultsAreReady()); |
| 3949 | 3949 |
| 3950 // Detach the frame between finding and scoping. | 3950 // Detach the frame between finding and scoping. |
| 3951 removeElementById(mainFrame, "frame"); | 3951 removeElementById(mainFrame, "frame"); |
| 3952 | 3952 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3970 webViewHelper.resize(WebSize(640, 480)); | 3970 webViewHelper.resize(WebSize(640, 480)); |
| 3971 runPendingTasks(); | 3971 runPendingTasks(); |
| 3972 | 3972 |
| 3973 const char kFindString[] = "result"; | 3973 const char kFindString[] = "result"; |
| 3974 const int kFindIdentifier = 12345; | 3974 const int kFindIdentifier = 12345; |
| 3975 | 3975 |
| 3976 WebFindOptions options; | 3976 WebFindOptions options; |
| 3977 WebString searchText = WebString::fromUTF8(kFindString); | 3977 WebString searchText = WebString::fromUTF8(kFindString); |
| 3978 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 3978 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3979 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); | 3979 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext
(false)); |
| 3980 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); | 3980 RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); |
| 3981 | 3981 |
| 3982 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3982 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3983 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); | 3983 EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText,
options, false, 0)); |
| 3984 | 3984 |
| 3985 runPendingTasks(); | 3985 runPendingTasks(); |
| 3986 EXPECT_FALSE(client.findResultsAreReady()); | 3986 EXPECT_FALSE(client.findResultsAreReady()); |
| 3987 | 3987 |
| 3988 mainFrame->resetMatchCount(); | 3988 mainFrame->resetMatchCount(); |
| 3989 | 3989 |
| 3990 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3990 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4045 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; | 4045 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 4046 | 4046 |
| 4047 mainFrame->resetMatchCount(); | 4047 mainFrame->resetMatchCount(); |
| 4048 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true); | 4048 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true); |
| 4049 | 4049 |
| 4050 runPendingTasks(); | 4050 runPendingTasks(); |
| 4051 EXPECT_TRUE(client.findResultsAreReady()); | 4051 EXPECT_TRUE(client.findResultsAreReady()); |
| 4052 | 4052 |
| 4053 // Get the tickmarks for the original find request. | 4053 // Get the tickmarks for the original find request. |
| 4054 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 4054 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
| 4055 RefPtrWillBeRawPtr<Scrollbar> scrollbar = frameView->createScrollbar(Horizon
talScrollbar); | 4055 RawPtr<Scrollbar> scrollbar = frameView->createScrollbar(HorizontalScrollbar
); |
| 4056 Vector<IntRect> originalTickmarks; | 4056 Vector<IntRect> originalTickmarks; |
| 4057 scrollbar->getTickmarks(originalTickmarks); | 4057 scrollbar->getTickmarks(originalTickmarks); |
| 4058 EXPECT_EQ(4u, originalTickmarks.size()); | 4058 EXPECT_EQ(4u, originalTickmarks.size()); |
| 4059 | 4059 |
| 4060 // Override the tickmarks. | 4060 // Override the tickmarks. |
| 4061 Vector<IntRect> overridingTickmarksExpected; | 4061 Vector<IntRect> overridingTickmarksExpected; |
| 4062 overridingTickmarksExpected.append(IntRect(0, 0, 100, 100)); | 4062 overridingTickmarksExpected.append(IntRect(0, 0, 100, 100)); |
| 4063 overridingTickmarksExpected.append(IntRect(0, 20, 100, 100)); | 4063 overridingTickmarksExpected.append(IntRect(0, 20, 100, 100)); |
| 4064 overridingTickmarksExpected.append(IntRect(0, 30, 100, 100)); | 4064 overridingTickmarksExpected.append(IntRect(0, 30, 100, 100)); |
| 4065 mainFrame->setTickmarks(overridingTickmarksExpected); | 4065 mainFrame->setTickmarks(overridingTickmarksExpected); |
| (...skipping 1651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5717 { | 5717 { |
| 5718 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5718 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5719 TestNavigationPolicyWebFrameClient client; | 5719 TestNavigationPolicyWebFrameClient client; |
| 5720 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5720 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5721 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue, &client); | 5721 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue, &client); |
| 5722 | 5722 |
| 5723 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 5723 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 5724 KURL destination = document->url(); | 5724 KURL destination = document->url(); |
| 5725 destination.setFragmentIdentifier("test"); | 5725 destination.setFragmentIdentifier("test"); |
| 5726 | 5726 |
| 5727 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, | 5727 RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false
, |
| 5728 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::NoModifiers,
1, 0, nullptr, 0); | 5728 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::NoModifiers,
1, 0, nullptr, 0); |
| 5729 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); | 5729 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); |
| 5730 frameRequest.setTriggeringEvent(event); | 5730 frameRequest.setTriggeringEvent(event); |
| 5731 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); | 5731 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); |
| 5732 } | 5732 } |
| 5733 | 5733 |
| 5734 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { | 5734 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { |
| 5735 public: | 5735 public: |
| 5736 virtual WebView* createView(WebLocalFrame*, const WebURLRequest&, const WebW
indowFeatures&, | 5736 virtual WebView* createView(WebLocalFrame*, const WebURLRequest&, const WebW
indowFeatures&, |
| 5737 const WebString&, WebNavigationPolicy, bool) override | 5737 const WebString&, WebNavigationPolicy, bool) override |
| (...skipping 28 matching lines...) Expand all Loading... |
| 5766 registerMockedHttpURLLoad("hello_world.html"); | 5766 registerMockedHttpURLLoad("hello_world.html"); |
| 5767 TestNewWindowWebViewClient webViewClient; | 5767 TestNewWindowWebViewClient webViewClient; |
| 5768 TestNewWindowWebFrameClient webFrameClient; | 5768 TestNewWindowWebFrameClient webFrameClient; |
| 5769 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5769 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5770 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, &webFra
meClient, &webViewClient); | 5770 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, &webFra
meClient, &webViewClient); |
| 5771 | 5771 |
| 5772 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 5772 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 5773 KURL destination = toKURL(m_baseURL + "hello_world.html"); | 5773 KURL destination = toKURL(m_baseURL + "hello_world.html"); |
| 5774 | 5774 |
| 5775 // ctrl+click event | 5775 // ctrl+click event |
| 5776 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, | 5776 RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false
, |
| 5777 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::CtrlKey, 0, 0
, nullptr, 0); | 5777 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::CtrlKey, 0, 0
, nullptr, 0); |
| 5778 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); | 5778 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); |
| 5779 frameRequest.setTriggeringEvent(event); | 5779 frameRequest.setTriggeringEvent(event); |
| 5780 UserGestureIndicator gesture(DefinitelyProcessingUserGesture); | 5780 UserGestureIndicator gesture(DefinitelyProcessingUserGesture); |
| 5781 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); | 5781 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); |
| 5782 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); | 5782 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); |
| 5783 | 5783 |
| 5784 // decidePolicyForNavigation should be called both for the original request
and the ctrl+click. | 5784 // decidePolicyForNavigation should be called both for the original request
and the ctrl+click. |
| 5785 EXPECT_EQ(2, webFrameClient.decidePolicyCallCount()); | 5785 EXPECT_EQ(2, webFrameClient.decidePolicyCallCount()); |
| 5786 } | 5786 } |
| 5787 | 5787 |
| 5788 TEST_P(ParameterizedWebFrameTest, BackToReload) | 5788 TEST_P(ParameterizedWebFrameTest, BackToReload) |
| 5789 { | 5789 { |
| 5790 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5790 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5791 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5791 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5792 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); | 5792 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); |
| 5793 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5793 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5794 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5794 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5795 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); | 5795 Persistent<HistoryItem> firstItem = mainFrameLoader.currentItem(); |
| 5796 EXPECT_TRUE(firstItem); | 5796 EXPECT_TRUE(firstItem); |
| 5797 | 5797 |
| 5798 registerMockedHttpURLLoad("white-1x1.png"); | 5798 registerMockedHttpURLLoad("white-1x1.png"); |
| 5799 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); | 5799 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); |
| 5800 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); | 5800 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); |
| 5801 | 5801 |
| 5802 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem.get()), We
bHistoryDifferentDocumentLoad, WebURLRequest::UseProtocolCachePolicy); | 5802 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem.get()), We
bHistoryDifferentDocumentLoad, WebURLRequest::UseProtocolCachePolicy); |
| 5803 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); | 5803 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); |
| 5804 | 5804 |
| 5805 FrameTestHelpers::reloadFrame(frame); | 5805 FrameTestHelpers::reloadFrame(frame); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5850 EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationT
ype()); | 5850 EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationT
ype()); |
| 5851 } | 5851 } |
| 5852 | 5852 |
| 5853 TEST_P(ParameterizedWebFrameTest, LoadHistoryItemReload) | 5853 TEST_P(ParameterizedWebFrameTest, LoadHistoryItemReload) |
| 5854 { | 5854 { |
| 5855 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5855 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5856 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5856 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5857 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); | 5857 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); |
| 5858 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5858 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5859 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5859 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5860 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); | 5860 Persistent<HistoryItem> firstItem = mainFrameLoader.currentItem(); |
| 5861 EXPECT_TRUE(firstItem); | 5861 EXPECT_TRUE(firstItem); |
| 5862 | 5862 |
| 5863 registerMockedHttpURLLoad("white-1x1.png"); | 5863 registerMockedHttpURLLoad("white-1x1.png"); |
| 5864 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); | 5864 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); |
| 5865 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); | 5865 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); |
| 5866 | 5866 |
| 5867 // Cache policy overrides should take. | 5867 // Cache policy overrides should take. |
| 5868 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem), WebHisto
ryDifferentDocumentLoad, WebURLRequest::ReloadIgnoringCacheData); | 5868 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem), WebHisto
ryDifferentDocumentLoad, WebURLRequest::ReloadIgnoringCacheData); |
| 5869 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); | 5869 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); |
| 5870 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().cachePolicy()); | 5870 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().cachePolicy()); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5934 registerMockedHttpURLLoad("iframe_reload.html"); | 5934 registerMockedHttpURLLoad("iframe_reload.html"); |
| 5935 registerMockedHttpURLLoad("visible_iframe.html"); | 5935 registerMockedHttpURLLoad("visible_iframe.html"); |
| 5936 TestCachePolicyWebFrameClient mainClient(0); | 5936 TestCachePolicyWebFrameClient mainClient(0); |
| 5937 TestCachePolicyWebFrameClient childClient(&mainClient); | 5937 TestCachePolicyWebFrameClient childClient(&mainClient); |
| 5938 mainClient.setChildWebFrameClient(&childClient); | 5938 mainClient.setChildWebFrameClient(&childClient); |
| 5939 | 5939 |
| 5940 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5940 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5941 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai
nClient); | 5941 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai
nClient); |
| 5942 | 5942 |
| 5943 WebLocalFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl(); | 5943 WebLocalFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl(); |
| 5944 RefPtrWillBeRawPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainF
rame->firstChild()); | 5944 RawPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainFrame->firstC
hild()); |
| 5945 ASSERT_EQ(childFrame->client(), &childClient); | 5945 ASSERT_EQ(childFrame->client(), &childClient); |
| 5946 EXPECT_EQ(mainClient.childFrameCreationCount(), 1); | 5946 EXPECT_EQ(mainClient.childFrameCreationCount(), 1); |
| 5947 EXPECT_EQ(childClient.willSendRequestCallCount(), 1); | 5947 EXPECT_EQ(childClient.willSendRequestCallCount(), 1); |
| 5948 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::UseProtocolCachePolicy); | 5948 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::UseProtocolCachePolicy); |
| 5949 | 5949 |
| 5950 FrameTestHelpers::reloadFrame(mainFrame); | 5950 FrameTestHelpers::reloadFrame(mainFrame); |
| 5951 | 5951 |
| 5952 // A new WebFrame should have been created, but the child WebFrameClient sho
uld be reused. | 5952 // A new WebFrame should have been created, but the child WebFrameClient sho
uld be reused. |
| 5953 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild())); | 5953 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild())); |
| 5954 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie
nt); | 5954 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie
nt); |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6115 private: | 6115 private: |
| 6116 WebHistoryCommitType m_lastCommitType; | 6116 WebHistoryCommitType m_lastCommitType; |
| 6117 }; | 6117 }; |
| 6118 | 6118 |
| 6119 TEST_P(ParameterizedWebFrameTest, SameDocumentHistoryNavigationCommitType) | 6119 TEST_P(ParameterizedWebFrameTest, SameDocumentHistoryNavigationCommitType) |
| 6120 { | 6120 { |
| 6121 registerMockedHttpURLLoad("push_state.html"); | 6121 registerMockedHttpURLLoad("push_state.html"); |
| 6122 TestDidNavigateCommitTypeWebFrameClient client; | 6122 TestDidNavigateCommitTypeWebFrameClient client; |
| 6123 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6123 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6124 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push
_state.html", true, &client); | 6124 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push
_state.html", true, &client); |
| 6125 RefPtrWillBePersistent<HistoryItem> item = toLocalFrame(webViewImpl->page()-
>mainFrame())->loader().currentItem(); | 6125 Persistent<HistoryItem> item = toLocalFrame(webViewImpl->page()->mainFrame()
)->loader().currentItem(); |
| 6126 runPendingTasks(); | 6126 runPendingTasks(); |
| 6127 | 6127 |
| 6128 toLocalFrame(webViewImpl->page()->mainFrame())->loader().load( | 6128 toLocalFrame(webViewImpl->page()->mainFrame())->loader().load( |
| 6129 FrameLoadRequest(nullptr, FrameLoader::resourceRequestFromHistoryItem( | 6129 FrameLoadRequest(nullptr, FrameLoader::resourceRequestFromHistoryItem( |
| 6130 item.get(), UseProtocolCachePolicy)), | 6130 item.get(), UseProtocolCachePolicy)), |
| 6131 FrameLoadTypeBackForward, item.get(), HistorySameDocumentLoad); | 6131 FrameLoadTypeBackForward, item.get(), HistorySameDocumentLoad); |
| 6132 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); | 6132 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); |
| 6133 } | 6133 } |
| 6134 | 6134 |
| 6135 class TestHistoryWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 6135 class TestHistoryWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6716 { | 6716 { |
| 6717 registerMockedHttpURLLoad("link-manifest-change.html"); | 6717 registerMockedHttpURLLoad("link-manifest-change.html"); |
| 6718 | 6718 |
| 6719 ManifestChangeWebFrameClient webFrameClient; | 6719 ManifestChangeWebFrameClient webFrameClient; |
| 6720 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6720 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6721 webViewHelper.initializeAndLoad(m_baseURL + "link-manifest-change.html", tru
e, &webFrameClient); | 6721 webViewHelper.initializeAndLoad(m_baseURL + "link-manifest-change.html", tru
e, &webFrameClient); |
| 6722 | 6722 |
| 6723 EXPECT_EQ(14, webFrameClient.manifestChangeCount()); | 6723 EXPECT_EQ(14, webFrameClient.manifestChangeCount()); |
| 6724 } | 6724 } |
| 6725 | 6725 |
| 6726 static PassRefPtrWillBeRawPtr<Resource> fetchManifest(Document* document, const
KURL& url) | 6726 static RawPtr<Resource> fetchManifest(Document* document, const KURL& url) |
| 6727 { | 6727 { |
| 6728 FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiato
rInfo()); | 6728 FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiato
rInfo()); |
| 6729 fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::Reque
stContextManifest); | 6729 fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::Reque
stContextManifest); |
| 6730 | 6730 |
| 6731 return RawResource::fetchSynchronously(fetchRequest, document->fetcher()); | 6731 return RawResource::fetchSynchronously(fetchRequest, document->fetcher()); |
| 6732 } | 6732 } |
| 6733 | 6733 |
| 6734 TEST_P(ParameterizedWebFrameTest, ManifestFetch) | 6734 TEST_P(ParameterizedWebFrameTest, ManifestFetch) |
| 6735 { | 6735 { |
| 6736 registerMockedHttpURLLoad("foo.html"); | 6736 registerMockedHttpURLLoad("foo.html"); |
| 6737 registerMockedHttpURLLoad("link-manifest-fetch.json"); | 6737 registerMockedHttpURLLoad("link-manifest-fetch.json"); |
| 6738 | 6738 |
| 6739 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6739 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6740 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6740 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6741 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6741 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6742 | 6742 |
| 6743 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_bas
eURL + "link-manifest-fetch.json")); | 6743 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_baseURL + "link
-manifest-fetch.json")); |
| 6744 | 6744 |
| 6745 EXPECT_TRUE(resource->isLoaded()); | 6745 EXPECT_TRUE(resource->isLoaded()); |
| 6746 } | 6746 } |
| 6747 | 6747 |
| 6748 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) | 6748 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) |
| 6749 { | 6749 { |
| 6750 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6750 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6751 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); | 6751 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); |
| 6752 | 6752 |
| 6753 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6753 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6754 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6754 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6755 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6755 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6756 | 6756 |
| 6757 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_not
BaseURL + "link-manifest-fetch.json")); | 6757 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "l
ink-manifest-fetch.json")); |
| 6758 | 6758 |
| 6759 EXPECT_TRUE(resource->isLoaded()); | 6759 EXPECT_TRUE(resource->isLoaded()); |
| 6760 } | 6760 } |
| 6761 | 6761 |
| 6762 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) | 6762 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) |
| 6763 { | 6763 { |
| 6764 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6764 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6765 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); | 6765 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); |
| 6766 | 6766 |
| 6767 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6767 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6768 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6768 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6769 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6769 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6770 | 6770 |
| 6771 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_not
BaseURL + "link-manifest-fetch.json")); | 6771 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "l
ink-manifest-fetch.json")); |
| 6772 | 6772 |
| 6773 EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed. | 6773 EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed. |
| 6774 } | 6774 } |
| 6775 | 6775 |
| 6776 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) | 6776 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) |
| 6777 { | 6777 { |
| 6778 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6778 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6779 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* repor
t only */ true); | 6779 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* repor
t only */ true); |
| 6780 | 6780 |
| 6781 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6781 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6782 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6782 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6783 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6783 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6784 | 6784 |
| 6785 RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_not
BaseURL + "link-manifest-fetch.json")); | 6785 RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "l
ink-manifest-fetch.json")); |
| 6786 | 6786 |
| 6787 EXPECT_TRUE(resource->isLoaded()); | 6787 EXPECT_TRUE(resource->isLoaded()); |
| 6788 } | 6788 } |
| 6789 | 6789 |
| 6790 TEST_P(ParameterizedWebFrameTest, ReloadBypassingCache) | 6790 TEST_P(ParameterizedWebFrameTest, ReloadBypassingCache) |
| 6791 { | 6791 { |
| 6792 // Check that a reload ignoring cache on a frame will result in the cache | 6792 // Check that a reload ignoring cache on a frame will result in the cache |
| 6793 // policy of the request being set to ReloadBypassingCache. | 6793 // policy of the request being set to ReloadBypassingCache. |
| 6794 registerMockedHttpURLLoad("foo.html"); | 6794 registerMockedHttpURLLoad("foo.html"); |
| 6795 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6795 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6931 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t
o | 6931 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t
o |
| 6932 // write tests with a top-level remote frame. | 6932 // write tests with a top-level remote frame. |
| 6933 FrameTestHelpers::TestWebViewClient viewClient; | 6933 FrameTestHelpers::TestWebViewClient viewClient; |
| 6934 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 6934 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
| 6935 WebView* view = WebView::create(&viewClient); | 6935 WebView* view = WebView::create(&viewClient); |
| 6936 view->setMainFrame(remoteClient.frame()); | 6936 view->setMainFrame(remoteClient.frame()); |
| 6937 FrameTestHelpers::TestWebFrameClient childFrameClient; | 6937 FrameTestHelpers::TestWebFrameClient childFrameClient; |
| 6938 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc
alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient
, nullptr, WebFrameOwnerProperties()); | 6938 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc
alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient
, nullptr, WebFrameOwnerProperties()); |
| 6939 | 6939 |
| 6940 // Purposely keep the LocalFrame alive so it's the last thing to be destroye
d. | 6940 // Purposely keep the LocalFrame alive so it's the last thing to be destroye
d. |
| 6941 RefPtrWillBePersistent<Frame> childCoreFrame = childFrame->toImplBase()->fra
me(); | 6941 Persistent<Frame> childCoreFrame = childFrame->toImplBase()->frame(); |
| 6942 view->close(); | 6942 view->close(); |
| 6943 childCoreFrame.clear(); | 6943 childCoreFrame.clear(); |
| 6944 } | 6944 } |
| 6945 | 6945 |
| 6946 class WebFrameSwapTest : public WebFrameTest { | 6946 class WebFrameSwapTest : public WebFrameTest { |
| 6947 protected: | 6947 protected: |
| 6948 WebFrameSwapTest() | 6948 WebFrameSwapTest() |
| 6949 { | 6949 { |
| 6950 registerMockedHttpURLLoad("frame-a-b-c.html"); | 6950 registerMockedHttpURLLoad("frame-a-b-c.html"); |
| 6951 registerMockedHttpURLLoad("subframe-a.html"); | 6951 registerMockedHttpURLLoad("subframe-a.html"); |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7537 ASSERT_TRUE(mainFrame()->firstChild()->isWebRemoteFrame()); | 7537 ASSERT_TRUE(mainFrame()->firstChild()->isWebRemoteFrame()); |
| 7538 LocalDOMWindow* mainWindow = toWebLocalFrameImpl(mainFrame())->frame()->loca
lDOMWindow(); | 7538 LocalDOMWindow* mainWindow = toWebLocalFrameImpl(mainFrame())->frame()->loca
lDOMWindow(); |
| 7539 | 7539 |
| 7540 KURL destination = toKURL("data:text/html:destination"); | 7540 KURL destination = toKURL("data:text/html:destination"); |
| 7541 mainWindow->open(destination.string(), "frame1", "", mainWindow, mainWindow)
; | 7541 mainWindow->open(destination.string(), "frame1", "", mainWindow, mainWindow)
; |
| 7542 ASSERT_FALSE(remoteClient.lastRequest().isNull()); | 7542 ASSERT_FALSE(remoteClient.lastRequest().isNull()); |
| 7543 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); | 7543 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); |
| 7544 | 7544 |
| 7545 // Pointing a named frame to an empty URL should just return a reference to | 7545 // Pointing a named frame to an empty URL should just return a reference to |
| 7546 // the frame's window without navigating it. | 7546 // the frame's window without navigating it. |
| 7547 RefPtrWillBeRawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", ma
inWindow, mainWindow); | 7547 RawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", mainWindow, ma
inWindow); |
| 7548 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); | 7548 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); |
| 7549 EXPECT_EQ(result, remoteFrame->toImplBase()->frame()->domWindow()); | 7549 EXPECT_EQ(result, remoteFrame->toImplBase()->frame()->domWindow()); |
| 7550 | 7550 |
| 7551 reset(); | 7551 reset(); |
| 7552 } | 7552 } |
| 7553 | 7553 |
| 7554 class RemoteWindowCloseClient : public FrameTestHelpers::TestWebViewClient { | 7554 class RemoteWindowCloseClient : public FrameTestHelpers::TestWebViewClient { |
| 7555 public: | 7555 public: |
| 7556 RemoteWindowCloseClient() | 7556 RemoteWindowCloseClient() |
| 7557 : m_closed(false) | 7557 : m_closed(false) |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7735 { | 7735 { |
| 7736 FrameTestHelpers::WebViewHelper webViewHelper(this); | 7736 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 7737 webViewHelper.initializeAndLoad("about:blank"); | 7737 webViewHelper.initializeAndLoad("about:blank"); |
| 7738 | 7738 |
| 7739 SchemeRegistry::registerURLSchemeAsDisplayIsolated("chrome"); | 7739 SchemeRegistry::registerURLSchemeAsDisplayIsolated("chrome"); |
| 7740 | 7740 |
| 7741 // Cross-origin request. | 7741 // Cross-origin request. |
| 7742 KURL resourceUrl(ParsedURLString, "chrome://test.pdf"); | 7742 KURL resourceUrl(ParsedURLString, "chrome://test.pdf"); |
| 7743 registerMockedChromeURLLoad("test.pdf"); | 7743 registerMockedChromeURLLoad("test.pdf"); |
| 7744 | 7744 |
| 7745 RefPtrWillBeRawPtr<LocalFrame> frame(toLocalFrame(webViewHelper.webViewImpl(
)->page()->mainFrame())); | 7745 RawPtr<LocalFrame> frame(toLocalFrame(webViewHelper.webViewImpl()->page()->m
ainFrame())); |
| 7746 | 7746 |
| 7747 MockDocumentThreadableLoaderClient client; | 7747 MockDocumentThreadableLoaderClient client; |
| 7748 ThreadableLoaderOptions options; | 7748 ThreadableLoaderOptions options; |
| 7749 | 7749 |
| 7750 // First try to load the request with regular access. Should fail. | 7750 // First try to load the request with regular access. Should fail. |
| 7751 options.crossOriginRequestPolicy = UseAccessControl; | 7751 options.crossOriginRequestPolicy = UseAccessControl; |
| 7752 ResourceLoaderOptions resourceLoaderOptions; | 7752 ResourceLoaderOptions resourceLoaderOptions; |
| 7753 DocumentThreadableLoader::loadResourceSynchronously( | 7753 DocumentThreadableLoader::loadResourceSynchronously( |
| 7754 *frame->document(), ResourceRequest(resourceUrl), client, options, resou
rceLoaderOptions); | 7754 *frame->document(), ResourceRequest(resourceUrl), client, options, resou
rceLoaderOptions); |
| 7755 EXPECT_TRUE(client.failed()); | 7755 EXPECT_TRUE(client.failed()); |
| (...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8386 } | 8386 } |
| 8387 | 8387 |
| 8388 WebFrame* mainFrame() { return m_frame; } | 8388 WebFrame* mainFrame() { return m_frame; } |
| 8389 WebRemoteFrameImpl* remoteFrame() { return m_webRemoteFrame; } | 8389 WebRemoteFrameImpl* remoteFrame() { return m_webRemoteFrame; } |
| 8390 TestWebRemoteFrameClientForVisibility* remoteFrameClient() { return &m_remot
eFrameClient; } | 8390 TestWebRemoteFrameClientForVisibility* remoteFrameClient() { return &m_remot
eFrameClient; } |
| 8391 | 8391 |
| 8392 private: | 8392 private: |
| 8393 TestWebRemoteFrameClientForVisibility m_remoteFrameClient; | 8393 TestWebRemoteFrameClientForVisibility m_remoteFrameClient; |
| 8394 FrameTestHelpers::WebViewHelper m_webViewHelper; | 8394 FrameTestHelpers::WebViewHelper m_webViewHelper; |
| 8395 WebFrame* m_frame; | 8395 WebFrame* m_frame; |
| 8396 RawPtrWillBePersistent<WebRemoteFrameImpl> m_webRemoteFrame; | 8396 Persistent<WebRemoteFrameImpl> m_webRemoteFrame; |
| 8397 }; | 8397 }; |
| 8398 | 8398 |
| 8399 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange) | 8399 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange) |
| 8400 { | 8400 { |
| 8401 swapLocalFrameToRemoteFrame(); | 8401 swapLocalFrameToRemoteFrame(); |
| 8402 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'none';")); | 8402 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'none';")); |
| 8403 EXPECT_FALSE(remoteFrameClient()->isVisible()); | 8403 EXPECT_FALSE(remoteFrameClient()->isVisible()); |
| 8404 | 8404 |
| 8405 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'block';")); | 8405 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').s
tyle.display = 'block';")); |
| 8406 EXPECT_TRUE(remoteFrameClient()->isVisible()); | 8406 EXPECT_TRUE(remoteFrameClient()->isVisible()); |
| 8407 } | 8407 } |
| 8408 | 8408 |
| 8409 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) | 8409 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) |
| 8410 { | 8410 { |
| 8411 swapLocalFrameToRemoteFrame(); | 8411 swapLocalFrameToRemoteFrame(); |
| 8412 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); | 8412 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); |
| 8413 EXPECT_FALSE(remoteFrameClient()->isVisible()); | 8413 EXPECT_FALSE(remoteFrameClient()->isVisible()); |
| 8414 } | 8414 } |
| 8415 | 8415 |
| 8416 } // namespace blink | 8416 } // namespace blink |
| OLD | NEW |