| Index: chrome/browser/extensions/api/developer_private/developer_private_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc b/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc
|
| index 68f1b2f3d90d4275feb1d4e0f76d7188a2b476ca..4074f50aa024dc1a8d85965827fc9d14816274ce 100644
|
| --- a/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc
|
| +++ b/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc
|
| @@ -8,7 +8,9 @@
|
| #include "chrome/browser/extensions/api/developer_private/developer_private_api.h"
|
| #include "chrome/browser/extensions/extension_apitest.h"
|
| #include "chrome/browser/extensions/extension_function_test_utils.h"
|
| +#include "chrome/browser/extensions/extension_tab_util.h"
|
| #include "chrome/common/chrome_paths.h"
|
| +#include "content/public/browser/render_frame_host.h"
|
| #include "extensions/browser/app_window/app_window.h"
|
| #include "extensions/browser/app_window/app_window_registry.h"
|
|
|
| @@ -81,4 +83,53 @@ IN_PROC_BROWSER_TEST_F(DeveloperPrivateApiTest, InspectAppWindowView) {
|
| (*app_windows.begin())->web_contents()));
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(DeveloperPrivateApiTest, InspectEmbeddedOptionsPage) {
|
| + base::FilePath dir;
|
| + PathService::Get(chrome::DIR_TEST_DATA, &dir);
|
| + // Load an extension that only has an embedded options_ui page.
|
| + const Extension* extension =
|
| + LoadExtension(dir.AppendASCII("extensions/delayed_install/v1"));
|
| + ASSERT_TRUE(extension);
|
| +
|
| + // Open the embedded options page
|
| + ASSERT_TRUE(ExtensionTabUtil::OpenOptionsPage(extension, browser()));
|
| + WaitForExtensionNotIdle(extension->id());
|
| +
|
| + // Get the info about the extension, including the inspectable views.
|
| + scoped_refptr<UIThreadExtensionFunction> function(
|
| + new api::DeveloperPrivateGetExtensionInfoFunction());
|
| + scoped_ptr<base::Value> result(
|
| + extension_function_test_utils::RunFunctionAndReturnSingleResult(
|
| + function.get(), base::StringPrintf("[\"%s\"]",
|
| + extension->id().c_str()),
|
| + browser()));
|
| + ASSERT_TRUE(result);
|
| + scoped_ptr<api::developer_private::ExtensionInfo> info =
|
| + api::developer_private::ExtensionInfo::FromValue(*result);
|
| + ASSERT_TRUE(info);
|
| +
|
| + // The embedded options page should show up.
|
| + ASSERT_EQ(1u, info->views.size());
|
| + api::developer_private::ExtensionView* view = info->views[0].get();
|
| + ASSERT_TRUE(view);
|
| + ASSERT_EQ(api::developer_private::VIEW_TYPE_EXTENSION_OPTIONS, view->type);
|
| +
|
| + // Inspect the embedded options page.
|
| + function = new api::DeveloperPrivateOpenDevToolsFunction();
|
| + extension_function_test_utils::RunFunction(
|
| + function.get(),
|
| + base::StringPrintf("[{\"renderViewId\": %d, \"renderProcessId\": %d}]",
|
| + view->render_view_id,
|
| + view->render_process_id),
|
| + browser(), extension_function_test_utils::NONE);
|
| +
|
| + // Verify that dev tools opened.
|
| + content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
|
| + view->render_process_id, view->render_view_id);
|
| + ASSERT_TRUE(rfh);
|
| + content::WebContents* wc = content::WebContents::FromRenderFrameHost(rfh);
|
| + ASSERT_TRUE(wc);
|
| + EXPECT_TRUE(DevToolsWindow::GetInstanceForInspectedWebContents(wc));
|
| +}
|
| +
|
| } // namespace extensions
|
|
|