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

Unified Diff: chrome/browser/apps/guest_view/web_view_browsertest.cc

Issue 890183002: Allow Signin page to open other chrome:// URLs if login content in <webview> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a test Created 5 years, 10 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: chrome/browser/apps/guest_view/web_view_browsertest.cc
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
index a7ef8be795ec7260c255e11b463a2f9916d3ed6a..2d23f3dc25113ee93b007af994a83ee59344a7c8 100644
--- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -5,6 +5,7 @@
#include "base/path_service.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
+#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/apps/app_browsertest_util.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/prerender/prerender_link_manager.h"
@@ -179,7 +180,8 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
public:
MockWebContentsDelegate()
: requested_(false),
- checked_(false) {}
+ checked_(false),
+ open_url_from_tab_(false) {}
~MockWebContentsDelegate() override {}
void RequestMediaAccessPermission(
@@ -200,6 +202,15 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
return true;
}
+ content::WebContents* OpenURLFromTab(
+ content::WebContents* source,
+ const content::OpenURLParams& params) override {
+ open_url_from_tab_ = true;
+ if (open_url_message_loop_runner_.get())
+ open_url_message_loop_runner_->Quit();
+ return NULL;
+ }
+
void WaitForRequestMediaPermission() {
if (requested_)
return;
@@ -214,11 +225,20 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
check_message_loop_runner_->Run();
}
+ void WaitForOpenURLFromTab() {
+ if (open_url_from_tab_)
+ return;
+ open_url_message_loop_runner_ = new content::MessageLoopRunner;
+ open_url_message_loop_runner_->Run();
+ }
+
private:
bool requested_;
bool checked_;
+ bool open_url_from_tab_;
scoped_refptr<content::MessageLoopRunner> request_message_loop_runner_;
scoped_refptr<content::MessageLoopRunner> check_message_loop_runner_;
+ scoped_refptr<content::MessageLoopRunner> open_url_message_loop_runner_;
DISALLOW_COPY_AND_ASSIGN(MockWebContentsDelegate);
};
@@ -1831,6 +1851,24 @@ void WebViewTest::MediaAccessAPIAllowTestHelper(const std::string& test_name) {
mock->WaitForRequestMediaPermission();
}
+IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenuLanguageSettings) {
+ LoadAppWithGuest("web_view/context_menus/basic");
+
+ content::WebContents* guest_web_contents = GetGuestWebContents();
+ content::WebContents* embedder = GetEmbedderWebContents();
+ ASSERT_TRUE(embedder);
+ scoped_ptr<MockWebContentsDelegate> mock(new MockWebContentsDelegate());
+ embedder->SetDelegate(mock.get());
+
+ // Create and build our test context menu.
+ GURL page_url("http://www.google.com");
+ scoped_ptr<TestRenderViewContextMenu> menu(TestRenderViewContextMenu::Create(
+ guest_web_contents, page_url, GURL(), GURL()));
+ menu->ExecuteCommand(IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS, 0);
+
+ mock->WaitForOpenURLFromTab();
+}
+
IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenusAPI_Basic) {
LoadAppWithGuest("web_view/context_menus/basic");

Powered by Google App Engine
This is Rietveld 408576698