Commit 6ced7a47 authored by Ria Jiang's avatar Ria Jiang Committed by Commit Bot

Use GetOwnerRenderWidgetHostView for guest views to get parent view.

RenderWidgetHostViewChildFrame::GetParentView can be null for guest
views, use RenderWidgetHostViewGuest::GetOwnerRenderWidgetHostView
instead.

Bug: 829264
Test: PDFExtensionHitTestTest
Change-Id: I5d695b33e741006f528ba090aa994e6aadc64c40
Reviewed-on: https://chromium-review.googlesource.com/1007487Reviewed-by: default avatarSadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Reviewed-by: default avatarJames MacLean <wjmaclean@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550242}
parent 5651e583
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "components/download/public/common/download_item.h" #include "components/download/public/common/download_item.h"
#include "components/viz/common/features.h"
#include "components/zoom/page_zoom.h" #include "components/zoom/page_zoom.h"
#include "components/zoom/test/zoom_test_utils.h" #include "components/zoom/test/zoom_test_utils.h"
#include "components/zoom/zoom_controller.h" #include "components/zoom/zoom_controller.h"
...@@ -104,8 +105,7 @@ bool GetGuestCallback(WebContents** guest_out, WebContents* guest) { ...@@ -104,8 +105,7 @@ bool GetGuestCallback(WebContents** guest_out, WebContents* guest) {
return false; return false;
} }
class PDFExtensionTest : public ExtensionApiTest, class PDFExtensionTest : public ExtensionApiTest {
public testing::WithParamInterface<int> {
public: public:
~PDFExtensionTest() override {} ~PDFExtensionTest() override {}
...@@ -349,6 +349,28 @@ class PDFExtensionTest : public ExtensionApiTest, ...@@ -349,6 +349,28 @@ class PDFExtensionTest : public ExtensionApiTest,
} }
}; };
class PDFExtensionLoadTest : public PDFExtensionTest,
public testing::WithParamInterface<int> {
public:
PDFExtensionLoadTest() {}
};
class PDFExtensionHitTestTest : public PDFExtensionTest,
public testing::WithParamInterface<bool> {
public:
PDFExtensionHitTestTest() {}
protected:
void SetUpCommandLine(base::CommandLine* command_line) override {
PDFExtensionTest::SetUpCommandLine(command_line);
if (GetParam()) {
feature_list_.InitAndEnableFeature(features::kEnableVizHitTestDrawQuad);
}
}
base::test::ScopedFeatureList feature_list_;
};
// Disabled because it's flaky. // Disabled because it's flaky.
// See the issue for details: https://crbug.com/826055. // See the issue for details: https://crbug.com/826055.
#if defined(MEMORY_SANITIZER) || defined(LEAK_SANITIZER) || \ #if defined(MEMORY_SANITIZER) || defined(LEAK_SANITIZER) || \
...@@ -357,7 +379,7 @@ class PDFExtensionTest : public ExtensionApiTest, ...@@ -357,7 +379,7 @@ class PDFExtensionTest : public ExtensionApiTest,
#else #else
#define MAYBE_Load Load #define MAYBE_Load Load
#endif #endif
IN_PROC_BROWSER_TEST_P(PDFExtensionTest, MAYBE_Load) { IN_PROC_BROWSER_TEST_P(PDFExtensionLoadTest, MAYBE_Load) {
#if defined(GOOGLE_CHROME_BUILD) #if defined(GOOGLE_CHROME_BUILD)
// Load private PDFs. // Load private PDFs.
LoadAllPdfsTest("pdf_private", GetParam()); LoadAllPdfsTest("pdf_private", GetParam());
...@@ -424,11 +446,15 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DisablePlugin) { ...@@ -424,11 +446,15 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DisablePlugin) {
downloads[0]->Cancel(false); downloads[0]->Cancel(false);
} }
// We break PDFTest.Load up into kNumberLoadTestParts. // We break PDFExtensionLoadTest up into kNumberLoadTestParts.
INSTANTIATE_TEST_CASE_P(PDFTestFiles, INSTANTIATE_TEST_CASE_P(PDFTestFiles,
PDFExtensionTest, PDFExtensionLoadTest,
testing::Range(0, kNumberLoadTestParts)); testing::Range(0, kNumberLoadTestParts));
INSTANTIATE_TEST_CASE_P(/* no prefix */,
PDFExtensionHitTestTest,
testing::Bool());
IN_PROC_BROWSER_TEST_F(PDFExtensionTest, Basic) { IN_PROC_BROWSER_TEST_F(PDFExtensionTest, Basic) {
RunTestsInFile("basic_test.js", "test.pdf"); RunTestsInFile("basic_test.js", "test.pdf");
...@@ -1606,7 +1632,7 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, CtrlWheelInvokesCustomZoom) { ...@@ -1606,7 +1632,7 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, CtrlWheelInvokesCustomZoom) {
#endif // defined(OS_MACOSX) #endif // defined(OS_MACOSX)
IN_PROC_BROWSER_TEST_F(PDFExtensionTest, ContextMenuCoordinates) { IN_PROC_BROWSER_TEST_P(PDFExtensionHitTestTest, ContextMenuCoordinates) {
GURL url = embedded_test_server()->GetURL("/pdf/pdf_embed.html"); GURL url = embedded_test_server()->GetURL("/pdf/pdf_embed.html");
// Load page with embedded PDF and make sure it succeeds. // Load page with embedded PDF and make sure it succeeds.
......
...@@ -1303,9 +1303,15 @@ bool RenderWidgetHostInputEventRouter::TransformPointToTargetCoordSpace( ...@@ -1303,9 +1303,15 @@ bool RenderWidgetHostInputEventRouter::TransformPointToTargetCoordSpace(
target_ancestors.push_back(target->GetFrameSinkId()); target_ancestors.push_back(target->GetFrameSinkId());
RenderWidgetHostViewBase* cur_view = target; RenderWidgetHostViewBase* cur_view = target;
while (cur_view->IsRenderWidgetHostViewChildFrame()) { while (cur_view->IsRenderWidgetHostViewChildFrame()) {
cur_view = if (cur_view->IsRenderWidgetHostViewGuest()) {
static_cast<RenderWidgetHostViewChildFrame*>(cur_view)->GetParentView(); cur_view = static_cast<RenderWidgetHostViewGuest*>(cur_view)
DCHECK(cur_view); ->GetOwnerRenderWidgetHostView();
} else {
cur_view = static_cast<RenderWidgetHostViewChildFrame*>(cur_view)
->GetParentView();
}
if (!cur_view)
return false;
target_ancestors.push_back(cur_view->GetFrameSinkId()); target_ancestors.push_back(cur_view->GetFrameSinkId());
} }
DCHECK_EQ(cur_view, root_view); DCHECK_EQ(cur_view, root_view);
......
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
# aura::CrashInFlightChange::ChangeFailed() when searching PDF. # aura::CrashInFlightChange::ChangeFailed() when searching PDF.
-ChromeFindRequestManagerTest.* -ChromeFindRequestManagerTest.*
-PDFExtensionTest.* -PDFExtensionTest.*
-PDFExtensionHitTestTest.*
-PDFExtensionLoadTest.*
# Need screenshot support. http://crbug.com/754899 # Need screenshot support. http://crbug.com/754899
-ChromeScreenshotGrabberBrowserTest.* -ChromeScreenshotGrabberBrowserTest.*
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#### Compositor Frame Observation Timeouts #### Compositor Frame Observation Timeouts
# WaitForChildFrameSurfaceReady crashes crbug.com/787945 # WaitForChildFrameSurfaceReady crashes crbug.com/787945
-PDFExtensionTest.ContextMenuCoordinates -PDFExtensionHitTestTest.ContextMenuCoordinates*
-SitePerProcessDevToolsSanityTest.InputDispatchEventsToOOPIF -SitePerProcessDevToolsSanityTest.InputDispatchEventsToOOPIF
-WebViewTests/WebViewTest.InterstitialPageFocusedWidget/1 -WebViewTests/WebViewTest.InterstitialPageFocusedWidget/1
-WebViewTests/WebViewTest.ReloadAfterCrash/1 -WebViewTests/WebViewTest.ReloadAfterCrash/1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment