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 14 matching lines...) Expand all Loading... | |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "public/web/WebFrame.h" | 31 #include "public/web/WebFrame.h" |
32 | 32 |
33 #include <stdarg.h> | 33 #include <stdarg.h> |
34 | 34 |
35 #include <limits> | |
35 #include <map> | 36 #include <map> |
36 #include <memory> | 37 #include <memory> |
38 #include <set> | |
37 | 39 |
38 #include "SkBitmap.h" | 40 #include "SkBitmap.h" |
39 #include "SkCanvas.h" | 41 #include "SkCanvas.h" |
40 #include "bindings/core/v8/V8BindingForCore.h" | 42 #include "bindings/core/v8/V8BindingForCore.h" |
41 #include "bindings/core/v8/V8Node.h" | 43 #include "bindings/core/v8/V8Node.h" |
42 #include "bindings/core/v8/serialization/SerializedScriptValueFactory.h" | 44 #include "bindings/core/v8/serialization/SerializedScriptValueFactory.h" |
43 #include "bindings/core/v8/serialization/V8ScriptValueSerializer.h" | 45 #include "bindings/core/v8/serialization/V8ScriptValueSerializer.h" |
44 #include "core/clipboard/DataTransfer.h" | 46 #include "core/clipboard/DataTransfer.h" |
45 #include "core/css/StyleSheetContents.h" | 47 #include "core/css/StyleSheetContents.h" |
46 #include "core/css/resolver/StyleResolver.h" | 48 #include "core/css/resolver/StyleResolver.h" |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
614 EXPECT_EQ(String(), callback_helper.StringValue()); | 616 EXPECT_EQ(String(), callback_helper.StringValue()); |
615 } | 617 } |
616 | 618 |
617 TEST_P(ParameterizedWebFrameTest, FormWithNullFrame) { | 619 TEST_P(ParameterizedWebFrameTest, FormWithNullFrame) { |
618 RegisterMockedHttpURLLoad("form.html"); | 620 RegisterMockedHttpURLLoad("form.html"); |
619 | 621 |
620 FrameTestHelpers::WebViewHelper web_view_helper; | 622 FrameTestHelpers::WebViewHelper web_view_helper; |
621 web_view_helper.InitializeAndLoad(base_url_ + "form.html"); | 623 web_view_helper.InitializeAndLoad(base_url_ + "form.html"); |
622 | 624 |
623 WebVector<WebFormElement> forms; | 625 WebVector<WebFormElement> forms; |
624 web_view_helper.WebView()->MainFrame()->GetDocument().Forms(forms); | 626 web_view_helper.WebView()->MainFrameImpl()->GetDocument().Forms(forms); |
625 web_view_helper.Reset(); | 627 web_view_helper.Reset(); |
626 | 628 |
627 EXPECT_EQ(forms.size(), 1U); | 629 EXPECT_EQ(forms.size(), 1U); |
628 | 630 |
629 // This test passes if this doesn't crash. | 631 // This test passes if this doesn't crash. |
630 WebSearchableFormData searchable_data_form(forms[0]); | 632 WebSearchableFormData searchable_data_form(forms[0]); |
631 } | 633 } |
632 | 634 |
633 TEST_P(ParameterizedWebFrameTest, ChromePageJavascript) { | 635 TEST_P(ParameterizedWebFrameTest, ChromePageJavascript) { |
634 RegisterMockedChromeURLLoad("history.html"); | 636 RegisterMockedChromeURLLoad("history.html"); |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1002 | 1004 |
1003 TEST_P(ParameterizedWebFrameTest, DispatchMessageEventWithOriginCheck) { | 1005 TEST_P(ParameterizedWebFrameTest, DispatchMessageEventWithOriginCheck) { |
1004 RegisterMockedHttpURLLoad("postmessage_test.html"); | 1006 RegisterMockedHttpURLLoad("postmessage_test.html"); |
1005 | 1007 |
1006 FrameTestHelpers::WebViewHelper web_view_helper; | 1008 FrameTestHelpers::WebViewHelper web_view_helper; |
1007 web_view_helper.InitializeAndLoad(base_url_ + "postmessage_test.html"); | 1009 web_view_helper.InitializeAndLoad(base_url_ + "postmessage_test.html"); |
1008 | 1010 |
1009 // Send a message with the correct origin. | 1011 // Send a message with the correct origin. |
1010 WebSecurityOrigin correct_origin( | 1012 WebSecurityOrigin correct_origin( |
1011 WebSecurityOrigin::Create(ToKURL(base_url_))); | 1013 WebSecurityOrigin::Create(ToKURL(base_url_))); |
1012 WebDocument document = web_view_helper.WebView()->MainFrame()->GetDocument(); | 1014 WebDocument document = |
1015 web_view_helper.WebView()->MainFrameImpl()->GetDocument(); | |
1013 WebSerializedScriptValue data(WebSerializedScriptValue::CreateInvalid()); | 1016 WebSerializedScriptValue data(WebSerializedScriptValue::CreateInvalid()); |
1014 WebDOMMessageEvent message(data, "http://origin.com"); | 1017 WebDOMMessageEvent message(data, "http://origin.com"); |
1015 web_view_helper.WebView() | 1018 web_view_helper.WebView() |
1016 ->MainFrameImpl() | 1019 ->MainFrameImpl() |
1017 ->DispatchMessageEventWithOriginCheck(correct_origin, message); | 1020 ->DispatchMessageEventWithOriginCheck(correct_origin, message); |
1018 | 1021 |
1019 // Send another message with incorrect origin. | 1022 // Send another message with incorrect origin. |
1020 WebSecurityOrigin incorrect_origin( | 1023 WebSecurityOrigin incorrect_origin( |
1021 WebSecurityOrigin::Create(ToKURL(chrome_url_))); | 1024 WebSecurityOrigin::Create(ToKURL(chrome_url_))); |
1022 web_view_helper.WebView() | 1025 web_view_helper.WebView() |
(...skipping 2897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3920 web_view_helper.WebView()->EnableFakePageScaleAnimationForTesting(true); | 3923 web_view_helper.WebView()->EnableFakePageScaleAnimationForTesting(true); |
3921 | 3924 |
3922 WebRect edit_box_with_text(200, 200, 250, 20); | 3925 WebRect edit_box_with_text(200, 200, 250, 20); |
3923 WebRect edit_box_with_no_text(200, 250, 250, 20); | 3926 WebRect edit_box_with_no_text(200, 250, 250, 20); |
3924 | 3927 |
3925 // Test scrolling the focused node | 3928 // Test scrolling the focused node |
3926 // The edit box is shorter and narrower than the viewport when legible. | 3929 // The edit box is shorter and narrower than the viewport when legible. |
3927 web_view_helper.WebView()->AdvanceFocus(false); | 3930 web_view_helper.WebView()->AdvanceFocus(false); |
3928 // Set the caret to the end of the input box. | 3931 // Set the caret to the end of the input box. |
3929 web_view_helper.WebView() | 3932 web_view_helper.WebView() |
3930 ->MainFrame() | 3933 ->MainFrameImpl() |
3931 ->GetDocument() | 3934 ->GetDocument() |
3932 .GetElementById("EditBoxWithText") | 3935 .GetElementById("EditBoxWithText") |
3933 .To<WebInputElement>() | 3936 .To<WebInputElement>() |
3934 .SetSelectionRange(1000, 1000); | 3937 .SetSelectionRange(1000, 1000); |
3935 SetScaleAndScrollAndLayout(web_view_helper.WebView(), WebPoint(0, 0), 1); | 3938 SetScaleAndScrollAndLayout(web_view_helper.WebView(), WebPoint(0, 0), 1); |
3936 WebRect rect, caret; | 3939 WebRect rect, caret; |
3937 web_view_helper.WebView()->SelectionBounds(caret, rect); | 3940 web_view_helper.WebView()->SelectionBounds(caret, rect); |
3938 | 3941 |
3939 // Set the page scale to be smaller than the minimal readable scale. | 3942 // Set the page scale to be smaller than the minimal readable scale. |
3940 float initial_scale = min_readable_caret_height / caret.height * 0.5f; | 3943 float initial_scale = min_readable_caret_height / caret.height * 0.5f; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4017 web_view_helper.WebView()->GetPage()->GetSettings().SetTextAutosizingEnabled( | 4020 web_view_helper.WebView()->GetPage()->GetSettings().SetTextAutosizingEnabled( |
4018 false); | 4021 false); |
4019 web_view_helper.Resize(WebSize(kViewportWidth, kViewportHeight)); | 4022 web_view_helper.Resize(WebSize(kViewportWidth, kViewportHeight)); |
4020 web_view_helper.WebView()->EnableFakePageScaleAnimationForTesting(true); | 4023 web_view_helper.WebView()->EnableFakePageScaleAnimationForTesting(true); |
4021 | 4024 |
4022 const WebRect edit_box_with_text(200, 200, 250, 20); | 4025 const WebRect edit_box_with_text(200, 200, 250, 20); |
4023 | 4026 |
4024 web_view_helper.WebView()->AdvanceFocus(false); | 4027 web_view_helper.WebView()->AdvanceFocus(false); |
4025 // Set the caret to the begining of the input box. | 4028 // Set the caret to the begining of the input box. |
4026 web_view_helper.WebView() | 4029 web_view_helper.WebView() |
4027 ->MainFrame() | 4030 ->MainFrameImpl() |
4028 ->GetDocument() | 4031 ->GetDocument() |
4029 .GetElementById("EditBoxWithText") | 4032 .GetElementById("EditBoxWithText") |
4030 .To<WebInputElement>() | 4033 .To<WebInputElement>() |
4031 .SetSelectionRange(0, 0); | 4034 .SetSelectionRange(0, 0); |
4032 SetScaleAndScrollAndLayout(web_view_helper.WebView(), WebPoint(0, 0), 1); | 4035 SetScaleAndScrollAndLayout(web_view_helper.WebView(), WebPoint(0, 0), 1); |
4033 WebRect rect, caret; | 4036 WebRect rect, caret; |
4034 web_view_helper.WebView()->SelectionBounds(caret, rect); | 4037 web_view_helper.WebView()->SelectionBounds(caret, rect); |
4035 | 4038 |
4036 // Set the page scale to be twice as large as the minimal readable scale. | 4039 // Set the page scale to be twice as large as the minimal readable scale. |
4037 float new_scale = kMinReadableCaretHeight / caret.height * 2.0; | 4040 float new_scale = kMinReadableCaretHeight / caret.height * 2.0; |
(...skipping 1282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5320 } | 5323 } |
5321 | 5324 |
5322 static WebPoint BottomRightMinusOne(const WebRect& rect) { | 5325 static WebPoint BottomRightMinusOne(const WebRect& rect) { |
5323 // FIXME: If we don't subtract 1 from the x- and y-coordinates of the | 5326 // FIXME: If we don't subtract 1 from the x- and y-coordinates of the |
5324 // selection bounds, selectRange() will select the *next* element. That's | 5327 // selection bounds, selectRange() will select the *next* element. That's |
5325 // strictly correct, as hit-testing checks the pixel to the lower-right of | 5328 // strictly correct, as hit-testing checks the pixel to the lower-right of |
5326 // the input coordinate, but it's a wart on the API. | 5329 // the input coordinate, but it's a wart on the API. |
5327 return WebPoint(rect.x + rect.width - 1, rect.y + rect.height - 1); | 5330 return WebPoint(rect.x + rect.width - 1, rect.y + rect.height - 1); |
5328 } | 5331 } |
5329 | 5332 |
5330 static WebRect ElementBounds(WebFrame* frame, const WebString& id) { | 5333 static WebRect ElementBounds(WebLocalFrame* frame, const WebString& id) { |
5331 return frame->GetDocument().GetElementById(id).BoundsInViewport(); | 5334 return frame->GetDocument().GetElementById(id).BoundsInViewport(); |
5332 } | 5335 } |
5333 | 5336 |
5334 static std::string SelectionAsString(WebFrame* frame) { | 5337 static std::string SelectionAsString(WebFrame* frame) { |
5335 return frame->ToWebLocalFrame()->SelectionAsText().Utf8(); | 5338 return frame->ToWebLocalFrame()->SelectionAsText().Utf8(); |
5336 } | 5339 } |
5337 | 5340 |
5338 TEST_P(ParameterizedWebFrameTest, SelectRange) { | 5341 TEST_P(ParameterizedWebFrameTest, SelectRange) { |
5339 WebLocalFrame* frame; | 5342 WebLocalFrame* frame; |
5340 WebRect start_web_rect; | 5343 WebRect start_web_rect; |
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6697 WebVector<unsigned> offsets2; | 6700 WebVector<unsigned> offsets2; |
6698 GetSpellingMarkerOffsets(&offsets2, *frame->GetDocument()); | 6701 GetSpellingMarkerOffsets(&offsets2, *frame->GetDocument()); |
6699 EXPECT_EQ(0U, offsets2.size()); | 6702 EXPECT_EQ(0U, offsets2.size()); |
6700 } | 6703 } |
6701 | 6704 |
6702 class StubbornTextCheckClient : public WebTextCheckClient { | 6705 class StubbornTextCheckClient : public WebTextCheckClient { |
6703 public: | 6706 public: |
6704 StubbornTextCheckClient() : completion_(0) {} | 6707 StubbornTextCheckClient() : completion_(0) {} |
6705 virtual ~StubbornTextCheckClient() {} | 6708 virtual ~StubbornTextCheckClient() {} |
6706 | 6709 |
6707 virtual void RequestCheckingOfText( | 6710 void RequestCheckingOfText(const WebString&, |
6708 const WebString&, | 6711 WebTextCheckingCompletion* completion) override { |
6709 WebTextCheckingCompletion* completion) override { | |
6710 completion_ = completion; | 6712 completion_ = completion; |
6711 } | 6713 } |
6712 | 6714 |
6713 void CancelAllPendingRequests() override { | 6715 void CancelAllPendingRequests() override { |
6714 if (!completion_) | 6716 if (!completion_) |
6715 return; | 6717 return; |
6716 completion_->DidCancelCheckingText(); | 6718 completion_->DidCancelCheckingText(); |
6717 completion_ = nullptr; | 6719 completion_ = nullptr; |
6718 } | 6720 } |
6719 | 6721 |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7168 test_url, redirect_response, file_path); | 7170 test_url, redirect_response, file_path); |
7169 | 7171 |
7170 WebURLResponse final_response; | 7172 WebURLResponse final_response; |
7171 final_response.SetMIMEType("text/html"); | 7173 final_response.SetMIMEType("text/html"); |
7172 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL( | 7174 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL( |
7173 redirect_url, final_response, file_path); | 7175 redirect_url, final_response, file_path); |
7174 | 7176 |
7175 FrameTestHelpers::WebViewHelper web_view_helper; | 7177 FrameTestHelpers::WebViewHelper web_view_helper; |
7176 web_view_helper.InitializeAndLoad(base_url_ + "first_party_redirect.html"); | 7178 web_view_helper.InitializeAndLoad(base_url_ + "first_party_redirect.html"); |
7177 EXPECT_TRUE(web_view_helper.WebView() | 7179 EXPECT_TRUE(web_view_helper.WebView() |
7178 ->MainFrame() | 7180 ->MainFrameImpl() |
7179 ->GetDocument() | 7181 ->GetDocument() |
7180 .FirstPartyForCookies() == redirect_url); | 7182 .FirstPartyForCookies() == redirect_url); |
7181 } | 7183 } |
7182 | 7184 |
7183 class TestNavigationPolicyWebFrameClient | 7185 class TestNavigationPolicyWebFrameClient |
7184 : public FrameTestHelpers::TestWebFrameClient { | 7186 : public FrameTestHelpers::TestWebFrameClient { |
7185 public: | 7187 public: |
7186 void DidNavigateWithinPage(const WebHistoryItem&, | 7188 void DidNavigateWithinPage(const WebHistoryItem&, |
7187 WebHistoryCommitType, | 7189 WebHistoryCommitType, |
7188 bool) override { | 7190 bool) override { |
(...skipping 22 matching lines...) Expand all Loading... | |
7211 MouseEvent::Create(nullptr, EventTypeNames::click, mouse_initializer); | 7213 MouseEvent::Create(nullptr, EventTypeNames::click, mouse_initializer); |
7212 FrameLoadRequest frame_request(document, ResourceRequest(destination)); | 7214 FrameLoadRequest frame_request(document, ResourceRequest(destination)); |
7213 frame_request.SetTriggeringEvent(event); | 7215 frame_request.SetTriggeringEvent(event); |
7214 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) | 7216 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) |
7215 ->Loader() | 7217 ->Loader() |
7216 .Load(frame_request); | 7218 .Load(frame_request); |
7217 } | 7219 } |
7218 | 7220 |
7219 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { | 7221 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { |
7220 public: | 7222 public: |
7221 virtual WebView* CreateView(WebLocalFrame*, | 7223 WebView* CreateView(WebLocalFrame*, |
7222 const WebURLRequest&, | 7224 const WebURLRequest&, |
7223 const WebWindowFeatures&, | 7225 const WebWindowFeatures&, |
7224 const WebString&, | 7226 const WebString&, |
7225 WebNavigationPolicy, | 7227 WebNavigationPolicy, |
7226 bool) override { | 7228 bool) override { |
7227 EXPECT_TRUE(false); | 7229 EXPECT_TRUE(false); |
7228 return 0; | 7230 return 0; |
7229 } | 7231 } |
7230 }; | 7232 }; |
7231 | 7233 |
7232 class TestNewWindowWebFrameClient | 7234 class TestNewWindowWebFrameClient |
7233 : public FrameTestHelpers::TestWebFrameClient { | 7235 : public FrameTestHelpers::TestWebFrameClient { |
7234 public: | 7236 public: |
7235 TestNewWindowWebFrameClient() : decide_policy_call_count_(0) {} | 7237 TestNewWindowWebFrameClient() : decide_policy_call_count_(0) {} |
7236 | 7238 |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7695 | 7697 |
7696 TestHistoryWebFrameClient client; | 7698 TestHistoryWebFrameClient client; |
7697 FrameTestHelpers::WebViewHelper web_view_helper; | 7699 FrameTestHelpers::WebViewHelper web_view_helper; |
7698 web_view_helper.InitializeAndLoad("about:blank", &client); | 7700 web_view_helper.InitializeAndLoad("about:blank", &client); |
7699 | 7701 |
7700 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl(); | 7702 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl(); |
7701 | 7703 |
7702 frame->ExecuteScript(WebScriptSource(WebString::FromUTF8( | 7704 frame->ExecuteScript(WebScriptSource(WebString::FromUTF8( |
7703 "document.body.appendChild(document.createElement('iframe'))"))); | 7705 "document.body.appendChild(document.createElement('iframe'))"))); |
7704 | 7706 |
7705 WebFrame* iframe = frame->FirstChild(); | 7707 WebLocalFrameBase* iframe = ToWebLocalFrameBase(frame->FirstChild()); |
7706 ASSERT_EQ(&client.ChildClient(), ToWebLocalFrameBase(iframe)->Client()); | 7708 ASSERT_EQ(&client.ChildClient(), iframe->Client()); |
7707 | 7709 |
7708 std::string url1 = base_url_ + "history.html"; | 7710 std::string url1 = base_url_ + "history.html"; |
7709 FrameTestHelpers::LoadFrame(iframe, url1); | 7711 FrameTestHelpers::LoadFrame(iframe, url1); |
7710 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8()); | 7712 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8()); |
7711 EXPECT_TRUE(client.ChildClient().ReplacesCurrentHistoryItem()); | 7713 EXPECT_TRUE(client.ChildClient().ReplacesCurrentHistoryItem()); |
7712 | 7714 |
7713 std::string url2 = base_url_ + "find.html"; | 7715 std::string url2 = base_url_ + "find.html"; |
7714 FrameTestHelpers::LoadFrame(iframe, url2); | 7716 FrameTestHelpers::LoadFrame(iframe, url2); |
7715 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8()); | 7717 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8()); |
7716 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem()); | 7718 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem()); |
7717 } | 7719 } |
7718 | 7720 |
7719 // Tests that a navigation in a frame with a non-blank initial URL will create | 7721 // Tests that a navigation in a frame with a non-blank initial URL will create |
7720 // a new history item, unlike the case above. | 7722 // a new history item, unlike the case above. |
7721 TEST_P(ParameterizedWebFrameTest, FirstNonBlankSubframeNavigation) { | 7723 TEST_P(ParameterizedWebFrameTest, FirstNonBlankSubframeNavigation) { |
7722 RegisterMockedHttpURLLoad("history.html"); | 7724 RegisterMockedHttpURLLoad("history.html"); |
7723 RegisterMockedHttpURLLoad("find.html"); | 7725 RegisterMockedHttpURLLoad("find.html"); |
7724 | 7726 |
7725 TestHistoryWebFrameClient client; | 7727 TestHistoryWebFrameClient client; |
7726 FrameTestHelpers::WebViewHelper web_view_helper; | 7728 FrameTestHelpers::WebViewHelper web_view_helper; |
7727 web_view_helper.InitializeAndLoad("about:blank", &client); | 7729 web_view_helper.InitializeAndLoad("about:blank", &client); |
7728 | 7730 |
7729 WebFrame* frame = web_view_helper.WebView()->MainFrame(); | 7731 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl(); |
dcheng
2017/06/20 09:02:21
Nit: this can just be web_view_helper.LocalMainFra
dcheng
2017/06/20 09:03:13
(Of course this only applies when there's an acces
Łukasz Anforowicz
2017/06/20 16:59:44
This cleanup opportunity impacts more lines than t
| |
7730 | 7732 |
7731 std::string url1 = base_url_ + "history.html"; | 7733 std::string url1 = base_url_ + "history.html"; |
7732 FrameTestHelpers::LoadFrame( | 7734 FrameTestHelpers::LoadFrame( |
7733 frame, | 7735 frame, |
7734 "javascript:var f = document.createElement('iframe'); " | 7736 "javascript:var f = document.createElement('iframe'); " |
7735 "f.src = '" + | 7737 "f.src = '" + |
7736 url1 + | 7738 url1 + |
7737 "';" | 7739 "';" |
7738 "document.body.appendChild(f)"); | 7740 "document.body.appendChild(f)"); |
7739 | 7741 |
7740 WebFrame* iframe = frame->FirstChild(); | 7742 WebLocalFrame* iframe = frame->FirstChild()->ToWebLocalFrame(); |
7741 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8()); | 7743 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8()); |
7742 | 7744 |
7743 std::string url2 = base_url_ + "find.html"; | 7745 std::string url2 = base_url_ + "find.html"; |
7744 FrameTestHelpers::LoadFrame(iframe, url2); | 7746 FrameTestHelpers::LoadFrame(iframe, url2); |
7745 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8()); | 7747 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8()); |
7746 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem()); | 7748 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem()); |
7747 } | 7749 } |
7748 | 7750 |
7749 // Test verifies that layout will change a layer's scrollable attibutes | 7751 // Test verifies that layout will change a layer's scrollable attibutes |
7750 TEST_F(WebFrameTest, overflowHiddenRewrite) { | 7752 TEST_F(WebFrameTest, overflowHiddenRewrite) { |
(...skipping 1839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
9590 remote_frame->Swap(local_frame); | 9592 remote_frame->Swap(local_frame); |
9591 | 9593 |
9592 // And the opener cycle should still be preserved. | 9594 // And the opener cycle should still be preserved. |
9593 EXPECT_EQ(local_frame, local_frame->Opener()); | 9595 EXPECT_EQ(local_frame, local_frame->Opener()); |
9594 | 9596 |
9595 view->Close(); | 9597 view->Close(); |
9596 } | 9598 } |
9597 | 9599 |
9598 class CommitTypeWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 9600 class CommitTypeWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
9599 public: | 9601 public: |
9600 explicit CommitTypeWebFrameClient() | 9602 CommitTypeWebFrameClient() : history_commit_type_(kWebHistoryInertCommit) {} |
9601 : history_commit_type_(kWebHistoryInertCommit) {} | |
9602 | 9603 |
9603 void DidCommitProvisionalLoad( | 9604 void DidCommitProvisionalLoad( |
9604 const WebHistoryItem&, | 9605 const WebHistoryItem&, |
9605 WebHistoryCommitType history_commit_type) override { | 9606 WebHistoryCommitType history_commit_type) override { |
9606 history_commit_type_ = history_commit_type; | 9607 history_commit_type_ = history_commit_type; |
9607 } | 9608 } |
9608 | 9609 |
9609 WebHistoryCommitType HistoryCommitType() const { | 9610 WebHistoryCommitType HistoryCommitType() const { |
9610 return history_commit_type_; | 9611 return history_commit_type_; |
9611 } | 9612 } |
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10698 local_frame->CopyImageAt(WebPoint(50, 50)); | 10699 local_frame->CopyImageAt(WebPoint(50, 50)); |
10699 | 10700 |
10700 EXPECT_NE(sequence, Platform::Current()->Clipboard()->SequenceNumber( | 10701 EXPECT_NE(sequence, Platform::Current()->Clipboard()->SequenceNumber( |
10701 WebClipboard::kBufferStandard)); | 10702 WebClipboard::kBufferStandard)); |
10702 | 10703 |
10703 WebImage image = | 10704 WebImage image = |
10704 static_cast<WebMockClipboard*>(Platform::Current()->Clipboard()) | 10705 static_cast<WebMockClipboard*>(Platform::Current()->Clipboard()) |
10705 ->ReadRawImage(WebClipboard::Buffer()); | 10706 ->ReadRawImage(WebClipboard::Buffer()); |
10706 | 10707 |
10707 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.GetSkBitmap().getColor(0, 0)); | 10708 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.GetSkBitmap().getColor(0, 0)); |
10708 }; | 10709 } |
10709 | 10710 |
10710 TEST_F(WebFrameTest, CopyImageAtWithPinchZoom) { | 10711 TEST_F(WebFrameTest, CopyImageAtWithPinchZoom) { |
10711 std::string url = base_url_ + "canvas-copy-image.html"; | 10712 std::string url = base_url_ + "canvas-copy-image.html"; |
10712 RegisterMockedURLLoadFromBase(base_url_, "canvas-copy-image.html"); | 10713 RegisterMockedURLLoadFromBase(base_url_, "canvas-copy-image.html"); |
10713 | 10714 |
10714 FrameTestHelpers::WebViewHelper helper; | 10715 FrameTestHelpers::WebViewHelper helper; |
10715 WebViewBase* web_view = helper.InitializeAndLoad(url); | 10716 WebViewBase* web_view = helper.InitializeAndLoad(url); |
10716 web_view->Resize(WebSize(400, 400)); | 10717 web_view->Resize(WebSize(400, 400)); |
10717 web_view->UpdateAllLifecyclePhases(); | 10718 web_view->UpdateAllLifecyclePhases(); |
10718 web_view->SetPageScaleFactor(2); | 10719 web_view->SetPageScaleFactor(2); |
10719 web_view->SetVisualViewportOffset(WebFloatPoint(200, 200)); | 10720 web_view->SetVisualViewportOffset(WebFloatPoint(200, 200)); |
10720 | 10721 |
10721 uint64_t sequence = Platform::Current()->Clipboard()->SequenceNumber( | 10722 uint64_t sequence = Platform::Current()->Clipboard()->SequenceNumber( |
10722 WebClipboard::kBufferStandard); | 10723 WebClipboard::kBufferStandard); |
10723 | 10724 |
10724 WebLocalFrame* local_frame = web_view->MainFrameImpl(); | 10725 WebLocalFrame* local_frame = web_view->MainFrameImpl(); |
10725 local_frame->CopyImageAt(WebPoint(0, 0)); | 10726 local_frame->CopyImageAt(WebPoint(0, 0)); |
10726 | 10727 |
10727 EXPECT_NE(sequence, Platform::Current()->Clipboard()->SequenceNumber( | 10728 EXPECT_NE(sequence, Platform::Current()->Clipboard()->SequenceNumber( |
10728 WebClipboard::kBufferStandard)); | 10729 WebClipboard::kBufferStandard)); |
10729 | 10730 |
10730 WebImage image = | 10731 WebImage image = |
10731 static_cast<WebMockClipboard*>(Platform::Current()->Clipboard()) | 10732 static_cast<WebMockClipboard*>(Platform::Current()->Clipboard()) |
10732 ->ReadRawImage(WebClipboard::Buffer()); | 10733 ->ReadRawImage(WebClipboard::Buffer()); |
10733 | 10734 |
10734 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.GetSkBitmap().getColor(0, 0)); | 10735 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.GetSkBitmap().getColor(0, 0)); |
10735 }; | 10736 } |
10736 | 10737 |
10737 TEST_F(WebFrameTest, CopyImageWithImageMap) { | 10738 TEST_F(WebFrameTest, CopyImageWithImageMap) { |
10738 SaveImageFromDataURLWebFrameClient client; | 10739 SaveImageFromDataURLWebFrameClient client; |
10739 | 10740 |
10740 std::string url = base_url_ + "image-map.html"; | 10741 std::string url = base_url_ + "image-map.html"; |
10741 RegisterMockedURLLoadFromBase(base_url_, "image-map.html"); | 10742 RegisterMockedURLLoadFromBase(base_url_, "image-map.html"); |
10742 | 10743 |
10743 FrameTestHelpers::WebViewHelper helper; | 10744 FrameTestHelpers::WebViewHelper helper; |
10744 WebViewBase* web_view = helper.InitializeAndLoad(url, &client); | 10745 WebViewBase* web_view = helper.InitializeAndLoad(url, &client); |
10745 web_view->Resize(WebSize(400, 400)); | 10746 web_view->Resize(WebSize(400, 400)); |
(...skipping 1286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
12032 | 12033 |
12033 // Verify that the right WebWidgetClient has been notified. | 12034 // Verify that the right WebWidgetClient has been notified. |
12034 EXPECT_TRUE(web_widget_client.DidShowVirtualKeyboard()); | 12035 EXPECT_TRUE(web_widget_client.DidShowVirtualKeyboard()); |
12035 | 12036 |
12036 remote_frame->Close(); | 12037 remote_frame->Close(); |
12037 web_view_helper.Reset(); | 12038 web_view_helper.Reset(); |
12038 } | 12039 } |
12039 | 12040 |
12040 class ContextMenuWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 12041 class ContextMenuWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
12041 public: | 12042 public: |
12042 ContextMenuWebFrameClient(){}; | 12043 ContextMenuWebFrameClient() {} |
12043 // WebFrameClient methods | 12044 // WebFrameClient methods |
12044 void ShowContextMenu(const WebContextMenuData& data) override { | 12045 void ShowContextMenu(const WebContextMenuData& data) override { |
12045 menu_data_ = data; | 12046 menu_data_ = data; |
12046 } | 12047 } |
12047 | 12048 |
12048 WebContextMenuData GetMenuData() { return menu_data_; } | 12049 WebContextMenuData GetMenuData() { return menu_data_; } |
12049 | 12050 |
12050 private: | 12051 private: |
12051 WebContextMenuData menu_data_; | 12052 WebContextMenuData menu_data_; |
12052 DISALLOW_COPY_AND_ASSIGN(ContextMenuWebFrameClient); | 12053 DISALLOW_COPY_AND_ASSIGN(ContextMenuWebFrameClient); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
12129 | 12130 |
12130 // Local frame with remote parent should have transparent baseBackgroundColor. | 12131 // Local frame with remote parent should have transparent baseBackgroundColor. |
12131 Color color = local_frame->GetFrameView()->BaseBackgroundColor(); | 12132 Color color = local_frame->GetFrameView()->BaseBackgroundColor(); |
12132 EXPECT_EQ(Color::kTransparent, color); | 12133 EXPECT_EQ(Color::kTransparent, color); |
12133 | 12134 |
12134 view->Close(); | 12135 view->Close(); |
12135 } | 12136 } |
12136 | 12137 |
12137 class TestFallbackWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 12138 class TestFallbackWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
12138 public: | 12139 public: |
12139 explicit TestFallbackWebFrameClient() : child_client_(nullptr) {} | 12140 TestFallbackWebFrameClient() : child_client_(nullptr) {} |
12140 | 12141 |
12141 void SetChildWebFrameClient(TestFallbackWebFrameClient* client) { | 12142 void SetChildWebFrameClient(TestFallbackWebFrameClient* client) { |
12142 child_client_ = client; | 12143 child_client_ = client; |
12143 } | 12144 } |
12144 | 12145 |
12145 WebLocalFrame* CreateChildFrame( | 12146 WebLocalFrame* CreateChildFrame( |
12146 WebLocalFrame* parent, | 12147 WebLocalFrame* parent, |
12147 WebTreeScopeType scope, | 12148 WebTreeScopeType scope, |
12148 const WebString&, | 12149 const WebString&, |
12149 const WebString&, | 12150 const WebString&, |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
12218 if (obj->IsText()) { | 12219 if (obj->IsText()) { |
12219 LayoutText* layout_text = ToLayoutText(obj); | 12220 LayoutText* layout_text = ToLayoutText(obj); |
12220 text = layout_text->GetText(); | 12221 text = layout_text->GetText(); |
12221 break; | 12222 break; |
12222 } | 12223 } |
12223 } | 12224 } |
12224 EXPECT_EQ("foo alt", text.Utf8()); | 12225 EXPECT_EQ("foo alt", text.Utf8()); |
12225 } | 12226 } |
12226 | 12227 |
12227 } // namespace blink | 12228 } // namespace blink |
OLD | NEW |