diff --git a/DEPS b/DEPS index e2304ef8..ccf4af8 100644 --- a/DEPS +++ b/DEPS
@@ -130,7 +130,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '6c4c2362a367c28ef6799012a8d06811b65b4a75', + 'catapult_revision': '259a1ec4b05d169f5027345828ca77ef7bec6ec6', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other.
diff --git a/chrome/browser/extensions/api/DEPS b/chrome/browser/extensions/api/DEPS index a8a4ed7d..f151a879 100644 --- a/chrome/browser/extensions/api/DEPS +++ b/chrome/browser/extensions/api/DEPS
@@ -15,4 +15,10 @@ "+chrome/browser/ui/views/frame", "+components/captive_portal", ], + + # TODO(eladalon): Remove along with webrtc_event_log_apitest.cc. + # https://crbug.com/775415 + "webrtc_event_log_apitest.cc": [ + "+content/browser/webrtc", + ], }
diff --git a/chrome/browser/signin/easy_unlock_service_regular.cc b/chrome/browser/signin/easy_unlock_service_regular.cc index 7dcd1c7..5dd1d1b 100644 --- a/chrome/browser/signin/easy_unlock_service_regular.cc +++ b/chrome/browser/signin/easy_unlock_service_regular.cc
@@ -216,8 +216,7 @@ promotion_manager_.reset(new proximity_auth::PromotionManager( local_device_data_provider_.get(), notification_controller_.get(), pref_manager_.get(), service->CreateCryptAuthClientFactory(), - base::MakeUnique<base::DefaultClock>(), - base::ThreadTaskRunnerHandle::Get())); + base::DefaultClock::GetInstance(), base::ThreadTaskRunnerHandle::Get())); promotion_manager_->Start(); }
diff --git a/chrome/browser/ui/search/local_ntp_browsertest.cc b/chrome/browser/ui/search/local_ntp_browsertest.cc index a8c5ee6..ba51b96 100644 --- a/chrome/browser/ui/search/local_ntp_browsertest.cc +++ b/chrome/browser/ui/search/local_ntp_browsertest.cc
@@ -18,6 +18,7 @@ #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/search/instant_test_utils.h" #include "chrome/browser/ui/search/local_ntp_test_utils.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/chrome_features.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" @@ -36,6 +37,62 @@ public: LocalNTPTest() {} + // Navigates the active tab to chrome://newtab and waits until the NTP is + // fully loaded. Note that simply waiting for a navigation is not enough, + // since the MV iframe receives the tiles asynchronously. + void NavigateToNTPAndWaitUntilLoaded() { + content::WebContents* active_tab = + browser()->tab_strip_model()->GetActiveWebContents(); + + // Attach a message queue *before* navigating to the NTP, to make sure we + // don't miss the 'loaded' message due to some race condition. + content::DOMMessageQueue msg_queue(active_tab); + + // Navigate to the NTP. + ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL)); + ASSERT_TRUE(search::IsInstantNTP(active_tab)); + ASSERT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl), + active_tab->GetController().GetVisibleEntry()->GetURL()); + + // At this point, the MV iframe may or may not have been fully loaded. Once + // it loads, it sends a 'loaded' postMessage to the page. Check if the page + // has already received that, and if not start listening for it. It's + // important that these two things happen in the same JS invocation, since + // otherwise we might miss the message. + bool mv_tiles_loaded = false; + ASSERT_TRUE(instant_test_utils::GetBoolFromJS(active_tab, + R"js( + (function() { + if (tilesAreLoaded) { + return true; + } + window.addEventListener('message', function(event) { + if (event.data.cmd == 'loaded') { + domAutomationController.send('NavigateToNTPAndWaitUntilLoaded'); + } + }); + return false; + })() + )js", + &mv_tiles_loaded)); + + std::string message; + // Get rid of the message that the GetBoolFromJS call produces. + ASSERT_TRUE(msg_queue.PopMessage(&message)); + + if (mv_tiles_loaded) { + // The tiles are already loaded, i.e. we missed the 'loaded' message. All + // is well. + return; + } + + // Not loaded yet. Wait for the "NavigateToNTPAndWaitUntilLoaded" message. + ASSERT_TRUE(msg_queue.WaitForMessage(&message)); + ASSERT_EQ("\"NavigateToNTPAndWaitUntilLoaded\"", message); + // There shouldn't be any other messages. + ASSERT_FALSE(msg_queue.PopMessage(&message)); + } + private: void SetUp() override { feature_list_.InitAndEnableFeature(features::kUseGoogleLocalNtp); @@ -64,7 +121,9 @@ // Navigate somewhere else in the same tab. content::TestNavigationObserver elsewhere_observer(active_tab); - ui_test_utils::NavigateToURL(browser(), other_url); + ui_test_utils::NavigateToURLWithDisposition( + browser(), other_url, WindowOpenDisposition::CURRENT_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); elsewhere_observer.Wait(); ASSERT_TRUE(elsewhere_observer.last_navigation_succeeded()); ASSERT_FALSE(search::IsInstantNTP(active_tab)); @@ -93,7 +152,10 @@ EXPECT_FALSE(result); // Navigate to a new NTP instance. - ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL)); + ui_test_utils::NavigateToURLWithDisposition( + browser(), GURL(chrome::kChromeUINewTabURL), + WindowOpenDisposition::CURRENT_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); ASSERT_TRUE(search::IsInstantNTP(active_tab)); // Now the API should be available again. ASSERT_TRUE(instant_test_utils::GetBoolFromJS( @@ -183,7 +245,7 @@ base::HistogramTester histograms; // Navigate to the NTP. - local_ntp_test_utils::NavigateToNTPAndWaitUntilLoaded(browser()); + NavigateToNTPAndWaitUntilLoaded(); bool is_google = false; ASSERT_TRUE(instant_test_utils::GetBoolFromJS( @@ -235,7 +297,7 @@ base::HistogramTester histograms; // Navigate to the NTP. - local_ntp_test_utils::NavigateToNTPAndWaitUntilLoaded(browser()); + NavigateToNTPAndWaitUntilLoaded(); bool is_google = false; ASSERT_TRUE(instant_test_utils::GetBoolFromJS( @@ -286,7 +348,6 @@ active_tab->SetDelegate(&console_observer); // Navigate to the NTP. - // TODO use NavigateToNTPAndWaitUntilLoaded ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL)); ASSERT_TRUE(search::IsInstantNTP(active_tab)); ASSERT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl), @@ -317,7 +378,9 @@ EXPECT_EQ(nullptr, base::StatisticsRecorder::FindHistogram(kFeaturesHistogramName)); // Navigate somewhere else in the same tab. - ui_test_utils::NavigateToURL(browser(), other_url); + ui_test_utils::NavigateToURLWithDisposition( + browser(), other_url, WindowOpenDisposition::CURRENT_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); ASSERT_FALSE(search::IsInstantNTP(active_tab)); // Navigate back to NTP. content::TestNavigationObserver back_observer(active_tab); @@ -335,7 +398,10 @@ fwd_observer.Wait(); ASSERT_FALSE(search::IsInstantNTP(active_tab)); // Navigate to a new NTP instance. - ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL)); + ui_test_utils::NavigateToURLWithDisposition( + browser(), GURL(chrome::kChromeUINewTabURL), + WindowOpenDisposition::CURRENT_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); ASSERT_TRUE(search::IsInstantNTP(active_tab)); // There should be 2 counts of PageVisits. histogram_tester.ExpectBucketCount( @@ -384,7 +450,7 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, LoadsIframe) { content::WebContents* active_tab = local_ntp_test_utils::OpenNewTab(browser(), GURL("about:blank")); - local_ntp_test_utils::NavigateToNTPAndWaitUntilLoaded(browser()); + NavigateToNTPAndWaitUntilLoaded(); // Get the iframe and check that the tiles loaded correctly. content::RenderFrameHost* iframe = GetMostVisitedIframe(active_tab);
diff --git a/chrome/browser/ui/search/local_ntp_test_utils.cc b/chrome/browser/ui/search/local_ntp_test_utils.cc index 5bb8104e..32fdde67 100644 --- a/chrome/browser/ui/search/local_ntp_test_utils.cc +++ b/chrome/browser/ui/search/local_ntp_test_utils.cc
@@ -7,22 +7,15 @@ #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/search/search.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/search/instant_test_utils.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/pref_names.h" -#include "chrome/common/url_constants.h" #include "chrome/test/base/ui_test_utils.h" #include "components/prefs/pref_service.h" #include "components/search_engines/template_url.h" #include "components/search_engines/template_url_data.h" #include "components/search_engines/template_url_service.h" -#include "content/public/browser/navigation_controller.h" -#include "content/public/browser/navigation_entry.h" -#include "content/public/browser/web_contents.h" -#include "content/public/test/browser_test_utils.h" #include "ui/base/resource/resource_bundle.h" namespace local_ntp_test_utils { @@ -35,59 +28,6 @@ return browser->tab_strip_model()->GetActiveWebContents(); } -void NavigateToNTPAndWaitUntilLoaded(Browser* browser) { - content::WebContents* active_tab = - browser->tab_strip_model()->GetActiveWebContents(); - - // Attach a message queue *before* navigating to the NTP, to make sure we - // don't miss the 'loaded' message due to some race condition. - content::DOMMessageQueue msg_queue(active_tab); - - // Navigate to the NTP. - ui_test_utils::NavigateToURL(browser, GURL(chrome::kChromeUINewTabURL)); - ASSERT_TRUE(search::IsInstantNTP(active_tab)); - ASSERT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl), - active_tab->GetController().GetVisibleEntry()->GetURL()); - - // At this point, the MV iframe may or may not have been fully loaded. Once - // it loads, it sends a 'loaded' postMessage to the page. Check if the page - // has already received that, and if not start listening for it. It's - // important that these two things happen in the same JS invocation, since - // otherwise we might miss the message. - bool mv_tiles_loaded = false; - ASSERT_TRUE(instant_test_utils::GetBoolFromJS(active_tab, - R"js( - (function() { - if (tilesAreLoaded) { - return true; - } - window.addEventListener('message', function(event) { - if (event.data.cmd == 'loaded') { - domAutomationController.send('NavigateToNTPAndWaitUntilLoaded'); - } - }); - return false; - })() - )js", - &mv_tiles_loaded)); - - std::string message; - // Get rid of the message that the GetBoolFromJS call produces. - ASSERT_TRUE(msg_queue.PopMessage(&message)); - - if (mv_tiles_loaded) { - // The tiles are already loaded, i.e. we missed the 'loaded' message. All - // is well. - return; - } - - // Not loaded yet. Wait for the "NavigateToNTPAndWaitUntilLoaded" message. - ASSERT_TRUE(msg_queue.WaitForMessage(&message)); - ASSERT_EQ("\"NavigateToNTPAndWaitUntilLoaded\"", message); - // There shouldn't be any other messages. - ASSERT_FALSE(msg_queue.PopMessage(&message)); -} - bool SwitchBrowserLanguageToFrench() { base::ScopedAllowBlockingForTesting allow_blocking; // Make sure the default language is not French.
diff --git a/chrome/browser/ui/search/local_ntp_test_utils.h b/chrome/browser/ui/search/local_ntp_test_utils.h index 2962347..f173d374 100644 --- a/chrome/browser/ui/search/local_ntp_test_utils.h +++ b/chrome/browser/ui/search/local_ntp_test_utils.h
@@ -19,12 +19,6 @@ content::WebContents* OpenNewTab(Browser* browser, const GURL& url); -// Navigates the active tab to chrome://newtab and waits until the NTP is -// fully loaded. The active tab must not be on an NTP already. Note that simply -// waiting for a navigation is not enough, since the MV iframe receives the -// tiles asynchronously. -void NavigateToNTPAndWaitUntilLoaded(Browser* browser); - // Switches the browser language to French, and returns true iff successful. bool SwitchBrowserLanguageToFrench();
diff --git a/chrome/browser/ui/search/local_ntp_uitest.cc b/chrome/browser/ui/search/local_ntp_uitest.cc index 73084b6..8c324595 100644 --- a/chrome/browser/ui/search/local_ntp_uitest.cc +++ b/chrome/browser/ui/search/local_ntp_uitest.cc
@@ -2,18 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <cmath> - -#include "base/strings/utf_string_conversions.h" -#include "base/test/scoped_feature_list.h" #include "chrome/browser/chrome_notification_types.h" +#include "chrome/browser/search/search.h" #include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/browser_window.h" -#include "chrome/browser/ui/location_bar/location_bar.h" #include "chrome/browser/ui/search/instant_test_utils.h" -#include "chrome/browser/ui/search/local_ntp_test_utils.h" -#include "chrome/common/chrome_features.h" -#include "chrome/common/url_constants.h" +#include "chrome/browser/ui/search/instant_uitest_base.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/ui_test_utils.h" @@ -22,31 +16,38 @@ #include "components/omnibox/common/omnibox_focus_state.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/web_contents.h" +#include "net/test/embedded_test_server/embedded_test_server.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/vector2d.h" -class LocalNTPUITest : public InProcessBrowserTest { +// A test class that sets up local_ntp_browsertest.html (which is mostly a copy +// of the real local_ntp.html) as the NTP URL. +class LocalNTPUITest : public InProcessBrowserTest, public InstantUITestBase { public: LocalNTPUITest() {} - OmniboxView* omnibox() { - return browser()->window()->GetLocationBar()->GetOmniboxView(); + protected: + void SetUpInProcessBrowserTestFixture() override { + ASSERT_TRUE(https_test_server().Start()); + GURL base_url = https_test_server().GetURL("/instant_extended.html?"); + GURL ntp_url = + https_test_server().GetURL("/local_ntp/local_ntp_browsertest.html?"); + InstantTestBase::Init(base_url, ntp_url, false); } - - private: - void SetUp() override { - feature_list_.InitAndEnableFeature(features::kUseGoogleLocalNtp); - InProcessBrowserTest::SetUp(); - } - - base::test::ScopedFeatureList feature_list_; }; IN_PROC_BROWSER_TEST_F(LocalNTPUITest, FakeboxRedirectsToOmnibox) { + ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); + FocusOmnibox(); + + ui_test_utils::NavigateToURLWithDisposition( + browser(), ntp_url(), WindowOpenDisposition::NEW_FOREGROUND_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB | + ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); content::WebContents* active_tab = - local_ntp_test_utils::OpenNewTab(browser(), GURL("about:blank")); - local_ntp_test_utils::NavigateToNTPAndWaitUntilLoaded(browser()); + browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_TRUE(search::IsInstantNTP(active_tab)); // This is required to make the mouse events we send below arrive at the right // place. It *should* be the default for all interactive_ui_tests anyway, but @@ -57,27 +58,18 @@ ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); ASSERT_EQ(OMNIBOX_FOCUS_NONE, omnibox()->model()->focus_state()); - // Make sure the fakebox is visible. bool result = false; - ASSERT_TRUE(instant_test_utils::GetBoolFromJS(active_tab, R"js( - (function(elem) { - return elem && elem.offsetWidth > 0 && elem.offsetHeight > 0 && - window.getComputedStyle(elem).visibility != 'hidden'; - })(document.getElementById('fakebox')) - )js", &result)); - EXPECT_TRUE(result); + ASSERT_TRUE(instant_test_utils::GetBoolFromJS( + active_tab, "!!setupAdvancedTest()", &result)); + ASSERT_TRUE(result); // Get the position of the fakebox on the page. double fakebox_x = 0; ASSERT_TRUE(instant_test_utils::GetDoubleFromJS( - active_tab, - "document.getElementById('fakebox').getBoundingClientRect().left", - &fakebox_x)); + active_tab, "getFakeboxPositionX()", &fakebox_x)); double fakebox_y = 0; ASSERT_TRUE(instant_test_utils::GetDoubleFromJS( - active_tab, - "document.getElementById('fakebox').getBoundingClientRect().top", - &fakebox_y)); + active_tab, "getFakeboxPositionY()", &fakebox_y)); // Move the mouse over the fakebox. gfx::Vector2d fakebox_pos(static_cast<int>(std::ceil(fakebox_x)), @@ -99,8 +91,7 @@ // The fakebox should now also have focus. ASSERT_TRUE(instant_test_utils::GetBoolFromJS( - active_tab, "document.body.classList.contains('fakebox-focused')", - &result)); + active_tab, "!!fakeboxIsFocused()", &result)); EXPECT_TRUE(result); // Type "a" and wait for the omnibox to receive visible focus. @@ -114,14 +105,10 @@ EXPECT_EQ(OMNIBOX_FOCUS_VISIBLE, omnibox()->model()->focus_state()); // The typed text should have arrived in the omnibox. - EXPECT_EQ("a", base::UTF16ToUTF8(omnibox()->GetText())); + EXPECT_EQ("a", GetOmniboxText()); // On the JS side, the fakebox should have been hidden. - ASSERT_TRUE(instant_test_utils::GetBoolFromJS(active_tab, R"js( - (function(elem) { - return elem && elem.offsetWidth > 0 && elem.offsetHeight > 0 && - window.getComputedStyle(elem).visibility != 'hidden'; - })(document.getElementById('fakebox')) - )js", &result)); + ASSERT_TRUE(instant_test_utils::GetBoolFromJS( + active_tab, "!!fakeboxIsVisible()", &result)); EXPECT_FALSE(result); }
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index b2d60f48..62c3726 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -4375,8 +4375,6 @@ "../browser/ui/search/instant_test_utils.h", "../browser/ui/search/instant_uitest_base.cc", "../browser/ui/search/instant_uitest_base.h", - "../browser/ui/search/local_ntp_test_utils.cc", - "../browser/ui/search/local_ntp_test_utils.h", "../browser/ui/search/local_ntp_uitest.cc", "../browser/ui/send_mouse_move_uitest_win.cc", "../browser/ui/startup/startup_browser_creator_interactive_uitest.cc",
diff --git a/chrome/test/data/local_ntp/local_ntp_browsertest.html b/chrome/test/data/local_ntp/local_ntp_browsertest.html index 384ad20..c5d2118b 100644 --- a/chrome/test/data/local_ntp/local_ntp_browsertest.html +++ b/chrome/test/data/local_ntp/local_ntp_browsertest.html
@@ -4,16 +4,14 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> <head> - <link rel="stylesheet" href="chrome-search://local-ntp/theme.css"></link> - <link rel="stylesheet" href="chrome-search://local-ntp/local-ntp.css"></link> - <link rel="stylesheet" href="chrome-search://local-ntp/voice.css"></link> <script>window.localNTPUnitTest = true;</script> <script src="chrome-search://local-ntp/config.js" charset="utf-8"></script> <script src="chrome-search://local-ntp/local-ntp.js" charset="utf-8"></script> <script src="chrome-search://local-ntp/voice.js" charset="utf-8"></script> + <script src="chrome-search://most-visited/util.js" charset="utf-8"></script> + <link rel="stylesheet" href="chrome-search://local-ntp/local-ntp.css"></link> <script src="test_utils.js" charset="utf-8"></script> <script src="local_ntp_browsertest.js" charset="utf-8"></script> - <template id="local-ntp-template"> <div id="ntp-contents"> <div id="search">
diff --git a/chrome/test/data/local_ntp/local_ntp_browsertest.js b/chrome/test/data/local_ntp/local_ntp_browsertest.js index fdefa920..3f032d66 100644 --- a/chrome/test/data/local_ntp/local_ntp_browsertest.js +++ b/chrome/test/data/local_ntp/local_ntp_browsertest.js
@@ -23,7 +23,7 @@ // ******************************* SIMPLE TESTS ******************************* -// These are run by runSimpleTests from test_utils.js. +// These are run by runSimpleTests above. // Functions from test_utils.js are automatically imported. @@ -87,3 +87,43 @@ var localNTP = LocalNTP(); localNTP.init(); } + + +// ****************************** ADVANCED TESTS ****************************** +// Advanced tests are controlled from the native side. The helpers here are +// called from native code to set up the page and to check results. + + +function setupAdvancedTest() { + setUpPage('local-ntp-template'); + initLocalNTP(/*isGooglePage=*/true); + + assertTrue(elementIsVisible($('fakebox'))); + + return true; +} + + +function getFakeboxPositionX() { + assertTrue(elementIsVisible($('fakebox'))); + var rect = $('fakebox').getBoundingClientRect(); + return rect.left; +} + + +function getFakeboxPositionY() { + assertTrue(elementIsVisible($('fakebox'))); + var rect = $('fakebox').getBoundingClientRect(); + return rect.top; +} + + +function fakeboxIsVisible() { + return elementIsVisible($('fakebox')); +} + + +function fakeboxIsFocused() { + return fakeboxIsVisible() && + document.body.classList.contains('fakebox-focused'); +}
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json index 824ddc4..fb5fc44 100644 --- a/chrome/test/data/policy/policy_test_cases.json +++ b/chrome/test/data/policy/policy_test_cases.json
@@ -1059,7 +1059,12 @@ "DefaultSearchProviderName": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderName": "google.com" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderName": "google.com" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1067,7 +1072,11 @@ "DefaultSearchProviderKeyword": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1075,7 +1084,11 @@ "DefaultSearchProviderSearchURL": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data", "indicator_selector": "[setting=search-engine]", @@ -1088,7 +1101,12 @@ "DefaultSearchProviderSuggestURL": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderSuggestURL": "http://www.google.com/suggest?q={searchTerms}" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderSuggestURL": "http://www.google.com/suggest?q={searchTerms}" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1096,7 +1114,12 @@ "DefaultSearchProviderInstantURL": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderInstantURL": "http://www.google.com/instant?q={searchTerms}" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderInstantURL": "http://www.google.com/instant?q={searchTerms}" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1104,7 +1127,12 @@ "DefaultSearchProviderNewTabURL": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderNewTabURL": "http://www.google.com/newtab" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderNewTabURL": "http://www.google.com/newtab" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1112,7 +1140,12 @@ "DefaultSearchProviderIconURL": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderIconURL": "http://www.google.com/favicon.ico" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderIconURL": "http://www.google.com/favicon.ico" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1120,7 +1153,12 @@ "DefaultSearchProviderEncodings": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderEncodings": ["UTF-8"] }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderEncodings": ["UTF-8"] + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1128,7 +1166,12 @@ "DefaultSearchProviderAlternateURLs": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderAlternateURLs": ["http://www.google.com/#q={searchTerms}", "http://www.google.com/search#q={searchTerms}"] }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderAlternateURLs": ["http://www.google.com/#q={searchTerms}", "http://www.google.com/search#q={searchTerms}"] + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1136,7 +1179,12 @@ "DefaultSearchProviderSearchTermsReplacementKey": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderSearchTermsReplacementKey": "espv" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderSearchTermsReplacementKey": "espv" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1144,7 +1192,12 @@ "DefaultSearchProviderImageURL": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderImageURL": "http://www.google.com/searchbyimage/upload" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderImageURL": "http://www.google.com/searchbyimage/upload" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1152,7 +1205,12 @@ "DefaultSearchProviderSearchURLPostParams": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderSearchURLPostParams": "" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderSearchURLPostParams": "" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1160,7 +1218,12 @@ "DefaultSearchProviderSuggestURLPostParams": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderSuggestURLPostParams": "" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderSuggestURLPostParams": "" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1168,7 +1231,12 @@ "DefaultSearchProviderInstantURLPostParams": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderInstantURLPostParams": "" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderInstantURLPostParams": "" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ] @@ -1176,7 +1244,12 @@ "DefaultSearchProviderImageURLPostParams": { "os": ["win", "linux", "mac", "chromeos"], - "test_policy": { "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", "DefaultSearchProviderKeyword": "google", "DefaultSearchProviderImageURLPostParams": "image_content={imageThumbnail},image_url={imageURL},sbisrc={imageSearchSource}" }, + "test_policy": { + "DefaultSearchProviderEnabled": true, + "DefaultSearchProviderSearchURL": "http://www.google.com/?q={searchTerms}", + "DefaultSearchProviderKeyword": "google", + "DefaultSearchProviderImageURLPostParams": "image_content={imageThumbnail},image_url={imageURL},sbisrc={imageSearchSource}" + }, "pref_mappings": [ { "pref": "default_search_provider_data.template_url_data" } ]
diff --git a/components/autofill/core/browser/credit_card_save_manager_unittest.cc b/components/autofill/core/browser/credit_card_save_manager_unittest.cc index 307627944..45bcaa3 100644 --- a/components/autofill/core/browser/credit_card_save_manager_unittest.cc +++ b/components/autofill/core/browser/credit_card_save_manager_unittest.cc
@@ -557,7 +557,8 @@ DISALLOW_COPY_AND_ASSIGN(TestCreditCardSaveManager); }; -class CreditCardSaveManagerTest : public testing::Test { +// Fails on all platforms. http://crbug.com/790996 +class DISABLED_CreditCardSaveManagerTest : public testing::Test { public: void SetUp() override { autofill_client_.SetPrefs(test::PrefServiceForTesting()); @@ -796,7 +797,7 @@ #else #define MAYBE_ImportFormDataCreditCardHTTPS ImportFormDataCreditCardHTTPS #endif -TEST_F(CreditCardSaveManagerTest, MAYBE_ImportFormDataCreditCardHTTPS) { +TEST_F(DISABLED_CreditCardSaveManagerTest, MAYBE_ImportFormDataCreditCardHTTPS) { TestSaveCreditCards(true); } @@ -807,7 +808,7 @@ #else #define MAYBE_ImportFormDataCreditCardHTTP ImportFormDataCreditCardHTTP #endif -TEST_F(CreditCardSaveManagerTest, MAYBE_ImportFormDataCreditCardHTTP) { +TEST_F(DISABLED_CreditCardSaveManagerTest, MAYBE_ImportFormDataCreditCardHTTP) { TestSaveCreditCards(false); } @@ -820,7 +821,7 @@ #define MAYBE_CreditCardSavedWhenAutocompleteOff \ CreditCardSavedWhenAutocompleteOff #endif -TEST_F(CreditCardSaveManagerTest, MAYBE_CreditCardSavedWhenAutocompleteOff) { +TEST_F(DISABLED_CreditCardSaveManagerTest, MAYBE_CreditCardSavedWhenAutocompleteOff) { // Set up our form data. FormData form; CreateTestCreditCardFormData(&form, false, false); @@ -841,7 +842,7 @@ // Tests that credit card data are not saved when CC number does not pass the // Luhn test. -TEST_F(CreditCardSaveManagerTest, InvalidCreditCardNumberIsNotSaved) { +TEST_F(DISABLED_CreditCardSaveManagerTest, InvalidCreditCardNumberIsNotSaved) { // Set up our form data. FormData form; CreateTestCreditCardFormData(&form, true, false); @@ -858,7 +859,7 @@ FormSubmitted(form); } -TEST_F(CreditCardSaveManagerTest, CreditCardDisabledDoesNotSave) { +TEST_F(DISABLED_CreditCardSaveManagerTest, CreditCardDisabledDoesNotSave) { personal_data_.ClearAutofillProfiles(); autofill_manager_->set_credit_card_enabled(false); @@ -893,7 +894,7 @@ histogram_tester.ExpectTotalCount("Autofill.CardUploadDecisionMetric", 0); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard) { personal_data_.ClearCreditCards(); personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -944,7 +945,7 @@ "Autofill.DaysSincePreviousUseAtSubmission.Profile", 0); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_RequestCVCEnabled_DoesNotTrigger) { EnableAutofillUpstreamRequestCvcIfMissingExperiment(); @@ -980,7 +981,7 @@ EXPECT_TRUE(credit_card_save_manager_->GetActiveExperiments().empty()); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCardAndSaveCopy) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCardAndSaveCopy) { personal_data_.ClearCreditCards(); personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1031,7 +1032,7 @@ #endif } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_FeatureNotEnabled) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_FeatureNotEnabled) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(false); @@ -1066,7 +1067,7 @@ histogram_tester.ExpectTotalCount("Autofill.CardUploadDecisionMetric", 0); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_CvcUnavailable) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CvcUnavailable) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1107,7 +1108,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::CVC_VALUE_NOT_FOUND); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_CvcInvalidLength) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CvcInvalidLength) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1145,7 +1146,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::INVALID_CVC_VALUE); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_MultipleCvcFields) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_MultipleCvcFields) { credit_card_save_manager_->set_credit_card_upload_enabled(true); // Remove the profiles that were created in the TestPersonalDataManager @@ -1207,7 +1208,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NoCvcFieldOnForm) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoCvcFieldOnForm) { credit_card_save_manager_->set_credit_card_upload_enabled(true); // Remove the profiles that were created in the TestPersonalDataManager @@ -1263,7 +1264,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::CVC_FIELD_NOT_FOUND); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField) { credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1323,7 +1324,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::CVC_FIELD_NOT_FOUND); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField) { credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1385,7 +1386,7 @@ AutofillMetrics::FOUND_POSSIBLE_CVC_VALUE_IN_NON_CVC_FIELD); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField) { credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1453,7 +1454,7 @@ #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_UserEntersCvc \ UploadCreditCard_NoCvcFieldOnForm_UserEntersCvc #endif -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, MAYBE_UploadCreditCard_NoCvcFieldOnForm_UserEntersCvc) { EnableAutofillUpstreamRequestCvcIfMissingExperiment(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1518,7 +1519,7 @@ 1 /* expected_num_matching_entries */); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoCvcFieldOnFormExperimentOff) { credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1578,7 +1579,7 @@ // kAutofillUpstreamShowNewUi and kAutofillUpstreamShowGoogleLogo flags are // currently not available on Android. #if !defined(OS_ANDROID) -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_AddNewUiFlagStateToRequestIfExperimentOn) { EnableAutofillUpstreamShowNewUiExperiment(); personal_data_.ClearAutofillProfiles(); @@ -1612,7 +1613,7 @@ UnorderedElementsAre(kAutofillUpstreamShowNewUi.name)); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_DoNotAddNewUiFlagStateToRequestIfExperimentOff) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1644,7 +1645,7 @@ EXPECT_TRUE(credit_card_save_manager_->GetActiveExperiments().empty()); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_AddShowGoogleLogoFlagStateToRequestIfExperimentOn) { EnableAutofillUpstreamShowGoogleLogoExperiment(); personal_data_.ClearAutofillProfiles(); @@ -1679,7 +1680,7 @@ UnorderedElementsAre(kAutofillUpstreamShowGoogleLogo.name)); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_DoNotAddShowGoogleLogoFlagStateToRequestIfExpOff) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1713,7 +1714,7 @@ } #endif -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NoProfileAvailable) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoProfileAvailable) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1746,7 +1747,7 @@ AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ADDRESS_PROFILE); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NoRecentlyUsedProfile) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoRecentlyUsedProfile) { // Create the test clock and set the time to a specific value. TestAutofillClock test_clock; test_clock.SetNow(kArbitraryTime); @@ -1796,7 +1797,7 @@ "Autofill.HasModifiedProfile.CreditCardFormSubmission", false, 1); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CvcUnavailableAndNoProfileAvailable) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1837,7 +1838,7 @@ 1 /* expected_num_matching_entries */); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NoNameAvailable) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoNameAvailable) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1875,7 +1876,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_NOT_OFFERED_NO_NAME); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_ZipCodesConflict) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_ZipCodesConflict) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1924,7 +1925,7 @@ AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_ZipCodesDiscardWhitespace) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_ZipCodesDiscardWhitespace) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -1966,7 +1967,7 @@ histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_ZipCodesDiscardWhitespace_ComparatorEnabled) { EnableAutofillUpstreamUseAutofillProfileComparator(); personal_data_.ClearAutofillProfiles(); @@ -2012,7 +2013,7 @@ AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_ZipCodesHavePrefixMatch) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_ZipCodesHavePrefixMatch) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2058,7 +2059,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NoZipCodeAvailable) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoZipCodeAvailable) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2103,7 +2104,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_CCFormHasMiddleInitial) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CCFormHasMiddleInitial) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2149,7 +2150,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CCFormHasMiddleInitial_ComparatorEnabled) { EnableAutofillUpstreamUseAutofillProfileComparator(); personal_data_.ClearAutofillProfiles(); @@ -2199,7 +2200,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NoMiddleInitialInCCForm) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoMiddleInitialInCCForm) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2241,7 +2242,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NoMiddleInitialInCCForm_ComparatorEnabled) { EnableAutofillUpstreamUseAutofillProfileComparator(); personal_data_.ClearAutofillProfiles(); @@ -2285,7 +2286,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_CCFormHasMiddleName) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CCFormHasMiddleName) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2322,7 +2323,7 @@ histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CCFormHasMiddleName_ComparatorEnabled) { EnableAutofillUpstreamUseAutofillProfileComparator(); personal_data_.ClearAutofillProfiles(); @@ -2364,7 +2365,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_CCFormRemovesMiddleName) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CCFormRemovesMiddleName) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2403,7 +2404,7 @@ AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES); } -TEST_F(CreditCardSaveManagerTest, +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_CCFormRemovesMiddleName_ComparatorEnabled) { EnableAutofillUpstreamUseAutofillProfileComparator(); personal_data_.ClearAutofillProfiles(); @@ -2445,7 +2446,7 @@ ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_NamesHaveToMatch) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_NamesHaveToMatch) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2493,7 +2494,7 @@ AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_IgnoreOldProfiles) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_IgnoreOldProfiles) { // Create the test clock and set the time to a specific value. TestAutofillClock test_clock; test_clock.SetNow(kArbitraryTime); @@ -2541,7 +2542,7 @@ AutofillMetrics::UPLOAD_OFFERED); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_LogPreviousUseDate) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_LogPreviousUseDate) { // Create the test clock and set the time to a specific value. TestAutofillClock test_clock; test_clock.SetNow(kArbitraryTime); @@ -2589,7 +2590,7 @@ /*expected_count=*/1); } -TEST_F(CreditCardSaveManagerTest, UploadCreditCard_UploadDetailsFails) { +TEST_F(DISABLED_CreditCardSaveManagerTest, UploadCreditCard_UploadDetailsFails) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); @@ -2633,7 +2634,7 @@ AutofillMetrics::UPLOAD_NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED); } -TEST_F(CreditCardSaveManagerTest, DuplicateMaskedCreditCard) { +TEST_F(DISABLED_CreditCardSaveManagerTest, DuplicateMaskedCreditCard) { EnableAutofillOfferLocalSaveIfServerCardManuallyEnteredExperiment(); personal_data_.ClearAutofillProfiles(); @@ -2674,7 +2675,7 @@ EXPECT_FALSE(credit_card_save_manager_->credit_card_was_uploaded()); } -TEST_F(CreditCardSaveManagerTest, DuplicateMaskedCreditCard_ExperimentOff) { +TEST_F(DISABLED_CreditCardSaveManagerTest, DuplicateMaskedCreditCard_ExperimentOff) { personal_data_.ClearAutofillProfiles(); credit_card_save_manager_->set_credit_card_upload_enabled(true); credit_card_save_manager_->SetAppLocale("en-US");
diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp index 2972820..aca9148 100644 --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp
@@ -143,8 +143,8 @@ <message name="IDS_POLICY_VALUE_FORMAT_ERROR" desc="The text displayed in the status column when a policy value doesn't match the expected format."> Value doesn't match format. </message> - <message name="IDS_POLICY_DEFAULT_SEARCH_DISABLED" desc="The text displayed in the status column when a policy value has been ignored because default search has been disabled."> - Ignored because default search is disabled by policy. + <message name="IDS_POLICY_DEFAULT_SEARCH_DISABLED" desc="The text displayed in the status column when a policy value has been ignored because default search has not been enabled."> + Ignored because default search is not enabled by policy. </message> <message name="IDS_POLICY_NOT_SPECIFIED_ERROR" desc="The text displayed in the status column when a policy value should have been specified but wasn't."> Must be specified.
diff --git a/components/proximity_auth/promotion_manager.cc b/components/proximity_auth/promotion_manager.cc index 48b3269..db49a9a 100644 --- a/components/proximity_auth/promotion_manager.cc +++ b/components/proximity_auth/promotion_manager.cc
@@ -40,14 +40,14 @@ NotificationController* notification_controller, ProximityAuthPrefManager* pref_manager, std::unique_ptr<cryptauth::CryptAuthClientFactory> client_factory, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, scoped_refptr<base::TaskRunner> task_runner) : check_eligibility_probability_(kCheckEligibilityProbability), local_device_data_provider_(provider), notification_controller_(notification_controller), pref_manager_(pref_manager), client_factory_(std::move(client_factory)), - clock_(std::move(clock)), + clock_(clock), task_runner_(task_runner), weak_ptr_factory_(this) {}
diff --git a/components/proximity_auth/promotion_manager.h b/components/proximity_auth/promotion_manager.h index 93379c0..2bb5d05 100644 --- a/components/proximity_auth/promotion_manager.h +++ b/components/proximity_auth/promotion_manager.h
@@ -36,7 +36,7 @@ NotificationController* notification_controller, ProximityAuthPrefManager* pref_manager, std::unique_ptr<cryptauth::CryptAuthClientFactory> client_factory, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, scoped_refptr<base::TaskRunner> task_runner); ~PromotionManager() override; @@ -96,7 +96,7 @@ std::unique_ptr<cryptauth::CryptAuthClient> client_; // Used to determine the time. - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Used to schedule delayed tasks. scoped_refptr<base::TaskRunner> task_runner_;
diff --git a/components/proximity_auth/promotion_manager_unittests.cc b/components/proximity_auth/promotion_manager_unittests.cc index a1c33c9f..cd97b66 100644 --- a/components/proximity_auth/promotion_manager_unittests.cc +++ b/components/proximity_auth/promotion_manager_unittests.cc
@@ -79,7 +79,6 @@ : local_device_data_provider_( new cryptauth::MockLocalDeviceDataProvider()), notification_controller_(new StrictMock<MockNotificationController>()), - clock_(new base::SimpleTestClock()), expect_eligible_unlock_devices_request_(false), client_factory_(new cryptauth::MockCryptAuthClientFactory( cryptauth::MockCryptAuthClientFactory::MockType:: @@ -91,7 +90,7 @@ notification_controller_.get(), pref_manager_.get(), base::WrapUnique(client_factory_), - base::WrapUnique(clock_), + &clock_, task_runner_)) { client_factory_->AddObserver(this); local_device_data_provider_->SetPublicKey( @@ -140,7 +139,7 @@ EXPECT_CALL(*pref_manager_, GetLastPromotionCheckTimestampMs()) .WillOnce(Return(kPreviousCheckTimestampMs)); const int64_t now = kPreviousCheckTimestampMs + kFreshnessPeriodMs + 1; - clock_->SetNow(base::Time::FromJavaTime(now)); + clock_.SetNow(base::Time::FromJavaTime(now)); EXPECT_CALL(*pref_manager_, SetLastPromotionCheckTimestampMs(now)); } @@ -148,7 +147,7 @@ std::unique_ptr<cryptauth::MockLocalDeviceDataProvider> local_device_data_provider_; std::unique_ptr<MockNotificationController> notification_controller_; - base::SimpleTestClock* clock_; + base::SimpleTestClock clock_; bool expect_eligible_unlock_devices_request_; cryptauth::MockCryptAuthClientFactory* client_factory_; std::unique_ptr<MockProximityAuthPrefManager> pref_manager_; @@ -205,7 +204,7 @@ EXPECT_CALL(*pref_manager_, GetLastPromotionCheckTimestampMs()) .WillOnce(Return(kPreviousCheckTimestampMs)); const int64_t now = kPreviousCheckTimestampMs + 1; - clock_->SetNow(base::Time::FromJavaTime(now)); + clock_.SetNow(base::Time::FromJavaTime(now)); UnlockScreen(); }
diff --git a/components/proximity_auth/proximity_auth_system.cc b/components/proximity_auth/proximity_auth_system.cc index 9ef990b..0f1487f0 100644 --- a/components/proximity_auth/proximity_auth_system.cc +++ b/components/proximity_auth/proximity_auth_system.cc
@@ -29,7 +29,7 @@ ProximityAuthClient* proximity_auth_client) : screenlock_type_(screenlock_type), proximity_auth_client_(proximity_auth_client), - clock_(new base::DefaultClock()), + clock_(base::DefaultClock::GetInstance()), pref_manager_(proximity_auth_client->GetPrefManager()), unlock_manager_(new UnlockManagerImpl(screenlock_type, proximity_auth_client_, @@ -42,11 +42,11 @@ ScreenlockType screenlock_type, ProximityAuthClient* proximity_auth_client, std::unique_ptr<UnlockManager> unlock_manager, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, ProximityAuthPrefManager* pref_manager) : screenlock_type_(screenlock_type), proximity_auth_client_(proximity_auth_client), - clock_(std::move(clock)), + clock_(clock), pref_manager_(pref_manager), unlock_manager_(std::move(unlock_manager)), suspended_(false),
diff --git a/components/proximity_auth/proximity_auth_system.h b/components/proximity_auth/proximity_auth_system.h index f09531b..cb6f149 100644 --- a/components/proximity_auth/proximity_auth_system.h +++ b/components/proximity_auth/proximity_auth_system.h
@@ -72,7 +72,7 @@ ProximityAuthSystem(ScreenlockType screenlock_type, ProximityAuthClient* proximity_auth_client, std::unique_ptr<UnlockManager> unlock_manager, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, ProximityAuthPrefManager* pref_manager); // Creates the RemoteDeviceLifeCycle for |remote_device|. @@ -114,7 +114,7 @@ std::unique_ptr<RemoteDeviceLifeCycle> remote_device_life_cycle_; // Used to get the current timestamp. - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Fetches EasyUnlock preferences. Must outlive this instance. ProximityAuthPrefManager* pref_manager_;
diff --git a/components/proximity_auth/proximity_auth_system_unittest.cc b/components/proximity_auth/proximity_auth_system_unittest.cc index d41edb9..6db8565b 100644 --- a/components/proximity_auth/proximity_auth_system_unittest.cc +++ b/components/proximity_auth/proximity_auth_system_unittest.cc
@@ -91,12 +91,12 @@ TestableProximityAuthSystem(ScreenlockType screenlock_type, ProximityAuthClient* proximity_auth_client, std::unique_ptr<UnlockManager> unlock_manager, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, ProximityAuthPrefManager* pref_manager) : ProximityAuthSystem(screenlock_type, proximity_auth_client, std::move(unlock_manager), - std::move(clock), + clock, pref_manager), life_cycle_(nullptr) {} ~TestableProximityAuthSystem() override {} @@ -153,17 +153,13 @@ new NiceMock<MockUnlockManager>()); unlock_manager_ = unlock_manager.get(); - std::unique_ptr<base::SimpleTestClock> clock = - base::MakeUnique<base::SimpleTestClock>(); - clock_ = clock.get(); - - clock_->SetNow(base::Time::FromJavaTime(kTimestampBeforeReauthMs)); + clock_.SetNow(base::Time::FromJavaTime(kTimestampBeforeReauthMs)); ON_CALL(*pref_manager_, GetLastPasswordEntryTimestampMs()) .WillByDefault(Return(kLastPasswordEntryTimestampMs)); proximity_auth_system_.reset(new TestableProximityAuthSystem( - type, &proximity_auth_client_, std::move(unlock_manager), - std::move(clock), pref_manager_.get())); + type, &proximity_auth_client_, std::move(unlock_manager), &clock_, + pref_manager_.get())); } void LockScreen() { @@ -191,7 +187,7 @@ NiceMock<MockProximityAuthClient> proximity_auth_client_; std::unique_ptr<TestableProximityAuthSystem> proximity_auth_system_; MockUnlockManager* unlock_manager_; - base::SimpleTestClock* clock_; + base::SimpleTestClock clock_; std::unique_ptr<MockProximityAuthPrefManager> pref_manager_; RemoteDeviceList user1_remote_devices_;
diff --git a/components/proximity_auth/proximity_monitor_impl.cc b/components/proximity_auth/proximity_monitor_impl.cc index 5975dba4..c7803f3f 100644 --- a/components/proximity_auth/proximity_monitor_impl.cc +++ b/components/proximity_auth/proximity_monitor_impl.cc
@@ -34,13 +34,11 @@ ProximityMonitorImpl::ProximityMonitorImpl( cryptauth::Connection* connection, - std::unique_ptr<base::TickClock> clock, ProximityAuthPrefManager* pref_manager) : connection_(connection), remote_device_is_in_proximity_(false), is_active_(false), rssi_threshold_(kDefaultRssiThreshold), - clock_(std::move(clock)), pref_manager_(pref_manager), polling_weak_ptr_factory_(this), weak_ptr_factory_(this) {
diff --git a/components/proximity_auth/proximity_monitor_impl.h b/components/proximity_auth/proximity_monitor_impl.h index e882dc9..35442895 100644 --- a/components/proximity_auth/proximity_monitor_impl.h +++ b/components/proximity_auth/proximity_monitor_impl.h
@@ -16,10 +16,6 @@ #include "components/proximity_auth/proximity_monitor.h" #include "device/bluetooth/bluetooth_device.h" -namespace base { -class TickClock; -} - namespace device { class BluetoothAdapter; } @@ -34,7 +30,6 @@ public: // The |connection| is not owned, and must outlive |this| instance. ProximityMonitorImpl(cryptauth::Connection* connection, - std::unique_ptr<base::TickClock> clock, ProximityAuthPrefManager* pref_manager); ~ProximityMonitorImpl() override; @@ -115,9 +110,6 @@ // measurement. std::unique_ptr<double> rssi_rolling_average_; - // Used to access non-decreasing time measurements. - std::unique_ptr<base::TickClock> clock_; - // Contains perferences that outlive the lifetime of this object and across // process restarts. Not owned and must outlive this instance. ProximityAuthPrefManager* pref_manager_;
diff --git a/components/proximity_auth/proximity_monitor_impl_unittest.cc b/components/proximity_auth/proximity_monitor_impl_unittest.cc index 522719d8..96bcdad 100644 --- a/components/proximity_auth/proximity_monitor_impl_unittest.cc +++ b/components/proximity_auth/proximity_monitor_impl_unittest.cc
@@ -84,8 +84,7 @@ class ProximityAuthProximityMonitorImplTest : public testing::Test { public: ProximityAuthProximityMonitorImplTest() - : clock_(new base::SimpleTestTickClock()), - bluetooth_adapter_(CreateAndRegisterMockBluetoothAdapter()), + : bluetooth_adapter_(CreateAndRegisterMockBluetoothAdapter()), remote_bluetooth_device_(&*bluetooth_adapter_, 0, kRemoteDeviceName, @@ -102,7 +101,7 @@ 0 /* last_update_time_millis */), connection_(remote_device_), pref_manager_(new NiceMock<MockProximityAuthPrefManager>()), - monitor_(&connection_, base::WrapUnique(clock_), pref_manager_.get()), + monitor_(&connection_, pref_manager_.get()), task_runner_(new base::TestSimpleTaskRunner()), thread_task_runner_handle_(task_runner_) { ON_CALL(*bluetooth_adapter_, GetDevice(kBluetoothAddress)) @@ -132,9 +131,6 @@ // Mock for verifying interactions with the proximity monitor's observer. NiceMock<MockProximityMonitorObserver> observer_; - // Clock used for verifying time calculations. Owned by the monitor_. - base::SimpleTestTickClock* clock_; - // Mocks used for verifying interactions with the Bluetooth subsystem. scoped_refptr<device::MockBluetoothAdapter> bluetooth_adapter_; NiceMock<device::MockBluetoothDevice> remote_bluetooth_device_; @@ -335,10 +331,8 @@ monitor_.Start(); ProvideConnectionInfo({0, 0, 4}); - clock_->Advance(base::TimeDelta::FromMilliseconds(101)); ProvideConnectionInfo({-20, 3, 4}); - clock_->Advance(base::TimeDelta::FromMilliseconds(203)); base::HistogramTester histogram_tester; monitor_.RecordProximityMetricsOnAuthSuccess(); histogram_tester.ExpectUniqueSample("EasyUnlock.AuthProximity.RollingRssi", @@ -368,9 +362,7 @@ true /* supports_mobile_hotspot */, 0 /* last_update_time_millis */); cryptauth::FakeConnection connection(unnamed_remote_device); - std::unique_ptr<base::TickClock> clock(new base::SimpleTestTickClock()); - ProximityMonitorImpl monitor(&connection, std::move(clock), - pref_manager_.get()); + ProximityMonitorImpl monitor(&connection, pref_manager_.get()); monitor.AddObserver(&observer_); monitor.Start(); ProvideConnectionInfo({127, 127, 127});
diff --git a/components/proximity_auth/unlock_manager_impl.cc b/components/proximity_auth/unlock_manager_impl.cc index 3be7379..e0f22376 100644 --- a/components/proximity_auth/unlock_manager_impl.cc +++ b/components/proximity_auth/unlock_manager_impl.cc
@@ -333,8 +333,7 @@ std::unique_ptr<ProximityMonitor> UnlockManagerImpl::CreateProximityMonitor( cryptauth::Connection* connection, ProximityAuthPrefManager* pref_manager) { - return base::MakeUnique<ProximityMonitorImpl>( - connection, base::WrapUnique(new base::DefaultTickClock()), pref_manager); + return base::MakeUnique<ProximityMonitorImpl>(connection, pref_manager); } void UnlockManagerImpl::SendSignInChallenge() {
diff --git a/components/search_engines/default_search_policy_handler.cc b/components/search_engines/default_search_policy_handler.cc index cee0cb28..6ef34eb 100644 --- a/components/search_engines/default_search_policy_handler.cc +++ b/components/search_engines/default_search_policy_handler.cc
@@ -101,7 +101,8 @@ if (!CheckIndividualPolicies(policies, errors)) return false; - if (DefaultSearchProviderIsDisabled(policies)) { + if (!DefaultSearchProviderPolicyIsSet(policies) || + DefaultSearchProviderIsDisabled(policies)) { // Add an error for all specified default search policies except // DefaultSearchProviderEnabled. @@ -127,6 +128,10 @@ void DefaultSearchPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, PrefValueMap* prefs) { + // If the main switch is not set don't set anything. + if (!DefaultSearchProviderPolicyIsSet(policies)) + return; + if (DefaultSearchProviderIsDisabled(policies)) { std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue); dict->SetBoolean(DefaultSearchManager::kDisabledByPolicy, true); @@ -242,6 +247,11 @@ !enabled; } +bool DefaultSearchPolicyHandler::DefaultSearchProviderPolicyIsSet( + const PolicyMap& policies) { + return HasDefaultSearchPolicy(policies, key::kDefaultSearchProviderEnabled); +} + bool DefaultSearchPolicyHandler::DefaultSearchURLIsValid( const PolicyMap& policies, const base::Value** url_value,
diff --git a/components/search_engines/default_search_policy_handler.h b/components/search_engines/default_search_policy_handler.h index 9eea0cd..7d12000b 100644 --- a/components/search_engines/default_search_policy_handler.h +++ b/components/search_engines/default_search_policy_handler.h
@@ -38,6 +38,9 @@ // Returns whether any default search policies are specified in |policies|. bool AnyDefaultSearchPoliciesSpecified(const PolicyMap& policies); + // Returns whether the default search provider policy has a value. + bool DefaultSearchProviderPolicyIsSet(const PolicyMap& policies); + // Returns whether the default search provider is disabled. bool DefaultSearchProviderIsDisabled(const PolicyMap& policies);
diff --git a/components/search_engines/default_search_policy_handler_unittest.cc b/components/search_engines/default_search_policy_handler_unittest.cc index cf39250..f8ccdf7b 100644 --- a/components/search_engines/default_search_policy_handler_unittest.cc +++ b/components/search_engines/default_search_policy_handler_unittest.cc
@@ -245,13 +245,20 @@ // Checks that disabling default search is properly reflected the dictionary // pref. -TEST_F(DefaultSearchPolicyHandlerTest, Disabled) { +TEST_F(DefaultSearchPolicyHandlerTest, DisabledByPolicy) { PolicyMap policy; policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, base::WrapUnique(new base::Value(false)), nullptr); + policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, + POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, + base::WrapUnique(new base::Value("http://a/?{searchTerms}")), + nullptr); UpdateProviderPolicy(policy); const base::Value* temp = nullptr; + // Ignore any other search provider related policy in this case. + EXPECT_FALSE(store_->GetValue(DefaultSearchManager::kURL, &temp)); + const base::DictionaryValue* dictionary; EXPECT_TRUE(store_->GetValue( DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); @@ -262,6 +269,21 @@ EXPECT_TRUE(disabled); } +// Check that when the default search enabled policy is not set, all other +// default search-related policies are ignored. +TEST_F(DefaultSearchPolicyHandlerTest, DisabledByPolicyNotSet) { + PolicyMap policy; + policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, + POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, + base::WrapUnique(new base::Value("http://a/?{searchTerms}")), + nullptr); + UpdateProviderPolicy(policy); + const base::Value* temp = nullptr; + EXPECT_FALSE(store_->GetValue( + DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); + EXPECT_FALSE(store_->GetValue(DefaultSearchManager::kURL, &temp)); +} + // Checks that if the policy for default search is valid, i.e. there's a // search URL, that all the elements have been given proper defaults. TEST_F(DefaultSearchPolicyHandlerTest, MinimallyDefined) {
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 7fc625b..4acf153 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1760,6 +1760,8 @@ "renderer_host/p2p/socket_host_throttler.h", "renderer_host/p2p/socket_host_udp.cc", "renderer_host/p2p/socket_host_udp.h", + "webrtc/webrtc_event_log_manager.cc", + "webrtc/webrtc_event_log_manager.h", "webrtc/webrtc_eventlog_host.cc", "webrtc/webrtc_eventlog_host.h", "webrtc/webrtc_internals.cc",
diff --git a/content/browser/renderer_host/media/peer_connection_tracker_host.cc b/content/browser/renderer_host/media/peer_connection_tracker_host.cc index 3a332afa..c845704 100644 --- a/content/browser/renderer_host/media/peer_connection_tracker_host.cc +++ b/content/browser/renderer_host/media/peer_connection_tracker_host.cc
@@ -1,10 +1,12 @@ // Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + #include "content/browser/renderer_host/media/peer_connection_tracker_host.h" #include "base/power_monitor/power_monitor.h" #include "content/browser/renderer_host/render_process_host_impl.h" +#include "content/browser/webrtc/webrtc_event_log_manager.h" #include "content/browser/webrtc/webrtc_eventlog_host.h" #include "content/browser/webrtc/webrtc_internals.h" #include "content/common/media/peer_connection_tracker_messages.h" @@ -32,6 +34,8 @@ OnUpdatePeerConnection) IPC_MESSAGE_HANDLER(PeerConnectionTrackerHost_AddStats, OnAddStats) IPC_MESSAGE_HANDLER(PeerConnectionTrackerHost_GetUserMedia, OnGetUserMedia) + IPC_MESSAGE_HANDLER(PeerConnectionTrackerHost_WebRtcEventLogWrite, + OnWebRtcEventLogWrite) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; @@ -69,6 +73,7 @@ void PeerConnectionTrackerHost::OnAddPeerConnection( const PeerConnectionInfo& info) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); WebRTCInternals::GetInstance()->OnAddPeerConnection( render_process_id_, peer_pid(), @@ -81,6 +86,7 @@ } void PeerConnectionTrackerHost::OnRemovePeerConnection(int lid) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); WebRTCInternals::GetInstance()->OnRemovePeerConnection(peer_pid(), lid); if (event_log_host_) event_log_host_->PeerConnectionRemoved(lid); @@ -115,6 +121,14 @@ video_constraints); } +void PeerConnectionTrackerHost::OnWebRtcEventLogWrite( + int lid, + const std::string& output) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + auto* manager = WebRtcEventLogManager::GetInstance(); + manager->OnWebRtcEventLogWrite(render_process_id_, lid, output); +} + void PeerConnectionTrackerHost::OnSuspend() { BrowserThread::PostTask( BrowserThread::UI, FROM_HERE,
diff --git a/content/browser/renderer_host/media/peer_connection_tracker_host.h b/content/browser/renderer_host/media/peer_connection_tracker_host.h index 949010a..3cbd659 100644 --- a/content/browser/renderer_host/media/peer_connection_tracker_host.h +++ b/content/browser/renderer_host/media/peer_connection_tracker_host.h
@@ -57,6 +57,7 @@ bool video, const std::string& audio_constraints, const std::string& video_constraints); + void OnWebRtcEventLogWrite(int lid, const std::string& output); void SendOnSuspendOnUIThread(); int render_process_id_;
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 069ed65..11fe311 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -3170,13 +3170,13 @@ weak_factory_.GetWeakPtr())); } -bool RenderProcessHostImpl::StartWebRTCEventLog( - const base::FilePath& file_path) { - return webrtc_eventlog_host_.StartWebRTCEventLog(file_path); +bool RenderProcessHostImpl::StartLocalWebRtcEventLogging( + const base::FilePath& base_path) { + return webrtc_eventlog_host_.StartLocalWebRtcEventLogging(base_path); } -bool RenderProcessHostImpl::StopWebRTCEventLog() { - return webrtc_eventlog_host_.StopWebRTCEventLog(); +bool RenderProcessHostImpl::StopLocalWebRtcEventLogging() { + return webrtc_eventlog_host_.StopLocalWebRtcEventLogging(); } void RenderProcessHostImpl::SetEchoCanceller3(
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h index b5528d4..e676fd9 100644 --- a/content/browser/renderer_host/render_process_host_impl.h +++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -191,8 +191,8 @@ #if BUILDFLAG(ENABLE_WEBRTC) void EnableAudioDebugRecordings(const base::FilePath& file) override; void DisableAudioDebugRecordings() override; - bool StartWebRTCEventLog(const base::FilePath& file_path) override; - bool StopWebRTCEventLog() override; + bool StartLocalWebRtcEventLogging(const base::FilePath& base_path) override; + bool StopLocalWebRtcEventLogging() override; void SetEchoCanceller3( bool enable, base::OnceCallback<void(bool, const std::string&)> callback) override;
diff --git a/content/browser/resources/media/dump_creator.js b/content/browser/resources/media/dump_creator.js index c70fe20..aadbe3e 100644 --- a/content/browser/resources/media/dump_creator.js +++ b/content/browser/resources/media/dump_creator.js
@@ -71,8 +71,8 @@ ' multiple log files to be created. When enabling, a filename for the' + ' recording can be entered. The entered filename is used as a' + ' base, to which the following suffixes will be appended.</p>' + - ' <p><base filename>.<render process ID>' + - '.<recording ID></p>' + + ' <p><base filename>_<date>_<timestamp>_<render ' + + 'process ID>_<recording ID></p>' + '<p class=audio-diagnostic-dumps-info>If a file with the same name' + ' already exists, it will be overwritten. No more than 5 logfiles ' + ' will be created, and each of them is limited to 60MB of storage. ' +
diff --git a/content/browser/webrtc/webrtc_event_log_manager.cc b/content/browser/webrtc/webrtc_event_log_manager.cc new file mode 100644 index 0000000..ea0d5b9 --- /dev/null +++ b/content/browser/webrtc/webrtc_event_log_manager.cc
@@ -0,0 +1,276 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/webrtc/webrtc_event_log_manager.h" + +#include <inttypes.h> + +#include <iostream> +#include <limits> + +#include "base/files/file_util.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_util.h" +#include "base/task_scheduler/post_task.h" +#include "build/build_config.h" +#include "content/public/browser/browser_thread.h" + +#if defined(OS_WIN) +#define IntToStringType base::IntToString16 +#else +#define IntToStringType base::IntToString +#endif + +namespace content { + +namespace { +inline void MaybeReplyWithBool(const base::Location& from_here, + base::OnceCallback<void(bool)> reply, + bool value) { + if (reply) { + BrowserThread::PostTask(BrowserThread::UI, from_here, + base::BindOnce(std::move(reply), value)); + } +} + +struct MaybeReplyWithBoolOnExit final { + MaybeReplyWithBoolOnExit(base::OnceCallback<void(bool)> reply, + bool default_value) + : reply(std::move(reply)), value(default_value) {} + ~MaybeReplyWithBoolOnExit() { + if (reply) { + MaybeReplyWithBool(FROM_HERE, std::move(reply), value); + } + } + base::OnceCallback<void(bool)> reply; + bool value; +}; + +struct MaybeReplyWithFilePathOnExit final { + explicit MaybeReplyWithFilePathOnExit( + base::OnceCallback<void(base::FilePath)> reply) + : reply(std::move(reply)) {} + ~MaybeReplyWithFilePathOnExit() { + if (reply) { + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, + base::BindOnce(std::move(reply), file_path)); + } + } + base::OnceCallback<void(base::FilePath)> reply; + base::FilePath file_path; // Empty path is the default value. +}; +} // namespace + +base::LazyInstance<WebRtcEventLogManager>::Leaky g_webrtc_event_log_manager = + LAZY_INSTANCE_INITIALIZER; + +WebRtcEventLogManager* WebRtcEventLogManager::GetInstance() { + return g_webrtc_event_log_manager.Pointer(); +} + +WebRtcEventLogManager::WebRtcEventLogManager() + : clock_for_testing_(nullptr), + file_task_runner_(base::CreateSequencedTaskRunnerWithTraits( + {base::MayBlock(), base::TaskPriority::BACKGROUND, + base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); +} + +WebRtcEventLogManager::~WebRtcEventLogManager() { + // This should never actually run, except in unit tests. +} + +void WebRtcEventLogManager::LocalWebRtcEventLogStart( + int render_process_id, + int lid, + const base::FilePath& base_path, + size_t max_file_size_bytes, + base::OnceCallback<void(base::FilePath)> reply) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + file_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&WebRtcEventLogManager::StartLocalLogFile, + base::Unretained(this), render_process_id, lid, base_path, + max_file_size_bytes, std::move(reply))); +} + +void WebRtcEventLogManager::LocalWebRtcEventLogStop( + int render_process_id, + int lid, + base::OnceCallback<void(bool)> reply) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + file_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&WebRtcEventLogManager::StopLocalLogFile, + base::Unretained(this), render_process_id, lid, + std::move(reply))); +} + +void WebRtcEventLogManager::OnWebRtcEventLogWrite( + int render_process_id, + int lid, + const std::string& output, + base::OnceCallback<void(bool)> reply) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + file_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&WebRtcEventLogManager::WriteToLocalLogFile, + base::Unretained(this), render_process_id, lid, + output, std::move(reply))); + // TODO(eladalon): Make sure that peer-connections that have neither + // a remote-bound log nor a local-log-file associated, do not trigger + // this callback, for efficiency's sake. (Files sometimes fail to be opened, + // or reach their maximum size.) https://crbug.com/775415 +} + +void WebRtcEventLogManager::InjectClockForTesting(base::Clock* clock) { + clock_for_testing_ = clock; +} + +base::FilePath WebRtcEventLogManager::GetLocalFilePath( + const base::FilePath& base_path, + int render_process_id, + int lid) { + base::Time::Exploded now; + if (clock_for_testing_) { + clock_for_testing_->Now().LocalExplode(&now); + } else { + base::Time::Now().LocalExplode(&now); + } + + // [user_defined]_[date]_[time]_[pid]_[lid].log + char stamp[100]; + int written = + base::snprintf(stamp, arraysize(stamp), "%04d%02d%02d_%02d%02d_%d_%d", + now.year, now.month, now.day_of_month, now.hour, + now.minute, render_process_id, lid); + CHECK(0 < written); + CHECK(static_cast<size_t>(written) < arraysize(stamp)); + + return base_path.InsertBeforeExtension(FILE_PATH_LITERAL("_")) + .InsertBeforeExtensionASCII(base::StringPiece(stamp)) + .AddExtension(FILE_PATH_LITERAL("log")); +} + +void WebRtcEventLogManager::StartLocalLogFile( + int render_process_id, + int lid, + const base::FilePath& base_path, + size_t max_file_size_bytes, + base::OnceCallback<void(base::FilePath)> reply) { + DCHECK(file_task_runner_->RunsTasksInCurrentSequence()); + + // This object's destructor will ensure a reply (if |reply| is non-empty), + // regardless of which path is taken out of the function. + MaybeReplyWithFilePathOnExit on_exit(std::move(reply)); + + // Add some information to the name given by the caller. + base::FilePath file_path = + GetLocalFilePath(base_path, render_process_id, lid); + CHECK(!file_path.empty()) << "Couldn't set path for local WebRTC log file."; + + // In the unlikely case that this filename is already taken, find a unique + // number to append to the filename, if possible. + int unique_number = + base::GetUniquePathNumber(file_path, base::FilePath::StringType()); + if (unique_number < 0) { + return; // No available file path was found. + } else if (unique_number != 0) { + // The filename is taken, but a unique number was found. + // TODO(eladalon): Fix the way the unique number is used. + // https://crbug.com/785333 + file_path = file_path.InsertBeforeExtension(FILE_PATH_LITERAL(" (") + + IntToStringType(unique_number) + + FILE_PATH_LITERAL(")")); + } + + // Attempt to create the file. + constexpr int file_flags = base::File::FLAG_CREATE | base::File::FLAG_WRITE | + base::File::FLAG_EXCLUSIVE_WRITE; + base::File file(file_path, file_flags); + if (!file.IsValid() || !file.created()) { + LOG(WARNING) << "Couldn't create and/or open local WebRTC event log file."; + return; + } + + // If the file was successfully created, it's now ready to be written to. + DCHECK(local_logs_.find({render_process_id, lid}) == local_logs_.end()); + local_logs_.emplace(PeerConnectionKey{render_process_id, lid}, + LogFile(std::move(file), max_file_size_bytes)); + + on_exit.file_path = file_path; // Report success (if reply nonempty). +} + +void WebRtcEventLogManager::StopLocalLogFile( + int render_process_id, + int lid, + base::OnceCallback<void(bool)> reply) { + DCHECK(file_task_runner_->RunsTasksInCurrentSequence()); + auto it = local_logs_.find(PeerConnectionKey{render_process_id, lid}); + if (it != local_logs_.end()) { + CloseLocalLogFile(it); + MaybeReplyWithBool(FROM_HERE, std::move(reply), true); + } else { + MaybeReplyWithBool(FROM_HERE, std::move(reply), false); + } +} + +void WebRtcEventLogManager::WriteToLocalLogFile( + int render_process_id, + int lid, + const std::string& output, + base::OnceCallback<void(bool)> reply) { + DCHECK(file_task_runner_->RunsTasksInCurrentSequence()); + DCHECK_LE(output.length(), + static_cast<size_t>(std::numeric_limits<int>::max())); + + // This object's destructor will ensure a reply (if |reply| is non-empty), + // regardless of which path is taken out of the function. + MaybeReplyWithBoolOnExit on_exit(std::move(reply), false); + + auto it = local_logs_.find(PeerConnectionKey{render_process_id, lid}); + if (it == local_logs_.end()) { + return; + } + + // Observe the file size limit, if any. Note that base::File's interface does + // not allow writing more than numeric_limits<int>::max() bytes at a time. + int output_len = static_cast<int>(output.length()); // DCHECKed above. + LogFile& log_file = it->second; + if (log_file.max_file_size_bytes != kUnlimitedFileSize) { + DCHECK_LT(log_file.file_size_bytes, log_file.max_file_size_bytes); + if (log_file.file_size_bytes + output.length() < log_file.file_size_bytes || + log_file.file_size_bytes + output.length() > + log_file.max_file_size_bytes) { + output_len = log_file.max_file_size_bytes - log_file.file_size_bytes; + } + } + + int written = log_file.file.WriteAtCurrentPos(output.c_str(), output_len); + if (written < 0 || written != output_len) { // Error + LOG(WARNING) << "WebRTC event log output couldn't be written to local " + "file in its entirety."; + CloseLocalLogFile(it); + return; + } + + // Truncated output due to exceeding the maximum is reported as an error - the + // caller is interested to know that not all of its output was written, + // regardless of the reason. + on_exit.value = (static_cast<size_t>(written) == output.length()); + + log_file.file_size_bytes += static_cast<size_t>(written); + if (log_file.max_file_size_bytes != kUnlimitedFileSize) { + DCHECK_LE(log_file.file_size_bytes, log_file.max_file_size_bytes); + if (log_file.file_size_bytes >= log_file.max_file_size_bytes) { + CloseLocalLogFile(it); + } + } +} + +void WebRtcEventLogManager::CloseLocalLogFile(LocalLogFilesMap::iterator it) { + DCHECK(file_task_runner_->RunsTasksInCurrentSequence()); + it->second.file.Flush(); + local_logs_.erase(it); // file.Close() called by destructor. +} + +} // namespace content
diff --git a/content/browser/webrtc/webrtc_event_log_manager.h b/content/browser/webrtc/webrtc_event_log_manager.h new file mode 100644 index 0000000..108e1c7 --- /dev/null +++ b/content/browser/webrtc/webrtc_event_log_manager.h
@@ -0,0 +1,151 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_WEBRTC_WEBRTC_RTC_EVENT_LOG_MANAGER_H_ +#define CONTENT_BROWSER_WEBRTC_WEBRTC_RTC_EVENT_LOG_MANAGER_H_ + +#include <map> +#include <string> + +#include "base/callback.h" +#include "base/files/file.h" +#include "base/files/file_path.h" +#include "base/lazy_instance.h" +#include "base/memory/scoped_refptr.h" +#include "base/sequenced_task_runner.h" +#include "base/time/clock.h" +#include "content/common/content_export.h" + +class WebrtcEventLogApiTest; + +namespace content { + +// This is a singleton class running in the browser UI thread. +// It is in charge of writing RTC event logs to temporary files, then uploading +// those files to remote servers, as well as of writing the logs to files which +// were manually indicated by the user from the WebRTCIntenals. (A log may +// simulatenously be written to both, either, or none.) +// TODO(eladalon): This currently only supports the old use-case - locally +// stored log files. An upcoming CL will add remote-support. +// https://crbug.com/775415 +class CONTENT_EXPORT WebRtcEventLogManager { + public: + static constexpr size_t kUnlimitedFileSize = 0; + + static WebRtcEventLogManager* GetInstance(); + + // Currently, we only support manual logs initiated by the user + // through WebRTCInternals, which are stored locally. + // TODO(eladalon): Allow starting/stopping an RTC event log + // that will be uploaded to the server. https://crbug.com/775415 + + // Starts logging the WebRTC event logs associated with the given renderer's + // process ID and the PeerConnection local ID, to a file whose path will + // be derived from |base_path|, and potentially subject to a maximum size. + // If the |reply| callback is non-empty, it will be posted back to the UI + // thread with either the FilePath used for the log (if the operation was + // successful), or with an empty FilePath (if the operation was unsuccessful). + void LocalWebRtcEventLogStart(int render_process_id, + int lid, // Renderer-local PeerConnection ID. + const base::FilePath& base_path, + size_t max_file_size_bytes, + base::OnceCallback<void(base::FilePath)> reply = + base::OnceCallback<void(base::FilePath)>()); + + // Stops an ongoing local WebRTC event log. + // If |reply| is non-empty, it will be posted back to the UI thread, along + // with true if there actually was a log to stop, or false otherwise. + void LocalWebRtcEventLogStop( + int render_process_id, + int lid, + base::OnceCallback<void(bool)> reply = base::OnceCallback<void(bool)>()); + + // Called when a new log fragment is sent from the renderer. This will + // potentially be written to a local WebRTC event log, a log destined for + // upload, or both. + void OnWebRtcEventLogWrite( + int render_process_id, + int lid, // Renderer-local PeerConnection ID. + const std::string& output, + base::OnceCallback<void(bool)> reply = base::OnceCallback<void(bool)>()); + + protected: + friend class ::WebrtcEventLogApiTest; + friend class WebRtcEventLogManagerTest; // unit tests inject a frozen clock. + // TODO(eladalon): Remove WebRtcEventLogHostTest and this friend declaration. + // https://crbug.com/775415 + friend class WebRtcEventlogHostTest; + friend struct base::LazyInstanceTraitsBase<WebRtcEventLogManager>; + + WebRtcEventLogManager(); + ~WebRtcEventLogManager(); + + void InjectClockForTesting(base::Clock* clock); + + base::FilePath GetLocalFilePath(const base::FilePath& base_path, + int render_process_id, + int lid); + + // For a given Chrome session, this is a unique key for PeerConnections. + // It's not, however, unique between sessions (after Chrome is restarted). + struct PeerConnectionKey { + bool operator<(const PeerConnectionKey& other) const { + if (render_process_id != other.render_process_id) { + return render_process_id < other.render_process_id; + } + return lid < other.lid; + } + int render_process_id; + int lid; // Renderer-local PeerConnection ID. + }; + + struct LogFile { + LogFile(base::File file, size_t max_file_size_bytes) + : file(std::move(file)), + max_file_size_bytes(max_file_size_bytes), + file_size_bytes(0) {} + base::File file; + const size_t max_file_size_bytes; + size_t file_size_bytes; + }; + + typedef std::map<PeerConnectionKey, LogFile> LocalLogFilesMap; + + // Handling of local log files (local-user-initiated; as opposed to logs + // requested by JS and bound to be uploaded to a remote server). + void StartLocalLogFile(int render_process_id, + int lid, // Renderer-local PeerConnection ID. + const base::FilePath& base_path, + size_t max_file_size_bytes, + base::OnceCallback<void(base::FilePath)> reply); + void StopLocalLogFile(int render_process_id, + int lid, + base::OnceCallback<void(bool)> reply); + void WriteToLocalLogFile(int render_process_id, + int lid, + const std::string& output, + base::OnceCallback<void(bool)> reply); + void CloseLocalLogFile(LocalLogFilesMap::iterator it); // Invalidates |it|. + + // For unit tests only, and specifically for unit tests that verify the + // filename format (derived from the current time as well as the renderer PID + // and PeerConnection local ID), we want to make sure that the time and date + // cannot change between the time the clock is read by the unit under test + // (namely WebRtcEventLogManager) and the time it's read by the test. + base::Clock* clock_for_testing_; + + // Local log files, stored at the behest of the user (via WebRTCInternals). + // TODO(eladalon): Add an additional container with logs that will be uploaded + // to the server. https://crbug.com/775415 + LocalLogFilesMap local_logs_; + + scoped_refptr<base::SequencedTaskRunner> file_task_runner_; + + private: + DISALLOW_COPY_AND_ASSIGN(WebRtcEventLogManager); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_WEBRTC_WEBRTC_RTC_EVENT_LOG_MANAGER_H_
diff --git a/content/browser/webrtc/webrtc_event_log_manager_unittest.cc b/content/browser/webrtc/webrtc_event_log_manager_unittest.cc new file mode 100644 index 0000000..11a107b --- /dev/null +++ b/content/browser/webrtc/webrtc_event_log_manager_unittest.cc
@@ -0,0 +1,569 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/webrtc/webrtc_event_log_manager.h" + +#include <algorithm> +#include <memory> +#include <numeric> +#include <string> +#include <vector> + +#include "base/bind.h" +#include "base/files/file_path.h" +#include "base/files/file_util.h" +#include "base/memory/ptr_util.h" +#include "base/run_loop.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_util.h" +#include "base/test/gtest_util.h" +#include "base/test/simple_test_clock.h" +#include "base/time/time.h" +#include "build/build_config.h" +#include "content/public/test/test_browser_thread_bundle.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if defined(OS_WIN) +#define IntToStringType base::IntToString16 +#else +#define IntToStringType base::IntToString +#endif + +namespace content { + +namespace { +struct PeerConnectionKey { + int render_process_id; + int lid; // Renderer-local PeerConnection ID. +}; + +enum class ExpectedResult : bool { kFailure = false, kSuccess = true }; +} // namespace + +class WebRtcEventLogManagerTest : public ::testing::Test { + protected: + WebRtcEventLogManagerTest() + : run_loop_(base::MakeUnique<base::RunLoop>()), + manager_(new WebRtcEventLogManager) { + EXPECT_TRUE( + base::CreateNewTempDirectory(FILE_PATH_LITERAL(""), &base_dir_)); + if (base_dir_.empty()) { + EXPECT_TRUE(false); + return; + } + base_path_ = base_dir_.Append(FILE_PATH_LITERAL("webrtc_event_log")); + } + + ~WebRtcEventLogManagerTest() override { + DestroyUnitUnderTest(); + if (!base_dir_.empty()) { + EXPECT_TRUE(base::DeleteFile(base_dir_, true)); + } + } + + void DestroyUnitUnderTest() { + if (manager_ != nullptr) { + delete manager_; // Raw pointer; see definition for rationale. + manager_ = nullptr; + } + } + + void WaitForReply() { + run_loop_->Run(); + run_loop_.reset(new base::RunLoop); // Allow re-blocking. + } + + void ExpectBoolReply(bool expected_value, bool value) { + EXPECT_EQ(expected_value, value); + run_loop_->QuitWhenIdle(); + } + + base::OnceCallback<void(bool)> ExpectBoolReplyClosure(bool expected_value) { + return base::BindOnce(&WebRtcEventLogManagerTest::ExpectBoolReply, + base::Unretained(this), expected_value); + } + + // With partial binding, we'll get a closure that will write the reply + // into a predefined destination. (Diverging from the style-guide by putting + // an output parameter first is necessary for partial binding.) + void OnFilePathReply(base::FilePath* out_path, base::FilePath value) { + *out_path = value; + run_loop_->QuitWhenIdle(); + } + + base::OnceCallback<void(base::FilePath)> FilePathReplyClosure( + base::FilePath* file_path) { + return base::BindOnce(&WebRtcEventLogManagerTest::OnFilePathReply, + base::Unretained(this), file_path); + } + + base::FilePath LocalWebRtcEventLogStart(int render_process_id, + int lid, + const base::FilePath& base_path, + size_t max_file_size) { + base::FilePath file_path; + manager_->LocalWebRtcEventLogStart(render_process_id, lid, base_path, + max_file_size, + FilePathReplyClosure(&file_path)); + WaitForReply(); + return file_path; + } + + void LocalWebRtcEventLogStop(int render_process_id, + int lid, + ExpectedResult expected_result) { + const bool expected_result_bool = static_cast<bool>(expected_result); + manager_->LocalWebRtcEventLogStop( + render_process_id, lid, ExpectBoolReplyClosure(expected_result_bool)); + WaitForReply(); + } + + void OnWebRtcEventLogWrite(int render_process_id, + int lid, + const std::string& output, + ExpectedResult expected_result) { + bool expected_result_bool = static_cast<bool>(expected_result); + manager_->OnWebRtcEventLogWrite( + render_process_id, lid, output, + ExpectBoolReplyClosure(expected_result_bool)); + WaitForReply(); + } + + void FreezeClockAt(const base::Time::Exploded& frozen_time_exploded) { + base::Time frozen_time; + ASSERT_TRUE( + base::Time::FromLocalExploded(frozen_time_exploded, &frozen_time)); + frozen_clock_.SetNow(frozen_time); + manager_->InjectClockForTesting(&frozen_clock_); + } + + // Common default values. + static constexpr int kRenderProcessId = 23; + static constexpr int kLocalPeerConnectionId = 478; + static constexpr size_t kMaxFileSizeBytes = 50000; + + // Testing utilities. + content::TestBrowserThreadBundle test_browser_thread_bundle_; + std::unique_ptr<base::RunLoop> run_loop_; // New instance allows reblocking. + base::SimpleTestClock frozen_clock_; + + // Unit under test. (Cannot be a unique_ptr because of its private ctor/dtor.) + WebRtcEventLogManager* manager_; + + base::FilePath base_dir_; // The directory where we'll save log files. + base::FilePath base_path_; // base_dir_ + log files' name prefix. +}; + +TEST_F(WebRtcEventLogManagerTest, LocalLogCreateEmptyFile) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, ""); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogCreateAndWriteToFile) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + const std::string log = "To strive, to seek, to find, and not to yield."; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log, + ExpectedResult::kSuccess); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, log); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogMultipleWritesToSameFile) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + const std::string logs[] = {"Old age hath yet his honour and his toil;", + "Death closes all: but something ere the end,", + "Some work of noble note, may yet be done,", + "Not unbecoming men that strove with Gods."}; + + for (const std::string& log : logs) { + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log, + ExpectedResult::kSuccess); + } + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, + std::accumulate(std::begin(logs), std::end(logs), std::string())); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogFileSizeLimitNotExceeded) { + const std::string log = "There lies the port; the vessel puffs her sail:"; + const size_t file_size_limit = log.length() / 2; + + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, file_size_limit); + ASSERT_FALSE(file_path.empty()); + + // A failure is reported, because not everything could be written. + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log, + ExpectedResult::kFailure); + + // The file has already been closed when Write() failed, since no further + // Write() is expected to have any effect. + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kFailure); + + // Additional calls to Write() have no effect. + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, "ignored", + ExpectedResult::kFailure); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, log.substr(0, file_size_limit)); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogSanityOverUnlimitedFileSizes) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, + WebRtcEventLogManager::kUnlimitedFileSize); + ASSERT_FALSE(file_path.empty()); + + const std::string log1 = "Who let the dogs out?"; + const std::string log2 = "Woof, woof, woof, woof, woof!"; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log1, + ExpectedResult::kSuccess); + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log2, + ExpectedResult::kSuccess); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, log1 + log2); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogNoWriteAfterLogStop) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + const std::string log_before = "log_before_stop"; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log_before, + ExpectedResult::kSuccess); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + const std::string log_after = "log_after_stop"; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log_after, + ExpectedResult::kFailure); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, log_before); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogOnlyWritesTheLogsAfterStart) { + // Calls to Write() before Start() are ignored. + const std::string log1 = "The lights begin to twinkle from the rocks:"; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log1, + ExpectedResult::kFailure); + ASSERT_TRUE(base::IsDirectoryEmpty(base_dir_)); + + // Calls after Start() have an effect. The calls to Write() from before + // Start() are not remembered. + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + const std::string log2 = "The long day wanes: the slow moon climbs: the deep"; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log2, + ExpectedResult::kSuccess); + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, log2); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogStopBeforeStartHasNoEffect) { + // Calls to Stop() before Start() are ignored. + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kFailure); + ASSERT_TRUE(base::IsDirectoryEmpty(base_dir_)); + + // The Stop() before does not leave any bad state behind. We can still + // Start() the log, Write() to it and Close() it. + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + const std::string log = "To err is canine; to forgive, feline."; + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log, + ExpectedResult::kSuccess); + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, log); +} + +// Note: This test also covers the scenario LocalLogExistingFilesNotOverwritten, +// which is therefore not explicitly tested. +TEST_F(WebRtcEventLogManagerTest, LocalLogRestartedLogCreatesNewFile) { + const std::vector<std::string> logs = {"<setup>", "<punchline>", "encore"}; + std::vector<base::FilePath> file_paths; + for (size_t i = 0; i < logs.size(); i++) { + file_paths.push_back( + LocalWebRtcEventLogStart(kRenderProcessId, kLocalPeerConnectionId, + base_path_, kMaxFileSizeBytes)); + ASSERT_FALSE(file_paths.back().empty()); + + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, logs[i], + ExpectedResult::kSuccess); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + } + + for (size_t i = 0; i < logs.size(); i++) { + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_paths[i], &file_contents)); + EXPECT_EQ(file_contents, logs[i]); + } +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogMultipleActiveFiles) { + const std::vector<PeerConnectionKey> keys = {{1, 2}, {2, 1}, {3, 4}, + {4, 3}, {5, 5}, {6, 7}}; + std::vector<std::string> logs; + std::vector<base::FilePath> file_paths; + + for (const auto& key : keys) { + file_paths.push_back(LocalWebRtcEventLogStart( + key.render_process_id, key.lid, base_path_, kMaxFileSizeBytes)); + ASSERT_FALSE(file_paths.back().empty()); + } + + for (size_t i = 0; i < keys.size(); i++) { + logs.emplace_back(std::to_string(kRenderProcessId) + + std::to_string(kLocalPeerConnectionId)); + OnWebRtcEventLogWrite(keys[i].render_process_id, keys[i].lid, logs[i], + ExpectedResult::kSuccess); + } + + for (size_t i = 0; i < keys.size(); i++) { + LocalWebRtcEventLogStop(keys[i].render_process_id, keys[i].lid, + ExpectedResult::kSuccess); + } + + for (size_t i = 0; i < keys.size(); i++) { + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_paths[i], &file_contents)); + EXPECT_EQ(file_contents, logs[i]); + } +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogSanityDestructorWithActiveFile) { + // We don't actually test that the file was closed, because this behavior + // is not supported - WebRtcEventLogManager's destructor may never be called, + // except for in unit-tests. + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + DestroyUnitUnderTest(); // Explicitly show destruction does not crash. +} + +// TODO(eladalon): Re-enable after handling https://crbug.com/786374 +TEST_F(WebRtcEventLogManagerTest, DISABLED_LocalLogIllegalPath) { + const base::FilePath illegal_path(FILE_PATH_LITERAL(":!@#$%|`^&*\\/")); + const base::FilePath file_path = + LocalWebRtcEventLogStart(kRenderProcessId, kLocalPeerConnectionId, + illegal_path, kMaxFileSizeBytes); + EXPECT_TRUE(file_path.empty()); + EXPECT_TRUE(base::IsDirectoryEmpty(base_dir_)); +} + +#if defined(OS_POSIX) +TEST_F(WebRtcEventLogManagerTest, LocalLogLegalPathWithoutPermissionsSanity) { + // Remove writing permissions from the entire directory. + int permissions; + ASSERT_TRUE(base::GetPosixFilePermissions(base_dir_, &permissions)); + constexpr int write_permissions = base::FILE_PERMISSION_WRITE_BY_USER | + base::FILE_PERMISSION_WRITE_BY_GROUP | + base::FILE_PERMISSION_WRITE_BY_OTHERS; + permissions &= ~write_permissions; + ASSERT_TRUE(base::SetPosixFilePermissions(base_dir_, permissions)); + + // Start() has no effect (but is handled gracefully). + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + EXPECT_TRUE(file_path.empty()); + EXPECT_TRUE(base::IsDirectoryEmpty(base_dir_)); + + // Write() has no effect (but is handled gracefully). + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, + "Why did the chicken cross the road?", + ExpectedResult::kFailure); + EXPECT_TRUE(base::IsDirectoryEmpty(base_dir_)); + + // Stop() has no effect (but is handled gracefully). + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kFailure); + EXPECT_TRUE(base::IsDirectoryEmpty(base_dir_)); +} +#endif + +TEST_F(WebRtcEventLogManagerTest, LocalLogEmptyStringHandledGracefully) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + // By writing a log after the empty string, we show that no odd behavior is + // encountered, such as closing the file (an actual bug from WebRTC). + const std::vector<std::string> logs = {"<setup>", "", "encore"}; + for (const auto& log : logs) { + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, log, + ExpectedResult::kSuccess); + } + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, + std::accumulate(std::begin(logs), std::end(logs), std::string())); +} + +// The logs would typically be binary. However, the other tests only cover ASCII +// characters, for readability. This test shows that this is not a problem. +TEST_F(WebRtcEventLogManagerTest, LocalLogAllPossibleCharacters) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + + std::string all_chars; + for (size_t i = 0; i < 256; i++) { + all_chars += static_cast<uint8_t>(i); + } + + OnWebRtcEventLogWrite(kRenderProcessId, kLocalPeerConnectionId, all_chars, + ExpectedResult::kSuccess); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, all_chars); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogFilenameMatchesExpectedFormat) { + using StringType = base::FilePath::StringType; + + const base::Time::Exploded frozen_time_exploded{ + 2017, // Four digit year "2007" + 9, // 1-based month (values 1 = January, etc.) + 3, // 0-based day of week (0 = Sunday, etc.) + 6, // 1-based day of month (1-31) + 10, // Hour within the current day (0-23) + 43, // Minute within the current hour (0-59) + 29, // Second within the current minute. + 0 // Milliseconds within the current second (0-999) + }; + ASSERT_TRUE(frozen_time_exploded.HasValidValues()); + FreezeClockAt(frozen_time_exploded); + + const StringType user_defined = FILE_PATH_LITERAL("user_defined"); + const base::FilePath base_path = base_dir_.Append(user_defined); + + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path, kMaxFileSizeBytes); + + // [user_defined]_[date]_[time]_[pid]_[lid].log + const StringType date = FILE_PATH_LITERAL("20170906"); + const StringType time = FILE_PATH_LITERAL("1043"); + base::FilePath expected_path = base_path; + expected_path = base_path.InsertBeforeExtension( + FILE_PATH_LITERAL("_") + date + FILE_PATH_LITERAL("_") + time + + FILE_PATH_LITERAL("_") + IntToStringType(kRenderProcessId) + + FILE_PATH_LITERAL("_") + IntToStringType(kLocalPeerConnectionId)); + expected_path = expected_path.AddExtension(FILE_PATH_LITERAL("log")); + + EXPECT_EQ(file_path, expected_path); +} + +TEST_F(WebRtcEventLogManagerTest, + LocalLogFilenameMatchesExpectedFormatRepeatedFilename) { + using StringType = base::FilePath::StringType; + + const base::Time::Exploded frozen_time_exploded{ + 2017, // Four digit year "2007" + 9, // 1-based month (values 1 = January, etc.) + 3, // 0-based day of week (0 = Sunday, etc.) + 6, // 1-based day of month (1-31) + 10, // Hour within the current day (0-23) + 43, // Minute within the current hour (0-59) + 29, // Second within the current minute. + 0 // Milliseconds within the current second (0-999) + }; + ASSERT_TRUE(frozen_time_exploded.HasValidValues()); + FreezeClockAt(frozen_time_exploded); + + const StringType user_defined_portion = + FILE_PATH_LITERAL("user_defined_portion"); + const base::FilePath base_path = base_dir_.Append(user_defined_portion); + + const base::FilePath file_path_1 = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path, kMaxFileSizeBytes); + + // [user_defined]_[date]_[time]_[pid]_[lid].log + const StringType date = FILE_PATH_LITERAL("20170906"); + const StringType time = FILE_PATH_LITERAL("1043"); + base::FilePath expected_path_1 = base_path; + expected_path_1 = base_path.InsertBeforeExtension( + FILE_PATH_LITERAL("_") + date + FILE_PATH_LITERAL("_") + time + + FILE_PATH_LITERAL("_") + IntToStringType(kRenderProcessId) + + FILE_PATH_LITERAL("_") + IntToStringType(kLocalPeerConnectionId)); + expected_path_1 = expected_path_1.AddExtension(FILE_PATH_LITERAL("log")); + + ASSERT_EQ(file_path_1, expected_path_1); + + LocalWebRtcEventLogStop(kRenderProcessId, kLocalPeerConnectionId, + ExpectedResult::kSuccess); + + const base::FilePath file_path_2 = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path, kMaxFileSizeBytes); + + const base::FilePath expected_path_2 = + expected_path_1.InsertBeforeExtension(FILE_PATH_LITERAL(" (1)")); + + // Focus of the test - starting the same log again produces a new file, + // with an expected new filename. + ASSERT_EQ(file_path_2, expected_path_2); +} + +TEST_F(WebRtcEventLogManagerTest, LocalLogMayNotBeStartedTwice) { + const base::FilePath file_path = LocalWebRtcEventLogStart( + kRenderProcessId, kLocalPeerConnectionId, base_path_, kMaxFileSizeBytes); + ASSERT_FALSE(file_path.empty()); + // Known issue - this always passes (whether LocalWebRtcEventLogStart crashes + // or not). http://crbug.com/787809 + EXPECT_DEATH_IF_SUPPORTED( + LocalWebRtcEventLogStart(kRenderProcessId, kLocalPeerConnectionId, + base_path_, kMaxFileSizeBytes), + ""); +} + +} // namespace content
diff --git a/content/browser/webrtc/webrtc_eventlog_host.cc b/content/browser/webrtc/webrtc_eventlog_host.cc index 42c0771b..6b44e5b 100644 --- a/content/browser/webrtc/webrtc_eventlog_host.cc +++ b/content/browser/webrtc/webrtc_eventlog_host.cc
@@ -4,63 +4,31 @@ #include "content/browser/webrtc/webrtc_eventlog_host.h" -#include <algorithm> -#include <string> - -#include "base/files/file_util.h" -#include "base/strings/string_number_conversions.h" #include "base/task_scheduler/post_task.h" #include "base/task_scheduler/task_traits.h" #include "base/threading/thread_restrictions.h" +#include "content/browser/webrtc/webrtc_event_log_manager.h" #include "content/browser/webrtc/webrtc_internals.h" #include "content/common/media/peer_connection_tracker_messages.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" -#if defined(OS_WIN) -#define IntToStringType base::IntToString16 -#else -#define IntToStringType base::IntToString -#endif - namespace content { namespace { -// In addition to the limit to the number of files given below, the size of the -// files is also capped, see content/renderer/media/peer_connection_tracker.cc. +// A lower maximum filesize is used on Android because storage space is +// more scarce on mobile. This upper limit applies to each peer connection +// individually, so the total amount of used storage can be a multiple of +// this. #if defined(OS_ANDROID) const int kMaxNumberLogFiles = 3; +constexpr int64_t kMaxLocalRtcEventLogFileSizeBytes = 10000000; #else const int kMaxNumberLogFiles = 5; +constexpr int64_t kMaxLocalRtcEventLogFileSizeBytes = 60000000; #endif -// Appends the IDs to the RTC event log file name. -base::FilePath GetWebRtcEventLogPath(const base::FilePath& base_file, - int render_process_id, - int connection_id) { - return base_file.AddExtension(IntToStringType(render_process_id)) - .AddExtension(IntToStringType(connection_id)); -} - -// Opens a logfile to pass on to the renderer. -IPC::PlatformFileForTransit CreateEventLogFileForChildProcess( - const base::FilePath& base_path, - int render_process_id, - int connection_id) { - base::AssertBlockingAllowed(); - base::FilePath file_path = - GetWebRtcEventLogPath(base_path, render_process_id, connection_id); - base::File event_log_file( - file_path, base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); - if (!event_log_file.IsValid()) { - PLOG(ERROR) << "Could not open WebRTC event log file, error=" - << event_log_file.error_details(); - return IPC::InvalidPlatformFileForTransit(); - } - return IPC::TakePlatformFileForTransit(std::move(event_log_file)); -} - } // namespace WebRTCEventLogHost::WebRTCEventLogHost(int render_process_id) @@ -70,13 +38,13 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); auto* webrtc_internals = WebRTCInternals::GetInstance(); if (webrtc_internals->IsEventLogRecordingsEnabled()) - StartWebRTCEventLog(webrtc_internals->GetEventLogFilePath()); + StartLocalWebRtcEventLogging(webrtc_internals->GetEventLogFilePath()); } WebRTCEventLogHost::~WebRTCEventLogHost() { DCHECK_CURRENTLY_ON(BrowserThread::UI); for (int lid : active_peer_connection_local_ids_) { - RtcEventLogRemoved(lid); + WebRtcEventLogRemoved(lid); } } @@ -102,21 +70,22 @@ if (lid != active_peer_connection_local_ids_.end()) { active_peer_connection_local_ids_.erase(lid); } - RtcEventLogRemoved(peer_connection_local_id); + WebRtcEventLogRemoved(peer_connection_local_id); } -bool WebRTCEventLogHost::StartWebRTCEventLog(const base::FilePath& file_path) { +bool WebRTCEventLogHost::StartLocalWebRtcEventLogging( + const base::FilePath& base_path) { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (rtc_event_logging_enabled_) return false; rtc_event_logging_enabled_ = true; - base_file_path_ = file_path; + base_file_path_ = base_path; for (int local_id : active_peer_connection_local_ids_) StartEventLogForPeerConnection(local_id); return true; } -bool WebRTCEventLogHost::StopWebRTCEventLog() { +bool WebRTCEventLogHost::StopLocalWebRtcEventLogging() { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (!rtc_event_logging_enabled_) { DCHECK(ActivePeerConnectionsWithLogFiles().empty()); @@ -125,8 +94,11 @@ rtc_event_logging_enabled_ = false; RenderProcessHost* host = RenderProcessHost::FromID(render_process_id_); if (host) { - for (int local_id : active_peer_connection_local_ids_) + for (int local_id : active_peer_connection_local_ids_) { host->Send(new PeerConnectionTracker_StopEventLog(local_id)); + WebRtcEventLogManager::GetInstance()->LocalWebRtcEventLogStop( + render_process_id_, local_id); + } } ActivePeerConnectionsWithLogFiles().clear(); return true; @@ -146,38 +118,19 @@ void WebRTCEventLogHost::StartEventLogForPeerConnection( int peer_connection_local_id) { - if (ActivePeerConnectionsWithLogFiles().size() < kMaxNumberLogFiles) { - RtcEventLogAdded(peer_connection_local_id); - base::PostTaskWithTraitsAndReplyWithResult( - FROM_HERE, {base::MayBlock(), base::TaskPriority::BACKGROUND}, - base::Bind(&CreateEventLogFileForChildProcess, base_file_path_, - render_process_id_, peer_connection_local_id), - base::Bind(&WebRTCEventLogHost::SendEventLogFileToRenderer, - weak_ptr_factory_.GetWeakPtr(), peer_connection_local_id)); - } -} - -void WebRTCEventLogHost::SendEventLogFileToRenderer( - int peer_connection_local_id, - IPC::PlatformFileForTransit file_for_transit) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - if (file_for_transit == IPC::InvalidPlatformFileForTransit()) { - bool removed = RtcEventLogRemoved(peer_connection_local_id); - DCHECK(removed); - return; - } - RenderProcessHost* rph = RenderProcessHost::FromID(render_process_id_); - if (rph) { - rph->Send(new PeerConnectionTracker_StartEventLog(peer_connection_local_id, - file_for_transit)); - } else { - bool removed = RtcEventLogRemoved(peer_connection_local_id); - DCHECK(removed); - IPC::PlatformFileForTransitToFile(file_for_transit).Close(); + RenderProcessHost* host = RenderProcessHost::FromID(render_process_id_); + if (host && ActivePeerConnectionsWithLogFiles().size() < kMaxNumberLogFiles) { + WebRtcEventLogAdded(peer_connection_local_id); + WebRtcEventLogManager::GetInstance()->LocalWebRtcEventLogStart( + render_process_id_, peer_connection_local_id, base_file_path_, + kMaxLocalRtcEventLogFileSizeBytes); + host->Send(new PeerConnectionTracker_StartEventLogOutput( + peer_connection_local_id)); } } -void WebRTCEventLogHost::RtcEventLogAdded(int peer_connection_local_id) { +void WebRTCEventLogHost::WebRtcEventLogAdded(int peer_connection_local_id) { DCHECK_CURRENTLY_ON(BrowserThread::UI); auto& active_peer_connections_with_log_files = ActivePeerConnectionsWithLogFiles(); @@ -188,7 +141,7 @@ active_peer_connections_with_log_files.push_back(pc_key); } -bool WebRTCEventLogHost::RtcEventLogRemoved(int peer_connection_local_id) { +bool WebRTCEventLogHost::WebRtcEventLogRemoved(int peer_connection_local_id) { DCHECK_CURRENTLY_ON(BrowserThread::UI); auto& active_peer_connections_with_log_files = ActivePeerConnectionsWithLogFiles();
diff --git a/content/browser/webrtc/webrtc_eventlog_host.h b/content/browser/webrtc/webrtc_eventlog_host.h index ca08e20..aca2d62e 100644 --- a/content/browser/webrtc/webrtc_eventlog_host.h +++ b/content/browser/webrtc/webrtc_eventlog_host.h
@@ -10,7 +10,6 @@ #include "base/files/file_path.h" #include "base/memory/weak_ptr.h" #include "content/common/content_export.h" -#include "ipc/ipc_platform_file.h" namespace content { @@ -22,15 +21,17 @@ explicit WebRTCEventLogHost(int render_process_id); ~WebRTCEventLogHost(); - // Starts an RTC event log for all current and future PeerConnections on the - // render process. A base file_path can be supplied, which will be extended to - // include several identifiers to ensure uniqueness. If a recording was - // already in progress, this call will return false and have no other effect. - bool StartWebRTCEventLog(const base::FilePath& file_path); + // Starts WebRTC event logging to local files for all current and future + // PeerConnections on the render process. A base file_path must be supplied, + // which will be extended to include several identifiers to ensure uniqueness. + // If local WebRTC event logging was already in progress, this call will + // return false and have no other effect. + bool StartLocalWebRtcEventLogging(const base::FilePath& base_path); - // Stops recording an RTC event log for each PeerConnection on the render - // process. If no recording was in progress, this call will return false. - bool StopWebRTCEventLog(); + // Stops recording of WebRTC event logs into local files for each + // PeerConnection on the render process. If local WebRTC event logging wasn't + // active, this call will return false. + bool StopLocalWebRtcEventLogging(); // This function should be used to notify the WebRTCEventLogHost object that a // PeerConnection was created in the corresponding render process. @@ -58,15 +59,11 @@ // stored in base_file_path_. void StartEventLogForPeerConnection(int peer_connection_local_id); - // Send the platform file to the render process using an IPC message. - void SendEventLogFileToRenderer(int peer_connection_local_id, - IPC::PlatformFileForTransit file_for_transit); - // Management of |active_peer_connections_with_log_files_|, which tracks // which PCs have associated log files. - // RtcEventLogRemoved() returns whether actual removal took place. - void RtcEventLogAdded(int peer_connection_local_id); - bool RtcEventLogRemoved(int peer_connection_local_id); + // WebRtcEventLogRemoved() returns whether actual removal took place. + void WebRtcEventLogAdded(int peer_connection_local_id); + bool WebRtcEventLogRemoved(int peer_connection_local_id); // The render process ID that this object is associated with. const int render_process_id_;
diff --git a/content/browser/webrtc/webrtc_eventlog_host_unittest.cc b/content/browser/webrtc/webrtc_eventlog_host_unittest.cc index 92033a4..6f60c06 100644 --- a/content/browser/webrtc/webrtc_eventlog_host_unittest.cc +++ b/content/browser/webrtc/webrtc_eventlog_host_unittest.cc
@@ -12,8 +12,11 @@ #include "base/strings/string_number_conversions.h" #include "base/task_scheduler/post_task.h" #include "base/task_scheduler/task_traits.h" +#include "base/test/simple_test_clock.h" +#include "base/time/time.h" #include "build/build_config.h" #include "content/browser/renderer_host/render_process_host_impl.h" +#include "content/browser/webrtc/webrtc_event_log_manager.h" #include "content/common/media/peer_connection_tracker_messages.h" #include "content/public/browser/browser_context.h" #include "content/public/test/mock_render_process_host.h" @@ -28,21 +31,15 @@ #define IntToStringType base::IntToString #endif +// These tests work fine when executed separately, but crash when we run them in +// sequence, because the WebRtcEventLogManager that's hiding behind +// WebRtcEventlogHost is a singleton, so it outlives the tests, but its +// thread doesn't. This is not a problem, because we provide the same coverage +// in WebRtcEventLogManager's unit-tests. +// TODO(eladalon): Remove this unit and its tests. https://crbug.com/775415 + namespace content { -namespace { - -// Get the expected Rtc eventlog file name. The name will be -// <temporary path>.<render process id>.<peer connection local id> -base::FilePath GetExpectedEventLogFileName(const base::FilePath& base_file, - int render_process_id, - int peer_connection_local_id) { - return base_file.AddExtension(IntToStringType(render_process_id)) - .AddExtension(IntToStringType(peer_connection_local_id)); -} - -} // namespace - class WebRtcEventlogHostTest : public testing::Test { public: WebRtcEventlogHostTest() @@ -50,7 +47,13 @@ mock_render_process_factory_.CreateRenderProcessHost( &test_browser_context_))), render_id_(mock_render_process_host_->GetID()), - event_log_host_(render_id_) {} + event_log_host_(render_id_), + manager_(WebRtcEventLogManager::GetInstance()) { + // Set the real time, but don't let it change, to prevent flaky tests + // due to misaligned expectations of the time-derived filenames. + test_clock_.SetNow(base::Time::Now()); + manager_->InjectClockForTesting(&test_clock_); + } TestBrowserThreadBundle thread_bundle_; MockRenderProcessHostFactory mock_render_process_factory_; TestBrowserContext test_browser_context_; @@ -58,42 +61,37 @@ const int render_id_; WebRTCEventLogHost event_log_host_; base::FilePath base_file_; + base::SimpleTestClock test_clock_; + WebRtcEventLogManager* const manager_; void StartLogging() { ASSERT_TRUE(base::CreateTemporaryFile(&base_file_)); EXPECT_TRUE(base::DeleteFile(base_file_, false)); EXPECT_FALSE(base::PathExists(base_file_)); - EXPECT_TRUE(event_log_host_.StartWebRTCEventLog(base_file_)); + EXPECT_TRUE(event_log_host_.StartLocalWebRtcEventLogging(base_file_)); RunAllTasksUntilIdle(); } void StopLogging() { - EXPECT_TRUE(event_log_host_.StopWebRTCEventLog()); + EXPECT_TRUE(event_log_host_.StopLocalWebRtcEventLogging()); RunAllTasksUntilIdle(); } - void ValidateStartIPCMessageAndCloseFile(const IPC::Message* msg, - const int peer_connection_id) { + void ValidateStartIPCMessage(const IPC::Message* msg, + const int peer_connection_id) { ASSERT_TRUE(msg); - std::tuple<int, IPC::PlatformFileForTransit> start_params; - PeerConnectionTracker_StartEventLog::Read(msg, &start_params); + std::tuple<int> start_params; + PeerConnectionTracker_StartEventLogOutput::Read(msg, &start_params); EXPECT_EQ(peer_connection_id, std::get<0>(start_params)); - ASSERT_NE(IPC::InvalidPlatformFileForTransit(), std::get<1>(start_params)); - IPC::PlatformFileForTransitToFile(std::get<1>(start_params)).Close(); } // This version of the function returns the peer connection ID instead of // validating it. - int ReadStartIPCMessageAndCloseFile(const IPC::Message* msg) { + int ReadStartIPCMessage(const IPC::Message* msg) { EXPECT_TRUE(msg); if (msg) { - std::tuple<int, IPC::PlatformFileForTransit> start_params; - PeerConnectionTracker_StartEventLog::Read(msg, &start_params); - EXPECT_NE(IPC::InvalidPlatformFileForTransit(), - std::get<1>(start_params)); - if (std::get<1>(start_params) != IPC::InvalidPlatformFileForTransit()) { - IPC::PlatformFileForTransitToFile(std::get<1>(start_params)).Close(); - } + std::tuple<int> start_params; + PeerConnectionTracker_StartEventLogOutput::Read(msg, &start_params); return std::get<0>(start_params); } return -1; @@ -118,11 +116,19 @@ } return -1; } + + base::FilePath GetExpectedEventLogFileName(const base::FilePath& base_file, + int render_process_id, + int peer_connection_local_id) { + return manager_->GetLocalFilePath(base_file, render_process_id, + peer_connection_local_id); + } }; -// This test calls StartWebRTCEventLog() and StopWebRTCEventLog() without having -// added any PeerConnections. It is expected that no IPC messages will be sent. -TEST_F(WebRtcEventlogHostTest, NoPeerConnectionTest) { +// This test calls StartLocalWebRtcEventLogging() and +// StopLocalWebRtcEventLogging() without having added any PeerConnections. It is +// expected that no IPC messages will be sent. +TEST_F(WebRtcEventlogHostTest, DISABLED_NoPeerConnectionTest) { mock_render_process_host_->sink().ClearMessages(); // Start logging and check that no IPC messages were sent. @@ -134,10 +140,11 @@ EXPECT_EQ(size_t(0), mock_render_process_host_->sink().message_count()); } -// This test calls StartWebRTCEventLog() and StopWebRTCEventLog() after adding a -// single PeerConnection. It is expected that one IPC message will be sent for -// each of the Start and Stop calls, and that a logfile is created. -TEST_F(WebRtcEventlogHostTest, OnePeerConnectionTest) { +// This test calls StartLocalWebRtcEventLogging() and +// StopLocalWebRtcEventLogging() after adding a single PeerConnection. It is +// expected that one IPC message will be sent for each of the Start and Stop +// calls, and that a logfile is created. +TEST_F(WebRtcEventlogHostTest, DISABLED_OnePeerConnectionTest) { const int kTestPeerConnectionId = 123; mock_render_process_host_->sink().ClearMessages(); @@ -149,7 +156,7 @@ EXPECT_EQ(size_t(1), mock_render_process_host_->sink().message_count()); const IPC::Message* start_msg = mock_render_process_host_->sink().GetMessageAt(0); - ValidateStartIPCMessageAndCloseFile(start_msg, kTestPeerConnectionId); + ValidateStartIPCMessage(start_msg, kTestPeerConnectionId); // Stop logging. mock_render_process_host_->sink().ClearMessages(); @@ -168,12 +175,12 @@ EXPECT_TRUE(base::DeleteFile(expected_file, false)); } -// This test calls StartWebRTCEventLog() and StopWebRTCEventLog() after adding -// two PeerConnections. It is expected that two IPC messages will be sent for -// each of the Start and Stop calls, and that a file is created for both -// PeerConnections. +// This test calls StartLocalWebRtcEventLogging() and +// StopLocalWebRtcEventLogging() after adding two PeerConnections. It is +// expected that two IPC messages will be sent for each of the Start and Stop +// calls, and that a file is created for both PeerConnections. -TEST_F(WebRtcEventlogHostTest, TwoPeerConnectionsTest) { +TEST_F(WebRtcEventlogHostTest, DISABLED_TwoPeerConnectionsTest) { const int kTestPeerConnectionId1 = 123; const int kTestPeerConnectionId2 = 321; mock_render_process_host_->sink().ClearMessages(); @@ -187,10 +194,10 @@ EXPECT_EQ(size_t(2), mock_render_process_host_->sink().message_count()); const IPC::Message* start_msg1 = mock_render_process_host_->sink().GetMessageAt(0); - int start_msg1_id = ReadStartIPCMessageAndCloseFile(start_msg1); + int start_msg1_id = ReadStartIPCMessage(start_msg1); const IPC::Message* start_msg2 = mock_render_process_host_->sink().GetMessageAt(1); - int start_msg2_id = ReadStartIPCMessageAndCloseFile(start_msg2); + int start_msg2_id = ReadStartIPCMessage(start_msg2); const std::set<int> expected_ids = {kTestPeerConnectionId1, kTestPeerConnectionId2}; @@ -224,12 +231,12 @@ EXPECT_TRUE(base::DeleteFile(expected_file2, false)); } -// This test calls StartWebRTCEventLog() and StopWebRTCEventLog() after adding -// more PeerConnections than the maximum allowed. It is expected that only the -// maximum allowed number of IPC messages and log files will be opened, but we -// expect the number of stop IPC messages to be equal to the actual number of -// PeerConnections. -TEST_F(WebRtcEventlogHostTest, ExceedMaxPeerConnectionsTest) { +// This test calls StartLocalWebRtcEventLogging() and +// StopLocalWebRtcEventLogging() after adding more PeerConnections than the +// maximum allowed. It is expected that only the maximum allowed number of IPC +// messages and log files will be opened, but we expect the number of stop IPC +// messages to be equal to the actual number of PeerConnections. +TEST_F(WebRtcEventlogHostTest, DISABLED_ExceedMaxPeerConnectionsTest) { #if defined(OS_ANDROID) const int kMaxNumberLogFiles = 3; #else @@ -251,7 +258,7 @@ for (int i = 0; i < kMaxNumberLogFiles; ++i) { const IPC::Message* start_msg = mock_render_process_host_->sink().GetMessageAt(i); - int id = ReadStartIPCMessageAndCloseFile(start_msg); + int id = ReadStartIPCMessage(start_msg); actual_ids.insert(id); expected_ids.insert(i); } @@ -293,10 +300,10 @@ } } -// This test calls StartWebRTCEventLog() and StopWebRTCEventLog() after first -// adding and then removing a single PeerConnection. It is expected that no IPC -// message will be sent. -TEST_F(WebRtcEventlogHostTest, AddRemovePeerConnectionTest) { +// This test calls StartLocalWebRtcEventLogging() and +// StopLocalWebRtcEventLogging() after first adding and then removing a single +// PeerConnection. It is expected that no IPC message will be sent. +TEST_F(WebRtcEventlogHostTest, DISABLED_AddRemovePeerConnectionTest) { const int kTestPeerConnectionId = 123; mock_render_process_host_->sink().ClearMessages();
diff --git a/content/browser/webrtc/webrtc_internals.cc b/content/browser/webrtc/webrtc_internals.cc index 7ffa0ad6..3b61e9c 100644 --- a/content/browser/webrtc/webrtc_internals.cc +++ b/content/browser/webrtc/webrtc_internals.cc
@@ -268,7 +268,7 @@ // Disables event log and audio debug recordings if enabled and the last // webrtc-internals page is going away. DisableAudioDebugRecordings(); - DisableEventLogRecordings(); + DisableLocalEventLogRecordings(); // TODO(tommi): Consider removing all the peer_connection_data_. for (auto& dictionary : peer_connection_data_) @@ -343,12 +343,12 @@ return audio_debug_recordings_file_path_; } -void WebRTCInternals::EnableEventLogRecordings( +void WebRTCInternals::EnableLocalEventLogRecordings( content::WebContents* web_contents) { DCHECK_CURRENTLY_ON(BrowserThread::UI); #if BUILDFLAG(ENABLE_WEBRTC) #if defined(OS_ANDROID) - EnableEventLogRecordingsOnAllRenderProcessHosts(); + EnableLocalEventLogRecordingsOnAllRenderProcessHosts(); #else DCHECK(web_contents); DCHECK(!select_file_dialog_); @@ -362,7 +362,7 @@ #endif } -void WebRTCInternals::DisableEventLogRecordings() { +void WebRTCInternals::DisableLocalEventLogRecordings() { #if BUILDFLAG(ENABLE_WEBRTC) event_log_recordings_ = false; // Tear down the dialog since the user has unchecked the event log checkbox. @@ -370,7 +370,7 @@ for (RenderProcessHost::iterator i( content::RenderProcessHost::AllHostsIterator()); !i.IsAtEnd(); i.Advance()) - i.GetCurrentValue()->StopWebRTCEventLog(); + i.GetCurrentValue()->StopLocalWebRtcEventLogging(); #endif } @@ -418,7 +418,7 @@ switch (selection_type_) { case SelectionType::kRtcEventLogs: event_log_recordings_file_path_ = path; - EnableEventLogRecordingsOnAllRenderProcessHosts(); + EnableLocalEventLogRecordingsOnAllRenderProcessHosts(); break; case SelectionType::kAudioDebugRecordings: audio_debug_recordings_file_path_ = path; @@ -523,14 +523,15 @@ audio_debug_recordings_file_path_)); } -void WebRTCInternals::EnableEventLogRecordingsOnAllRenderProcessHosts() { +void WebRTCInternals::EnableLocalEventLogRecordingsOnAllRenderProcessHosts() { DCHECK_CURRENTLY_ON(BrowserThread::UI); event_log_recordings_ = true; for (RenderProcessHost::iterator i( content::RenderProcessHost::AllHostsIterator()); !i.IsAtEnd(); i.Advance()) - i.GetCurrentValue()->StartWebRTCEventLog(event_log_recordings_file_path_); + i.GetCurrentValue()->StartLocalWebRtcEventLogging( + event_log_recordings_file_path_); } #endif
diff --git a/content/browser/webrtc/webrtc_internals.h b/content/browser/webrtc/webrtc_internals.h index 40c23c6..ed8a429 100644 --- a/content/browser/webrtc/webrtc_internals.h +++ b/content/browser/webrtc/webrtc_internals.h
@@ -101,8 +101,8 @@ const base::FilePath& GetAudioDebugRecordingsFilePath() const; // Enables or disables diagnostic event log. - void EnableEventLogRecordings(content::WebContents* web_contents); - void DisableEventLogRecordings(); + void EnableLocalEventLogRecordings(content::WebContents* web_contents); + void DisableLocalEventLogRecordings(); bool IsEventLogRecordingsEnabled() const; const base::FilePath& GetEventLogFilePath() const; @@ -153,9 +153,9 @@ // |audio_debug_recordings_file_path_|. void EnableAudioDebugRecordingsOnAllRenderProcessHosts(); - // Enables event log recordings on all render process hosts using + // Enables local WebRTC event log recordings on all render process hosts using // |event_log_recordings_file_path_|. - void EnableEventLogRecordingsOnAllRenderProcessHosts(); + void EnableLocalEventLogRecordingsOnAllRenderProcessHosts(); #endif // Updates the number of open PeerConnections. Called when a PeerConnection
diff --git a/content/browser/webrtc/webrtc_internals_message_handler.cc b/content/browser/webrtc/webrtc_internals_message_handler.cc index 70e5de6..1e744256 100644 --- a/content/browser/webrtc/webrtc_internals_message_handler.cc +++ b/content/browser/webrtc/webrtc_internals_message_handler.cc
@@ -99,9 +99,10 @@ bool enable, const base::ListValue* /* unused_list */) { if (enable) { - webrtc_internals_->EnableEventLogRecordings(web_ui()->GetWebContents()); + webrtc_internals_->EnableLocalEventLogRecordings( + web_ui()->GetWebContents()); } else { - webrtc_internals_->DisableEventLogRecordings(); + webrtc_internals_->DisableLocalEventLogRecordings(); } }
diff --git a/content/common/media/peer_connection_tracker_messages.h b/content/common/media/peer_connection_tracker_messages.h index 290bf3f..63b1d41 100644 --- a/content/common/media/peer_connection_tracker_messages.h +++ b/content/common/media/peer_connection_tracker_messages.h
@@ -41,13 +41,18 @@ // not be parsed by the browser for security reasons. std::string /* audio_constraints */, std::string /* video_constraints */) +IPC_MESSAGE_CONTROL2(PeerConnectionTrackerHost_WebRtcEventLogWrite, + int /* lid */, + std::string /* output */) // Messages sent to PeerConnectionTracker. IPC_MESSAGE_CONTROL0(PeerConnectionTracker_GetAllStats) IPC_MESSAGE_CONTROL0(PeerConnectionTracker_OnSuspend) -IPC_MESSAGE_CONTROL2(PeerConnectionTracker_StartEventLog, +IPC_MESSAGE_CONTROL2(PeerConnectionTracker_StartEventLogFile, int /* peer_connection_local_id */, IPC::PlatformFileForTransit /* file */) +IPC_MESSAGE_CONTROL1(PeerConnectionTracker_StartEventLogOutput, + int /* peer_connection_local_id */) IPC_MESSAGE_CONTROL1(PeerConnectionTracker_StopEventLog, int /* peer_connection_local_id */)
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h index a2994ce..5855634 100644 --- a/content/public/browser/render_process_host.h +++ b/content/public/browser/render_process_host.h
@@ -262,15 +262,17 @@ virtual void EnableAudioDebugRecordings(const base::FilePath& file) = 0; virtual void DisableAudioDebugRecordings() = 0; - // Starts a WebRTC event log for each peerconnection on the render process. - // A base file_path can be supplied, which will be extended to include several - // identifiers to ensure uniqueness. If a recording was already in progress, - // this call will return false and have no other effect. - virtual bool StartWebRTCEventLog(const base::FilePath& file_path) = 0; + // Starts a local WebRTC event log for each peerconnection on the render + // process. A base_path must be supplied, which will be extended to include + // several identifiers to ensure uniqueness. If a recording was already in + // progress, this call will return false and have no other effect. + virtual bool StartLocalWebRtcEventLogging( + const base::FilePath& base_path) = 0; - // Stops recording a WebRTC event log for each peerconnection on the render - // process. If no recording was in progress, this call will return false. - virtual bool StopWebRTCEventLog() = 0; + // Stops local recording of WebRTC events log for all peerconnections on the + // render process. If no recording was in progress, this call will return + // false. + virtual bool StopLocalWebRtcEventLogging() = 0; // Enables or disables WebRTC's echo canceller AEC3. Disabled implies // selecting the older AEC2. The operation is asynchronous, |callback| is run
diff --git a/content/public/test/mock_render_process_host.cc b/content/public/test/mock_render_process_host.cc index aa65ae5d..d283411 100644 --- a/content/public/test/mock_render_process_host.cc +++ b/content/public/test/mock_render_process_host.cc
@@ -405,12 +405,12 @@ void MockRenderProcessHost::DisableAudioDebugRecordings() {} -bool MockRenderProcessHost::StartWebRTCEventLog( - const base::FilePath& file_path) { +bool MockRenderProcessHost::StartLocalWebRtcEventLogging( + const base::FilePath& base_path) { return false; } -bool MockRenderProcessHost::StopWebRTCEventLog() { +bool MockRenderProcessHost::StopLocalWebRtcEventLogging() { return false; }
diff --git a/content/public/test/mock_render_process_host.h b/content/public/test/mock_render_process_host.h index f1839288..2206b8c 100644 --- a/content/public/test/mock_render_process_host.h +++ b/content/public/test/mock_render_process_host.h
@@ -107,8 +107,8 @@ #if BUILDFLAG(ENABLE_WEBRTC) void EnableAudioDebugRecordings(const base::FilePath& file) override; void DisableAudioDebugRecordings() override; - bool StartWebRTCEventLog(const base::FilePath& file_path) override; - bool StopWebRTCEventLog() override; + bool StartLocalWebRtcEventLogging(const base::FilePath& base_path) override; + bool StopLocalWebRtcEventLogging() override; void SetEchoCanceller3( bool enable, base::OnceCallback<void(bool, const std::string&)> callback) override;
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index 8ee24aa..36d95599 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -773,6 +773,9 @@ "media/rtc_data_channel_handler.h", "media/rtc_dtmf_sender_handler.cc", "media/rtc_dtmf_sender_handler.h", + "media/rtc_event_log_output_sink.h", + "media/rtc_event_log_output_sink_proxy.cc", + "media/rtc_event_log_output_sink_proxy.h", "media/rtc_peer_connection_handler.cc", "media/rtc_peer_connection_handler.h", "media/secure_display_link_tracker.h", @@ -914,6 +917,7 @@ "//jingle:jingle_glue", "//third_party/libvpx", "//third_party/opus", + "//third_party/webrtc/api:libjingle_logging_api", "//third_party/webrtc/api:libjingle_peerconnection", "//third_party/webrtc/api:optional", "//third_party/webrtc/api:rtc_stats_api",
diff --git a/content/renderer/media/peer_connection_tracker.cc b/content/renderer/media/peer_connection_tracker.cc index de9a77bd..fb93726e 100644 --- a/content/renderer/media/peer_connection_tracker.cc +++ b/content/renderer/media/peer_connection_tracker.cc
@@ -366,7 +366,10 @@ IPC_BEGIN_MESSAGE_MAP(PeerConnectionTracker, message) IPC_MESSAGE_HANDLER(PeerConnectionTracker_GetAllStats, OnGetAllStats) IPC_MESSAGE_HANDLER(PeerConnectionTracker_OnSuspend, OnSuspend) - IPC_MESSAGE_HANDLER(PeerConnectionTracker_StartEventLog, OnStartEventLog) + IPC_MESSAGE_HANDLER(PeerConnectionTracker_StartEventLogFile, + OnStartEventLogFile) + IPC_MESSAGE_HANDLER(PeerConnectionTracker_StartEventLogOutput, + OnStartEventLogOutput) IPC_MESSAGE_HANDLER(PeerConnectionTracker_StopEventLog, OnStopEventLog) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() @@ -404,14 +407,15 @@ } } -void PeerConnectionTracker::OnStartEventLog(int peer_connection_id, - IPC::PlatformFileForTransit file) { +void PeerConnectionTracker::OnStartEventLogFile( + int peer_connection_id, + IPC::PlatformFileForTransit file) { DCHECK(main_thread_.CalledOnValidThread()); for (auto& it : peer_connection_id_map_) { if (it.second == peer_connection_id) { #if defined(OS_ANDROID) // A lower maximum filesize is used on Android because storage space is - // more scarce on mobile. This upper limit applies to each peerconnection + // more scarce on mobile. This upper limit applies to each peer connection // individually, so the total amount of used storage can be a multiple of // this. const int64_t kMaxFilesizeBytes = 10000000; @@ -424,6 +428,16 @@ } } +void PeerConnectionTracker::OnStartEventLogOutput(int peer_connection_id) { + DCHECK(main_thread_.CalledOnValidThread()); + for (auto& it : peer_connection_id_map_) { + if (it.second == peer_connection_id) { + it.first->StartEventLog(); + return; + } + } +} + void PeerConnectionTracker::OnStopEventLog(int peer_connection_id) { DCHECK(main_thread_.CalledOnValidThread()); for (auto& it : peer_connection_id_map_) { @@ -721,6 +735,17 @@ SerializeMediaConstraints(user_media_request.VideoConstraints()))); } +void PeerConnectionTracker::TrackRtcEventLogWrite( + RTCPeerConnectionHandler* pc_handler, + const std::string& output) { + DCHECK(main_thread_.CalledOnValidThread()); + int id = GetLocalIDForHandler(pc_handler); + if (id == -1) + return; + SendTarget()->Send( + new PeerConnectionTrackerHost_WebRtcEventLogWrite(id, output)); +} + int PeerConnectionTracker::GetNextLocalID() { DCHECK(main_thread_.CalledOnValidThread()); if (next_local_id_< 0)
diff --git a/content/renderer/media/peer_connection_tracker.h b/content/renderer/media/peer_connection_tracker.h index 8bbcbe3..b9ad8cda 100644 --- a/content/renderer/media/peer_connection_tracker.h +++ b/content/renderer/media/peer_connection_tracker.h
@@ -167,6 +167,10 @@ virtual void TrackGetUserMedia( const blink::WebUserMediaRequest& user_media_request); + // Sends a new fragment on an RtcEventLog. + virtual void TrackRtcEventLogWrite(RTCPeerConnectionHandler* pc_handler, + const std::string& output); + // For testing: Override the class that gets posted messages. void OverrideSendTargetForTesting(RenderThread* target); @@ -186,9 +190,15 @@ // Called when the browser process reports a suspend event from the OS. void OnSuspend(); - // IPC Message handler for starting event log. - void OnStartEventLog(int peer_connection_id, - IPC::PlatformFileForTransit file); + // TODO(eladalon): Remove OnStartEventLogFile() and then rename + // OnStartEventLogOutput() to OnStartEventLog(). https://crbug.com/775415 + + // IPC Message handler for starting event log (file). + void OnStartEventLogFile(int peer_connection_id, + IPC::PlatformFileForTransit file); + + // IPC Message handler for starting event log (output). + void OnStartEventLogOutput(int peer_connection_id); // IPC Message handler for stopping event log. void OnStopEventLog(int peer_connection_id);
diff --git a/content/renderer/media/rtc_event_log_output_sink.h b/content/renderer/media/rtc_event_log_output_sink.h new file mode 100644 index 0000000..8a44d8b --- /dev/null +++ b/content/renderer/media/rtc_event_log_output_sink.h
@@ -0,0 +1,21 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_MEDIA_RTC_EVENT_LOG_OUTPUT_SINK_H_ +#define CONTENT_RENDERER_MEDIA_RTC_EVENT_LOG_OUTPUT_SINK_H_ + +#include <string> + +namespace content { + +class RtcEventLogOutputSink { + public: + virtual ~RtcEventLogOutputSink() = default; + + virtual void OnWebRtcEventLogWrite(const std::string& output) = 0; +}; + +} // namespace content + +#endif // CONTENT_RENDERER_MEDIA_RTC_EVENT_LOG_OUTPUT_SINK_H_
diff --git a/content/renderer/media/rtc_event_log_output_sink_proxy.cc b/content/renderer/media/rtc_event_log_output_sink_proxy.cc new file mode 100644 index 0000000..ad2500b --- /dev/null +++ b/content/renderer/media/rtc_event_log_output_sink_proxy.cc
@@ -0,0 +1,27 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/renderer/media/rtc_event_log_output_sink_proxy.h" +#include "base/logging.h" + +namespace content { + +RtcEventLogOutputSinkProxy::RtcEventLogOutputSinkProxy( + RtcEventLogOutputSink* sink) + : sink_(sink) { + CHECK(sink_); +} + +RtcEventLogOutputSinkProxy::~RtcEventLogOutputSinkProxy() = default; + +bool RtcEventLogOutputSinkProxy::IsActive() const { + return true; // Active until the proxy is destroyed. +} + +bool RtcEventLogOutputSinkProxy::Write(const std::string& output) { + sink_->OnWebRtcEventLogWrite(output); + return true; +} + +} // namespace content
diff --git a/content/renderer/media/rtc_event_log_output_sink_proxy.h b/content/renderer/media/rtc_event_log_output_sink_proxy.h new file mode 100644 index 0000000..abe5fec4c --- /dev/null +++ b/content/renderer/media/rtc_event_log_output_sink_proxy.h
@@ -0,0 +1,28 @@ +// Copyright (c) 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_MEDIA_RTC_EVENT_LOG_OUTPUT_SINK_PROXY_H_ +#define CONTENT_RENDERER_MEDIA_RTC_EVENT_LOG_OUTPUT_SINK_PROXY_H_ + +#include "content/renderer/media/rtc_event_log_output_sink.h" +#include "third_party/webrtc/api/rtceventlogoutput.h" + +namespace content { + +class RtcEventLogOutputSinkProxy final : public webrtc::RtcEventLogOutput { + public: + RtcEventLogOutputSinkProxy(RtcEventLogOutputSink* sink); + ~RtcEventLogOutputSinkProxy() override; + + bool IsActive() const override; + + bool Write(const std::string& output) override; + + private: + RtcEventLogOutputSink* const sink_; +}; + +} // namespace content + +#endif // CONTENT_RENDERER_MEDIA_RTC_EVENT_LOG_OUTPUT_SINK_PROXY_H_
diff --git a/content/renderer/media/rtc_peer_connection_handler.cc b/content/renderer/media/rtc_peer_connection_handler.cc index fd3f94f..ebbee5a 100644 --- a/content/renderer/media/rtc_peer_connection_handler.cc +++ b/content/renderer/media/rtc_peer_connection_handler.cc
@@ -27,6 +27,8 @@ #include "content/renderer/media/rtc_certificate.h" #include "content/renderer/media/rtc_data_channel_handler.h" #include "content/renderer/media/rtc_dtmf_sender_handler.h" +#include "content/renderer/media/rtc_event_log_output_sink.h" +#include "content/renderer/media/rtc_event_log_output_sink_proxy.h" #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" #include "content/renderer/media/webrtc/rtc_stats.h" #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h" @@ -48,6 +50,7 @@ #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" #include "third_party/WebKit/public/platform/WebURL.h" +#include "third_party/webrtc/api/rtceventlogoutput.h" #include "third_party/webrtc/pc/mediasession.h" using webrtc::DataChannelInterface; @@ -1140,14 +1143,28 @@ // delivering callbacks on the main thread. class RTCPeerConnectionHandler::Observer : public base::RefCountedThreadSafe<RTCPeerConnectionHandler::Observer>, - public PeerConnectionObserver { + public PeerConnectionObserver, + public RtcEventLogOutputSink { public: Observer(const base::WeakPtr<RTCPeerConnectionHandler>& handler) : handler_(handler), main_thread_(base::ThreadTaskRunnerHandle::Get()) {} + // When an RTC event log is sent back from PeerConnection, it arrives here. + void OnWebRtcEventLogWrite(const std::string& output) override { + if (!main_thread_->BelongsToCurrentThread()) { + main_thread_->PostTask( + FROM_HERE, + base::BindOnce( + &RTCPeerConnectionHandler::Observer::OnWebRtcEventLogWrite, this, + output)); + } else if (handler_) { + handler_->OnWebRtcEventLogWrite(output); + } + } + protected: friend class base::RefCountedThreadSafe<RTCPeerConnectionHandler::Observer>; - virtual ~Observer() {} + ~Observer() override = default; void OnSignalingChange( PeerConnectionInterface::SignalingState new_state) override { @@ -1252,7 +1269,8 @@ RTCPeerConnectionHandler::RTCPeerConnectionHandler( blink::WebRTCPeerConnectionHandlerClient* client, PeerConnectionDependencyFactory* dependency_factory) - : client_(client), + : initialize_called_(false), + client_(client), is_closed_(false), dependency_factory_(dependency_factory), track_adapter_map_( @@ -1299,6 +1317,9 @@ DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(frame_); + CHECK(!initialize_called_); + initialize_called_ = true; + peer_connection_tracker_ = RenderThreadImpl::current()->peer_connection_tracker()->AsWeakPtr(); @@ -1337,6 +1358,10 @@ const blink::WebMediaConstraints& options, const base::WeakPtr<PeerConnectionTracker>& peer_connection_tracker) { DCHECK(thread_checker_.CalledOnValidThread()); + + CHECK(!initialize_called_); + initialize_called_ = true; + GetNativeRtcConfiguration(server_configuration, &configuration_); peer_connection_observer_ = new Observer(weak_factory_.GetWeakPtr()); @@ -1920,15 +1945,37 @@ int64_t max_file_size_bytes) { DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(file != IPC::InvalidPlatformFileForTransit()); + // TODO(eladalon): StartRtcEventLog() return value is not useful; remove it + // or find a way to be able to use it. + // https://crbug.com/775415 native_peer_connection_->StartRtcEventLog( IPC::PlatformFileForTransitToPlatformFile(file), max_file_size_bytes); } +void RTCPeerConnectionHandler::StartEventLog() { + DCHECK(thread_checker_.CalledOnValidThread()); + // TODO(eladalon): StartRtcEventLog() return value is not useful; remove it + // or find a way to be able to use it. + // https://crbug.com/775415 + native_peer_connection_->StartRtcEventLog( + base::MakeUnique<RtcEventLogOutputSinkProxy>( + peer_connection_observer_.get()), + webrtc::RtcEventLog::kImmediateOutput); +} + void RTCPeerConnectionHandler::StopEventLog() { DCHECK(thread_checker_.CalledOnValidThread()); native_peer_connection_->StopRtcEventLog(); } +void RTCPeerConnectionHandler::OnWebRtcEventLogWrite( + const std::string& output) { + DCHECK(thread_checker_.CalledOnValidThread()); + if (peer_connection_tracker_) { + peer_connection_tracker_->TrackRtcEventLogWrite(this, output); + } +} + blink::WebRTCDataChannelHandler* RTCPeerConnectionHandler::CreateDataChannel( const blink::WebString& label, const blink::WebRTCDataChannelInit& init) {
diff --git a/content/renderer/media/rtc_peer_connection_handler.h b/content/renderer/media/rtc_peer_connection_handler.h index e3bc454..9b17862 100644 --- a/content/renderer/media/rtc_peer_connection_handler.h +++ b/content/renderer/media/rtc_peer_connection_handler.h
@@ -181,9 +181,13 @@ // Start recording an event log. void StartEventLog(IPC::PlatformFileForTransit file, int64_t max_file_size_bytes); + void StartEventLog(); // Stop recording an event log. void StopEventLog(); + // WebRTC event log fragments sent back from PeerConnection land here. + void OnWebRtcEventLogWrite(const std::string& output); + protected: webrtc::PeerConnectionInterface* native_peer_connection() { return native_peer_connection_.get(); @@ -253,6 +257,10 @@ void RunSynchronousClosureOnSignalingThread(const base::Closure& closure, const char* trace_event_name); + // Initialize() is never expected to be called more than once, even if the + // first call fails. + bool initialize_called_; + base::ThreadChecker thread_checker_; // |client_| is a weak pointer to the blink object (blink::RTCPeerConnection)
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 443fd02..b5ae64d 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1774,6 +1774,7 @@ "../browser/renderer_host/p2p/socket_host_test_utils.cc", "../browser/renderer_host/p2p/socket_host_test_utils.h", "../browser/renderer_host/p2p/socket_host_udp_unittest.cc", + "../browser/webrtc/webrtc_event_log_manager_unittest.cc", "../browser/webrtc/webrtc_eventlog_host_unittest.cc", "../browser/webrtc/webrtc_internals_unittest.cc", "../renderer/media/audio_repetition_detector_unittest.cc", @@ -1875,7 +1876,9 @@ # Screen capture unit tests. if (is_linux || is_mac || is_win) { deps += [ "//third_party/libyuv" ] - sources += [ "../browser/media/capture/web_contents_video_capture_device_unittest.cc" ] + sources += [ + "../browser/media/capture/web_contents_video_capture_device_unittest.cc", + ] if (use_aura) { sources += [ "../browser/media/capture/cursor_renderer_aura_unittest.cc" ] }
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 3d6e133..c621cef 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -1949,8 +1949,6 @@ crbug.com/704259 external/wpt/content-security-policy/reporting/reporting-api-report-to-overrides-report-uri-2.https.sub.html [ Skip ] crbug.com/704259 external/wpt/content-security-policy/reporting/reporting-api-sends-reports-on-violation.https.sub.html [ Skip ] -crbug.com/626703 external/wpt/domxpath/001.html [ Failure ] - # These HTTP tests that started failing after a web-platform-tests import. crbug.com/711529 http/tests/notifications/serviceworker-notification-event.html [ Timeout ] crbug.com/711529 http/tests/origin_trials/sample-api-workers.html [ Crash Timeout ] @@ -3360,196 +3358,6 @@ crbug.com/755405 [ Android ] compositing/layer-creation/fixed-position-out-of-view.html [ Failure ] crbug.com/755405 [ Android ] compositing/squashing/invisible-layers-should-not-affect-geometry.html [ Failure ] crbug.com/755405 [ Android ] compositing/will-change/composited-layers.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/FileAPI/fileReader.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/FileAPI/blob/Blob-XHR-revoke.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/FileAPI/reading-data-section/filereader_readAsText.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/WebIDL/ecmascript-binding/interface-object.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/XMLHttpRequest/event-load.htm [ Failure ] -crbug.com/755405 [ Android ] external/wpt/XMLHttpRequest/open-after-abort.htm [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/font-src/font-match-allowed.sub.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/font-src/font-none-blocked.sub.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/frame-ancestors/frame-ancestors-self-block.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/frame-ancestors/frame-ancestors-url-block.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/img-src/img-src-none-blocks.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/meta/meta-modified.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/securitypolicyviolation/blockeduri-eval.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/style-src/style-src-inline-style-attribute-allowed.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/style-src/style-src-stylesheet-nonce-allowed.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/content-security-policy/svg/svg-from-guid.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/css-align/content-distribution/place-content-shorthand-002.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/css-align/content-distribution/place-content-shorthand-003.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/css-align/default-alignment/place-items-shorthand-001.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/css-display/display-contents-computed-style.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/css-typed-om/declared-styleMap-accepts-inherit.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/cssom/cssom-cssText-serialize.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/cssom/medialist-interfaces-004.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/cssom-view/cssom-view-window-screen-interface.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/css/cssom-view/media-query-list-interface.xht [ Failure ] -crbug.com/755405 [ Android ] external/wpt/custom-elements/HTMLElement-constructor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/custom-elements/parser/parser-constructs-custom-element-in-document-write.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/custom-elements/parser/parser-constructs-custom-elements.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/custom-elements/reactions/Attr.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/custom-elements/reactions/Selection.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/custom-elements/upgrading/upgrading-parser-created-element.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/interface-objects.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/collections/HTMLCollection-as-proto-length-get-throws.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/events/AddEventListenerOptions-once.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/events/CustomEvent.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/events/Event-defaultPrevented-after-dispatch.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/events/Event-dispatch-order.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/lists/DOMTokenList-value.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/nodes/CharacterData-surrogates.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/nodes/Node-lookupPrefix.xhtml [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/nodes/Document-contentType/contentType/createHTMLDocument.html [ Failure Timeout ] -crbug.com/755405 [ Android ] external/wpt/dom/ranges/Range-constructor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/traversal/NodeFilter-constants.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/dom/traversal/TreeWalker-walking-outside-a-tree.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/domparsing/innerhtml-03.xhtml [ Failure ] -crbug.com/755405 [ Android ] external/wpt/domparsing/innerhtml-04.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/encoding/iso-2022-jp-encoder.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/encoding/textdecoder-fatal-streaming.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fetch/api/basic/scheme-blob.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fetch/api/headers/headers-casing.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fetch/api/headers/headers-structure.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fetch/api/policies/referrer-unsafe-url.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fetch/api/request/request-clone.sub.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fetch/api/response/response-static-error.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fullscreen/api/element-request-fullscreen-not-allowed.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fullscreen/api/element-request-fullscreen-top-manual.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/fullscreen/model/remove-parent-manual.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/gamepad/idlharness.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/browsing-the-web/scroll-to-fragid/001.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/history/the-history-interface/history_back.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/history/the-history-interface/history_pushstate.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/history/the-history-interface/history_replacestate_err.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/history/the-history-interface/history_replacestate_nooptionalparam.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/offline/application-cache-api/api_update_error.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/offline/introduction-4/event_cached.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-statusbar-manual.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-same.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/dom/dynamic-markup-insertion/document-write/042.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/dom/elements/global-attributes/dataset-get.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/dom/elements/global-attributes/the-translate-attribute-010.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/editing/activation/click.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/editing/dnd/dom/draggable.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/editing/editing-0/contenteditable/user-interaction-editing-contenteditable.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/editing/focus/focus-management/focus-event-targets-simple.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/editing/focus/focus-management/focus-events.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/infrastructure/common-dom-interfaces/collections/htmloptionscollection.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/document-all.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/document-metadata/the-base-element/base_href_empty.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/document-metadata/the-title-element/title.text-02.xhtml [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/edits/the-del-element/del_effect.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/edits/the-ins-element/ins_effect.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/onexit.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-div.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/forms/textfieldselection/selection-not-application-textarea.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/forms/textfieldselection/selection-not-application.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/grouping-content/the-ol-element/ol.start-reflection-1.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_getter.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe.xhtml [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/scripting-1/the-script-element/scripting-enabled.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/selectors/pseudo-classes/dir01.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/selectors/pseudo-classes/required-optional.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/tabular-data/the-table-element/caption-methods.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/tabular-data/the-table-element/table-insertRow.html [ Failure Timeout ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/text-level-semantics/the-a-element/a.text-setter-01.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/semantics/text-level-semantics/the-time-element/001.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-01.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-02.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/syntax/parsing/template/additions-to-foster-parenting/template-is-a-foster-parent-element.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/syntax/parsing-html-fragments/the-input-byte-stream-016.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/webappapis/animation-frames/same-dispatch-time.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/webappapis/timers/type-long-setinterval.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html/webappapis/timers/type-long-settimeout.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html-imports/document/document-method-changes.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html-imports/fetching/already-in-import-map.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/html-imports/fetching/loading-attempt.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/innerText/setter.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/input-events/idlharness.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/media-capabilities/decodingInfo.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/mediacapture-record/BlobEvent-constructor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/mediasession/mediametadata.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/mediasession/playbackstate.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/mediasession/setactionhandler.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/navigation-timing/nav2_test_instance_accessible_from_the_start.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/navigation-timing/test_navigation_redirectCount_none.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/orientation-event/devicemotionevent-init.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/pointerevents/pointerevent_touch-action-illegal.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/preload/avoid-delaying-onload-link-preload.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/referrer-policy/generic/subresource-test/attr-referrer-invalid-value.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/insecure-protocol.no-redirect.http.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/generic.no-redirect.http.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/cross-origin.no-redirect.http.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/selection/Document-open.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/service-workers/service-worker/rejections.https.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/shadow-dom/Element-interface-shadowRoot-attribute.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/shadow-dom/event-with-related-target.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/shadow-dom/untriaged/styles/test-008.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/streams/byte-length-queuing-strategy.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/streams/piping/close-propagation-backward.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/streams/piping/multiple-propagation.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/streams/readable-streams/floating-point-total-queue-size.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/streams/writable-streams/bad-strategies.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/streams/writable-streams/brand-checks.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/touch-events/historical.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/touch-events/touch-globaleventhandler-interface.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/touch-events/touch-retargeting.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/uievents/order-of-events/focus-events/focus-automated-blink-webkit.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/user-timing/invoke_with_timing_attributes.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/user-timing/invoke_without_parameter.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/animation-model/combining-effects/effect-composition.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/animation-model/keyframe-effects/effect-value-context.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/interfaces/Animatable/getAnimations.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/interfaces/Animation/ready.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/interfaces/AnimationEffectTiming/delay.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/interfaces/Document/getAnimations.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/interfaces/DocumentTimeline/constructor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/interfaces/KeyframeEffect/composite.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/timing-model/animation-effects/active-time.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/timing-model/animations/finishing-an-animation.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/web-animations/timing-model/time-transformations/transformed-progress.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/Channel_postMessage_DataCloneErr.htm [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/Channel_postMessage_target_source.htm [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/broadcastchannel/basics.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/broadcastchannel/interface.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/message-channels/001.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/with-ports/002.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/with-ports/014.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/without-ports/003.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/without-ports/006.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webmessaging/without-ports/013.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webrtc/RTCPeerConnectionIceEvent-constructor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webrtc/simplecall.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webstorage/storage_key.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webstorage/storage_length.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webvtt/api/VTTCue/size.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webvtt/api/VTTRegion/constructor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webvtt/api/VTTRegion/regionAnchorX.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webvtt/parsing/file-parsing/tests/settings-line.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/webvtt/parsing/file-parsing/tests/timings-too-short.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/Worker_dispatchEvent_ErrorEvent.htm [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/constructors/Worker/no-arguments-ctor.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/interfaces/WorkerGlobalScope/close/sending-messages.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/interfaces/WorkerUtils/navigator/005.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/semantics/encodings/001.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/semantics/multiple-workers/008.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/semantics/run-a-worker/001.html [ Failure ] -crbug.com/755405 [ Android ] external/wpt/workers/semantics/xhr/002.html [ Failure ] crbug.com/755405 [ Android ] fast/block/basic/018.html [ Failure ] crbug.com/755405 [ Android ] fast/block/float/002.html [ Failure ] crbug.com/755405 [ Android ] fast/block/float/centered-float-avoidance-complexity.html [ Failure ] @@ -3604,7 +3412,6 @@ crbug.com/755405 [ Android ] tables/mozilla_expected_failures/bugs/bug1055-2.html [ Failure ] crbug.com/755405 [ Android ] tables/mozilla_expected_failures/bugs/bug2479-5.html [ Failure ] crbug.com/755405 [ Android ] virtual/layout_ng/fast/block/margin-collapse/019.html [ Failure Crash ] -crbug.com/755405 [ Android ] virtual/mojo-localstorage/external/wpt/webstorage/storage_enumerate.html [ Failure ] crbug.com/755405 [ Android ] virtual/rootlayerscrolls/fast/scrolling/scrollable-area-overflow-auto-display-none-in-parent.html [ Failure ] crbug.com/755405 [ Android ] compositing/sibling-positioning.html [ Failure ] crbug.com/755405 [ Android ] css3/selectors3/html/css3-modsel-18.html [ Failure Crash ] @@ -3863,9 +3670,6 @@ # Sheriff failures 2017-09-12 crbug.com/764180 [ Android ] virtual/display_list_2d_canvas/fast/canvas/script-inside-canvas-fallback.html [ Pass Crash ] -# Sheriff failure 2017-09-15 -crbug.com/765685 [ Android ] external/wpt/mediacapture-streams/MediaStream-idl.https.html [ Pass Failure ] - # Sheriff failure 2017-09-18 crbug.com/766404 [ Mac ] plugins/keyboard-events.html [ Pass Failure ] @@ -3941,12 +3745,6 @@ # Sheriff failures 2017-10-24 crbug.com/773122 crbug.com/777813 [ Win ] fast/text/font-ascent-mac.html [ Failure Pass ] -# Sheriff failures 2017-11-03 -crbug.com/781171 [ Android ] external/wpt/css/css-timing/cubic-bezier-timing-functions-output.html [ Failure Crash Pass ] -crbug.com/781171 [ Android ] external/wpt/css/css-timing/frames-timing-functions-output.html [ Skip ] -crbug.com/781171 [ Android ] external/wpt/css/css-timing/frames-timing-functions-syntax.html [ Skip ] -crbug.com/781171 [ Android ] external/wpt/css/css-timing/step-timing-functions-output.html [ Skip ] - # Sheriff failures 2017-11-07 crbug.com/782067 [ Mac10.10 Mac10.11 ] fast/css/no-recalc-on-no-op-inline-style-changes.html [ Pass Failure ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json index 5dab347..c1f82744 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -91351,6 +91351,11 @@ {} ] ], + "accelerometer/Accelerometer_onerror-manual.https-expected.txt": [ + [ + {} + ] + ], "accelerometer/OWNERS": [ [ {} @@ -139131,6 +139136,11 @@ {} ] ], + "magnetometer/Magnetometer_onerror-manual.https-expected.txt": [ + [ + {} + ] + ], "magnetometer/OWNERS": [ [ {} @@ -147321,21 +147331,31 @@ {} ] ], - "wake-lock/wakelock-object-is-independent.https-expected.txt": [ - [ - {} - ] - ], "wake-lock/wakelock-onactivechange.https-expected.txt": [ [ {} ] ], + "wake-lock/wakelock-promise.https-expected.txt": [ + [ + {} + ] + ], + "wake-lock/wakelock-state-is-global.https-expected.txt": [ + [ + {} + ] + ], "wake-lock/wakelock-type.https-expected.txt": [ [ {} ] ], + "wake-lock/wakelockrequest-is-independent.https-expected.txt": [ + [ + {} + ] + ], "wasm/OWNERS": [ [ {} @@ -211149,24 +211169,36 @@ {} ] ], - "wake-lock/wakelock-object-is-independent.https.html": [ - [ - "/wake-lock/wakelock-object-is-independent.https.html", - {} - ] - ], "wake-lock/wakelock-onactivechange.https.html": [ [ "/wake-lock/wakelock-onactivechange.https.html", {} ] ], + "wake-lock/wakelock-promise.https.html": [ + [ + "/wake-lock/wakelock-promise.https.html", + {} + ] + ], + "wake-lock/wakelock-state-is-global.https.html": [ + [ + "/wake-lock/wakelock-state-is-global.https.html", + {} + ] + ], "wake-lock/wakelock-type.https.html": [ [ "/wake-lock/wakelock-type.https.html", {} ] ], + "wake-lock/wakelockrequest-is-independent.https.html": [ + [ + "/wake-lock/wakelockrequest-is-independent.https.html", + {} + ] + ], "wasm/create_multiple_memory.worker.js": [ [ "/wasm/create_multiple_memory.worker.html", @@ -230543,19 +230575,23 @@ "support" ], "accelerometer/Accelerometer.https-expected.txt": [ - "b963047a40779af7aece240d3bfaa134585d91ab", + "f45b4184c5d3d5ced06ed486d89970c87d6b2181", "support" ], "accelerometer/Accelerometer.https.html": [ - "cdf386711da6ef6a795bcf179e7c7ce373751f56", + "c0ca55250886c6a8c6194b658ed362e8b10ccae3", "testharness" ], "accelerometer/Accelerometer_insecure_context.html": [ - "da374eab5cbc963d8e5e2f2025d9fb1a94043643", + "ad29f70c8f506002154e6ffa430b87f5e5ae0923", "testharness" ], + "accelerometer/Accelerometer_onerror-manual.https-expected.txt": [ + "31feaa72d7b84d017d459344462e0a38a72632ba", + "support" + ], "accelerometer/Accelerometer_onerror-manual.https.html": [ - "e03faad7d297ce2c5d6fefa66a2397c3d9a32e2d", + "f20acb4b4e2f774fc13c870f972aaa2ca82afd27", "manual" ], "accelerometer/OWNERS": [ @@ -298439,7 +298475,7 @@ "support" ], "generic-sensor/generic-sensor-tests.js": [ - "6550b58fb02d2b6059e4f04822ff81df2c5c8ea2", + "2209b4cc293aefecded2d325b664d494820d38af", "support" ], "generic-sensor/idlharness.https.html": [ @@ -316847,7 +316883,7 @@ "testharness" ], "html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.html": [ - "9ab91396894612ad2a71643cd5253fcc8572983a", + "d87ec96d53353fc63b9d3db4775414c6335cdd2d", "testharness" ], "html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html": [ @@ -317643,19 +317679,23 @@ "support" ], "magnetometer/Magnetometer.https-expected.txt": [ - "b37d90ce6c8e697cc08a7990fd64f995d5fd87e3", + "cd96b76956a4bd0299115e252c2407451e7e1a13", "support" ], "magnetometer/Magnetometer.https.html": [ - "3fbdbbd6c3db9b1a44d7490101bea34045f1945e", + "240e7d0af55b8681f2f45ca22283634acc406325", "testharness" ], "magnetometer/Magnetometer_insecure_context.html": [ - "417e00b969ea887ee4d3d4d9b0dc7af4d786e365", + "0eeb95340d7c74a0243eac8d3f004b6e06b87a92", "testharness" ], + "magnetometer/Magnetometer_onerror-manual.https-expected.txt": [ + "5535f83d0f9d1dc22d9d27d2dd000cd076e6dd98", + "support" + ], "magnetometer/Magnetometer_onerror-manual.https.html": [ - "6adfb807ff2c1b24dad702b21f636e7805543704", + "da4e6b8975beecdcae24da26920a56a652f781e4", "manual" ], "magnetometer/OWNERS": [ @@ -341434,14 +341474,6 @@ "527a75868eab39b899113cae81601630f9850790", "testharness" ], - "wake-lock/wakelock-object-is-independent.https-expected.txt": [ - "9f2c345a6fb831bc47a611af405f2bc0311a7fed", - "support" - ], - "wake-lock/wakelock-object-is-independent.https.html": [ - "7db6e3ce66953a719bda56bf0ecee5a8d26a7292", - "testharness" - ], "wake-lock/wakelock-onactivechange.https-expected.txt": [ "86824c041e03c445b74252cdf08278a7241b6df5", "support" @@ -341450,6 +341482,22 @@ "cbf4c5d6351e01ccc1a3e0e3e05afb16968a7edd", "testharness" ], + "wake-lock/wakelock-promise.https-expected.txt": [ + "92db046964f31e99537b0238070e07999f7a9b29", + "support" + ], + "wake-lock/wakelock-promise.https.html": [ + "2cf40b55e8875b3d2d0dc215f0547e9fc8c23389", + "testharness" + ], + "wake-lock/wakelock-state-is-global.https-expected.txt": [ + "e7a55e0639695095c82030e5e33aa840beaf5df1", + "support" + ], + "wake-lock/wakelock-state-is-global.https.html": [ + "7a8179b74d81b3ebda85aa440c183358b0ebe50b", + "testharness" + ], "wake-lock/wakelock-type.https-expected.txt": [ "eb117ce815966975beb2c71f1bbdcad13263509d", "support" @@ -341458,6 +341506,14 @@ "583647213b49b7bc67cad08192db3e6abcd1de9f", "testharness" ], + "wake-lock/wakelockrequest-is-independent.https-expected.txt": [ + "0e5910292dd302d23ba287e831e523ca777f92c6", + "support" + ], + "wake-lock/wakelockrequest-is-independent.https.html": [ + "caaf2634451eb9228c0b20f0ac817d7a3d3fa685", + "testharness" + ], "wasm/OWNERS": [ "126e62d01f281a96a4de7164138f3cdfc30e22ee", "support"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https-expected.txt index 41cf4ee..14629bf 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https-expected.txt
@@ -1,4 +1,5 @@ This is a testharness.js-based test. +Harness Error. harness_status.status = 1 , harness_status.message = Uncaught ReferenceError: GravitySensor is not defined FAIL Accelerometer: Test that 'onreading' is called and sensor reading is valid assert_equals: Expected reading event, but got error event instead expected "reading" but got "error" FAIL Accelerometer: sensor reading is correct assert_equals: Expected reading event, but got error event instead expected "reading" but got "error" FAIL Accelerometer: sensor timestamp is updated when time passes assert_equals: Expected reading event, but got error event instead expected "reading" but got "error"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html index 5835557..2a9bc543 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer.https.html
@@ -10,5 +10,6 @@ <script> runGenericSensorTests(Accelerometer); +runGenericSensorTests(GravitySensor); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html index d55a62f1..96eeef2d 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_insecure_context.html
@@ -16,5 +16,6 @@ <script> runGenericSensorInsecureContext("Accelerometer"); +runGenericSensorInsecureContext("GravitySensor"); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https-expected.txt new file mode 100644 index 0000000..d0f2a19 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +Harness Error. harness_status.status = 1 , harness_status.message = Uncaught ReferenceError: GravitySensor is not defined +PASS Accelerometer: 'onerror' event is fired when sensor is not supported +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html index a3e8150..8778693 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/Accelerometer_onerror-manual.https.html
@@ -16,5 +16,6 @@ <script> runGenericSensorOnerror(Accelerometer); +runGenericSensorOnerror(GravitySensor); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/domxpath/001-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/domxpath/001-expected.txt new file mode 100644 index 0000000..e8e17ecc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/domxpath/001-expected.txt
@@ -0,0 +1,14 @@ +This is a testharness.js-based test. +PASS HTML elements no namespace prefix +PASS HTML elements namespace prefix +PASS HTML elements mixed use of prefix +PASS SVG elements no namespace prefix +PASS SVG elements namespace prefix +PASS HTML elements mixed case +PASS SVG elements mixed case selector +PASS Non-ascii HTML element +FAIL Non-ascii HTML element2 assert_array_equals: lengths differ, expected 0 got 1 +PASS Non-ascii HTML element3 +PASS Throw with invalid prefix +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js index bd819c2..cde2374 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js +++ b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js
@@ -2,8 +2,11 @@ 'AmbientLightSensor' : ['timestamp', 'illuminance'], 'Accelerometer' : ['timestamp', 'x', 'y', 'z'], 'LinearAccelerationSensor' : ['timestamp', 'x', 'y', 'z'], + "GravitySensor" : ['timestamp', 'x', 'y', 'z'], 'Gyroscope' : ['timestamp', 'x', 'y', 'z'], 'Magnetometer' : ['timestamp', 'x', 'y', 'z'], + "UncalibratedMagnetometer" : ['timestamp', 'x', 'y', 'z', + 'xBias', 'yBias', 'zBias'], 'AbsoluteOrientationSensor' : ['timestamp', 'quaternion'], 'RelativeOrientationSensor' : ['timestamp', 'quaternion'], 'GeolocationSensor' : ['timestamp', 'latitude', 'longitude', 'altitude',
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https-expected.txt index 3998344..5454d299 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https-expected.txt
@@ -1,4 +1,5 @@ This is a testharness.js-based test. +Harness Error. harness_status.status = 1 , harness_status.message = Uncaught ReferenceError: UncalibratedMagnetometer is not defined FAIL Magnetometer: Test that 'onreading' is called and sensor reading is valid assert_equals: Expected reading event, but got error event instead expected "reading" but got "error" FAIL Magnetometer: sensor reading is correct assert_equals: Expected reading event, but got error event instead expected "reading" but got "error" FAIL Magnetometer: sensor timestamp is updated when time passes assert_equals: Expected reading event, but got error event instead expected "reading" but got "error"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html index f327ed3c..a3cefc2 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer.https.html
@@ -10,5 +10,6 @@ <script> runGenericSensorTests(Magnetometer); +runGenericSensorTests(UncalibratedMagnetometer); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html index 307c19b..45ff584b 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_insecure_context.html
@@ -16,5 +16,6 @@ <script> runGenericSensorInsecureContext("Magnetometer"); +runGenericSensorInsecureContext("UncalibratedMagnetometer"); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https-expected.txt new file mode 100644 index 0000000..163ea371 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +Harness Error. harness_status.status = 1 , harness_status.message = Uncaught ReferenceError: UncalibratedMagnetometer is not defined +PASS Magnetometer: 'onerror' event is fired when sensor is not supported +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html index 3cd62db..04b9877 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/Magnetometer_onerror-manual.https.html
@@ -16,5 +16,6 @@ <script> runGenericSensorOnerror(Magnetometer); +runGenericSensorOnerror(UncalibratedMagnetometer); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-object-is-independent.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-object-is-independent.https-expected.txt deleted file mode 100644 index 9a760c17..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-object-is-independent.https-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Test that the WakeLock object is independent. promise_test: Unhandled rejection with value: object "TypeError: navigator.getWakeLock is not a function" -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-object-is-independent.https.html b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-object-is-independent.https.html deleted file mode 100644 index f0493ee..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-object-is-independent.https.html +++ /dev/null
@@ -1,85 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>WakeLock object is independent</title> -<link rel="help" href="https://w3c.github.io/wake-lock/"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<body> -<script id="iframe" type="text/plain"> -let iframeWakeLock, iframeRequest; -window.onmessage = async message => { - switch(message.data) { - case "INIT": - iframeWakeLock = await navigator.getWakeLock("screen"); - parent.postMessage(iframeWakeLock.active, "*"); - break; - case "ACQUIRED": - iframeRequest = iframeWakeLock.createRequest(); - parent.postMessage(iframeWakeLock.active, "*"); - break; - case "RELEASED": - iframeRequest.cancel(); - parent.postMessage(iframeWakeLock.active, "*"); - break; - default: - parent.postMessage("unknown operation", "*"); - } -} -</script> - -<script> -function load_iframe() { - return new Promise(resolve => { - const iframe = document.createElement("iframe"); - iframe.onload = () => { resolve(iframe); }; - iframe.srcdoc = "<script>" + - document.getElementById('iframe').textContent + - "<\/script>"; - document.body.appendChild(iframe); - }); -} - -function wait_for_message(iframe) { - return new Promise(resolve => { - self.addEventListener("message", function listener(e) { - if (e.source === iframe.contentWindow) { - resolve(e.data); - self.removeEventListener("message", listener); - } - }); - }); -} - -promise_test(async t => { - const wakeLock1 = await navigator.getWakeLock("screen"); - const wakeLock2 = await navigator.getWakeLock("screen"); - const iframe = await load_iframe(); - - //when wakeLock1 is acquired, wakeLock2 and iframeWakeLock are still inactived - iframe.contentWindow.postMessage("INIT", "*"); - let request1 = wakeLock1.createRequest(); - let isActive1 = await wait_for_message(iframe); - assert_true(wakeLock1.active, "the active is true when wakeLock1 is acquired"); - assert_false(wakeLock2.active, "the active is false before wakeLock2 is acquired"); - assert_false(isActive1, "the active is false before iframeWakeLock is acquired"); - - //when wakeLock2 and iframeWakeLock are acquired, release wakeLock1 - iframe.contentWindow.postMessage("ACQUIRED", "*"); - let isActive2 = await wait_for_message(iframe); - request1.cancel(); - let request2 = wakeLock2.createRequest(); - assert_false(wakeLock1.active, "the active is false when wakeLock1 is released"); - assert_true(wakeLock2.active, "the active is true when wakeLock2 is acquired"); - assert_true(isActive2, "the active is true when iframeWakeLock is acquired"); - - //release all WakeLock objects - iframe.contentWindow.postMessage("RELEASED", "*"); - let isActive3 = await wait_for_message(iframe); - request2.cancel(); - assert_false(wakeLock1.active, "the active is false when wakeLock1 is released"); - assert_false(wakeLock2.active, "the active is false when wakeLock2 is released"); - assert_false(isActive3, "the active is false when iframeWakeLock is released"); -}, "Test that the WakeLock object is independent."); -</script> -</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-promise.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-promise.https-expected.txt new file mode 100644 index 0000000..fa90c3e7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-promise.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL navigator.getWakeLock() for the same Document always return same WakeLock promise promise_test: Unhandled rejection with value: object "TypeError: navigator.getWakeLock is not a function" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-promise.https.html b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-promise.https.html new file mode 100644 index 0000000..3d4c4868 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-promise.https.html
@@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>navigator.getWakeLock() for the same Document always return same WakeLock promise</title> +<link rel="help" href="https://w3c.github.io/wake-lock/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +promise_test(async t => { + const wakeLock1 = await navigator.getWakeLock("screen"); + const wakeLock2 = await navigator.getWakeLock("screen"); + assert_equals(wakeLock1, wakeLock2); +}, "navigator.getWakeLock() for the same Document always return same WakeLock promise"); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-state-is-global.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-state-is-global.https-expected.txt new file mode 100644 index 0000000..78181e8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-state-is-global.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Test that wake lock state should be global promise_test: Unhandled rejection with value: object "TypeError: navigator.getWakeLock is not a function" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-state-is-global.https.html b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-state-is-global.https.html new file mode 100644 index 0000000..98cebe01 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelock-state-is-global.https.html
@@ -0,0 +1,73 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>wake lock state should be global</title> +<link rel="help" href="https://w3c.github.io/wake-lock/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<body> +<script id="iframe" type="text/plain"> +let iframeWakeLock, iframeRequest; +window.onmessage = async message => { + switch(message.data) { + case "ACQUIRED": + iframeWakeLock = await navigator.getWakeLock("screen"); + iframeRequest = iframeWakeLock.createRequest(); + parent.postMessage(iframeWakeLock.active, "*"); + break; + case "RELEASED": + iframeRequest.cancel(); + parent.postMessage(iframeWakeLock.active, "*"); + break; + default: + parent.postMessage("unknown operation", "*"); + } +} +</script> + +<script> +function load_iframe() { + return new Promise(resolve => { + const iframe = document.createElement("iframe"); + iframe.onload = () => { resolve(iframe); }; + iframe.srcdoc = "<script>" + + document.getElementById('iframe').textContent + + "<\/script>"; + document.body.appendChild(iframe); + }); +} + +function wait_for_message(iframe) { + return new Promise(resolve => { + self.addEventListener("message", function listener(e) { + if (e.source === iframe.contentWindow) { + resolve(e.data); + self.removeEventListener("message", listener); + } + }); + }); +} + +promise_test(async t => { + const wakeLock = await navigator.getWakeLock("screen"); + const iframe = await load_iframe(); + const eventWatcher = new EventWatcher(t, wakeLock, "activechange"); + + assert_false(wakeLock.active, "wakeLock is initially false"); + + //when iframe wake lock is acquired, parent wake lock should be actived + iframe.contentWindow.postMessage("ACQUIRED", "*"); + const isActive1 = await wait_for_message(iframe); + await eventWatcher.wait_for("activechange"); + assert_true(isActive1, "the iframe wake lock state is actived when iframe wake lock is acquired"); + assert_true(wakeLock.active, "the wake lock state is actived when iframe wake lock is acquired"); + + //when iframe wake lock is released, parent wake lock should be inactived + iframe.contentWindow.postMessage("RELEASED", "*"); + const isActive2 = await wait_for_message(iframe); + eventWatcher.wait_for("activechange"); + assert_false(isActive2, "the iframe wake lock state is inactived when iframe wake lock is released"); + assert_false(wakeLock.active, "the wake lock state is inactived when iframe wake lock is released"); +}, "Test that wake lock state should be global"); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelockrequest-is-independent.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelockrequest-is-independent.https-expected.txt new file mode 100644 index 0000000..577bf6f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelockrequest-is-independent.https-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL Test that the WakeLockRequest object is independent. promise_test: Unhandled rejection with value: object "TypeError: navigator.getWakeLock is not a function" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelockrequest-is-independent.https.html b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelockrequest-is-independent.https.html new file mode 100644 index 0000000..a113b00 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/wake-lock/wakelockrequest-is-independent.https.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WakeLockRequest object is independent</title> +<link rel="help" href="https://w3c.github.io/wake-lock/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +promise_test(async t => { + const wakeLock1 = await navigator.getWakeLock("screen"); + const wakeLock2 = await navigator.getWakeLock("screen"); + const request1 = wakeLock1.createRequest(); + const request2 = wakeLock2.createRequest(); + assert_not_equals(request1, request2); +}, "Test that the WakeLockRequest object is independent."); +</script>
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/blob/Blob-XHR-revoke-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/blob/Blob-XHR-revoke-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/blob/Blob-XHR-revoke-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/fileReader-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/fileReader-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/fileReader-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/reading-data-section/FileReader-event-handler-attributes-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/reading-data-section/filereader_readAsText-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/reading-data-section/filereader_readAsText-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/FileAPI/reading-data-section/filereader_readAsText-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/WebIDL/ecmascript-binding/interface-object-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/WebIDL/ecmascript-binding/interface-object-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/WebIDL/ecmascript-binding/interface-object-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/XMLHttpRequest/event-load-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/XMLHttpRequest/event-load-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/XMLHttpRequest/event-load-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/XMLHttpRequest/open-after-abort-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/XMLHttpRequest/open-after-abort-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/XMLHttpRequest/open-after-abort-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/connect-src/connect-src-beacon-blocked.sub-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/connect-src/connect-src-beacon-blocked.sub-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/connect-src/connect-src-beacon-blocked.sub-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/font-src/font-match-allowed.sub-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/font-src/font-match-allowed.sub-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/font-src/font-match-allowed.sub-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/font-src/font-none-blocked.sub-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/font-src/font-none-blocked.sub-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/font-src/font-none-blocked.sub-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/frame-ancestors/frame-ancestors-self-block-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/frame-ancestors/frame-ancestors-self-block-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/frame-ancestors/frame-ancestors-self-block-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/frame-ancestors/frame-ancestors-url-block-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/frame-ancestors/frame-ancestors-url-block-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/frame-ancestors/frame-ancestors-url-block-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/img-src/img-src-none-blocks-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/img-src/img-src-none-blocks-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/img-src/img-src-none-blocks-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/meta/meta-modified-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/meta/meta-modified-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/meta/meta-modified-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/securitypolicyviolation/blockeduri-eval-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/securitypolicyviolation/blockeduri-eval-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/securitypolicyviolation/blockeduri-eval-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/style-src/style-src-inline-style-attribute-allowed-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/style-src/style-src-inline-style-attribute-allowed-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/style-src/style-src-inline-style-attribute-allowed-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/style-src/style-src-stylesheet-nonce-allowed-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/style-src/style-src-stylesheet-nonce-allowed-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/style-src/style-src-stylesheet-nonce-allowed-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/svg/svg-from-guid-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/svg/svg-from-guid-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/content-security-policy/svg/svg-from-guid-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/content-distribution/place-content-shorthand-002-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/content-distribution/place-content-shorthand-002-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/content-distribution/place-content-shorthand-002-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/content-distribution/place-content-shorthand-003-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/content-distribution/place-content-shorthand-003-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/content-distribution/place-content-shorthand-003-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/default-alignment/place-items-shorthand-001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/default-alignment/place-items-shorthand-001-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-align/default-alignment/place-items-shorthand-001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-display/display-contents-computed-style-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-display/display-contents-computed-style-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-display/display-contents-computed-style-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-grid/grid-layout-properties-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-grid/grid-layout-properties-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-grid/grid-layout-properties-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-typed-om/declared-styleMap-accepts-inherit-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-typed-om/declared-styleMap-accepts-inherit-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/css-typed-om/declared-styleMap-accepts-inherit-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom-view/cssom-view-window-screen-interface-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom-view/cssom-view-window-screen-interface-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom-view/cssom-view-window-screen-interface-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom-view/cssom-view/media-query-list-interface-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom-view/cssom-view/media-query-list-interface-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom-view/cssom-view/media-query-list-interface-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom/cssom-cssText-serialize-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom/cssom-cssText-serialize-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom/cssom-cssText-serialize-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom/medialist-interfaces-004-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom/medialist-interfaces-004-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/css/cssom/medialist-interfaces-004-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/HTMLElement-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/HTMLElement-constructor-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/HTMLElement-constructor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/parser/parser-constructs-custom-element-in-document-write-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/parser/parser-constructs-custom-element-in-document-write-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/parser/parser-constructs-custom-element-in-document-write-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/parser/parser-constructs-custom-elements-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/parser/parser-constructs-custom-elements-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/parser/parser-constructs-custom-elements-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/reactions/Attr-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/reactions/Attr-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/reactions/Attr-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/reactions/Selection-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/reactions/Selection-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/reactions/Selection-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/upgrading/upgrading-parser-created-element-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/upgrading/upgrading-parser-created-element-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/custom-elements/upgrading/upgrading-parser-created-element-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/collections/HTMLCollection-as-proto-length-get-throws-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/collections/HTMLCollection-as-proto-length-get-throws-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/collections/HTMLCollection-as-proto-length-get-throws-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/AddEventListenerOptions-once-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/AddEventListenerOptions-once-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/AddEventListenerOptions-once-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/CustomEvent-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/CustomEvent-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/CustomEvent-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/Event-defaultPrevented-after-dispatch-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/Event-defaultPrevented-after-dispatch-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/Event-defaultPrevented-after-dispatch-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/Event-dispatch-order-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/Event-dispatch-order-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/events/Event-dispatch-order-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/interface-objects-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/interface-objects-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/interface-objects-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/lists/DOMTokenList-value-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/lists/DOMTokenList-value-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/lists/DOMTokenList-value-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/CharacterData-surrogates-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/CharacterData-surrogates-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/CharacterData-surrogates-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/Document-contentType/contentType/createHTMLDocument-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/Document-contentType/contentType/createHTMLDocument-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/Document-contentType/contentType/createHTMLDocument-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/Node-lookupPrefix-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/Node-lookupPrefix-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/nodes/Node-lookupPrefix-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/ranges/Range-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/ranges/Range-constructor-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/ranges/Range-constructor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/traversal/NodeFilter-constants-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/traversal/NodeFilter-constants-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/traversal/NodeFilter-constants-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/traversal/TreeWalker-walking-outside-a-tree-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/traversal/TreeWalker-walking-outside-a-tree-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/dom/traversal/TreeWalker-walking-outside-a-tree-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/domparsing/innerhtml-03-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/domparsing/innerhtml-03-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/domparsing/innerhtml-03-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/domparsing/innerhtml-04-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/domparsing/innerhtml-04-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/domparsing/innerhtml-04-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/domxpath/001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/domxpath/001-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/domxpath/001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/encoding/iso-2022-jp-encoder-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/encoding/iso-2022-jp-encoder-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/encoding/iso-2022-jp-encoder-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/encoding/textdecoder-fatal-streaming-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/encoding/textdecoder-fatal-streaming-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/encoding/textdecoder-fatal-streaming-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/basic/scheme-blob-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/basic/scheme-blob-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/basic/scheme-blob-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/headers/headers-casing-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/headers/headers-casing-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/headers/headers-casing-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/headers/headers-structure-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/headers/headers-structure-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/headers/headers-structure-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/policies/referrer-unsafe-url-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/policies/referrer-unsafe-url-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/policies/referrer-unsafe-url-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/request/request-clone.sub-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/request/request-clone.sub-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/request/request-clone.sub-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/response/response-static-error-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/response/response-static-error-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fetch/api/response/response-static-error-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fullscreen/api/element-request-fullscreen-not-allowed-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/fullscreen/api/element-request-fullscreen-not-allowed-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/fullscreen/api/element-request-fullscreen-not-allowed-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/gamepad/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/gamepad/idlharness-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/gamepad/idlharness-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/document/document-method-changes-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/document/document-method-changes-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/document/document-method-changes-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/fetching/already-in-import-map-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/fetching/already-in-import-map-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/fetching/already-in-import-map-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/fetching/loading-attempt-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/fetching/loading-attempt-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html-imports/fetching/loading-attempt-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/browsing-the-web/scroll-to-fragid/001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/browsing-the-web/scroll-to-fragid/001-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/browsing-the-web/scroll-to-fragid/001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_back-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_back-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_back-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_pushstate-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_pushstate-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_pushstate-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_replacestate_err-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_replacestate_err-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_replacestate_err-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_replacestate_nooptionalparam-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_replacestate_nooptionalparam-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/history/the-history-interface/history_replacestate_nooptionalparam-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/offline/application-cache-api/api_update_error-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/offline/application-cache-api/api_update_error-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/offline/application-cache-api/api_update_error-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/offline/introduction-4/event_cached-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/offline/introduction-4/event_cached-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/offline/introduction-4/event_cached-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-same-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-same-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-same-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/dynamic-markup-insertion/document-write/042-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/dynamic-markup-insertion/document-write/042-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/dynamic-markup-insertion/document-write/042-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/elements/global-attributes/dataset-get-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/elements/global-attributes/dataset-get-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/elements/global-attributes/dataset-get-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/elements/global-attributes/the-translate-attribute-010-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/elements/global-attributes/the-translate-attribute-010-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/dom/elements/global-attributes/the-translate-attribute-010-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/activation/click-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/activation/click-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/activation/click-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/dnd/dom/draggable-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/dnd/dom/draggable-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/dnd/dom/draggable-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/editing-0/contenteditable/user-interaction-editing-contenteditable-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/editing-0/contenteditable/user-interaction-editing-contenteditable-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/editing-0/contenteditable/user-interaction-editing-contenteditable-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/focus/focus-management/focus-event-targets-simple-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/focus/focus-management/focus-event-targets-simple-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/focus/focus-management/focus-event-targets-simple-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/focus/focus-management/focus-events-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/focus/focus-management/focus-events-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/editing/focus/focus-management/focus-events-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmloptionscollection-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmloptionscollection-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmloptionscollection-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/document-all-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/document-all-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/document-all-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/rendering/non-replaced-elements/margin-collapsing-quirks/multicol-standards-mode-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/rendering/non-replaced-elements/margin-collapsing-quirks/multicol-standards-mode-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/rendering/non-replaced-elements/margin-collapsing-quirks/multicol-standards-mode-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/document-metadata/the-base-element/base_href_empty-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/document-metadata/the-base-element/base_href_empty-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/document-metadata/the-base-element/base_href_empty-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/document-metadata/the-title-element/title.text-02-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/document-metadata/the-title-element/title.text-02-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/document-metadata/the-title-element/title.text-02-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/edits/the-del-element/del_effect-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/edits/the-del-element/del_effect-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/edits/the-del-element/del_effect-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/edits/the-ins-element/ins_effect-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/edits/the-ins-element/ins_effect-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/edits/the-ins-element/ins_effect-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/onexit-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/onexit-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/onexit-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-div-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-div-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-in-div-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/forms/textfieldselection/selection-not-application-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/forms/textfieldselection/selection-not-application-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/forms/textfieldselection/selection-not-application-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/grouping-content/the-ol-element/ol.start-reflection-1-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/grouping-content/the-ol-element/ol.start-reflection-1-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/grouping-content/the-ol-element/ol.start-reflection-1-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_getter-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_getter-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_getter-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/scripting-1/the-script-element/scripting-enabled-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/scripting-1/the-script-element/scripting-enabled-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/scripting-1/the-script-element/scripting-enabled-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/selectors/pseudo-classes/dir01-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/selectors/pseudo-classes/dir01-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/selectors/pseudo-classes/dir01-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/selectors/pseudo-classes/required-optional-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/selectors/pseudo-classes/required-optional-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/selectors/pseudo-classes/required-optional-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/tabular-data/the-table-element/caption-methods-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/tabular-data/the-table-element/caption-methods-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/tabular-data/the-table-element/caption-methods-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/tabular-data/the-table-element/table-insertRow-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/tabular-data/the-table-element/table-insertRow-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/tabular-data/the-table-element/table-insertRow-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/text-level-semantics/the-a-element/a.text-setter-01-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/text-level-semantics/the-a-element/a.text-setter-01-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/text-level-semantics/the-a-element/a.text-setter-01-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/text-level-semantics/the-time-element/001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/text-level-semantics/the-time-element/001-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/semantics/text-level-semantics/the-time-element/001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing-html-fragments/the-input-byte-stream-016-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing-html-fragments/the-input-byte-stream-016-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing-html-fragments/the-input-byte-stream-016-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-01-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-01-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-01-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-02-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-02-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/Document.getElementsByTagName-foreign-02-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/template/additions-to-foster-parenting/template-is-a-foster-parent-element-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/template/additions-to-foster-parenting/template-is-a-foster-parent-element-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/syntax/parsing/template/additions-to-foster-parenting/template-is-a-foster-parent-element-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/animation-frames/same-dispatch-time-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/animation-frames/same-dispatch-time-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/animation-frames/same-dispatch-time-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/timers/type-long-setinterval-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/timers/type-long-setinterval-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/timers/type-long-setinterval-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/timers/type-long-settimeout-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/timers/type-long-settimeout-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/html/webappapis/timers/type-long-settimeout-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/innerText/setter-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/innerText/setter-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/innerText/setter-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/input-events/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/input-events/idlharness-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/input-events/idlharness-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/media-capabilities/decodingInfo-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/media-capabilities/decodingInfo-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/media-capabilities/decodingInfo-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediacapture-record/BlobEvent-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediacapture-record/BlobEvent-constructor-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediacapture-record/BlobEvent-constructor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/mediametadata-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/mediametadata-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/mediametadata-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/playbackstate-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/playbackstate-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/playbackstate-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/setactionhandler-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/setactionhandler-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/mediasession/setactionhandler-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/navigation-timing/nav2_test_instance_accessible_from_the_start-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/navigation-timing/nav2_test_instance_accessible_from_the_start-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/navigation-timing/nav2_test_instance_accessible_from_the_start-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/navigation-timing/test_navigation_redirectCount_none-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/navigation-timing/test_navigation_redirectCount_none-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/navigation-timing/test_navigation_redirectCount_none-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/orientation-event/devicemotionevent-init-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/orientation-event/devicemotionevent-init-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/orientation-event/devicemotionevent-init-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/pointerevents/pointerevent_touch-action-illegal-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/pointerevents/pointerevent_touch-action-illegal-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/pointerevents/pointerevent_touch-action-illegal-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/preload/avoid-delaying-onload-link-preload-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/preload/avoid-delaying-onload-link-preload-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/preload/avoid-delaying-onload-link-preload-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/generic/subresource-test/attr-referrer-invalid-value-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/generic/subresource-test/attr-referrer-invalid-value-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/generic/subresource-test/attr-referrer-invalid-value-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/insecure-protocol.no-redirect.http-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/insecure-protocol.no-redirect.http-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/insecure-protocol.no-redirect.http-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/cross-origin.no-redirect.http-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/cross-origin.no-redirect.http-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/cross-origin.no-redirect.http-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/generic.no-redirect.http-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/generic.no-redirect.http-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/generic.no-redirect.http-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/selection/Document-open-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/selection/Document-open-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/selection/Document-open-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/service-workers/service-worker/rejections.https-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/service-workers/service-worker/rejections.https-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/service-workers/service-worker/rejections.https-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/Element-interface-shadowRoot-attribute-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/Element-interface-shadowRoot-attribute-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/Element-interface-shadowRoot-attribute-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/event-with-related-target-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/event-with-related-target-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/event-with-related-target-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/untriaged/styles/test-008-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/untriaged/styles/test-008-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/shadow-dom/untriaged/styles/test-008-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/byte-length-queuing-strategy-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/byte-length-queuing-strategy-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/byte-length-queuing-strategy-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/piping/close-propagation-backward-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/piping/close-propagation-backward-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/piping/close-propagation-backward-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/piping/multiple-propagation-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/piping/multiple-propagation-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/piping/multiple-propagation-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/readable-streams/floating-point-total-queue-size-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/readable-streams/floating-point-total-queue-size-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/readable-streams/floating-point-total-queue-size-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/writable-streams/bad-strategies-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/writable-streams/bad-strategies-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/writable-streams/bad-strategies-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/writable-streams/brand-checks-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/writable-streams/brand-checks-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/streams/writable-streams/brand-checks-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/historical-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/historical-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/historical-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/touch-globaleventhandler-interface-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/touch-globaleventhandler-interface-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/touch-globaleventhandler-interface-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/touch-retargeting-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/touch-retargeting-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/touch-events/touch-retargeting-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/order-of-events/focus-events/focus-automated-blink-webkit-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/order-of-events/focus-events/focus-automated-blink-webkit-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/uievents/order-of-events/focus-events/focus-automated-blink-webkit-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/user-timing/invoke_with_timing_attributes-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/user-timing/invoke_with_timing_attributes-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/user-timing/invoke_with_timing_attributes-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/user-timing/invoke_without_parameter-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/user-timing/invoke_without_parameter-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/user-timing/invoke_without_parameter-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Animation/ready-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Animation/ready-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Animation/ready-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Document/getAnimations-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Document/getAnimations-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/Document/getAnimations-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/DocumentTimeline/constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/DocumentTimeline/constructor-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/DocumentTimeline/constructor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt index 231fddb2..cc38ff5 100644 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt
@@ -1,5 +1,10 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584 +This is a testharness.js-based test. +FAIL Setting the start time of an animation without an active timeline assert_equals: Setting the start time clears the current time expected (object) null but got (number) -463.4576666666703 +FAIL Setting an unresolved start time an animation without an active timeline does not clear the current time assert_equals: Start time remains unresolved expected (object) null but got (number) 0 +PASS Setting the start time clears the hold time +FAIL Setting an unresolved start time sets the hold time assert_approx_equals: Hold time is set after start time is made unresolved expected 1000 +/- 0.0005 but got 536.5423333333297 +FAIL Setting the start time resolves a pending ready promise assert_true: Animation is in play-pending state expected true got undefined +FAIL Setting the start time resolves a pending pause task assert_true: Animation is in pause-pending state expected true got undefined +FAIL Setting the start time updates the finished state assert_greater_than: Setting the start time updated the finished state with the 'did seek' flag set to true expected a number greater than 100000 but got 100000 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/Channel_postMessage_DataCloneErr-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/Channel_postMessage_DataCloneErr-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/Channel_postMessage_DataCloneErr-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/Channel_postMessage_target_source-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/Channel_postMessage_target_source-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/Channel_postMessage_target_source-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/broadcastchannel/basics-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/broadcastchannel/basics-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/broadcastchannel/basics-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/broadcastchannel/interface-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/broadcastchannel/interface-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/broadcastchannel/interface-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/message-channels/001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/message-channels/001-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/message-channels/001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/with-ports/002-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/with-ports/002-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/with-ports/002-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/with-ports/014-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/with-ports/014-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/with-ports/014-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/003-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/003-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/003-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/006-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/006-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/006-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/013-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/013-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webmessaging/without-ports/013-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webrtc/simplecall-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webrtc/simplecall-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webrtc/simplecall-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webstorage/storage_key-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webstorage/storage_key-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webstorage/storage_key-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webstorage/storage_length-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webstorage/storage_length-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webstorage/storage_length-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTCue/size-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTCue/size-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTCue/size-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTRegion/constructor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTRegion/constructor-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTRegion/constructor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTRegion/regionAnchorX-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTRegion/regionAnchorX-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/api/VTTRegion/regionAnchorX-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/parsing/file-parsing/tests/settings-line-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/parsing/file-parsing/tests/settings-line-expected.txt deleted file mode 100644 index b39aff9..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/parsing/file-parsing/tests/settings-line-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL settings, lineassert_equals: Failed with cue 9 expected 1e+34 but got 9.999999790214768e+33 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/parsing/file-parsing/tests/timings-too-short-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/parsing/file-parsing/tests/timings-too-short-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/webvtt/parsing/file-parsing/tests/timings-too-short-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/Worker_dispatchEvent_ErrorEvent-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/Worker_dispatchEvent_ErrorEvent-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/Worker_dispatchEvent_ErrorEvent-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/constructors/SharedWorker/unresolvable-url-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/constructors/SharedWorker/unresolvable-url-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/constructors/SharedWorker/unresolvable-url-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/constructors/Worker/no-arguments-ctor-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/constructors/Worker/no-arguments-ctor-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/constructors/Worker/no-arguments-ctor-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/WorkerGlobalScope/close/sending-messages-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/WorkerGlobalScope/close/sending-messages-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/WorkerGlobalScope/close/sending-messages-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/WorkerUtils/navigator/005-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/WorkerUtils/navigator/005-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/interfaces/WorkerUtils/navigator/005-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/encodings/001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/encodings/001-expected.txt deleted file mode 100644 index cdc4d5b..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/encodings/001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 980x735 - LayoutView at (0,0) size 980x735 -layer at (0,0) size 980x735 - LayoutBlockFlow {HTML} at (0,0) size 980x735 - LayoutBlockFlow {BODY} at (8,8) size 964x719
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/multiple-workers/008-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/multiple-workers/008-expected.txt index 231fddb2..cfe8169 100644 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/multiple-workers/008-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/multiple-workers/008-expected.txt
@@ -1,5 +1,4 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584 +This is a testharness.js-based test. +FAIL messagechannel in shared worker SharedWorker is not defined +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/reporting-errors/002-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/reporting-errors/002-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/reporting-errors/002-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/run-a-worker/001-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/run-a-worker/001-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/run-a-worker/001-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/xhr/002-expected.txt b/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/xhr/002-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/external/wpt/workers/semantics/xhr/002-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/mojo-localstorage/external/wpt/webstorage/storage_enumerate-expected.txt b/third_party/WebKit/LayoutTests/platform/android/virtual/mojo-localstorage/external/wpt/webstorage/storage_enumerate-expected.txt deleted file mode 100644 index 231fddb2..0000000 --- a/third_party/WebKit/LayoutTests/platform/android/virtual/mojo-localstorage/external/wpt/webstorage/storage_enumerate-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc index edaed3b..c35f21a 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc
@@ -270,9 +270,10 @@ // |text0|text1|null |null | box |text5| for (const BoxFragmentPlaceholder& placeholder : box_placeholders_) { const ComputedStyle* style = placeholder.item->Style(); + // Because children are already in the visual order, use LTR for the + // fragment builder so that it should not transform the coordinates for RTL. NGFragmentBuilder box(placeholder.item->GetLayoutObject(), style, - style->GetWritingMode(), - placeholder.item->Direction()); + style->GetWritingMode(), TextDirection::kLtr); const NGLogicalOffset& box_offset = (*line_box)[placeholder.fragment_end].offset; for (unsigned i = placeholder.fragment_start; i < placeholder.fragment_end;