Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1111)

Unified Diff: third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Issue 2715243004: [blink] Support (semi-)transparent background colors in WebView/Frame. (Closed)
Patch Set: add unit test for remote frame transparency Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/web/tests/WebFrameTest.cpp
diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
index b32fcc1acb9da6242273a65169a6841ba8c3610c..be77ae5a4d12b6ab0da33ffa6834cf06abbde6d3 100644
--- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
@@ -8170,8 +8170,8 @@ namespace {
class TestFullscreenWebLayerTreeView : public WebLayerTreeView {
public:
- void setHasTransparentBackground(bool value) override {
- hasTransparentBackground = value;
+ void setBackgroundColor(blink::WebColor color) override {
+ hasTransparentBackground = SkColorGetA(color) < SK_AlphaOPAQUE;
}
bool hasTransparentBackground = false;
};
@@ -11505,4 +11505,23 @@ TEST_F(WebFrameTest, ContextMenuData) {
EXPECT_TRUE(testSelectAll("<div contenteditable>nonempty</div>"));
}
+TEST_F(WebFrameTest, LocalFrameWithRemoteParentIsTransparent) {
+ FrameTestHelpers::TestWebViewClient viewClient;
+ FrameTestHelpers::TestWebRemoteFrameClient remoteClient;
+ WebView* view = WebView::create(&viewClient, WebPageVisibilityStateVisible);
+ view->settings()->setJavaScriptEnabled(true);
+ view->setMainFrame(remoteClient.frame());
+ WebRemoteFrame* root = view->mainFrame()->toWebRemoteFrame();
+ root->setReplicatedOrigin(SecurityOrigin::createUnique());
+
+ WebLocalFrameImpl* localFrame = FrameTestHelpers::createLocalChild(root);
+ FrameTestHelpers::loadFrame(localFrame, "data:text/html,some page");
+
+ // Local frame with remote parent should have transparent baseBackgroundColor.
+ Color color = localFrame->frameView()->baseBackgroundColor();
+ EXPECT_EQ(Color::transparent, color);
+
+ view->close();
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698