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

Side by Side Diff: components/web_view/frame_apptest.cc

Issue 1323233004: Adds better security checking to OnCreatedFrame() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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 unified diff | Download patch
« no previous file with comments | « components/web_view/frame.cc ('k') | components/web_view/frame_tree.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/web_view/frame.h" 5 #include "components/web_view/frame.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 FrameTreeServerPtr server_; 168 FrameTreeServerPtr server_;
169 mojo::Array<FrameDataPtr> adds_; 169 mojo::Array<FrameDataPtr> adds_;
170 170
171 DISALLOW_COPY_AND_ASSIGN(TestFrameTreeClient); 171 DISALLOW_COPY_AND_ASSIGN(TestFrameTreeClient);
172 }; 172 };
173 173
174 // Verifies the root gets a connect. 174 // Verifies the root gets a connect.
175 TEST_F(FrameTest, RootGetsConnect) { 175 TEST_F(FrameTest, RootGetsConnect) {
176 TestFrameTreeDelegate tree_delegate; 176 TestFrameTreeDelegate tree_delegate;
177 TestFrameTreeClient root_client; 177 TestFrameTreeClient root_client;
178 FrameTree tree(0u, window_manager()->GetRoot(), &tree_delegate, &root_client, 178 FrameTree tree(0u, window_manager()->GetRoot(), nullptr, &tree_delegate,
179 nullptr, Frame::ClientPropertyMap()); 179 &root_client, nullptr, Frame::ClientPropertyMap());
180 ASSERT_EQ(1, root_client.connect_count()); 180 ASSERT_EQ(1, root_client.connect_count());
181 mojo::Array<FrameDataPtr> frames = root_client.connect_frames(); 181 mojo::Array<FrameDataPtr> frames = root_client.connect_frames();
182 ASSERT_EQ(1u, frames.size()); 182 ASSERT_EQ(1u, frames.size());
183 EXPECT_EQ(tree.root()->view()->id(), frames[0]->frame_id); 183 EXPECT_EQ(tree.root()->view()->id(), frames[0]->frame_id);
184 EXPECT_EQ(0u, frames[0]->parent_id); 184 EXPECT_EQ(0u, frames[0]->parent_id);
185 } 185 }
186 186
187 // Verifies adding a child to the root. 187 // Verifies adding a child to the root.
188 TEST_F(FrameTest, SingleChild) { 188 TEST_F(FrameTest, SingleChild) {
189 TestFrameTreeDelegate tree_delegate; 189 TestFrameTreeDelegate tree_delegate;
190 TestFrameTreeClient root_client; 190 TestFrameTreeClient root_client;
191 FrameTree tree(0u, window_manager()->GetRoot(), &tree_delegate, &root_client, 191 FrameTree tree(0u, window_manager()->GetRoot(), nullptr, &tree_delegate,
192 nullptr, Frame::ClientPropertyMap()); 192 &root_client, nullptr, Frame::ClientPropertyMap());
193 193
194 View* child = window_manager()->CreateView(); 194 View* child = window_manager()->CreateView();
195 EXPECT_EQ(nullptr, Frame::FindFirstFrameAncestor(child)); 195 EXPECT_EQ(nullptr, Frame::FindFirstFrameAncestor(child));
196 window_manager()->GetRoot()->AddChild(child); 196 window_manager()->GetRoot()->AddChild(child);
197 EXPECT_EQ(tree.root(), Frame::FindFirstFrameAncestor(child)); 197 EXPECT_EQ(tree.root(), Frame::FindFirstFrameAncestor(child));
198 198
199 TestFrameTreeClient child_client; 199 TestFrameTreeClient child_client;
200 Frame* child_frame = 200 Frame* child_frame =
201 tree.CreateAndAddFrame(child, tree.root(), 0u, &child_client, nullptr); 201 tree.CreateAndAddFrame(child, tree.root(), 0u, &child_client, nullptr);
202 EXPECT_EQ(tree.root(), child_frame->parent()); 202 EXPECT_EQ(tree.root(), child_frame->parent());
203 203
204 ASSERT_EQ(1, child_client.connect_count()); 204 ASSERT_EQ(1, child_client.connect_count());
205 mojo::Array<FrameDataPtr> frames_in_child = child_client.connect_frames(); 205 mojo::Array<FrameDataPtr> frames_in_child = child_client.connect_frames();
206 // We expect 2 frames. One for the root, one for the child. 206 // We expect 2 frames. One for the root, one for the child.
207 ASSERT_EQ(2u, frames_in_child.size()); 207 ASSERT_EQ(2u, frames_in_child.size());
208 EXPECT_EQ(tree.root()->view()->id(), frames_in_child[0]->frame_id); 208 EXPECT_EQ(tree.root()->view()->id(), frames_in_child[0]->frame_id);
209 EXPECT_EQ(0u, frames_in_child[0]->parent_id); 209 EXPECT_EQ(0u, frames_in_child[0]->parent_id);
210 EXPECT_EQ(child_frame->view()->id(), frames_in_child[1]->frame_id); 210 EXPECT_EQ(child_frame->view()->id(), frames_in_child[1]->frame_id);
211 EXPECT_EQ(tree.root()->view()->id(), frames_in_child[1]->parent_id); 211 EXPECT_EQ(tree.root()->view()->id(), frames_in_child[1]->parent_id);
212 212
213 // We should have gotten notification of the add. 213 // We should have gotten notification of the add.
214 EXPECT_EQ(1u, root_client.adds().size()); 214 EXPECT_EQ(1u, root_client.adds().size());
215 } 215 }
216 216
217 } // namespace web_view 217 } // namespace web_view
OLDNEW
« no previous file with comments | « components/web_view/frame.cc ('k') | components/web_view/frame_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698