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

Side by Side Diff: content/renderer/render_frame_impl_browsertest.cc

Issue 2765443004: AndroidOverlay implementation using Dialog. (Closed)
Patch Set: fixed test Created 3 years, 7 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 | « content/renderer/render_frame_impl.cc ('k') | content/test/BUILD.gn » ('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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/leak_annotations.h" 8 #include "base/debug/leak_annotations.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 RenderFrameImpl* GetMainRenderFrame() { 97 RenderFrameImpl* GetMainRenderFrame() {
98 return static_cast<RenderFrameImpl*>(view_->GetMainRenderFrame()); 98 return static_cast<RenderFrameImpl*>(view_->GetMainRenderFrame());
99 } 99 }
100 100
101 RenderFrameImpl* frame() { return frame_; } 101 RenderFrameImpl* frame() { return frame_; }
102 102
103 content::RenderWidget* frame_widget() const { 103 content::RenderWidget* frame_widget() const {
104 return frame_->render_widget_.get(); 104 return frame_->render_widget_.get();
105 } 105 }
106 106
107 #if defined(OS_ANDROID)
108 void ReceiveOverlayRoutingToken(const base::UnguessableToken& token) {
109 overlay_routing_token_ = token;
110 }
111
112 base::Optional<base::UnguessableToken> overlay_routing_token_;
113 #endif
114
107 private: 115 private:
108 RenderFrameImpl* frame_; 116 RenderFrameImpl* frame_;
109 FakeCompositorDependencies compositor_deps_; 117 FakeCompositorDependencies compositor_deps_;
110 }; 118 };
111 119
112 class RenderFrameTestObserver : public RenderFrameObserver { 120 class RenderFrameTestObserver : public RenderFrameObserver {
113 public: 121 public:
114 explicit RenderFrameTestObserver(RenderFrame* render_frame) 122 explicit RenderFrameTestObserver(RenderFrame* render_frame)
115 : RenderFrameObserver(render_frame), visible_(false) {} 123 : RenderFrameObserver(render_frame), visible_(false) {}
116 124
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 TEST_F(RenderFrameImplTest, NoCrashWhenDeletingFrameDuringFind) { 371 TEST_F(RenderFrameImplTest, NoCrashWhenDeletingFrameDuringFind) {
364 blink::WebFindOptions options; 372 blink::WebFindOptions options;
365 options.force = true; 373 options.force = true;
366 FrameMsg_Find find_message(0, 1, base::ASCIIToUTF16("foo"), options); 374 FrameMsg_Find find_message(0, 1, base::ASCIIToUTF16("foo"), options);
367 frame()->OnMessageReceived(find_message); 375 frame()->OnMessageReceived(find_message);
368 376
369 FrameMsg_Delete delete_message(0); 377 FrameMsg_Delete delete_message(0);
370 frame()->OnMessageReceived(delete_message); 378 frame()->OnMessageReceived(delete_message);
371 } 379 }
372 380
381 #if defined(OS_ANDROID)
382 // Verify that RFI defers token requests if the token hasn't arrived yet.
383 TEST_F(RenderFrameImplTest, TestOverlayRoutingTokenSendsLater) {
384 ASSERT_FALSE(overlay_routing_token_.has_value());
385
386 frame()->RequestOverlayRoutingToken(
387 base::Bind(&RenderFrameImplTest::ReceiveOverlayRoutingToken,
388 base::Unretained(this)));
389 ASSERT_FALSE(overlay_routing_token_.has_value());
390
391 // The host should receive a request for it sent to the frame.
392 const IPC::Message* msg = render_thread_->sink().GetFirstMessageMatching(
393 FrameHostMsg_RequestOverlayRoutingToken::ID);
394 EXPECT_TRUE(msg);
395
396 // Send a token.
397 base::UnguessableToken token = base::UnguessableToken::Create();
398 FrameMsg_SetOverlayRoutingToken token_message(0, token);
399 frame()->OnMessageReceived(token_message);
400
401 ProcessPendingMessages();
402 ASSERT_TRUE(overlay_routing_token_.has_value());
403 ASSERT_EQ(overlay_routing_token_.value(), token);
404 }
405
406 // Verify that RFI sends tokens if they're already available.
407 TEST_F(RenderFrameImplTest, TestOverlayRoutingTokenSendsNow) {
408 ASSERT_FALSE(overlay_routing_token_.has_value());
409 base::UnguessableToken token = base::UnguessableToken::Create();
410 FrameMsg_SetOverlayRoutingToken token_message(0, token);
411 frame()->OnMessageReceived(token_message);
412
413 // The frame now has a token. We don't care if it sends the token before
414 // returning or posts a message.
415 ProcessPendingMessages();
416 frame()->RequestOverlayRoutingToken(
417 base::Bind(&RenderFrameImplTest::ReceiveOverlayRoutingToken,
418 base::Unretained(this)));
419 ASSERT_TRUE(overlay_routing_token_.has_value());
420 ASSERT_EQ(overlay_routing_token_.value(), token);
421
422 // Since the token already arrived, a request for it shouldn't be sent.
423 const IPC::Message* msg = render_thread_->sink().GetFirstMessageMatching(
424 FrameHostMsg_RequestOverlayRoutingToken::ID);
425 EXPECT_FALSE(msg);
426 }
427 #endif
428
373 } // namespace 429 } // namespace
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698