diff --git a/DEPS b/DEPS index 9641a61..9f2adb6 100644 --- a/DEPS +++ b/DEPS
@@ -47,7 +47,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '42922f0202d6fe0b2fd97039e3102543de99e734', + 'v8_revision': '487ef04e9d3d0daf63304891cc93d4b10dd4c85f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -485,7 +485,7 @@ Var('chromium_git') + '/external/github.com/kennethreitz/requests.git' + '@' + 'f172b30356d821d180fa4ecfa3e71c7274a32de4', 'src/third_party/custom_tabs_client/src': - Var('chromium_git') + '/external/github.com/GoogleChrome/custom-tabs-client.git' + '@' + 'bbbf71f41e79b0cfe21199220f495cbd0a3a4ffb', + Var('chromium_git') + '/external/github.com/GoogleChrome/custom-tabs-client.git' + '@' + '41ded9d4b5dbaf7b79e291ee8a222f5efbc52190', }, }
diff --git a/base/thread_task_runner_handle.cc b/base/thread_task_runner_handle.cc index 860a0ec..ee337b38 100644 --- a/base/thread_task_runner_handle.cc +++ b/base/thread_task_runner_handle.cc
@@ -12,7 +12,7 @@ namespace { -base::LazyInstance<base::ThreadLocalPointer<ThreadTaskRunnerHandle> > +base::LazyInstance<base::ThreadLocalPointer<ThreadTaskRunnerHandle> >::Leaky lazy_tls_ptr = LAZY_INSTANCE_INITIALIZER; } // namespace
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java index 0b2d8b2..8581b8d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
@@ -295,6 +295,9 @@ mDelegate.removeUIObserver(this); mDelegate.getModel().removeObserver(mBookmarkModelObserver); mPromoHeaderManager.destroy(); + if (mOfflineStorageHeader != null) { + mOfflineStorageHeader.destroy(); + } } @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java index a989b18..3b571df1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
@@ -13,6 +13,7 @@ import android.provider.Browser; import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.BookmarksBridge; import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem; @@ -185,11 +186,14 @@ @Override public void onDismissNoAction(Object actionData) { // This method will be called only if the snackbar is dismissed by timeout. + RecordUserAction.record( + "OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonNotClicked"); bookmarkModel.destroy(); } @Override public void onAction(Object actionData) { + RecordUserAction.record("OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonClicked"); OfflinePageStorageSpacePolicy policy = new OfflinePageStorageSpacePolicy(bookmarkModel.getOfflinePageBridge()); if (policy.hasPagesToCleanUp()) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageFreeUpSpaceDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageFreeUpSpaceDialog.java index 40fecf2..16a4cd43 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageFreeUpSpaceDialog.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageFreeUpSpaceDialog.java
@@ -12,6 +12,7 @@ import android.support.v7.app.AlertDialog; import android.text.format.Formatter; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.DeletePageCallback; import org.chromium.chrome.browser.snackbar.Snackbar; @@ -81,6 +82,7 @@ @Override public void onClick(DialogInterface dialog, int id) { if (id == AlertDialog.BUTTON_NEGATIVE) { + RecordUserAction.record("OfflinePages.FreeUpSpaceDialogButtonNotClicked"); dialog.cancel(); if (mCallback != null) mCallback.onFreeUpSpaceCancelled(); return; @@ -89,6 +91,7 @@ mOfflinePageBridge.deletePages(getBookmarkIdsToDelete(), new DeletePageCallback() { @Override public void onDeletePageDone(int deletePageResult) { + RecordUserAction.record("OfflinePages.FreeUpSpaceDialogButtonClicked"); if (mCallback != null) mCallback.onFreeUpSpaceDone(); } });
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpaceHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpaceHeader.java index cc3f5c3..3bd62b21 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpaceHeader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpaceHeader.java
@@ -13,6 +13,7 @@ import android.view.ViewGroup; import android.widget.TextView; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; /** @@ -24,6 +25,7 @@ OfflinePageStorageSpacePolicy mOfflinePageStorageSpacePolicy; Context mContext; OfflinePageFreeUpSpaceCallback mCallback; + boolean mClicked = false; /** * @param offlinePageBridge An object to access offline page functionality. @@ -37,6 +39,10 @@ mCallback = callback; } + public void destroy() { + if (!mClicked) RecordUserAction.record("OfflinePages.FreeUpSpaceHeaderNotClicked"); + } + /** @return Whether the header should be shown. */ public boolean shouldShow() { return mOfflinePageStorageSpacePolicy.shouldShowStorageSpaceHeader(); @@ -57,6 +63,8 @@ .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + mClicked = true; + RecordUserAction.record("OfflinePages.FreeUpSpaceHeaderClicked"); OfflinePageFreeUpSpaceDialog dialog = OfflinePageFreeUpSpaceDialog.newInstance( mOfflinePageBridge, mCallback);
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 9bdc242..c1127029 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -5595,7 +5595,7 @@ Alternative services. </message> <message name="IDS_FLAGS_ENABLE_ALTSVC_DESCRIPTION" desc="Description for the flag to enable alternative services."> - Enable experimental HTTP alternative services support. + Enable support for Alternative Services, an experimental HTTP feature. </message> <message name="IDS_FLAGS_DISABLE_MEDIA_SOURCE_NAME" desc="Title for the flag to disable the Media Source API."> Disable Media Source API. @@ -10161,12 +10161,6 @@ <message name="IDS_OPTIONS_PASSWORDS_AND_FORMS_GROUP_NAME" desc="The title of the 'Passwords and forms' group"> Passwords and forms </message> - <message name="IDS_OPTIONS_PASSWORD_MANAGER_REMEMBER_ENABLE" desc="The label of a checkbox in Chrome's settings to enable saving passwords."> - Remember website passwords. - </message> - <message name="IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_REMEMBER_ENABLE" desc="The label of a checkbox in Chrome's settings to enable saving passwords if Smart Lock is enabled."> - Use Smart Lock for Passwords to remember passwords for apps and sites. - </message> <message name="IDS_OPTIONS_PASSWORD_MANAGER_ENABLE" desc="The label of the password manager checkbox"> Offer to save your web passwords. </message>
diff --git a/chrome/browser/android/popular_sites.cc b/chrome/browser/android/popular_sites.cc index f2fcc2d..6a0b1df 100644 --- a/chrome/browser/android/popular_sites.cc +++ b/chrome/browser/android/popular_sites.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/android/popular_sites.h" #include "base/bind.h" +#include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/json/json_reader.h" @@ -18,6 +19,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/common/chrome_paths.h" +#include "chrome/common/chrome_switches.h" #include "components/google/core/browser/google_util.h" #include "components/search_engines/search_engine_type.h" #include "components/search_engines/template_url_prepopulate_data.h" @@ -35,75 +37,37 @@ const char kPopularSitesDefaultVersion[] = "2"; const char kPopularSitesLocalFilename[] = "suggested_sites.json"; - -// Find out the country code of the user by using the Google country code if -// Google is the default search engine set. If Google is not the default search, -// use the country provided Fallback to a default if we can't -// make an educated guess. -std::string GetCountryCode(Profile* profile, - const std::string& fallback_country) { +// Extract the country from the default search engine if the default search +// engine is Google. +std::string GetDefaultSearchEngineCountryCode(Profile* profile) { DCHECK(profile); + base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + if (!cmd_line->HasSwitch(switches::kEnableNTPSearchEngineCountryDetection)) + return std::string(); + const TemplateURLService* template_url_service = - TemplateURLServiceFactory::GetForProfile(profile); + TemplateURLServiceFactory::GetForProfile(profile); DCHECK(template_url_service); const TemplateURL* default_provider = template_url_service->GetDefaultSearchProvider(); // It's possible to not have a default provider in the case that the default // search engine is defined by policy. - if (!default_provider) - return kPopularSitesDefaultCountryCode; + if (default_provider) { + bool is_google_search_engine = + TemplateURLPrepopulateData::GetEngineType( + *default_provider, template_url_service->search_terms_data()) == + SearchEngineType::SEARCH_ENGINE_GOOGLE; - bool is_google_search_engine = TemplateURLPrepopulateData::GetEngineType( - *default_provider, template_url_service->search_terms_data()) == - SearchEngineType::SEARCH_ENGINE_GOOGLE; - - if (is_google_search_engine) { - GURL search_url = default_provider->GenerateSearchURL( - template_url_service->search_terms_data()); - return base::ToUpperASCII(google_util::GetGoogleCountryCode(search_url)); + if (is_google_search_engine) { + GURL search_url = default_provider->GenerateSearchURL( + template_url_service->search_terms_data()); + return google_util::GetGoogleCountryCode(search_url); + } } - if (!fallback_country.empty()) - return base::ToUpperASCII(fallback_country); - - return kPopularSitesDefaultCountryCode; -} - -std::string GetPopularSitesServerFilename(Profile* profile, - const std::string& override_country, - const std::string& override_version, - const std::string& override_filename, - const std::string& fallback_country) { - if (!override_filename.empty()) - return override_filename; - - std::string country = !override_country.empty() - ? override_country - : GetCountryCode(profile, fallback_country); - std::string version = !override_version.empty() ? override_version - : kPopularSitesDefaultVersion; - return base::StringPrintf(kPopularSitesServerFilenameFormat, - country.c_str(), version.c_str()); -} - -GURL GetPopularSitesURL(Profile* profile, - const std::string& override_country, - const std::string& override_version, - const std::string& override_filename, - const std::string& fallback_country) { - return GURL(base::StringPrintf( - kPopularSitesURLFormat, - GetPopularSitesServerFilename(profile, override_country, override_version, - override_filename, fallback_country) - .c_str())); -} - -base::FilePath GetPopularSitesPath() { - base::FilePath dir; - PathService::Get(chrome::DIR_USER_DATA, &dir); - return dir.AppendASCII(kPopularSitesLocalFilename); + return std::string(); } // Get the country that the experiment is running under @@ -116,6 +80,55 @@ return std::string(); } +// Find out the country code of the user by using the Google country code if +// Google is the default search engine set. If Google is not the default search +// engine use the country provided by VariationsService. Fallback to a default +// if we can't make an educated guess. +std::string GetCountryCode(Profile* profile) { + std::string country_code = GetDefaultSearchEngineCountryCode(profile); + + if (country_code.empty()) + country_code = GetVariationsServiceCountry(); + + if (country_code.empty()) + country_code = kPopularSitesDefaultCountryCode; + + return base::ToUpperASCII(country_code); +} + +std::string GetPopularSitesServerFilename( + Profile* profile, + const std::string& override_country, + const std::string& override_version, + const std::string& override_filename) { + if (!override_filename.empty()) + return override_filename; + + std::string country = + !override_country.empty() ? override_country : GetCountryCode(profile); + std::string version = !override_version.empty() ? override_version + : kPopularSitesDefaultVersion; + return base::StringPrintf(kPopularSitesServerFilenameFormat, + country.c_str(), version.c_str()); +} + +GURL GetPopularSitesURL(Profile* profile, + const std::string& override_country, + const std::string& override_version, + const std::string& override_filename) { + return GURL(base::StringPrintf( + kPopularSitesURLFormat, + GetPopularSitesServerFilename(profile, override_country, override_version, + override_filename) + .c_str())); +} + +base::FilePath GetPopularSitesPath() { + base::FilePath dir; + PathService::Get(chrome::DIR_USER_DATA, &dir); + return dir.AppendASCII(kPopularSitesLocalFilename); +} + scoped_ptr<std::vector<PopularSites::Site>> ReadAndParseJsonFile( const base::FilePath& path) { std::string json; @@ -177,10 +190,9 @@ // Re-download the file once on every Chrome startup, but use the cached // local file afterwards. static bool first_time = true; - FetchPopularSites( - GetPopularSitesURL(profile, override_country, override_version, - override_filename, GetVariationsServiceCountry()), - profile->GetRequestContext(), first_time || force_download); + FetchPopularSites(GetPopularSitesURL(profile, override_country, + override_version, override_filename), + profile->GetRequestContext(), first_time || force_download); first_time = false; }
diff --git a/chrome/browser/engagement/site_engagement_service.cc b/chrome/browser/engagement/site_engagement_service.cc index 392ee8c..83617b3 100644 --- a/chrome/browser/engagement/site_engagement_service.cc +++ b/chrome/browser/engagement/site_engagement_service.cc
@@ -47,6 +47,27 @@ return abs_difference > delta; } +// Only accept a navigation event for engagement if it is one of: +// a. direct typed navigation +// b. clicking on an omnibox suggestion brought up by typing a keyword +// c. clicking on a bookmark +// d. a custom search engine keyword search (e.g. Wikipedia search box added as +// search engine). +// TODO(dominickn): opening bookmark apps uses a variety of transition types: +// 1. link (chrome://apps) +// 2. auto_toplevel (shortcut, launcher) +// We need a way of distinguishing these as bookmark app navigations for site +// engagement. +bool IsEngagementNavigation(ui::PageTransition transition) { + return ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_TYPED) || + ui::PageTransitionCoreTypeIs(transition, + ui::PAGE_TRANSITION_GENERATED) || + ui::PageTransitionCoreTypeIs(transition, + ui::PAGE_TRANSITION_AUTO_BOOKMARK) || + ui::PageTransitionCoreTypeIs(transition, + ui::PAGE_TRANSITION_KEYWORD_GENERATED); +} + scoped_ptr<base::DictionaryValue> GetScoreDictForOrigin( HostContentSettingsMap* settings, const GURL& origin_url) { @@ -199,10 +220,12 @@ void SiteEngagementService::HandleNavigation(const GURL& url, ui::PageTransition transition) { - SiteEngagementMetrics::RecordEngagement( - SiteEngagementMetrics::ENGAGEMENT_NAVIGATION); - AddPoints(url, SiteEngagementScore::kNavigationPoints); - RecordMetrics(); + if (IsEngagementNavigation(transition)) { + SiteEngagementMetrics::RecordEngagement( + SiteEngagementMetrics::ENGAGEMENT_NAVIGATION); + AddPoints(url, SiteEngagementScore::kNavigationPoints); + RecordMetrics(); + } } void SiteEngagementService::HandleUserInput(
diff --git a/chrome/browser/engagement/site_engagement_service_unittest.cc b/chrome/browser/engagement/site_engagement_service_unittest.cc index d7d0092..8b171f8 100644 --- a/chrome/browser/engagement/site_engagement_service_unittest.cc +++ b/chrome/browser/engagement/site_engagement_service_unittest.cc
@@ -10,8 +10,10 @@ #include "chrome/browser/engagement/site_engagement_metrics.h" #include "chrome/browser/engagement/site_engagement_service.h" #include "chrome/browser/engagement/site_engagement_service_factory.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/chrome_switches.h" #include "chrome/test/base/browser_with_test_window_test.h" +#include "content/public/browser/page_navigator.h" #include "testing/gtest/include/gtest/gtest.h" namespace { @@ -320,6 +322,34 @@ base::CommandLine::ForCurrentProcess()->AppendSwitch( switches::kEnableSiteEngagementService); } + + void NavigateWithTransitionAndExpectHigherScore( + SiteEngagementService* service, + GURL& url, + ui::PageTransition transition) { + double prev_score = service->GetScore(url); + content::NavigationController* controller = + &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); + + browser()->OpenURL(content::OpenURLParams(url, content::Referrer(), + CURRENT_TAB, transition, false)); + CommitPendingLoad(controller); + EXPECT_LT(prev_score, service->GetScore(url)); + } + + void NavigateWithTransitionAndExpectEqualScore( + SiteEngagementService* service, + GURL& url, + ui::PageTransition transition) { + double prev_score = service->GetScore(url); + content::NavigationController* controller = + &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); + + browser()->OpenURL(content::OpenURLParams(url, content::Referrer(), + CURRENT_TAB, transition, false)); + CommitPendingLoad(controller); + EXPECT_EQ(prev_score, service->GetScore(url)); + } }; TEST_F(SiteEngagementServiceTest, GetMedianEngagement) { @@ -395,17 +425,14 @@ DCHECK(service); GURL url("http://www.google.com/"); - - AddTab(browser(), GURL("about:blank")); EXPECT_EQ(0, service->GetScore(url)); - double prev_score = service->GetScore(url); + AddTab(browser(), GURL("about:blank")); - NavigateAndCommitActiveTab(url); - EXPECT_LT(prev_score, service->GetScore(url)); - prev_score = service->GetScore(url); + NavigateWithTransitionAndExpectHigherScore(service, url, + ui::PAGE_TRANSITION_TYPED); - NavigateAndCommitActiveTab(url); - EXPECT_LT(prev_score, service->GetScore(url)); + NavigateWithTransitionAndExpectHigherScore(service, url, + ui::PAGE_TRANSITION_AUTO_BOOKMARK); } // Expect that site engagement scores for several sites are correctly @@ -429,18 +456,22 @@ EXPECT_EQ(0.5, service->GetTotalEngagementPoints()); service->HandleNavigation(url2, ui::PAGE_TRANSITION_GENERATED); - service->HandleNavigation(url2, ui::PAGE_TRANSITION_AUTO_TOPLEVEL); + service->HandleNavigation(url2, ui::PAGE_TRANSITION_KEYWORD_GENERATED); EXPECT_EQ(1, service->GetScore(url2)); EXPECT_EQ(1.5, service->GetTotalEngagementPoints()); + service->HandleNavigation(url2, ui::PAGE_TRANSITION_AUTO_BOOKMARK); + EXPECT_EQ(1.5, service->GetScore(url2)); + EXPECT_EQ(2, service->GetTotalEngagementPoints()); + service->HandleNavigation(url3, ui::PAGE_TRANSITION_TYPED); EXPECT_EQ(0.5, service->GetScore(url3)); - EXPECT_EQ(2, service->GetTotalEngagementPoints()); + EXPECT_EQ(2.5, service->GetTotalEngagementPoints()); service->HandleNavigation(url1, ui::PAGE_TRANSITION_GENERATED); service->HandleNavigation(url1, ui::PAGE_TRANSITION_TYPED); EXPECT_EQ(1.5, service->GetScore(url1)); - EXPECT_EQ(3, service->GetTotalEngagementPoints()); + EXPECT_EQ(3.5, service->GetTotalEngagementPoints()); } TEST_F(SiteEngagementServiceTest, GetTotalUserInputPoints) { @@ -544,7 +575,7 @@ clock->SetNow(GetReferenceTime() + base::TimeDelta::FromMinutes(59)); service->HandleNavigation(url2, ui::PAGE_TRANSITION_GENERATED); - service->HandleNavigation(url2, ui::PAGE_TRANSITION_AUTO_TOPLEVEL); + service->HandleNavigation(url2, ui::PAGE_TRANSITION_AUTO_BOOKMARK); histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, 5); @@ -709,3 +740,32 @@ EXPECT_EQ(0, service->GetScore(url1)); } } + +TEST_F(SiteEngagementServiceTest, NavigationAccumulation) { + AddTab(browser(), GURL("about:blank")); + GURL url("https://www.google.com/"); + + SiteEngagementService* service = + SiteEngagementServiceFactory::GetForProfile(browser()->profile()); + DCHECK(service); + + // Only direct navigation should trigger engagement. + NavigateWithTransitionAndExpectHigherScore(service, url, + ui::PAGE_TRANSITION_TYPED); + NavigateWithTransitionAndExpectHigherScore(service, url, + ui::PAGE_TRANSITION_GENERATED); + NavigateWithTransitionAndExpectHigherScore(service, url, + ui::PAGE_TRANSITION_AUTO_BOOKMARK); + NavigateWithTransitionAndExpectHigherScore( + service, url, ui::PAGE_TRANSITION_KEYWORD_GENERATED); + + // Other transition types should not accumulate engagement. + NavigateWithTransitionAndExpectEqualScore(service, url, + ui::PAGE_TRANSITION_AUTO_TOPLEVEL); + NavigateWithTransitionAndExpectEqualScore(service, url, + ui::PAGE_TRANSITION_LINK); + NavigateWithTransitionAndExpectEqualScore(service, url, + ui::PAGE_TRANSITION_RELOAD); + NavigateWithTransitionAndExpectEqualScore(service, url, + ui::PAGE_TRANSITION_FORM_SUBMIT); +}
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc index 3379a097..0247781 100644 --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc
@@ -254,10 +254,6 @@ #endif } -bool ChromeSigninClient::UpdateAccountInfo(AccountInfo* out_account_info) { - return false; -} - void ChromeSigninClient::OnErrorChanged() { // Some tests don't have a ProfileManager. if (g_browser_process->profile_manager() == nullptr)
diff --git a/chrome/browser/signin/chrome_signin_client.h b/chrome/browser/signin/chrome_signin_client.h index 133d52e..8227363 100644 --- a/chrome/browser/signin/chrome_signin_client.h +++ b/chrome/browser/signin/chrome_signin_client.h
@@ -76,7 +76,6 @@ void PostSignedIn(const std::string& account_id, const std::string& username, const std::string& password) override; - bool UpdateAccountInfo(AccountInfo* out_account_info) override; // SigninErrorController::Observer implementation. void OnErrorChanged() override;
diff --git a/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop.cc b/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop.cc index de4fed4..0f67610 100644 --- a/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop.cc +++ b/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop.cc
@@ -11,17 +11,9 @@ int GetPasswordManagerSettingsStringId( const sync_driver::SyncService* sync_service) { - int smart_lock_users_ids; - int non_smart_lock_users_ids; + int smart_lock_users_ids = IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_ENABLE; + int non_smart_lock_users_ids = IDS_OPTIONS_PASSWORD_MANAGER_ENABLE; - if (password_manager::IsSettingsBehaviorChangeActive()) { - smart_lock_users_ids = - IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_REMEMBER_ENABLE; - non_smart_lock_users_ids = IDS_OPTIONS_PASSWORD_MANAGER_REMEMBER_ENABLE; - } else { - smart_lock_users_ids = IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_ENABLE; - non_smart_lock_users_ids = IDS_OPTIONS_PASSWORD_MANAGER_ENABLE; - } if (password_bubble_experiment::IsSmartLockBrandingEnabled(sync_service)) return smart_lock_users_ids; if (password_bubble_experiment::IsSmartLockUser(sync_service) &&
diff --git a/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop_unittest.cc index 04a86b6..e392602 100644 --- a/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop_unittest.cc +++ b/chrome/browser/ui/passwords/manage_passwords_view_utils_desktop_unittest.cc
@@ -111,12 +111,12 @@ kSmartLockBrandingGroupName, kEnabledPasswordManagerSettingsMigrationGroupName, kPasswordManagerSettingsBehaviourChangeEnabledGroupName, SMART_LOCK_USER, - IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_REMEMBER_ENABLE}, + IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_ENABLE}, {"Smart Lock User no branding, behavioral change, migration active.", kSmartLockNoBrandingGroupName, kEnabledPasswordManagerSettingsMigrationGroupName, kPasswordManagerSettingsBehaviourChangeEnabledGroupName, SMART_LOCK_USER, - IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_REMEMBER_ENABLE}, + IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_ENABLE}, {"Smart Lock User no branding, no behavioral change, migration active.", kSmartLockNoBrandingGroupName, kEnabledPasswordManagerSettingsMigrationGroupName, @@ -146,7 +146,7 @@ kSmartLockNoBrandingGroupName, kEnabledPasswordManagerSettingsMigrationGroupName, kPasswordManagerSettingsBehaviourChangeEnabledGroupName, - NON_SMART_LOCK_USER, IDS_OPTIONS_PASSWORD_MANAGER_REMEMBER_ENABLE}, + NON_SMART_LOCK_USER, IDS_OPTIONS_PASSWORD_MANAGER_ENABLE}, }; for (const auto& test_case : kTestData) {
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc index c36d609f..2700884b 100644 --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc
@@ -467,6 +467,11 @@ // Enables showing popular sites on the NTP. const char kEnableNTPPopularSites[] = "enable-ntp-popular-sites"; +// Enables using the default search engine country to show country specific +// popular sites on the NTP. +const char kEnableNTPSearchEngineCountryDetection[] = + "enable-ntp-search-engine-country-detection"; + // Enable auto-reload of error pages if offline. const char kEnableOfflineAutoReload[] = "enable-offline-auto-reload";
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h index cef13fc..721c283a 100644 --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h
@@ -137,6 +137,7 @@ extern const char kEnableNetBenchmarking[]; extern const char kEnableNewBookmarkApps[]; extern const char kEnableNTPPopularSites[]; +extern const char kEnableNTPSearchEngineCountryDetection[]; extern const char kEnableOfflineAutoReload[]; extern const char kEnableOfflineAutoReloadVisibleOnly[]; extern const char kEnablePanels[];
diff --git a/components/policy/android/java/src/org/chromium/policy/AbstractAppRestrictionsProvider.java b/components/policy/android/java/src/org/chromium/policy/AbstractAppRestrictionsProvider.java index d933aa9..60b40bd 100644 --- a/components/policy/android/java/src/org/chromium/policy/AbstractAppRestrictionsProvider.java +++ b/components/policy/android/java/src/org/chromium/policy/AbstractAppRestrictionsProvider.java
@@ -15,9 +15,10 @@ import android.preference.PreferenceManager; import android.util.Base64; +import org.chromium.base.VisibleForTesting; import org.chromium.base.metrics.RecordHistogram; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.Executor; /** * Retrieves app restrictions and provides them to the parent class as Bundles. Ensures that @@ -38,6 +39,8 @@ } }; + private Executor mExecutor = AsyncTask.THREAD_POOL_EXECUTOR; + /** * @param context The application context. */ @@ -86,8 +89,7 @@ protected Bundle doInBackground(Void... params) { long startTime = System.currentTimeMillis(); Bundle bundle = getApplicationRestrictions(mContext.getPackageName()); - RecordHistogram.recordTimesHistogram("Enterprise.AppRestrictionLoadTime", - System.currentTimeMillis() - startTime, TimeUnit.MILLISECONDS); + recordStartTimeHistogram(startTime); return bundle; } @@ -96,7 +98,7 @@ cachePolicies(result); notifySettingsAvailable(result); } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + }.executeOnExecutor(mExecutor); } @Override @@ -137,14 +139,34 @@ // this will be corrected once the Android returns the real App Restrictions. p.unmarshall(bytes, 0, bytes.length); p.setDataPosition(0); - Bundle result = p.readBundle(); + Bundle result; try { result = p.readBundle(); } catch (IllegalStateException e) { result = null; } - RecordHistogram.recordBooleanHistogram( - "Enterprise.AppRestrictionsCacheLoad", result != null); + recordCacheLoadResultHistogram(result != null); return result; } + + // Extracted to allow stubbing, since it calls a static that can't easily be stubbed + @VisibleForTesting + protected void recordCacheLoadResultHistogram(final boolean success) { + RecordHistogram.recordBooleanHistogram( + "Enterprise.AppRestrictionsCacheLoad", success); + } + + // Extracted to allow stubbing, since it calls a static that can't easily be stubbed + @VisibleForTesting + protected void recordStartTimeHistogram(long startTime) { + // TODO(aberent): Re-implement once we understand why the previous implementation was giving + // random crashes (https://crbug.com/535043) + } + /** + * @param testExecutor - The executor to use for this class's AsyncTasks. + */ + @VisibleForTesting + void setTaskExecutor(Executor testExecutor) { + mExecutor = testExecutor; + } }
diff --git a/components/policy/android/junit/src/org/chromium/policy/AbstractAppRestrictionsProviderTest.java b/components/policy/android/junit/src/org/chromium/policy/AbstractAppRestrictionsProviderTest.java new file mode 100644 index 0000000..61d203db --- /dev/null +++ b/components/policy/android/junit/src/org/chromium/policy/AbstractAppRestrictionsProviderTest.java
@@ -0,0 +1,181 @@ +// Copyright 2015 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. + +package org.chromium.policy; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; + +import org.chromium.testing.local.LocalRobolectricTestRunner; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.Robolectric; +import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowApplication; + +import java.util.concurrent.Executor; + +/** + * Robolectric test for AbstractAppRestrictionsProvider. + */ +@RunWith(LocalRobolectricTestRunner.class) +@Config(manifest = Config.NONE) +public class AbstractAppRestrictionsProviderTest { + + /* + * Robolectric's AsyncTasks don't do anything to override the underlying executor, + * which means that the don't reliably run within {@link Robolectric.RunBackgroundTasks()}. + * Create a special task executor that is guarenteed to run when expected. + */ + private class TestExecutor implements Executor { + @Override + public void execute(Runnable command) { + Robolectric.getBackgroundScheduler().post(command); + } + } + + /** + * Minimal concrete class implementing AbstractAppRestrictionsProvider. + */ + private class DummyAppRestrictionsProvider extends AbstractAppRestrictionsProvider { + + public DummyAppRestrictionsProvider(Context context) { + super(context); + } + + @Override + protected Bundle getApplicationRestrictions(String packageName) { + return null; + } + + @Override + protected String getRestrictionChangeIntentAction() { + return null; + } + + } + + /** + * Test method for {@link AbstractAppRestrictionsProvider#refresh()}. + */ + @Test + public void testRefresh() { + // We want to control precisely when background tasks run + Robolectric.getBackgroundScheduler().pause(); + + Context context = Robolectric.application; + + // Clear the preferences + SharedPreferences sharedPreferences = PreferenceManager + .getDefaultSharedPreferences(context); + SharedPreferences.Editor ed = sharedPreferences.edit(); + ed.clear(); + + // Set up a bundle for testing. + Bundle b1 = new Bundle(); + b1.putString("Key1", "value1"); + b1.putInt("Key2", 42); + + // Mock out the histogram functions, since they call statics. + AbstractAppRestrictionsProvider provider = spy(new DummyAppRestrictionsProvider(context)); + provider.setTaskExecutor(new TestExecutor()); + doNothing().when(provider).recordCacheLoadResultHistogram(anyBoolean()); + doNothing().when(provider).recordStartTimeHistogram(anyInt()); + + // Set up the buffer to be returned by getApplicationRestrictions. + when(provider.getApplicationRestrictions(anyString())).thenReturn(b1); + + // Prepare the provider + CombinedPolicyProvider combinedProvider = mock(CombinedPolicyProvider.class); + provider.setManagerAndSource(combinedProvider, 0); + + // Refresh with no cache should do nothing immediately. + provider.refresh(); + verify(combinedProvider, never()).onSettingsAvailable(anyInt(), any(Bundle.class)); + + // Let the Async task run and return its result. + Robolectric.runBackgroundTasks(); + // The AsyncTask should now have got the restrictions. + verify(provider).getApplicationRestrictions(anyString()); + verify(provider).recordStartTimeHistogram(anyInt()); + + Robolectric.runUiThreadTasks(); + // The policies should now have been set. + verify(combinedProvider).onSettingsAvailable(0, b1); + + // On next refresh onSettingsAvailable should be called twice, once with the current buffer + // and once with the new data. + Bundle b2 = new Bundle(); + b2.putString("Key1", "value1"); + b2.putInt("Key2", 84); + when(provider.getApplicationRestrictions(anyString())).thenReturn(b2); + + provider.refresh(); + verify(combinedProvider, times(2)).onSettingsAvailable(0, b1); + Robolectric.runBackgroundTasks(); + Robolectric.runUiThreadTasks(); + verify(combinedProvider).onSettingsAvailable(0, b2); + } + + /** + * Test method for {@link AbstractAppRestrictionsProvider#startListeningForPolicyChanges()}. + */ + @Test + public void testStartListeningForPolicyChanges() { + Context context = Robolectric.application; + AbstractAppRestrictionsProvider provider = spy(new DummyAppRestrictionsProvider(context)); + Intent intent = new Intent("org.chromium.test.policy.Hello"); + ShadowApplication shadowApplication = Robolectric.getShadowApplication(); + + // If getRestrictionsChangeIntentAction returns null then we should not start a broadcast + // receiver. + provider.startListeningForPolicyChanges(); + Assert.assertFalse(shadowApplication.hasReceiverForIntent(intent)); + + // If it returns a string then we should. + when(provider.getRestrictionChangeIntentAction()) + .thenReturn("org.chromium.test.policy.Hello"); + provider.startListeningForPolicyChanges(); + Assert.assertTrue(shadowApplication.hasReceiverForIntent(intent)); + } + + /** + * Test method for {@link AbstractAppRestrictionsProvider#stopListening()}. + */ + @Test + public void testStopListening() { + Context context = Robolectric.application; + AbstractAppRestrictionsProvider provider = spy(new DummyAppRestrictionsProvider(context)); + Intent intent = new Intent("org.chromium.test.policy.Hello"); + ShadowApplication shadowApplication = Robolectric.getShadowApplication(); + + // First try with null result from getRestrictionsChangeIntentAction, only test here is no + // crash. + provider.stopListening(); + + // Now try starting and stopping listening properly. + when(provider.getRestrictionChangeIntentAction()) + .thenReturn("org.chromium.test.policy.Hello"); + provider.startListeningForPolicyChanges(); + provider.stopListening(); + Assert.assertFalse(shadowApplication.hasReceiverForIntent(intent)); + } + +}
diff --git a/components/signin/core/browser/account_tracker_service.cc b/components/signin/core/browser/account_tracker_service.cc index 59250336..d9ba735 100644 --- a/components/signin/core/browser/account_tracker_service.cc +++ b/components/signin/core/browser/account_tracker_service.cc
@@ -187,10 +187,6 @@ state.info.is_child_account = false; accounts_.insert(make_pair(account_id, state)); } - - // If the info is already available on the client, might as well use it. - if (signin_client_->UpdateAccountInfo(&accounts_[account_id].info)) - SaveToPrefs(accounts_[account_id]); } void AccountTrackerService::StopTrackingAccount(const std::string& account_id) {
diff --git a/components/signin/core/browser/signin_client.h b/components/signin/core/browser/signin_client.h index 9d00123..e239bb1 100644 --- a/components/signin/core/browser/signin_client.h +++ b/components/signin/core/browser/signin_client.h
@@ -110,15 +110,6 @@ virtual void RemoveContentSettingsObserver( content_settings::Observer* observer) = 0; - // Allows this sign-in client to update the account info before attempting - // to fetch it from GAIA. This avoids fetching the account info from - // GAIA when the data it already available on the client. - // |out_account_info->account_id| is not-empty and corresponds to an existing - // account. - // - // Returns true if |out_account_info| was updated. - virtual bool UpdateAccountInfo(AccountInfo* out_account_info) = 0; - // Execute |callback| if and when there is a network connection. virtual void DelayNetworkCall(const base::Closure& callback) = 0;
diff --git a/components/signin/core/browser/test_signin_client.cc b/components/signin/core/browser/test_signin_client.cc index e0e821b..2f20837 100644 --- a/components/signin/core/browser/test_signin_client.cc +++ b/components/signin/core/browser/test_signin_client.cc
@@ -79,10 +79,6 @@ new SigninClient::CookieChangedSubscription); } -bool TestSigninClient::UpdateAccountInfo(AccountInfo* out_account_info) { - return false; -} - bool TestSigninClient::IsFirstRun() const { return false; }
diff --git a/components/signin/core/browser/test_signin_client.h b/components/signin/core/browser/test_signin_client.h index 56a3e76b7d..215430c 100644 --- a/components/signin/core/browser/test_signin_client.h +++ b/components/signin/core/browser/test_signin_client.h
@@ -72,8 +72,6 @@ const std::string& name, const net::CookieStore::CookieChangedCallback& callback) override; - bool UpdateAccountInfo(AccountInfo* out_account_info) override; - void set_are_signin_cookies_allowed(bool value) { are_signin_cookies_allowed_ = value; }
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc index f515a696..2c784a3 100644 --- a/content/browser/frame_host/navigation_request.cc +++ b/content/browser/frame_host/navigation_request.cc
@@ -196,7 +196,7 @@ loader_ = NavigationURLLoader::Create( frame_tree_node_->navigator()->GetController()->GetBrowserContext(), - frame_tree_node_->frame_tree_node_id(), info_.Pass(), this); + info_.Pass(), this); return true; }
diff --git a/content/browser/loader/navigation_url_loader.cc b/content/browser/loader/navigation_url_loader.cc index 6ea915e..c1513dc4 100644 --- a/content/browser/loader/navigation_url_loader.cc +++ b/content/browser/loader/navigation_url_loader.cc
@@ -14,15 +14,14 @@ scoped_ptr<NavigationURLLoader> NavigationURLLoader::Create( BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate) { if (g_factory) { - return g_factory->CreateLoader(browser_context, frame_tree_node_id, - request_info.Pass(), delegate); + return g_factory->CreateLoader(browser_context, request_info.Pass(), + delegate); } return scoped_ptr<NavigationURLLoader>(new NavigationURLLoaderImpl( - browser_context, frame_tree_node_id, request_info.Pass(), delegate)); + browser_context, request_info.Pass(), delegate)); } void NavigationURLLoader::SetFactoryForTesting(
diff --git a/content/browser/loader/navigation_url_loader.h b/content/browser/loader/navigation_url_loader.h index 4b8c052..89553f6 100644 --- a/content/browser/loader/navigation_url_loader.h +++ b/content/browser/loader/navigation_url_loader.h
@@ -34,7 +34,6 @@ // should_replace_current_entry shouldn't be needed at this layer. static scoped_ptr<NavigationURLLoader> Create( BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate);
diff --git a/content/browser/loader/navigation_url_loader_factory.h b/content/browser/loader/navigation_url_loader_factory.h index e6a6d8f..770644e 100644 --- a/content/browser/loader/navigation_url_loader_factory.h +++ b/content/browser/loader/navigation_url_loader_factory.h
@@ -17,7 +17,6 @@ public: virtual scoped_ptr<NavigationURLLoader> CreateLoader( BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate) = 0;
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc index 9d7db59..7cbd9112 100644 --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -17,7 +17,6 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate) : delegate_(delegate), @@ -28,7 +27,7 @@ BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, base::Bind(&NavigationURLLoaderImplCore::Start, base::Unretained(core_), - browser_context->GetResourceContext(), frame_tree_node_id, + browser_context->GetResourceContext(), base::Passed(&request_info))); }
diff --git a/content/browser/loader/navigation_url_loader_impl.h b/content/browser/loader/navigation_url_loader_impl.h index f91458e9f..6a88fc8 100644 --- a/content/browser/loader/navigation_url_loader_impl.h +++ b/content/browser/loader/navigation_url_loader_impl.h
@@ -26,7 +26,6 @@ public: // The caller is responsible for ensuring that |delegate| outlives the loader. NavigationURLLoaderImpl(BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate); ~NavigationURLLoaderImpl() override;
diff --git a/content/browser/loader/navigation_url_loader_impl_core.cc b/content/browser/loader/navigation_url_loader_impl_core.cc index 7cbf699..7fe6951 100644 --- a/content/browser/loader/navigation_url_loader_impl_core.cc +++ b/content/browser/loader/navigation_url_loader_impl_core.cc
@@ -37,7 +37,6 @@ void NavigationURLLoaderImplCore::Start( ResourceContext* resource_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -47,8 +46,7 @@ base::TimeTicks::Now())); ResourceDispatcherHostImpl::Get()->BeginNavigationRequest( - resource_context, frame_tree_node_id, - *request_info, this); + resource_context, *request_info, this); } void NavigationURLLoaderImplCore::FollowRedirect() {
diff --git a/content/browser/loader/navigation_url_loader_impl_core.h b/content/browser/loader/navigation_url_loader_impl_core.h index 77f90e3..8a93469 100644 --- a/content/browser/loader/navigation_url_loader_impl_core.h +++ b/content/browser/loader/navigation_url_loader_impl_core.h
@@ -40,7 +40,6 @@ // Starts the request. void Start(ResourceContext* resource_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info); // Follows the current pending redirect.
diff --git a/content/browser/loader/navigation_url_loader_unittest.cc b/content/browser/loader/navigation_url_loader_unittest.cc index 1cefb9b3..0a4e26b 100644 --- a/content/browser/loader/navigation_url_loader_unittest.cc +++ b/content/browser/loader/navigation_url_loader_unittest.cc
@@ -186,8 +186,8 @@ new NavigationRequestInfo(common_params, begin_params, url, true, false, -1, scoped_refptr<ResourceRequestBody>())); - return NavigationURLLoader::Create( - browser_context_.get(), 0, request_info.Pass(), delegate); + return NavigationURLLoader::Create(browser_context_.get(), + request_info.Pass(), delegate); } // Helper function for fetching the body of a URL to a string.
diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc index 1b74147..2d7512b 100644 --- a/content/browser/loader/resource_dispatcher_host_impl.cc +++ b/content/browser/loader/resource_dispatcher_host_impl.cc
@@ -1956,7 +1956,6 @@ void ResourceDispatcherHostImpl::BeginNavigationRequest( ResourceContext* resource_context, - int frame_tree_node_id, const NavigationRequestInfo& info, NavigationURLLoaderImplCore* loader) { // PlzNavigate: BeginNavigationRequest currently should only be used for the
diff --git a/content/browser/loader/resource_dispatcher_host_impl.h b/content/browser/loader/resource_dispatcher_host_impl.h index dc65e5a..77729179 100644 --- a/content/browser/loader/resource_dispatcher_host_impl.h +++ b/content/browser/loader/resource_dispatcher_host_impl.h
@@ -274,7 +274,6 @@ // PlzNavigate: Begins a request for NavigationURLLoader. |loader| is the // loader to attach to the leaf resource handler. void BeginNavigationRequest(ResourceContext* resource_context, - int frame_tree_node_id, const NavigationRequestInfo& info, NavigationURLLoaderImplCore* loader);
diff --git a/content/child/service_worker/service_worker_provider_context.cc b/content/child/service_worker/service_worker_provider_context.cc index 1a6deb04..a4b89db 100644 --- a/content/child/service_worker/service_worker_provider_context.cc +++ b/content/child/service_worker/service_worker_provider_context.cc
@@ -93,11 +93,14 @@ DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); DCHECK(registration_); - // This context is is the primary owner of this handle, keeps the - // initial reference until it goes away. - controller_ = - ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get()); - + if (info.version_id == kInvalidServiceWorkerVersionId) { + controller_.reset(); + } else { + // This context is is the primary owner of this handle, keeps the + // initial reference until it goes away. + controller_ = + ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get()); + } // TODO(kinuko): We can forward the message to other threads here // when we support navigator.serviceWorker in dedicated workers. }
diff --git a/content/test/test_navigation_url_loader_factory.cc b/content/test/test_navigation_url_loader_factory.cc index 812462e1..f106a02 100644 --- a/content/test/test_navigation_url_loader_factory.cc +++ b/content/test/test_navigation_url_loader_factory.cc
@@ -19,7 +19,6 @@ scoped_ptr<NavigationURLLoader> TestNavigationURLLoaderFactory::CreateLoader( BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate) { return scoped_ptr<NavigationURLLoader>(new TestNavigationURLLoader(
diff --git a/content/test/test_navigation_url_loader_factory.h b/content/test/test_navigation_url_loader_factory.h index cfc2f93..a91c4165 100644 --- a/content/test/test_navigation_url_loader_factory.h +++ b/content/test/test_navigation_url_loader_factory.h
@@ -26,7 +26,6 @@ // TestNavigationURLLoaderFactory implementation. scoped_ptr<NavigationURLLoader> CreateLoader( BrowserContext* browser_context, - int frame_tree_node_id, scoped_ptr<NavigationRequestInfo> request_info, NavigationURLLoaderDelegate* delegate) override;
diff --git a/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.cc b/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.cc new file mode 100644 index 0000000..c7c22b0 --- /dev/null +++ b/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.cc
@@ -0,0 +1,49 @@ +// Copyright 2015 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 "ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h" + +IOSChromeStabilityMetricsProvider::IOSChromeStabilityMetricsProvider( + PrefService* local_state) + : helper_(local_state), recording_enabled_(false) {} + +IOSChromeStabilityMetricsProvider::~IOSChromeStabilityMetricsProvider() {} + +void IOSChromeStabilityMetricsProvider::OnRecordingEnabled() { + recording_enabled_ = true; +} + +void IOSChromeStabilityMetricsProvider::OnRecordingDisabled() { + recording_enabled_ = false; +} + +void IOSChromeStabilityMetricsProvider::ProvideStabilityMetrics( + metrics::SystemProfileProto* system_profile_proto) { + helper_.ProvideStabilityMetrics(system_profile_proto); +} + +void IOSChromeStabilityMetricsProvider::ClearSavedStabilityMetrics() { + helper_.ClearSavedStabilityMetrics(); +} + +void IOSChromeStabilityMetricsProvider::LogRendererCrash() { + if (!recording_enabled_) + return; + + // The actual termination code isn't provided on iOS; use a dummy value. + // TODO(blundell): Think about having StabilityMetricsHelper have a variant + // that doesn't supply these arguments to make this cleaner. + int dummy_termination_code = 105; + helper_.LogRendererCrash(false /* not an extension process */, + base::TERMINATION_STATUS_ABNORMAL_TERMINATION, + dummy_termination_code); +} + +void IOSChromeStabilityMetricsProvider::WebStateDidStartLoading( + web::WebState* web_state) { + if (!recording_enabled_) + return; + + helper_.LogLoadStarted(); +}
diff --git a/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h b/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h new file mode 100644 index 0000000..51ee723 --- /dev/null +++ b/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h
@@ -0,0 +1,46 @@ +// Copyright 2015 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 IOS_CHROME_BROWSER_METRICS_CHROME_STABILITY_METRICS_PROVIDER_H_ +#define IOS_CHROME_BROWSER_METRICS_CHROME_STABILITY_METRICS_PROVIDER_H_ + +#include "base/basictypes.h" +#include "base/metrics/user_metrics.h" +#include "components/metrics/metrics_provider.h" +#include "components/metrics/stability_metrics_helper.h" +#include "ios/web/public/web_state/global_web_state_observer.h" + +class PrefService; + +// IOSChromeStabilityMetricsProvider gathers and logs Chrome-specific stability- +// related metrics. +class IOSChromeStabilityMetricsProvider : public metrics::MetricsProvider, + public web::GlobalWebStateObserver { + public: + explicit IOSChromeStabilityMetricsProvider(PrefService* local_state); + ~IOSChromeStabilityMetricsProvider() override; + + // metrics::MetricsDataProvider: + void OnRecordingEnabled() override; + void OnRecordingDisabled() override; + void ProvideStabilityMetrics( + metrics::SystemProfileProto* system_profile_proto) override; + void ClearSavedStabilityMetrics() override; + + // web::GlobalWebStateObserver: + void WebStateDidStartLoading(web::WebState* web_state) override; + + // Records a renderer process crash. + void LogRendererCrash(); + + private: + metrics::StabilityMetricsHelper helper_; + + // True if recording is currently enabled. + bool recording_enabled_; + + DISALLOW_COPY_AND_ASSIGN(IOSChromeStabilityMetricsProvider); +}; + +#endif // IOS_CHROME_BROWSER_METRICS_CHROME_STABILITY_METRICS_PROVIDER_H_
diff --git a/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider_unittest.cc b/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider_unittest.cc new file mode 100644 index 0000000..9e7734e --- /dev/null +++ b/ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider_unittest.cc
@@ -0,0 +1,85 @@ +// Copyright 2015 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 "ios/chrome/browser/metrics/ios_chrome_stability_metrics_provider.h" + +#include "base/basictypes.h" +#include "base/prefs/pref_service.h" +#include "base/prefs/scoped_user_pref_update.h" +#include "base/prefs/testing_pref_service.h" +#include "components/metrics/proto/system_profile.pb.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +class IOSChromeStabilityMetricsProviderTest : public testing::Test { + protected: + IOSChromeStabilityMetricsProviderTest() + : prefs_(new TestingPrefServiceSimple) { + metrics::StabilityMetricsHelper::RegisterPrefs(prefs()->registry()); + } + + TestingPrefServiceSimple* prefs() { return prefs_.get(); } + + private: + scoped_ptr<TestingPrefServiceSimple> prefs_; + + DISALLOW_COPY_AND_ASSIGN(IOSChromeStabilityMetricsProviderTest); +}; + +} // namespace + +TEST_F(IOSChromeStabilityMetricsProviderTest, LogLoadStart) { + IOSChromeStabilityMetricsProvider provider(prefs()); + + // A load should not increment metrics if recording is disabled. + provider.WebStateDidStartLoading(nullptr); + + metrics::SystemProfileProto system_profile; + + // Call ProvideStabilityMetrics to check that it will force pending tasks to + // be executed immediately. + provider.ProvideStabilityMetrics(&system_profile); + + EXPECT_EQ(0, system_profile.stability().page_load_count()); + + // A load should increment metrics if recording is enabled. + provider.OnRecordingEnabled(); + provider.WebStateDidStartLoading(nullptr); + + system_profile.Clear(); + provider.ProvideStabilityMetrics(&system_profile); + + EXPECT_EQ(1, system_profile.stability().page_load_count()); +} + +TEST_F(IOSChromeStabilityMetricsProviderTest, LogRendererCrash) { + IOSChromeStabilityMetricsProvider provider(prefs()); + + // A crash should not increment the renderer crash count if recording is + // disabled. + provider.LogRendererCrash(); + + metrics::SystemProfileProto system_profile; + + // Call ProvideStabilityMetrics to check that it will force pending tasks to + // be executed immediately. + provider.ProvideStabilityMetrics(&system_profile); + + EXPECT_EQ(0, system_profile.stability().renderer_crash_count()); + EXPECT_EQ(0, system_profile.stability().renderer_failed_launch_count()); + EXPECT_EQ(0, system_profile.stability().extension_renderer_crash_count()); + + // A crash should increment the renderer crash count if recording is + // enabled. + provider.OnRecordingEnabled(); + provider.LogRendererCrash(); + + system_profile.Clear(); + provider.ProvideStabilityMetrics(&system_profile); + + EXPECT_EQ(1, system_profile.stability().renderer_crash_count()); + EXPECT_EQ(0, system_profile.stability().renderer_failed_launch_count()); + EXPECT_EQ(0, system_profile.stability().extension_renderer_crash_count()); +}
diff --git a/ios/chrome/browser/metrics/ios_stability_metrics_provider.h b/ios/chrome/browser/metrics/ios_stability_metrics_provider.h index 9154307..86571b92 100644 --- a/ios/chrome/browser/metrics/ios_stability_metrics_provider.h +++ b/ios/chrome/browser/metrics/ios_stability_metrics_provider.h
@@ -25,6 +25,8 @@ MOBILE_SESSION_SHUTDOWN_TYPE_COUNT, }; +// TODO(lpromero): Rename this class to something more specific. +// crbug.com/538547 class IOSStabilityMetricsProvider : public metrics::MetricsProvider { public: explicit IOSStabilityMetricsProvider(
diff --git a/ios/chrome/browser/signin/signin_client_impl.cc b/ios/chrome/browser/signin/signin_client_impl.cc index 18642df8..3a79ba90 100644 --- a/ios/chrome/browser/signin/signin_client_impl.cc +++ b/ios/chrome/browser/signin/signin_client_impl.cc
@@ -161,44 +161,6 @@ } } -// TODO(msarda): http://crbug.com/522454 The account info is seeded by the token -// service each timea new account is added. Remove the method -// UpdateAccountInfo| as it is now obsolete. -bool SigninClientImpl::UpdateAccountInfo(AccountInfo* out_account_info) { - DCHECK(!out_account_info->account_id.empty()); - ProfileOAuth2TokenServiceIOSProvider* provider = - ios::GetChromeBrowserProvider() - ->GetProfileOAuth2TokenServiceIOSProvider(); - ProfileOAuth2TokenServiceIOSProvider::AccountInfo account_info; - if (!out_account_info->gaia.empty()) { - account_info = provider->GetAccountInfoForGaia(out_account_info->gaia); - } else if (!out_account_info->email.empty()) { - account_info = provider->GetAccountInfoForEmail(out_account_info->email); - } - if (account_info.gaia.empty()) { - // There is no account information for this account, so there is nothing - // to be updated here. - return false; - } - - bool updated = false; - if (out_account_info->gaia.empty()) { - out_account_info->gaia = account_info.gaia; - updated = true; - } else if (out_account_info->gaia != account_info.gaia) { - // The GAIA id of an account never changes. Avoid updating the wrong - // account if this occurs somehow. - NOTREACHED() << "out_account_info->gaia = '" << out_account_info->gaia - << "' ; account_info.gaia = '" << account_info.gaia << "'"; - return false; - } - if (out_account_info->email != account_info.email) { - out_account_info->email = account_info.email; - updated = true; - } - return updated; -} - void SigninClientImpl::OnErrorChanged() { ios::BrowserStateInfoCache* cache = GetApplicationContext() ->GetChromeBrowserStateManager()
diff --git a/ios/chrome/browser/signin/signin_client_impl.h b/ios/chrome/browser/signin/signin_client_impl.h index 2891913..375253a 100644 --- a/ios/chrome/browser/signin/signin_client_impl.h +++ b/ios/chrome/browser/signin/signin_client_impl.h
@@ -78,7 +78,6 @@ const std::string& gaia_id, const std::string& username, const std::string& password) override; - bool UpdateAccountInfo(AccountInfo* out_account_info) override; // SigninErrorController::Observer implementation. void OnErrorChanged() override;
diff --git a/ios/chrome/ios_chrome.gyp b/ios/chrome/ios_chrome.gyp index 3e18a40..7085d345 100644 --- a/ios/chrome/ios_chrome.gyp +++ b/ios/chrome/ios_chrome.gyp
@@ -281,6 +281,8 @@ 'browser/memory/memory_metrics.h', 'browser/metrics/field_trial_synchronizer.cc', 'browser/metrics/field_trial_synchronizer.h', + 'browser/metrics/ios_chrome_stability_metrics_provider.h', + 'browser/metrics/ios_chrome_stability_metrics_provider.cc', 'browser/metrics/ios_stability_metrics_provider.h', 'browser/metrics/ios_stability_metrics_provider.mm', 'browser/metrics/previous_session_info.h',
diff --git a/ios/chrome/ios_chrome_tests.gyp b/ios/chrome/ios_chrome_tests.gyp index c740923..f0dcb55 100644 --- a/ios/chrome/ios_chrome_tests.gyp +++ b/ios/chrome/ios_chrome_tests.gyp
@@ -42,6 +42,7 @@ 'browser/install_time_util_unittest.mm', 'browser/installation_notifier_unittest.mm', 'browser/metrics/previous_session_info_unittest.mm', + 'browser/metrics/ios_chrome_stability_metrics_provider_unittest.cc', 'browser/metrics/ios_stability_metrics_provider_unittest.mm', 'browser/net/cookie_util_unittest.mm', 'browser/net/image_fetcher_unittest.mm',
diff --git a/media/base/android/BUILD.gn b/media/base/android/BUILD.gn index 84405c8..78108a6 100644 --- a/media/base/android/BUILD.gn +++ b/media/base/android/BUILD.gn
@@ -52,6 +52,8 @@ "media_resource_getter.h", "media_source_player.cc", "media_source_player.h", + "media_statistics.cc", + "media_statistics.h", "media_task_runner.cc", "media_task_runner.h", "media_url_interceptor.h",
diff --git a/media/base/android/audio_decoder_job.cc b/media/base/android/audio_decoder_job.cc index 07b82888..e532103 100644 --- a/media/base/android/audio_decoder_job.cc +++ b/media/base/android/audio_decoder_job.cc
@@ -8,6 +8,7 @@ #include "base/lazy_instance.h" #include "base/threading/thread.h" #include "media/base/android/media_codec_bridge.h" +#include "media/base/android/media_statistics.h" #include "media/base/audio_timestamp_helper.h" #include "media/base/timestamp_constants.h" @@ -35,10 +36,12 @@ AudioDecoderJob::AudioDecoderJob( const base::Closure& request_data_cb, - const base::Closure& on_demuxer_config_changed_cb) + const base::Closure& on_demuxer_config_changed_cb, + FrameStatistics* frame_statistics) : MediaDecoderJob(g_audio_decoder_thread.Pointer()->task_runner(), request_data_cb, - on_demuxer_config_changed_cb), + on_demuxer_config_changed_cb, + frame_statistics), audio_codec_(kUnknownAudioCodec), num_channels_(0), config_sampling_rate_(0), @@ -106,14 +109,29 @@ int64 head_position = (static_cast<AudioCodecBridge*>( media_codec_bridge_.get()))->PlayOutputBuffer( output_buffer_index, size, offset); + + base::TimeTicks current_time = base::TimeTicks::Now(); + size_t new_frames_count = size / bytes_per_frame_; frame_count_ += new_frames_count; audio_timestamp_helper_->AddFrames(new_frames_count); int64 frames_to_play = frame_count_ - head_position; DCHECK_GE(frames_to_play, 0); + + const base::TimeDelta last_buffered = + audio_timestamp_helper_->GetTimestamp(); + current_presentation_timestamp = - audio_timestamp_helper_->GetTimestamp() - + last_buffered - audio_timestamp_helper_->GetFrameDuration(frames_to_play); + + if (!next_frame_time_limit_.is_null() && + next_frame_time_limit_ < current_time) { + frame_statistics_->IncrementLateFrameCount(); + } + + next_frame_time_limit_ = + current_time + (last_buffered - current_presentation_timestamp); } else { current_presentation_timestamp = kNoTimestamp(); }
diff --git a/media/base/android/audio_decoder_job.h b/media/base/android/audio_decoder_job.h index 0a9849f..baee4a35 100644 --- a/media/base/android/audio_decoder_job.h +++ b/media/base/android/audio_decoder_job.h
@@ -24,7 +24,8 @@ // |on_demuxer_config_changed_cb| - Callback used to inform the caller that // demuxer config has changed. AudioDecoderJob(const base::Closure& request_data_cb, - const base::Closure& on_demuxer_config_changed_cb); + const base::Closure& on_demuxer_config_changed_cb, + FrameStatistics* frame_statistics); ~AudioDecoderJob() override; // MediaDecoderJob implementation. @@ -79,6 +80,9 @@ // Object to calculate the current audio timestamp for A/V sync. scoped_ptr<AudioTimestampHelper> audio_timestamp_helper_; + // The time limit for the next frame to avoid underrun. + base::TimeTicks next_frame_time_limit_; + DISALLOW_COPY_AND_ASSIGN(AudioDecoderJob); };
diff --git a/media/base/android/media_codec_audio_decoder.cc b/media/base/android/media_codec_audio_decoder.cc index 503fb392..4b8a076 100644 --- a/media/base/android/media_codec_audio_decoder.cc +++ b/media/base/android/media_codec_audio_decoder.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/logging.h" #include "media/base/android/media_codec_bridge.h" +#include "media/base/android/media_statistics.h" #include "media/base/audio_timestamp_helper.h" #include "media/base/demuxer_stream.h" @@ -21,6 +22,7 @@ MediaCodecAudioDecoder::MediaCodecAudioDecoder( const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, + FrameStatistics* frame_statistics, const base::Closure& request_data_cb, const base::Closure& starvation_cb, const base::Closure& decoder_drained_cb, @@ -28,14 +30,15 @@ const base::Closure& waiting_for_decryption_key_cb, const base::Closure& error_cb, const SetTimeCallback& update_current_time_cb) - : MediaCodecDecoder(media_task_runner, + : MediaCodecDecoder("AudioDecoder", + media_task_runner, + frame_statistics, request_data_cb, starvation_cb, decoder_drained_cb, stop_done_cb, waiting_for_decryption_key_cb, - error_cb, - "AudioDecoder"), + error_cb), volume_(-1.0), bytes_per_frame_(0), output_sampling_rate_(0), @@ -207,6 +210,10 @@ int64 head_position = audio_codec->PlayOutputBuffer(buffer_index, size, offset, postpone); + base::TimeTicks current_time = base::TimeTicks::Now(); + + frame_statistics_->IncrementFrameCount(); + // Reset the base timestamp if we have not started playing. // SetBaseTimestamp() must be called before AddFrames() since it resets the // internal frame count. @@ -240,6 +247,16 @@ DVLOG(2) << class_name() << "::" << __FUNCTION__ << " pts:" << pts << " will play: [" << now_playing << "," << last_buffered << "]"; + // Statistics + if (!next_frame_time_limit_.is_null() && + next_frame_time_limit_ < current_time) { + DVLOG(2) << class_name() << "::" << __FUNCTION__ << " LATE FRAME delay:" + << current_time - next_frame_time_limit_; + frame_statistics_->IncrementLateFrameCount(); + } + + next_frame_time_limit_ = current_time + (last_buffered - now_playing); + media_task_runner_->PostTask( FROM_HERE, base::Bind(update_current_time_cb_, now_playing, last_buffered, false));
diff --git a/media/base/android/media_codec_audio_decoder.h b/media/base/android/media_codec_audio_decoder.h index 03df46b..3143d56 100644 --- a/media/base/android/media_codec_audio_decoder.h +++ b/media/base/android/media_codec_audio_decoder.h
@@ -19,6 +19,7 @@ // Called for each rendered frame. MediaCodecAudioDecoder( const scoped_refptr<base::SingleThreadTaskRunner>& media_runner, + FrameStatistics* frame_statistics, const base::Closure& request_data_cb, const base::Closure& starvation_cb, const base::Closure& decoder_drained_cb, @@ -87,6 +88,9 @@ // Reports current playback time to the callee. SetTimeCallback update_current_time_cb_; + // The time limit for the next frame to avoid underrun. + base::TimeTicks next_frame_time_limit_; + DISALLOW_COPY_AND_ASSIGN(MediaCodecAudioDecoder); };
diff --git a/media/base/android/media_codec_decoder.cc b/media/base/android/media_codec_decoder.cc index 808aa761..c7b9e2a 100644 --- a/media/base/android/media_codec_decoder.cc +++ b/media/base/android/media_codec_decoder.cc
@@ -32,16 +32,18 @@ } MediaCodecDecoder::MediaCodecDecoder( + const char* decoder_thread_name, const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, + FrameStatistics* frame_statistics, const base::Closure& external_request_data_cb, const base::Closure& starvation_cb, const base::Closure& decoder_drained_cb, const base::Closure& stop_done_cb, const base::Closure& waiting_for_decryption_key_cb, - const base::Closure& error_cb, - const char* decoder_thread_name) - : media_task_runner_(media_task_runner), - decoder_thread_(decoder_thread_name), + const base::Closure& error_cb) + : decoder_thread_(decoder_thread_name), + media_task_runner_(media_task_runner), + frame_statistics_(frame_statistics), needs_reconfigure_(false), drain_decoder_(false), always_reconfigure_for_tests_(false),
diff --git a/media/base/android/media_codec_decoder.h b/media/base/android/media_codec_decoder.h index 0a3033e..8385d60 100644 --- a/media/base/android/media_codec_decoder.h +++ b/media/base/android/media_codec_decoder.h
@@ -19,6 +19,7 @@ namespace media { +struct FrameStatistics; class MediaCodecBridge; // The decoder for MediaCodecPlayer. @@ -137,10 +138,15 @@ // MediaCodecDecoder constructor. // Parameters: + // decoder_thread_name: + // The thread name to be passed to decoder thread constructor. // media_task_runner: // A task runner for the controlling thread. All public methods should be // called on this thread, and callbacks are delivered on this thread. // The MediaCodecPlayer uses a dedicated (Media) thread for this. + // frame_statistics: + // A pointer to FrameStatistics object which gathers playback quality + // related data. // external_request_data_cb: // Called periodically as the amount of internally stored data decreases. // The receiver should call OnDemuxerDataAvailable() with more data. @@ -157,17 +163,17 @@ // error_cb: // Called when a MediaCodec error occurred. If this happens, a player has // to either call ReleaseDecoderResources() or destroy the decoder object. - // decoder_thread_name: - // The thread name to be passed to decoder thread constructor. MediaCodecDecoder( + const char* decoder_thread_name, const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, + FrameStatistics* frame_statistics, const base::Closure& external_request_data_cb, const base::Closure& starvation_cb, const base::Closure& decoder_drained_cb, const base::Closure& stop_done_cb, const base::Closure& waiting_for_decryption_key_cb, - const base::Closure& error_cb, - const char* decoder_thread_name); + const base::Closure& error_cb); + virtual ~MediaCodecDecoder(); virtual const char* class_name() const; @@ -310,16 +316,18 @@ // Protected data. + // We call MediaCodecBridge on this thread for both input and output buffers. + base::Thread decoder_thread_; + // Object for posting tasks on Media thread. scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; + // Statistics for UMA. + FrameStatistics* frame_statistics_; + // Controls Android MediaCodec scoped_ptr<MediaCodecBridge> media_codec_bridge_; - // We call MediaCodecBridge on this thread for both - // input and output buffers. - base::Thread decoder_thread_; - // The queue of access units. AccessUnitQueue au_queue_;
diff --git a/media/base/android/media_codec_decoder_unittest.cc b/media/base/android/media_codec_decoder_unittest.cc index 29d7012..a667125 100644 --- a/media/base/android/media_codec_decoder_unittest.cc +++ b/media/base/android/media_codec_decoder_unittest.cc
@@ -9,6 +9,7 @@ #include "media/base/android/media_codec_audio_decoder.h" #include "media/base/android/media_codec_bridge.h" #include "media/base/android/media_codec_video_decoder.h" +#include "media/base/android/media_statistics.h" #include "media/base/android/test_data_factory.h" #include "media/base/android/test_statistics.h" #include "media/base/timestamp_constants.h" @@ -227,6 +228,7 @@ base::TimeDelta stop_request_time_; scoped_refptr<base::SingleThreadTaskRunner> task_runner_; + FrameStatistics frame_statistics_; DataAvailableCallback data_available_cb_; scoped_refptr<gfx::SurfaceTexture> surface_texture_; @@ -270,8 +272,9 @@ void MediaCodecDecoderTest::CreateAudioDecoder() { decoder_ = scoped_ptr<MediaCodecDecoder>(new MediaCodecAudioDecoder( - task_runner_, base::Bind(&MediaCodecDecoderTest::OnDataRequested, - base::Unretained(this)), + task_runner_, &frame_statistics_, + base::Bind(&MediaCodecDecoderTest::OnDataRequested, + base::Unretained(this)), base::Bind(&MediaCodecDecoderTest::OnStarvation, base::Unretained(this)), base::Bind(&MediaCodecDecoderTest::OnDecoderDrained, base::Unretained(this)), @@ -287,8 +290,9 @@ void MediaCodecDecoderTest::CreateVideoDecoder() { decoder_ = scoped_ptr<MediaCodecDecoder>(new MediaCodecVideoDecoder( - task_runner_, base::Bind(&MediaCodecDecoderTest::OnDataRequested, - base::Unretained(this)), + task_runner_, &frame_statistics_, + base::Bind(&MediaCodecDecoderTest::OnDataRequested, + base::Unretained(this)), base::Bind(&MediaCodecDecoderTest::OnStarvation, base::Unretained(this)), base::Bind(&MediaCodecDecoderTest::OnDecoderDrained, base::Unretained(this)),
diff --git a/media/base/android/media_codec_player.cc b/media/base/android/media_codec_player.cc index da001e1b..2fc8c18 100644 --- a/media/base/android/media_codec_player.cc +++ b/media/base/android/media_codec_player.cc
@@ -99,6 +99,8 @@ if (audio_decoder_) audio_decoder_->ReleaseDecoderResources(); + media_stat_->StopAndReport(GetInterpolatedTime()); + if (drm_bridge_) { DCHECK(cdm_registration_id_); drm_bridge_->UnregisterPlayer(cdm_registration_id_); @@ -807,6 +809,8 @@ return; } + media_stat_->StopAndReport(GetInterpolatedTime()); + // DetachListener to UI thread ui_task_runner_->PostTask(FROM_HERE, detach_listener_cb_); @@ -851,6 +855,8 @@ SetState(kStateStopping); RequestToStopDecoders(); SetPendingStart(true); + + media_stat_->AddStarvation(); } void MediaCodecPlayer::OnTimeIntervalUpdate(DemuxerStream::Type type, @@ -1246,6 +1252,10 @@ DVLOG(1) << __FUNCTION__ << " current_time:" << current_time; + // At this point decoder threads are either not running at all or their + // message pumps are in the idle state after the preroll is done. + media_stat_->Start(current_time); + if (!AudioFinished()) { if (!audio_decoder_->Start(current_time)) return kStartFailed; @@ -1268,6 +1278,8 @@ video_decoder_->SyncStop(); audio_decoder_->SyncStop(); + + media_stat_->StopAndReport(GetInterpolatedTime()); } void MediaCodecPlayer::RequestToStopDecoders() { @@ -1325,6 +1337,8 @@ // At this point decoder threads should not be running if (interpolator_.interpolating()) interpolator_.StopInterpolating(); + + media_stat_->StopAndReport(GetInterpolatedTime()); } void MediaCodecPlayer::CreateDecoders() { @@ -1333,9 +1347,12 @@ internal_error_cb_ = base::Bind(&MediaCodecPlayer::OnError, media_weak_this_); + media_stat_.reset(new MediaStatistics()); + audio_decoder_.reset(new MediaCodecAudioDecoder( - GetMediaTaskRunner(), base::Bind(&MediaCodecPlayer::RequestDemuxerData, - media_weak_this_, DemuxerStream::AUDIO), + GetMediaTaskRunner(), &media_stat_->audio_frame_stats(), + base::Bind(&MediaCodecPlayer::RequestDemuxerData, media_weak_this_, + DemuxerStream::AUDIO), base::Bind(&MediaCodecPlayer::OnStarvation, media_weak_this_, DemuxerStream::AUDIO), base::Bind(&MediaCodecPlayer::OnDecoderDrained, media_weak_this_, @@ -1349,8 +1366,9 @@ DemuxerStream::AUDIO))); video_decoder_.reset(new MediaCodecVideoDecoder( - GetMediaTaskRunner(), base::Bind(&MediaCodecPlayer::RequestDemuxerData, - media_weak_this_, DemuxerStream::VIDEO), + GetMediaTaskRunner(), &media_stat_->video_frame_stats(), + base::Bind(&MediaCodecPlayer::RequestDemuxerData, media_weak_this_, + DemuxerStream::VIDEO), base::Bind(&MediaCodecPlayer::OnStarvation, media_weak_this_, DemuxerStream::VIDEO), base::Bind(&MediaCodecPlayer::OnDecoderDrained, media_weak_this_,
diff --git a/media/base/android/media_codec_player.h b/media/base/android/media_codec_player.h index 3029992..5662055 100644 --- a/media/base/android/media_codec_player.h +++ b/media/base/android/media_codec_player.h
@@ -13,6 +13,7 @@ #include "media/base/android/demuxer_android.h" #include "media/base/android/media_drm_bridge.h" #include "media/base/android/media_player_android.h" +#include "media/base/android/media_statistics.h" #include "media/base/demuxer_stream.h" #include "media/base/media_export.h" #include "media/base/time_delta_interpolator.h" @@ -409,6 +410,10 @@ // on starting the playback. bool key_is_added_; + // Gathers and reports playback quality statistics to UMA. + // Use pointer to enable replacement of this object for tests. + scoped_ptr<MediaStatistics> media_stat_; + base::WeakPtr<MediaCodecPlayer> media_weak_this_; // NOTE: Weak pointers must be invalidated before all other member variables. base::WeakPtrFactory<MediaCodecPlayer> media_weak_factory_;
diff --git a/media/base/android/media_codec_video_decoder.cc b/media/base/android/media_codec_video_decoder.cc index 08db2a5..930142d 100644 --- a/media/base/android/media_codec_video_decoder.cc +++ b/media/base/android/media_codec_video_decoder.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/logging.h" #include "media/base/android/media_codec_bridge.h" +#include "media/base/android/media_statistics.h" #include "media/base/demuxer_stream.h" #include "media/base/timestamp_constants.h" @@ -18,6 +19,7 @@ MediaCodecVideoDecoder::MediaCodecVideoDecoder( const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, + FrameStatistics* frame_statistics, const base::Closure& request_data_cb, const base::Closure& starvation_cb, const base::Closure& decoder_drained_cb, @@ -27,14 +29,15 @@ const SetTimeCallback& update_current_time_cb, const VideoSizeChangedCallback& video_size_changed_cb, const base::Closure& codec_created_cb) - : MediaCodecDecoder(media_task_runner, + : MediaCodecDecoder("VideoDecoder", + media_task_runner, + frame_statistics, request_data_cb, starvation_cb, decoder_drained_cb, stop_done_cb, waiting_for_decryption_key_cb, - error_cb, - "VideoDecoder"), + error_cb), is_protected_surface_required_(false), update_current_time_cb_(update_current_time_cb), video_size_changed_cb_(video_size_changed_cb), @@ -276,7 +279,19 @@ << " ticks delta:" << (base::TimeTicks::Now() - start_time_ticks_) << " time_to_render:" << time_to_render; + const bool render = (size > 0); + + if (render) + frame_statistics_->IncrementFrameCount(); + if (time_to_render < base::TimeDelta()) { + if (render) { + DVLOG(2) << class_name() << "::" << __FUNCTION__ + << " LATE FRAME delay:" << (-1) * time_to_render; + + frame_statistics_->IncrementLateFrameCount(); + } + // Skip late frames ReleaseOutputBuffer(buffer_index, pts, false, update_time, eos_encountered); return; @@ -284,7 +299,6 @@ delayed_buffers_.insert(buffer_index); - const bool render = (size > 0); decoder_thread_.task_runner()->PostDelayedTask( FROM_HERE, base::Bind(&MediaCodecVideoDecoder::ReleaseOutputBuffer, base::Unretained(this), buffer_index, pts, render,
diff --git a/media/base/android/media_codec_video_decoder.h b/media/base/android/media_codec_video_decoder.h index 557bccd..d247271c 100644 --- a/media/base/android/media_codec_video_decoder.h +++ b/media/base/android/media_codec_video_decoder.h
@@ -28,6 +28,7 @@ // decoder can use them. MediaCodecVideoDecoder( const scoped_refptr<base::SingleThreadTaskRunner>& media_runner, + FrameStatistics* frame_statistics, const base::Closure& request_data_cb, const base::Closure& starvation_cb, const base::Closure& drained_requested_cb,
diff --git a/media/base/android/media_decoder_job.cc b/media/base/android/media_decoder_job.cc index 6a96ccbc..855a813b 100644 --- a/media/base/android/media_decoder_job.cc +++ b/media/base/android/media_decoder_job.cc
@@ -10,6 +10,7 @@ #include "base/thread_task_runner_handle.h" #include "base/trace_event/trace_event.h" #include "media/base/android/media_drm_bridge.h" +#include "media/base/android/media_statistics.h" #include "media/base/bind_to_current_loop.h" #include "media/base/timestamp_constants.h" @@ -23,8 +24,10 @@ MediaDecoderJob::MediaDecoderJob( const scoped_refptr<base::SingleThreadTaskRunner>& decoder_task_runner, const base::Closure& request_data_cb, - const base::Closure& config_changed_cb) + const base::Closure& config_changed_cb, + FrameStatistics* frame_statistics) : need_to_reconfig_decoder_job_(false), + frame_statistics_(frame_statistics), ui_task_runner_(base::ThreadTaskRunnerHandle::Get()), decoder_task_runner_(decoder_task_runner), needs_flush_(false), @@ -485,9 +488,19 @@ (status != MEDIA_CODEC_OUTPUT_END_OF_STREAM || size != 0u); base::TimeDelta time_to_render; DCHECK(!start_time_ticks.is_null()); - if (render_output && ComputeTimeToRender()) { - time_to_render = presentation_timestamp - (base::TimeTicks::Now() - - start_time_ticks + start_presentation_timestamp); + if (render_output) { + frame_statistics_->IncrementFrameCount(); + + if (ComputeTimeToRender()) { + time_to_render = + presentation_timestamp - (base::TimeTicks::Now() - start_time_ticks + + start_presentation_timestamp); + + // ComputeTimeToRender() returns true for video streams only, this is a + // video stream. + if (time_to_render < base::TimeDelta()) + frame_statistics_->IncrementLateFrameCount(); + } } if (time_to_render > base::TimeDelta()) {
diff --git a/media/base/android/media_decoder_job.h b/media/base/android/media_decoder_job.h index 2503a42..df7f454 100644 --- a/media/base/android/media_decoder_job.h +++ b/media/base/android/media_decoder_job.h
@@ -18,6 +18,7 @@ namespace media { +struct FrameStatistics; class MediaDrmBridge; // Class for managing all the decoding tasks. Each decoding task will be posted @@ -117,7 +118,8 @@ MediaDecoderJob( const scoped_refptr<base::SingleThreadTaskRunner>& decoder_task_runner, const base::Closure& request_data_cb, - const base::Closure& config_changed_cb); + const base::Closure& config_changed_cb, + FrameStatistics* frame_statistics); // Release the output buffer at index |output_buffer_index| and render it if // |render_output| is true. Upon completion, |callback| will be called. @@ -154,6 +156,8 @@ scoped_ptr<MediaCodecBridge> media_codec_bridge_; + FrameStatistics* frame_statistics_; + private: friend class MediaSourcePlayerTest;
diff --git a/media/base/android/media_source_player.cc b/media/base/android/media_source_player.cc index 7fbd9c0..92f08cb 100644 --- a/media/base/android/media_source_player.cc +++ b/media/base/android/media_source_player.cc
@@ -47,19 +47,24 @@ is_waiting_for_video_decoder_(false), prerolling_(true), weak_factory_(this) { + media_stat_.reset(new MediaStatistics()); + audio_decoder_job_.reset(new AudioDecoderJob( base::Bind(&DemuxerAndroid::RequestDemuxerData, base::Unretained(demuxer_.get()), DemuxerStream::AUDIO), base::Bind(&MediaSourcePlayer::OnDemuxerConfigsChanged, - weak_factory_.GetWeakPtr()))); + weak_factory_.GetWeakPtr()), + &media_stat_->audio_frame_stats())); video_decoder_job_.reset(new VideoDecoderJob( base::Bind(&DemuxerAndroid::RequestDemuxerData, base::Unretained(demuxer_.get()), DemuxerStream::VIDEO), base::Bind(request_media_resources_cb_, player_id), base::Bind(&MediaSourcePlayer::OnDemuxerConfigsChanged, - weak_factory_.GetWeakPtr()))); + weak_factory_.GetWeakPtr()), + &media_stat_->video_frame_stats())); + demuxer_->Initialize(this); interpolator_.SetUpperBound(base::TimeDelta()); weak_this_ = weak_factory_.GetWeakPtr(); @@ -467,6 +472,7 @@ DVLOG(1) << __FUNCTION__ << " : decode error"; Release(); manager()->OnError(player_id(), MEDIA_ERROR_DECODE); + media_stat_->StopAndReport(GetCurrentTime()); return; } @@ -477,6 +483,7 @@ // any other pending events only after handling EOS detection. if (IsEventPending(SEEK_EVENT_PENDING)) { ProcessPendingEvents(); + media_stat_->StopAndReport(GetCurrentTime()); return; } @@ -497,13 +504,16 @@ return; } - if (status == MEDIA_CODEC_OUTPUT_END_OF_STREAM) + if (status == MEDIA_CODEC_OUTPUT_END_OF_STREAM) { + media_stat_->StopAndReport(GetCurrentTime()); return; + } if (!playing_) { if (is_clock_manager) interpolator_.StopInterpolating(); + media_stat_->StopAndReport(GetCurrentTime()); return; } @@ -514,6 +524,7 @@ } else { is_waiting_for_key_ = true; manager()->OnWaitingForDecryptionKey(player_id()); + media_stat_->StopAndReport(GetCurrentTime()); } return; } @@ -531,8 +542,10 @@ // If the status is MEDIA_CODEC_ABORT, stop decoding new data. The player is // in the middle of a seek or stop event and needs to wait for the IPCs to // come. - if (status == MEDIA_CODEC_ABORT) + if (status == MEDIA_CODEC_ABORT) { + media_stat_->StopAndReport(GetCurrentTime()); return; + } if (prerolling_ && IsPrerollFinished(is_audio)) { if (IsPrerollFinished(!is_audio)) { @@ -654,6 +667,8 @@ void MediaSourcePlayer::OnDecoderStarved() { DVLOG(1) << __FUNCTION__; + media_stat_->AddStarvation(); + SetPendingEvent(PREFETCH_REQUEST_EVENT_PENDING); ProcessPendingEvents(); } @@ -720,6 +735,8 @@ if (!interpolator_.interpolating()) interpolator_.StartInterpolating(); + media_stat_->Start(start_presentation_timestamp_); + if (!AudioFinished()) DecodeMoreAudio();
diff --git a/media/base/android/media_source_player.h b/media/base/android/media_source_player.h index bfa3935c..d7b6715 100644 --- a/media/base/android/media_source_player.h +++ b/media/base/android/media_source_player.h
@@ -23,6 +23,7 @@ #include "media/base/android/media_decoder_job.h" #include "media/base/android/media_drm_bridge.h" #include "media/base/android/media_player_android.h" +#include "media/base/android/media_statistics.h" #include "media/base/media_export.h" #include "media/base/time_delta_interpolator.h" @@ -268,6 +269,10 @@ // Whether audio or video decoder is in the process of prerolling. bool prerolling_; + // Gathers and reports playback quality statistics to UMA. + // Use pointer to enable replacement of this object for tests. + scoped_ptr<MediaStatistics> media_stat_; + // Weak pointer passed to media decoder jobs for callbacks. base::WeakPtr<MediaSourcePlayer> weak_this_; // NOTE: Weak pointers must be invalidated before all other member variables.
diff --git a/media/base/android/media_statistics.cc b/media/base/android/media_statistics.cc new file mode 100644 index 0000000..19c0298e --- /dev/null +++ b/media/base/android/media_statistics.cc
@@ -0,0 +1,119 @@ +// Copyright 2015 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 "media/base/android/media_statistics.h" + +#include "base/logging.h" +#include "base/metrics/histogram_macros.h" +#include "media/base/android/demuxer_stream_player_params.h" + +namespace media { + +// Minimum playback interval to report. +const int kMinDurationInSeconds = 2; + +// Maximum playback interval to report. +const int kMaxDurationInSeconds = 3600; + +// Number of slots in the histogram for playback interval. +const int kNumDurationSlots = 50; + +// For easier reading. +const int kOneMillion = 1000000; + +void FrameStatistics::IncrementLateFrameCount() { + // Do not collect the late frame if this is the first frame after the start. + // Right now we do not want to consider the late video frame which is the + // first after preroll, preroll may be inacurate in this respect. + // The first audio frame cannot be late by definition and by not considering + // it we can simplify audio decoder code. + if (total == 1) + return; + + ++late; +} + +MediaStatistics::MediaStatistics() {} + +MediaStatistics::~MediaStatistics() {} + +void MediaStatistics::Start(base::TimeDelta current_playback_time) { + DVLOG(1) << __FUNCTION__; + + if (start_time_ == kNoTimestamp()) { + Clear(); + start_time_ = current_playback_time; + } +} + +void MediaStatistics::StopAndReport(base::TimeDelta current_playback_time) { + DVLOG(1) << __FUNCTION__; + + if (start_time_ == kNoTimestamp()) + return; // skip if there was no prior Start(). + + base::TimeDelta duration = current_playback_time - start_time_; + + // Reset start time. + start_time_ = kNoTimestamp(); + + if (duration < base::TimeDelta::FromSeconds(kMinDurationInSeconds)) + return; // duration is too short. + + if (duration > base::TimeDelta::FromSeconds(kMaxDurationInSeconds)) + return; // duration is too long. + + Report(duration); +} + +void MediaStatistics::Clear() { + start_time_ = kNoTimestamp(); + audio_frame_stats_.Clear(); + video_frame_stats_.Clear(); + num_starvations_ = 0; +} + +void MediaStatistics::Report(base::TimeDelta duration) { + DVLOG(1) << __FUNCTION__ << " duration:" << duration + << " audio frames:" + << audio_frame_stats_.late << "/" << audio_frame_stats_.total + << " video frames:" + << video_frame_stats_.late << "/" << video_frame_stats_.total + << " starvations:" << num_starvations_; + + // Playback duration is the time interval between the moment playback starts + // and the moment it is interrupted either by stopping or by seeking, changing + // to full screen, minimizing the browser etc. The interval is measured by + // media time. + + UMA_HISTOGRAM_CUSTOM_TIMES( + "Media.MSE.PlaybackDuration", duration, + base::TimeDelta::FromSeconds(kMinDurationInSeconds), + base::TimeDelta::FromSeconds(kMaxDurationInSeconds), kNumDurationSlots); + + // Number of late frames per one million frames. + + if (audio_frame_stats_.total) { + UMA_HISTOGRAM_COUNTS( + "Media.MSE.LateAudioFrames", + kOneMillion * audio_frame_stats_.late / audio_frame_stats_.total); + } + + if (video_frame_stats_.total) { + UMA_HISTOGRAM_COUNTS( + "Media.MSE.LateVideoFrames", + kOneMillion * video_frame_stats_.late / video_frame_stats_.total); + } + + // Number of starvations per one million frames. + + uint32_t total_frames = audio_frame_stats_.total ? audio_frame_stats_.total + : video_frame_stats_.total; + if (total_frames) { + UMA_HISTOGRAM_COUNTS("Media.MSE.Starvations", + kOneMillion * num_starvations_ / total_frames); + } +} + +} // namespace media
diff --git a/media/base/android/media_statistics.h b/media/base/android/media_statistics.h new file mode 100644 index 0000000..5b6daabb --- /dev/null +++ b/media/base/android/media_statistics.h
@@ -0,0 +1,88 @@ +// Copyright 2015 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 MEDIA_BASE_ANDROID_MEDIA_STATISTICS_H_ +#define MEDIA_BASE_ANDROID_MEDIA_STATISTICS_H_ + +#include <stdint.h> +#include "base/time/time.h" +#include "media/base/demuxer_stream.h" +#include "media/base/timestamp_constants.h" + +namespace media { + +// FrameStatistics struct deals with frames of one stream, i.e. either +// audio or video. +struct FrameStatistics { + // Audio: total number of frames that have been rendered. + // Video: total number of frames that were supposed to be rendered. Late video + // frames might be skipped, but are counted here. + uint32_t total = 0; + + // A number of late frames. Late frames are a subset of the total frames. + // Audio: The frame is late if it might cause an underrun, i.e. comes from + // decoder when audio buffer is already depleted. + // Video: The frame is late if it missed its presentation time as determined + // by PTS when it comes from decoder. The rendering policy (i.e. + // render or skip) does not affect this number. + uint32_t late = 0; + + void Clear() { total = late = 0; } + + // Increments |total| frame count. + void IncrementFrameCount() { ++total; } + + // Increments |late| frame count except it is the first frame after start. + // For each IncrementLateFrameCount() call there should be preceding + // IncrementFrameCount() call. + void IncrementLateFrameCount(); +}; + +// MediaStatistics class gathers and reports playback quality statistics to UMA. +// +// This class is not thread safe. The caller should guarantee that operations +// on FrameStatistics objects does not happen during Start() and +// StopAndReport(). The Start() and StopAndReport() methods need to be called +// sequentially. + +class MediaStatistics { + public: + MediaStatistics(); + ~MediaStatistics(); + + // Returns the frame statistics for audio frames. + FrameStatistics& audio_frame_stats() { return audio_frame_stats_; } + + // Returns the frame statistics for video frames. + FrameStatistics& video_frame_stats() { return video_frame_stats_; } + + // Starts gathering statistics. When called in a row only the firts call will + // take effect. + void Start(base::TimeDelta current_playback_time); + + // Stops gathering statistics, calculate and report results. When called + // in a row only the firts call will take effect. + void StopAndReport(base::TimeDelta current_playback_time); + + // Adds starvation event. Starvation happens when the player interrupts + // the regular playback and asks for more data. + void AddStarvation() { ++num_starvations_; } + + private: + // Resets the data to the initial state. + void Clear(); + + // Calculates relative data based on total frame numbers and reports it and + // the duration to UMA. + void Report(base::TimeDelta duration); + + base::TimeDelta start_time_ = kNoTimestamp(); + FrameStatistics audio_frame_stats_; + FrameStatistics video_frame_stats_; + uint32_t num_starvations_ = 0; +}; + +} // namespace media + +#endif // MEDIA_BASE_ANDROID_MEDIA_STATISTICS_H_
diff --git a/media/base/android/video_decoder_job.cc b/media/base/android/video_decoder_job.cc index 2a29d015..ebb64e1 100644 --- a/media/base/android/video_decoder_job.cc +++ b/media/base/android/video_decoder_job.cc
@@ -28,10 +28,12 @@ VideoDecoderJob::VideoDecoderJob( const base::Closure& request_data_cb, const base::Closure& request_resources_cb, - const base::Closure& on_demuxer_config_changed_cb) + const base::Closure& on_demuxer_config_changed_cb, + FrameStatistics* frame_statistics) : MediaDecoderJob(g_video_decoder_thread.Pointer()->task_runner(), request_data_cb, - on_demuxer_config_changed_cb), + on_demuxer_config_changed_cb, + frame_statistics), video_codec_(kUnknownVideoCodec), config_width_(0), config_height_(0),
diff --git a/media/base/android/video_decoder_job.h b/media/base/android/video_decoder_job.h index 00a8e6f..7700ee4c 100644 --- a/media/base/android/video_decoder_job.h +++ b/media/base/android/video_decoder_job.h
@@ -21,10 +21,10 @@ // |request_resources_cb| - Callback used to request resources. // |on_demuxer_config_changed_cb| - Callback used to inform the caller that // demuxer config has changed. - VideoDecoderJob( - const base::Closure& request_data_cb, - const base::Closure& request_resources_cb, - const base::Closure& on_demuxer_config_changed_cb); + VideoDecoderJob(const base::Closure& request_data_cb, + const base::Closure& request_resources_cb, + const base::Closure& on_demuxer_config_changed_cb, + FrameStatistics* frame_statistics); ~VideoDecoderJob() override; // Passes a java surface object to the codec. Returns true if the surface
diff --git a/media/media.gyp b/media/media.gyp index a136093..5a462e65 100644 --- a/media/media.gyp +++ b/media/media.gyp
@@ -1865,6 +1865,8 @@ 'base/android/media_resource_getter.h', 'base/android/media_source_player.cc', 'base/android/media_source_player.h', + 'base/android/media_statistics.cc', + 'base/android/media_statistics.h', 'base/android/media_task_runner.cc', 'base/android/media_task_runner.h', 'base/android/media_url_interceptor.h',
diff --git a/third_party/WebKit/LayoutTests/LeakExpectations b/third_party/WebKit/LayoutTests/LeakExpectations index 72d5a4c..14a564ac 100644 --- a/third_party/WebKit/LayoutTests/LeakExpectations +++ b/third_party/WebKit/LayoutTests/LeakExpectations
@@ -141,3 +141,5 @@ # Untriaged but known leaks of ActiveDOMObject (Web Audio). # ----------------------------------------------------------------- crbug.com/506757 webaudio/mediastreamaudiodestinationnode.html [ Leak ] + +crbug.com/538524 editing/selection/modify-crash.html [ Leak ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 8ea687e..d371688 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -977,322 +977,7 @@ crbug.com/536234 [ Android Linux Win SnowLeopard Lion MountainLion Retina Mavericks ] fast/parser/open-comment-in-textarea.html [ NeedsRebaseline ] crbug.com/536234 [ Android Linux Win SnowLeopard Lion MountainLion Retina Mavericks ] fast/replaced/width100percent-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-161.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-19b.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-23.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-24.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-64.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-68.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-69.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-161.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-19b.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-23.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-24.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-64.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-68.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-69.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-161.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-19b.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-23.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-24.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-64.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-68.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-69.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/input/caret-at-the-edge-of-input.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/input/reveal-caret-of-multiline-input.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/pasteboard/4641033.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/pasteboard/drop-text-without-selection.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/pasteboard/pasting-tabs.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/4397952.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/4975120.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/5240265.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/caret-before-select.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-1.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-3.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-4.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-5.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] editing/spelling/input-type-text.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/block/float/float-avoidance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/block/margin-collapse/103.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/block/positioning/inline-block-relposition.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/css/continuationCrash.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/css/input-search-padding.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/css/line-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/css/margin-top-bottom-dynamic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/css/text-overflow-input.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/dom/HTMLInputElement/input-image-alt-text.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/dom/HTMLTableColElement/resize-table-using-col-width.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/dom/HTMLTextAreaElement/reset-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/dom/shadow/shadowdom-for-button.html [ ImageOnlyFailure ] -crbug.com/524646 [ Yosemite ] fast/dynamic/008.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/events/autoscroll.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/events/context-no-deselect.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/files/file-in-input-display.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/001.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/002.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/003.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/004.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/005.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label01.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label02.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label03.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label04.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label05.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/basic-buttons.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/basic-inputs.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/basic-selects.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/basic-textareas-quirks.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/basic-textareas.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/blankbuttons.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-align.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-cannot-be-nested.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-default-title.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-positioned.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-sizes.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-style-color.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-table-styles.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-text-transform.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button-white-space.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/button/button-reset-focus-by-mouse-then-keydown.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-minimum-date.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-required.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-ru.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-step.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/month-picker-appearance-step.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/month-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/week-picker-appearance-step.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/week-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-one-row-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-two-row-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-with-scrollbar-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/control-clip-overflow.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/control-clip.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/control-restrict-line-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/disabled-select-change-index.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/file/file-input-direction.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/file/file-input-disabled.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/file/file-input-pressed-state.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/file/input-file-re-render.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/floating-textfield-relayout.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/form-element-geometry.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/formmove3.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-align.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-bkcolor.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-default-bkcolor.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-disabled.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-focus.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-preventDefault.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-readonly.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-selection.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-visibility.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-width.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-button-sizes.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-disabled-color.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-double-click-selection-gap-bug.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-field-text-truncated.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-first-letter.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-placeholder-paint-order.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-placeholder-visibility-1.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-placeholder-visibility-3.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-readonly-autoscroll.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-readonly-dimmed.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-spaces.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-table.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-text-double-click.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-text-drag-down.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-text-option-delete.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-text-scroll-left-on-blur.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-text-word-wrap.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-type-text-min-width.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/input-value.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/listbox-bidi-align.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/listbox-hit-test-zoomed.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/listbox-scrollbar-incremental-load.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/listbox-width-change.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-deselect-update.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-narrow-width.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-no-overflow.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-option-wrap.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-restrict-line-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-style-color.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/menulist-width-change.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/minWidthPercent.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/number/number-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/number/number-appearance-spinbutton-disabled-readonly.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/number/number-appearance-spinbutton-layer.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/onselect-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/option-script.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/option-strip-whitespace.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/option-text-clip.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/placeholder-appearance-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/placeholder-position.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/placeholder-pseudo-style.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/plaintext-mode-2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/search-cancel-button-style-sharing.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/search-display-none-cancel-button.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/search-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/search-vertical-alignment.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/search/search-appearance-basic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/searchfield-heights.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-align.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-baseline.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-block-background.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-change-listbox-size.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-change-listbox-to-popup.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-change-popup-to-listbox.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-dirty-parent-pref-widths.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-disabled-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-empty-option-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-initial-position.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-item-background-clip.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-list-box-with-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-listbox-multiple-no-focusring.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-multiple-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-overflow-scroll-inherited.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-overflow-scroll.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-selected.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-size.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-style.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select-writing-direction-natural.html [ NeedsRebaseline ] crbug.com/534265 fast/forms/select/listbox-appearance-basic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/listbox-appearance-separator.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/listbox-with-display-none-option.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/menulist-appearance-basic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/optgroup-rendering.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-many.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-single-option.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-styled.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-texttransform.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-transform.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-zoom.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/stuff-on-my-optgroup.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/submit/submit-appearance-basic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/submit/submit-focus-by-mouse-then-keydown.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/date-suggestion-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/month-suggestion-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/week-suggestion-picker-appearance.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/tabbing-input-iframe.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/targeted-frame-submission.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/text-style-color.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/text/text-appearance-basic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textAreaLineHeight.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-align.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-placeholder-pseudo-style.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-placeholder-visibility-1.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-placeholder-visibility-2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-scroll-height.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-scrolled-type.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea-setinnerhtml.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea/textarea-appearance-basic.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textarea/textarea-placeholder-paint-order.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textfield-outline.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/forms/textfield-overflow-by-value-update.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/html/details-replace-summary-child.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/html/details-replace-text.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/html/keygen.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/images/12-55.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/images/182.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/images/2-dht.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/images/23-55.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/images/55.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/lists/dynamic-marker-crash.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/multicol/multicol-with-child-renderLayer-for-input.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/overflow/overflow-x-y.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/overflow/scroll-nested-positioned-layer-in-overflow.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/parser/document-write-option.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/parser/entity-comment-in-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/parser/open-comment-in-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/repaint/caret-invalidation-in-overflow-scroll.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/repaint/change-text-content-and-background-color.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/repaint/control-clip.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/repaint/multi-layout-one-frame.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/repaint/search-field-cancel.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/repaint/subtree-root-skipped.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/replaced-breaking-mixture.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/replaced-breaking.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-button.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-menulist.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-searchfield.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-textfield.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/selectors/064.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/spatial-navigation/snav-multiple-select-focusring.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/table/append-cells2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/table/remove-td-display-none.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/table/spanOverlapRepaint.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/table/text-field-baseline.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/text/international/bidi-listbox.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/text/international/bidi-menulist.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/text/international/pop-up-button-text-alignment-and-direction.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/text/international/unicode-bidi-plaintext-in-textarea.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] fast/text/textIteratorNilRenderer.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] http/tests/filesystem/input-display.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] http/tests/webfont/popup-menu-load-webfont-after-open.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] plugins/mouse-click-plugin-clears-selection.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] svg/custom/inline-svg-in-xhtml.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] svg/hixie/mixed/003.xml [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug1188.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug1318.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug138725.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug18359.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug194024.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug2479-2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug2479-3.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug2479-4.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug26178.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug28928.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug29326.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug30559.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug30692.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug33855.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug39209.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug4382.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug4429.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug44505.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug46368-1.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug46368-2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug51037.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug51727.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug52505.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug52506.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug59354.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug60749.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug68912.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug7342.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug96334.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/collapsing_borders/bug41262-4.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/core/margins.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/dom/tableDom.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla/other/move_row.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/bugs/bug1725.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/bugs/bug2479-5.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/bugs/bug58402-2.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/collapsing_borders/bug41262-5.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/collapsing_borders/bug41262-6.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] transforms/2d/zoom-menulist.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] virtual/pointerevent/fast/events/autoscroll.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ NeedsRebaseline ] -crbug.com/524646 [ Yosemite ] virtual/trustedeventsdefaultaction/fast/events/autoscroll.html [ NeedsRebaseline ] crbug.com/510002 [ Win ] http/tests/cachestorage/window/cache-match.html [ Pass Failure ] crbug.com/510002 [ Win ] http/tests/cachestorage/window/cache-put.html [ Pass Failure Timeout ] @@ -1448,6 +1133,157 @@ # Unclear semantics of ToString (actually ToPrimitive) across iframes. crbug.com/532469 http/tests/security/cross-frame-access-custom.html [ NeedsManualRebaseline ] +crbug.com/474759 svg/text/foreignObject-text-clipping-bug.xml [ NeedsRebaseline ] +crbug.com/474759 paint/invalidation/invalidate-after-composited-scroll.html [ NeedsRebaseline ] +crbug.com/474759 paint/selection/selection-within-composited-scroller.html [ NeedsRebaseline ] +crbug.com/474759 fast/backgrounds/selection-background-color-of-image-list-style.html [ NeedsRebaseline ] +crbug.com/474759 fast/backgrounds/selection-background-color-of-list-style.html [ NeedsRebaseline ] +crbug.com/474759 fast/block/line-layout/selection-highlight-overlap.html [ ImageOnlyFailure ] +crbug.com/474759 fast/forms/form-added-to-table.html [ NeedsRebaseline ] +crbug.com/474759 fast/lists/markers-in-selection.html [ NeedsRebaseline ] +crbug.com/474759 fast/overflow/image-selection-highlight.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/delete-into-nested-block.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/japanese-rl-selection-clear.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/japanese-rl-selection-repaint.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/overflow-move-after-scroll.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/overflow-scroll-after-move.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/selection-after-delete.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/selection-after-remove.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/selection-change-in-iframe-with-relative-parent.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/selection-clear.html [ NeedsRebaseline ] +crbug.com/474759 fast/repaint/selection-partial-invalidation-between-blocks.html [ NeedsRebaseline ] +crbug.com/474759 fast/ruby/select-ruby.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/emphasis.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/selection-hard-linebreak.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/selection-painted-separately.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/selection-rect-rounding.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/shaping/shaping-selection-rect.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/whitespace/pre-wrap-overflow-selection.html [ NeedsRebaseline ] +crbug.com/474759 fast/text/whitespace/select-new-line-with-line-break-normal.html [ NeedsRebaseline ] +crbug.com/474759 fast/writing-mode/horizontal-bt-replaced-selection.html [ NeedsRebaseline ] +crbug.com/474759 fast/writing-mode/japanese-lr-selection.html [ NeedsRebaseline ] +crbug.com/474759 fast/writing-mode/japanese-rl-selection.html [ NeedsRebaseline ] +crbug.com/474759 fast/writing-mode/vertical-lr-replaced-selection.html [ NeedsRebaseline ] +crbug.com/474759 fast/writing-mode/vertical-rl-replaced-selection.html [ NeedsRebaseline ] +crbug.com/474759 editing/deleting/delete-to-select-table.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/3690703.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/3690703-2.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/3690719.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/4818145.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/4947387.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/5057506-2.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/5057506.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/5232159.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/7152-1.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/7152-2.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/doubleclick-crash.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/extend-by-character-002.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/extend-by-character-003.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/extend-inside-transforms-backward.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/extend-inside-transforms-forward.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/image-before-linebreak.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/linux_selection_color.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/mixed-editability-6.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/mixed-editability-7.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/node-removal-2.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/paragraph-granularity.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/range-between-block-and-inline.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/replaced-boundaries-3.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-all-001.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-all-002.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-all-003.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-all-004.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-all-005.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-all-006.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/select-missing-image.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/selection-actions.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/selection-button-text.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-lr-ltr-extend-line-backward-br.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-lr-ltr-extend-line-forward-br.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-backward-br.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-backward-p.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-backward-wrap.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-forward-br.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-forward-p.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-forward-wrap.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-backward-br.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-backward-p.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-forward-br.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-forward-p.html [ NeedsRebaseline ] +crbug.com/474759 editing/selection/word-granularity.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/5017613-1.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/5017613-2.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/5046875-1.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/5228141.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/5279521.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/apple-style-editable-mix.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/block-style-003.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/create-block-for-style-005.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/create-block-for-style-006.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/create-block-for-style-010.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/create-block-for-style-011.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/create-block-for-style-012.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/relative-font-size-change-001.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/relative-font-size-change-002.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/style-3998892-fix.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/style-boundary-004.html [ NeedsRebaseline ] +crbug.com/474759 editing/style/table-selection.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/4916541.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/5136770.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/5142012-1.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/5142012-2.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/5190926.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/5481523.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/indent-selection.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/remove-list-from-range-selection.html [ NeedsRebaseline ] +crbug.com/474759 editing/execCommand/selectAll.html [ NeedsRebaseline ] +crbug.com/474759 compositing/layer-creation/fixed-position-in-fixed-overflow.html [ NeedsRebaseline ] +crbug.com/474759 compositing/layer-creation/fixed-position-nonscrollable-body-mismatch-containers.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/accelerated-overflow-scroll-should-not-affect-perspective.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/clear-scroll-parent.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/composited-scrolling-paint-phases.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/content-gains-scrollbars.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/overflow-scrollbar-layers.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/reparented-scrollbars-non-sc-anc.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/scroll-parent-absolute.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/scrolling-content-clip-to-viewport.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/scrolling-without-painting.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/selection-gaps-after-removing-scrolling-contents.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/selection-gaps-toggling-with-scrolling-contents.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/selection-gaps-toggling.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/textarea-scroll-touch.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/universal-accelerated-overflow-scroll.html [ NeedsRebaseline ] +crbug.com/474759 compositing/overflow/updating-scrolling-content.html [ NeedsRebaseline ] +crbug.com/474759 compositing/repaint/should-not-clip-composited-overflow-scrolling-layer.html [ NeedsRebaseline ] +crbug.com/474759 compositing/scrollbars/nested-overlay-scrollbars.html [ NeedsRebaseline ] +crbug.com/474759 compositing/squashing/composited-bounds-for-negative-z.html [ NeedsRebaseline ] +crbug.com/474759 compositing/squashing/selection-repaint-with-gaps.html [ NeedsRebaseline ] +crbug.com/474759 compositing/update-paint-phases.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/accelerated-overflow-scroll-should-not-affect-perspective.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clear-scroll-parent.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/composited-scrolling-paint-phases.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/content-gains-scrollbars.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scrollbar-layers.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/reparented-scrollbars-non-sc-anc.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-parent-absolute.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scrolling-content-clip-to-viewport.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scrolling-without-painting.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/selection-gaps-after-removing-scrolling-contents.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/selection-gaps-toggling-with-scrolling-contents.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/selection-gaps-toggling.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/textarea-scroll-touch.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/universal-accelerated-overflow-scroll.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/updating-scrolling-content.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/updating-scrolling-container.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/updating-scrolling-container-and-content.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/text-match-highlight.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/text-color-change.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-overlay-with-touch.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-auto-with-touch.html [ NeedsRebaseline ] +crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-auto-with-touch-toggle.html [ NeedsRebaseline ] + # Win10 specific failures that still need triaging. crbug.com/521730 [ Win10 ] fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html [ Failure ] crbug.com/521730 [ Win10 ] fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html [ Failure ] @@ -1842,157 +1678,6 @@ crbug.com/535051 [ Linux Win ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ NeedsRebaseline ] crbug.com/535051 [ Linux Win ] compositing/rtl/rtl-iframe-fixed-overflow.html [ NeedsRebaseline ] -crbug.com/474759 svg/text/foreignObject-text-clipping-bug.xml [ NeedsRebaseline ] -crbug.com/474759 paint/invalidation/invalidate-after-composited-scroll.html [ NeedsRebaseline ] -crbug.com/474759 paint/selection/selection-within-composited-scroller.html [ NeedsRebaseline ] -crbug.com/474759 fast/backgrounds/selection-background-color-of-image-list-style.html [ NeedsRebaseline ] -crbug.com/474759 fast/backgrounds/selection-background-color-of-list-style.html [ NeedsRebaseline ] -crbug.com/474759 fast/block/line-layout/selection-highlight-overlap.html [ ImageOnlyFailure ] -crbug.com/474759 fast/forms/form-added-to-table.html [ NeedsRebaseline ] -crbug.com/474759 fast/lists/markers-in-selection.html [ NeedsRebaseline ] -crbug.com/474759 fast/overflow/image-selection-highlight.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/delete-into-nested-block.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/japanese-rl-selection-clear.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/japanese-rl-selection-repaint.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/overflow-move-after-scroll.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/overflow-scroll-after-move.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/selection-after-delete.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/selection-after-remove.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/selection-change-in-iframe-with-relative-parent.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/selection-clear.html [ NeedsRebaseline ] -crbug.com/474759 fast/repaint/selection-partial-invalidation-between-blocks.html [ NeedsRebaseline ] -crbug.com/474759 fast/ruby/select-ruby.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/emphasis.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/selection-hard-linebreak.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/selection-painted-separately.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/selection-rect-rounding.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/shaping/shaping-selection-rect.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/whitespace/pre-wrap-overflow-selection.html [ NeedsRebaseline ] -crbug.com/474759 fast/text/whitespace/select-new-line-with-line-break-normal.html [ NeedsRebaseline ] -crbug.com/474759 fast/writing-mode/horizontal-bt-replaced-selection.html [ NeedsRebaseline ] -crbug.com/474759 fast/writing-mode/japanese-lr-selection.html [ NeedsRebaseline ] -crbug.com/474759 fast/writing-mode/japanese-rl-selection.html [ NeedsRebaseline ] -crbug.com/474759 fast/writing-mode/vertical-lr-replaced-selection.html [ NeedsRebaseline ] -crbug.com/474759 fast/writing-mode/vertical-rl-replaced-selection.html [ NeedsRebaseline ] -crbug.com/474759 editing/deleting/delete-to-select-table.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/3690703.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/3690703-2.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/3690719.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/4818145.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/4947387.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/5057506-2.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/5057506.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/5232159.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/7152-1.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/7152-2.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/doubleclick-crash.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/extend-by-character-002.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/extend-by-character-003.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/extend-inside-transforms-backward.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/extend-inside-transforms-forward.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/image-before-linebreak.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/linux_selection_color.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/mixed-editability-6.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/mixed-editability-7.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/node-removal-2.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/paragraph-granularity.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/range-between-block-and-inline.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/replaced-boundaries-3.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-all-001.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-all-002.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-all-003.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-all-004.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-all-005.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-all-006.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/select-missing-image.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/selection-actions.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/selection-button-text.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-lr-ltr-extend-line-backward-br.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-lr-ltr-extend-line-forward-br.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-backward-br.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-backward-p.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-backward-wrap.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-forward-br.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-forward-p.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-ltr-extend-line-forward-wrap.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-backward-br.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-backward-p.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-forward-br.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/vertical-rl-rtl-extend-line-forward-p.html [ NeedsRebaseline ] -crbug.com/474759 editing/selection/word-granularity.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/5017613-1.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/5017613-2.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/5046875-1.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/5228141.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/5279521.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/apple-style-editable-mix.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/block-style-003.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/create-block-for-style-005.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/create-block-for-style-006.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/create-block-for-style-010.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/create-block-for-style-011.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/create-block-for-style-012.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/relative-font-size-change-001.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/relative-font-size-change-002.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/style-3998892-fix.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/style-boundary-004.html [ NeedsRebaseline ] -crbug.com/474759 editing/style/table-selection.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/4916541.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/5136770.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/5142012-1.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/5142012-2.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/5190926.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/5481523.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/indent-selection.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/remove-list-from-range-selection.html [ NeedsRebaseline ] -crbug.com/474759 editing/execCommand/selectAll.html [ NeedsRebaseline ] -crbug.com/474759 compositing/layer-creation/fixed-position-in-fixed-overflow.html [ NeedsRebaseline ] -crbug.com/474759 compositing/layer-creation/fixed-position-nonscrollable-body-mismatch-containers.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/accelerated-overflow-scroll-should-not-affect-perspective.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/clear-scroll-parent.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/composited-scrolling-paint-phases.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/content-gains-scrollbars.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/overflow-scrollbar-layers.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/reparented-scrollbars-non-sc-anc.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/scroll-parent-absolute.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/scrolling-content-clip-to-viewport.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/scrolling-without-painting.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/selection-gaps-after-removing-scrolling-contents.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/selection-gaps-toggling-with-scrolling-contents.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/selection-gaps-toggling.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/textarea-scroll-touch.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/universal-accelerated-overflow-scroll.html [ NeedsRebaseline ] -crbug.com/474759 compositing/overflow/updating-scrolling-content.html [ NeedsRebaseline ] -crbug.com/474759 compositing/repaint/should-not-clip-composited-overflow-scrolling-layer.html [ NeedsRebaseline ] -crbug.com/474759 compositing/scrollbars/nested-overlay-scrollbars.html [ NeedsRebaseline ] -crbug.com/474759 compositing/squashing/composited-bounds-for-negative-z.html [ NeedsRebaseline ] -crbug.com/474759 compositing/squashing/selection-repaint-with-gaps.html [ NeedsRebaseline ] -crbug.com/474759 compositing/update-paint-phases.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/accelerated-overflow-scroll-should-not-affect-perspective.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clear-scroll-parent.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/composited-scrolling-paint-phases.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/content-gains-scrollbars.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scrollbar-layers.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/reparented-scrollbars-non-sc-anc.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-parent-absolute.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scrolling-content-clip-to-viewport.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scrolling-without-painting.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/selection-gaps-after-removing-scrolling-contents.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/selection-gaps-toggling-with-scrolling-contents.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/selection-gaps-toggling.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/textarea-scroll-touch.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/universal-accelerated-overflow-scroll.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/updating-scrolling-content.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/updating-scrolling-container.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/updating-scrolling-container-and-content.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/text-match-highlight.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/text-color-change.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-overlay-with-touch.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-auto-with-touch.html [ NeedsRebaseline ] -crbug.com/474759 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-auto-with-touch-toggle.html [ NeedsRebaseline ] - # GrGLConvolutionEffect optimization causes blink layout test image differences crbug.com/505086 css3/filters/effect-blur-hw.html [ NeedsManualRebaseline ] crbug.com/505086 css3/filters/effect-brightness-clamping-hw.html [ NeedsManualRebaseline ] @@ -2083,8 +1768,330 @@ crbug.com/457273 [ Mac ] http/tests/websocket/close.html [ Pass Timeout ] +crbug.com/538525 [ Lion ] virtual/threaded/animations/multiple-same-animations-asan-crash.html [ Crash ] + +crbug.com/538526 [ Win7 Win10 ] virtual/spv2/paint/invalidation/spv2/fixed-img-src-change-after-scroll.html [ ImageOnlyFailure ] + crbug.com/527743 [ Win10 ] paint/masks/table-cell-masks.html [ Pass Timeout ] crbug.com/531286 virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas.html [ ImageOnlyFailure ] crbug.com/535478 [ Win ] virtual/threaded/inspector/tracing/decode-resize.html [ Slow Pass Failure ] + +crbug.com/538522 css3/filters/effect-reference-colorspace-hw.html [ ImageOnlyFailure ] + +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-161.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-19b.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-23.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-24.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-64.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-68.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/html/css3-modsel-69.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-161.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-19b.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-23.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-24.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-64.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-68.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xhtml/css3-modsel-69.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-161.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-19b.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-23.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-24.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-64.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-68.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] css3/selectors3/xml/css3-modsel-69.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/input/caret-at-the-edge-of-input.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/input/reveal-caret-of-multiline-input.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/pasteboard/4641033.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/pasteboard/drop-text-without-selection.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/pasteboard/pasting-tabs.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/4397952.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/4975120.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/5240265.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/caret-before-select.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-1.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-3.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-4.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/selection/select-across-readonly-input-5.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] editing/spelling/input-type-text.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/block/float/float-avoidance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/block/margin-collapse/103.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/block/positioning/inline-block-relposition.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/css/continuationCrash.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/css/input-search-padding.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/css/line-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/css/margin-top-bottom-dynamic.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/css/text-overflow-input.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/dom/HTMLInputElement/input-image-alt-text.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/dom/HTMLTableColElement/resize-table-using-col-width.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/dom/HTMLTextAreaElement/reset-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/dom/shadow/shadowdom-for-button.html [ ImageOnlyFailure ] +crbug.com/524646 [ Yosemite ] fast/dynamic/008.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/events/autoscroll.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/events/context-no-deselect.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/files/file-in-input-display.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/001.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/002.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/003.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/004.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/005.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label01.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label02.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label03.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label04.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/HTMLOptionElement_label05.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/basic-buttons.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/basic-inputs.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/basic-selects.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/basic-textareas-quirks.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/basic-textareas.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/blankbuttons.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-align.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-cannot-be-nested.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-default-title.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-positioned.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-sizes.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-style-color.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-table-styles.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-text-transform.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button-white-space.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/button/button-reset-focus-by-mouse-then-keydown.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-minimum-date.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-required.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-ru.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance-step.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/calendar-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/month-picker-appearance-step.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/month-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/week-picker-appearance-step.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/calendar-picker/week-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-one-row-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-two-row-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/color/color-suggestion-picker-with-scrollbar-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/control-clip-overflow.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/control-clip.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/control-restrict-line-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/disabled-select-change-index.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/file/file-input-direction.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/file/file-input-disabled.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/file/file-input-pressed-state.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/file/input-file-re-render.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/floating-textfield-relayout.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/form-element-geometry.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/formmove3.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-align.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-bkcolor.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-default-bkcolor.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-disabled.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-focus.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-preventDefault.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-readonly.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-selection.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-visibility.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-appearance-width.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-button-sizes.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-disabled-color.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-double-click-selection-gap-bug.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-field-text-truncated.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-first-letter.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-placeholder-paint-order.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-placeholder-visibility-1.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-placeholder-visibility-3.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-readonly-autoscroll.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-readonly-dimmed.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-spaces.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-table.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-text-double-click.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-text-drag-down.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-text-option-delete.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-text-scroll-left-on-blur.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-text-word-wrap.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-type-text-min-width.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/input-value.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/listbox-bidi-align.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/listbox-hit-test-zoomed.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/listbox-scrollbar-incremental-load.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/listbox-width-change.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-deselect-update.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-narrow-width.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-no-overflow.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-option-wrap.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-restrict-line-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-style-color.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/menulist-width-change.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/minWidthPercent.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/number/number-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/number/number-appearance-spinbutton-disabled-readonly.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/number/number-appearance-spinbutton-layer.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/onselect-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/option-script.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/option-strip-whitespace.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/option-text-clip.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/placeholder-appearance-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/placeholder-position.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/placeholder-pseudo-style.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/plaintext-mode-2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/search-cancel-button-style-sharing.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/search-display-none-cancel-button.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/search-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/search-vertical-alignment.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/search/search-appearance-basic.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/searchfield-heights.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-align.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-baseline.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-block-background.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-change-listbox-size.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-change-listbox-to-popup.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-change-popup-to-listbox.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-dirty-parent-pref-widths.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-disabled-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-empty-option-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-initial-position.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-item-background-clip.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-list-box-with-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-listbox-multiple-no-focusring.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-multiple-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-overflow-scroll-inherited.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-overflow-scroll.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-selected.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-size.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-style.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select-writing-direction-natural.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/listbox-appearance-separator.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/listbox-with-display-none-option.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/menulist-appearance-basic.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/optgroup-rendering.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-many.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-single-option.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-styled.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-texttransform.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-transform.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance-zoom.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/select/popup-menu-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/stuff-on-my-optgroup.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/submit/submit-appearance-basic.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/submit/submit-focus-by-mouse-then-keydown.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/date-suggestion-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/month-suggestion-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/time-suggestion-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/suggestion-picker/week-suggestion-picker-appearance.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/tabbing-input-iframe.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/targeted-frame-submission.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/text-style-color.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/text/text-appearance-basic.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textAreaLineHeight.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-align.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-placeholder-pseudo-style.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-placeholder-visibility-1.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-placeholder-visibility-2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-scroll-height.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-scrolled-type.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea-setinnerhtml.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea/textarea-appearance-basic.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textarea/textarea-placeholder-paint-order.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textfield-outline.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/forms/textfield-overflow-by-value-update.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/html/details-replace-summary-child.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/html/details-replace-text.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/html/keygen.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/images/12-55.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/images/182.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/images/2-dht.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/images/23-55.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/images/55.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/lists/dynamic-marker-crash.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/multicol/multicol-with-child-renderLayer-for-input.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/overflow/overflow-x-y.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/overflow/scroll-nested-positioned-layer-in-overflow.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/parser/document-write-option.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/parser/entity-comment-in-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/parser/open-comment-in-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/repaint/caret-invalidation-in-overflow-scroll.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/repaint/change-text-content-and-background-color.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/repaint/control-clip.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/repaint/multi-layout-one-frame.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/repaint/search-field-cancel.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/repaint/subtree-root-skipped.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/replaced-breaking-mixture.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/replaced-breaking.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-button.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-menulist.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-searchfield.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/replaced/width100percent-textfield.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/selectors/064.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/spatial-navigation/snav-multiple-select-focusring.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/table/append-cells2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/table/remove-td-display-none.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/table/spanOverlapRepaint.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/table/text-field-baseline.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/text/international/bidi-listbox.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/text/international/bidi-menulist.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/text/international/pop-up-button-text-alignment-and-direction.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/text/international/unicode-bidi-plaintext-in-textarea.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] fast/text/textIteratorNilRenderer.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] http/tests/filesystem/input-display.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] http/tests/webfont/popup-menu-load-webfont-after-open.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] plugins/mouse-click-plugin-clears-selection.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] svg/custom/inline-svg-in-xhtml.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] svg/hixie/mixed/003.xml [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug1188.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug1318.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug138725.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug18359.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug194024.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug2479-2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug2479-3.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug2479-4.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug26178.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug28928.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug29326.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug30559.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug30692.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug33855.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug39209.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug4382.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug4429.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug44505.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug46368-1.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug46368-2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug51037.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug51727.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug52505.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug52506.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug59354.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug60749.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug68912.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug7342.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/bugs/bug96334.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/collapsing_borders/bug41262-4.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/core/margins.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/dom/tableDom.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla/other/move_row.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/bugs/bug1725.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/bugs/bug2479-5.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/bugs/bug58402-2.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/collapsing_borders/bug41262-5.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] tables/mozilla_expected_failures/collapsing_borders/bug41262-6.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] transforms/2d/zoom-menulist.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] virtual/pointerevent/fast/events/autoscroll.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ NeedsRebaseline ] +crbug.com/524646 [ Yosemite ] virtual/trustedeventsdefaultaction/fast/events/autoscroll.html [ NeedsRebaseline ]
diff --git a/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling-expected.txt b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling-expected.txt new file mode 100644 index 0000000..c8cc3207 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling-expected.txt
@@ -0,0 +1,19 @@ +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/test.html. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +XMLHttpRequest doesn't crash even when open() is invoked synchronously to handling of a response to a cross-origin request. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling.html b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling.html new file mode 100644 index 0000000..0a04534e --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling.html
@@ -0,0 +1,34 @@ +<!doctype html> +<script src="/js-test-resources/js-test.js"></script> +<body onload="openXHR();"> +<!-- This embed is necessary to cause the synchronous invocation of onload --> +<embed type="text/html; charset=utf-8"> +<script> +window.jsTestIsAsync = true; +description('XMLHttpRequest doesn\'t crash even when open() is invoked ' + + 'synchronously to handling of a response to a cross-origin ' + + 'request.'); + +var xhr = new XMLHttpRequest; +var count = 10; // The crash doesn't always happen. Repeat to capture it. + +function openXHR() { + xhr.open('GET', '/'); +} + +function openAndSendCrossOriginSimpleXHR() { + xhr.open("GET", "http://localhost:8000/xmlhttprequest/resources/test.html"); + xhr.send(); +} + +xhr.onerror = function() { + --count; + if (count <= 0) { + setTimeout(finishJSTest, 0); + } else { + openAndSendCrossOriginSimpleXHR(); + } +} + +openAndSendCrossOriginSimpleXHR(); +</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling-expected.txt b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling-expected.txt new file mode 100644 index 0000000..8ff47cb --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling-expected.txt
@@ -0,0 +1,19 @@ +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +XMLHttpRequest doesn't crash even when open() is invoked synchronously to handling of an invalid preflight response. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling.html b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling.html new file mode 100644 index 0000000..170b256 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling.html
@@ -0,0 +1,33 @@ +<!doctype html> +<script src="/js-test-resources/js-test.js"></script> +<body onload="openXHR();"> +<!-- This embed is necessary to cause the synchronous invocation of onload --> +<embed type="text/html; charset=utf-8"> +<script> +window.jsTestIsAsync = true; +description('XMLHttpRequest doesn\'t crash even when open() is invoked ' + + 'synchronously to handling of an invalid preflight response.'); + +var xhr = new XMLHttpRequest; +var count = 10; // The crash doesn't always happen. Repeat to capture it. + +function openXHR() { + xhr.open('GET', '/'); +} + +function openAndSendCrossOriginNonSimpleXHR() { + xhr.open("PUT", "http://localhost:8000/xmlhttprequest/"); + xhr.send(); +} + +xhr.onerror = function() { + --count; + if (count <= 0) { + setTimeout(finishJSTest, 0); + } else { + openAndSendCrossOriginNonSimpleXHR(); + } +} + +openAndSendCrossOriginNonSimpleXHR(); +</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling-expected.txt b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling-expected.txt new file mode 100644 index 0000000..9049a9f --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling-expected.txt
@@ -0,0 +1,19 @@ +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +CONSOLE ERROR: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access. +XMLHttpRequest doesn't crash even when open() is invoked synchronously to handling of a redirect response to a cross-origin request. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling.html b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling.html new file mode 100644 index 0000000..095a68e --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling.html
@@ -0,0 +1,34 @@ +<!doctype html> +<script src="/js-test-resources/js-test.js"></script> +<body onload="openXHR();"> +<!-- This embed is necessary to cause the synchronous invocation of onload --> +<embed type="text/html; charset=utf-8"> +<script> +window.jsTestIsAsync = true; +description('XMLHttpRequest doesn\'t crash even when open() is invoked ' + + 'synchronously to handling of a redirect response to a ' + + 'cross-origin request.'); + +var xhr = new XMLHttpRequest; +var count = 10; // The crash doesn't always happen. Repeat to capture it. + +function openXHR() { + xhr.open('GET', '/'); +} + +function openAndSendCrossOriginSimpleXHRExpectingRedirect() { + xhr.open("GET", "http://localhost:8000/xmlhttprequest/resources/redirect.php?url=/"); + xhr.send(); +} + +xhr.onerror = function() { + --count; + if (count <= 0) { + setTimeout(finishJSTest, 0); + } else { + openAndSendCrossOriginSimpleXHRExpectingRedirect(); + } +} + +openAndSendCrossOriginSimpleXHRExpectingRedirect(); +</script>
diff --git a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h index 81a159d..1e306df7 100644 --- a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h +++ b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h
@@ -151,6 +151,7 @@ { if (isGarbageCollected()) { Heap::decreaseWrapperCount(1); + Heap::increaseCollectedWrapperCount(1); } else { ASSERT(derefObjectFunction); derefObjectFunction(scriptWrappable); @@ -161,6 +162,7 @@ { ASSERT(isGarbageCollected()); Heap::decreaseWrapperCount(1); + Heap::increaseCollectedWrapperCount(1); } void trace(Visitor* visitor, ScriptWrappable* scriptWrappable) const
diff --git a/third_party/WebKit/Source/build/features.gypi b/third_party/WebKit/Source/build/features.gypi index 6e0b793b..919296e 100644 --- a/third_party/WebKit/Source/build/features.gypi +++ b/third_party/WebKit/Source/build/features.gypi
@@ -89,12 +89,6 @@ ['enable_oilpan==1', { 'feature_defines': [ 'ENABLE_OILPAN=1', - 'ENABLE_LAZY_SWEEPING=1', - ], - }], - ['enable_oilpan==0', { - 'feature_defines': [ - 'ENABLE_LAZY_SWEEPING=1', ], }], ['blink_gc_profiling==1', {
diff --git a/third_party/WebKit/Source/core/loader/DocumentLoadTiming.cpp b/third_party/WebKit/Source/core/loader/DocumentLoadTiming.cpp index 35ebb9b9d..33f8535 100644 --- a/third_party/WebKit/Source/core/loader/DocumentLoadTiming.cpp +++ b/third_party/WebKit/Source/core/loader/DocumentLoadTiming.cpp
@@ -66,14 +66,14 @@ double DocumentLoadTiming::monotonicTimeToZeroBasedDocumentTime(double monotonicTime) const { - if (!monotonicTime) + if (!monotonicTime || !m_referenceMonotonicTime) return 0.0; return monotonicTime - m_referenceMonotonicTime; } double DocumentLoadTiming::monotonicTimeToPseudoWallTime(double monotonicTime) const { - if (!monotonicTime) + if (!monotonicTime || !m_referenceMonotonicTime) return 0.0; return m_referenceWallTime + monotonicTime - m_referenceMonotonicTime; }
diff --git a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp index 8868888..49f5f54 100644 --- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp +++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
@@ -340,9 +340,9 @@ if (!m_async) return; - clearResource(); m_timeoutTimer.stop(); m_requestStartedSeconds = 0.0; + clearResource(); } // In this method, we can clear |request| to tell content::WebURLLoaderImpl of
diff --git a/third_party/WebKit/Source/core/loader/EmptyClients.cpp b/third_party/WebKit/Source/core/loader/EmptyClients.cpp index 75477c1..95a92bac 100644 --- a/third_party/WebKit/Source/core/loader/EmptyClients.cpp +++ b/third_party/WebKit/Source/core/loader/EmptyClients.cpp
@@ -37,8 +37,8 @@ #include "platform/Widget.h" #include "public/platform/WebApplicationCacheHost.h" #include "public/platform/WebMediaPlayer.h" -#include "public/platform/WebServiceWorkerProvider.h" -#include "public/platform/WebServiceWorkerProviderClient.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerProvider.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerProviderClient.h" namespace blink {
diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp index bcdc4ba..555b2cd 100644 --- a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp +++ b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
@@ -31,9 +31,9 @@ #include "core/XLinkNames.h" #include "core/dom/Document.h" #include "core/dom/ElementTraversal.h" -#include "core/events/Event.h" #include "core/dom/shadow/ElementShadow.h" #include "core/dom/shadow/ShadowRoot.h" +#include "core/events/Event.h" #include "core/fetch/FetchRequest.h" #include "core/fetch/ResourceFetcher.h" #include "core/layout/svg/LayoutSVGTransformableContainer.h" @@ -41,6 +41,7 @@ #include "core/svg/SVGLengthContext.h" #include "core/svg/SVGSVGElement.h" #include "core/xml/parser/XMLDocumentParser.h" +#include "wtf/Vector.h" namespace blink { @@ -243,7 +244,7 @@ SVGGraphicsElement::svgAttributeChanged(attrName); } -static bool isDisallowedElement(Node* node) +static bool isDisallowedElement(const Node* node) { // Spec: "Any 'svg', 'symbol', 'g', graphics element or other 'use' is potentially a template object that can be re-used // (i.e., "instanced") in the SVG document via a 'use' element." @@ -256,7 +257,7 @@ if (!node->isSVGElement()) return true; - Element* element = toElement(node); + const Element* element = toElement(node); DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, allowedElementTags, ()); if (allowedElementTags.isEmpty()) { @@ -284,12 +285,12 @@ return !allowedElementTags.contains<SVGAttributeHashTranslator>(element->tagQName()); } -static bool subtreeContainsDisallowedElement(Node* start) +static bool subtreeContainsDisallowedElement(const Node* start) { if (isDisallowedElement(start)) return true; - for (Node* cur = start->firstChild(); cur; cur = cur->nextSibling()) { + for (const Node* cur = start->firstChild(); cur; cur = cur->nextSibling()) { if (subtreeContainsDisallowedElement(cur)) return true; } @@ -372,7 +373,7 @@ if (EventTargetData* data = toClone.eventTargetData()) data->eventListenerMap.copyEventListenersNotCreatedFromMarkupToTarget(clone.get()); TrackExceptionState exceptionState; - for (Node* node = toClone.firstChild(); node && !exceptionState.hadException(); node = node->nextSibling()) + for (RefPtrWillBeRawPtr<Node> node = toClone.firstChild(); node && !exceptionState.hadException(); node = node->nextSibling()) clone->appendChild(cloneNodeAndAssociate(*node), exceptionState); return clone.release(); } @@ -516,9 +517,9 @@ if (EventTargetData* data = target->eventTargetData()) data->eventListenerMap.copyEventListenersNotCreatedFromMarkupToTarget(targetInstance); - for (Node* child = target->firstChild(); child; child = child->nextSibling()) { + for (RefPtrWillBeRawPtr<Node> child = target->firstChild(); child; child = child->nextSibling()) { // Skip any disallowed element. - if (isDisallowedElement(child)) + if (isDisallowedElement(child.get())) continue; RefPtrWillBeRawPtr<Node> newChild = child->cloneNode(false); @@ -601,10 +602,10 @@ cloneParent->setCorrespondingElement(use->correspondingElement()); // Move already cloned elements to the new <g> element - for (Node* child = use->firstChild(); child; ) { - Node* nextChild = child->nextSibling(); + for (RefPtrWillBeRawPtr<Node> child = use->firstChild(); child; ) { + RefPtrWillBeRawPtr<Node> nextChild = child->nextSibling(); cloneParent->appendChild(child); - child = nextChild; + child = nextChild.release(); } // Spec: In the generated content, the 'use' will be replaced by 'g', where all attributes from the @@ -665,10 +666,10 @@ svgElement->setCorrespondingElement(element->correspondingElement()); // Move already cloned elements to the new <svg> element - for (Node* child = element->firstChild(); child; ) { - Node* nextChild = child->nextSibling(); + for (RefPtrWillBeRawPtr<Node> child = element->firstChild(); child; ) { + RefPtrWillBeRawPtr<Node> nextChild = child->nextSibling(); svgElement->appendChild(child); - child = nextChild; + child = nextChild.release(); } // We don't walk the target tree element-by-element, and clone each element, @@ -706,9 +707,11 @@ void SVGUseElement::invalidateDependentShadowTrees() { // Recursively invalidate dependent <use> shadow trees - const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances = instancesForElement(); - for (SVGElement* instance : instances) { - if (SVGUseElement* element = instance->correspondingUseElement()) { + const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& rawInstances = instancesForElement(); + WillBeHeapVector<RefPtrWillBeMember<SVGElement>> instances; + instances.appendRange(rawInstances.begin(), rawInstances.end()); + for (auto& instance : instances) { + if (RefPtrWillBeRawPtr<SVGUseElement> element = instance->correspondingUseElement()) { ASSERT(element->inDocument()); element->invalidateShadowTree(); } @@ -779,9 +782,9 @@ return; invalidateShadowTree(); - if (resource->errorOccurred()) + if (resource->errorOccurred()) { dispatchEvent(Event::create(EventTypeNames::error)); - else if (!resource->wasCanceled()) { + } else if (!resource->wasCanceled()) { if (m_haveFiredLoadEvent) return; if (!isStructurallyExternal()) @@ -792,17 +795,17 @@ } } -bool SVGUseElement::resourceIsStillLoading() +bool SVGUseElement::resourceIsStillLoading() const { if (m_resource && m_resource->isLoading()) return true; return false; } -bool SVGUseElement::instanceTreeIsLoading(SVGElement* targetInstance) +bool SVGUseElement::instanceTreeIsLoading(const SVGElement* targetInstance) { - for (SVGElement* element = Traversal<SVGElement>::firstChild(*targetInstance); element; element = Traversal<SVGElement>::nextSibling(*element)) { - if (SVGUseElement* use = element->correspondingUseElement()) { + for (const SVGElement* element = Traversal<SVGElement>::firstChild(*targetInstance); element; element = Traversal<SVGElement>::nextSibling(*element)) { + if (const SVGUseElement* use = element->correspondingUseElement()) { if (use->resourceIsStillLoading()) return true; }
diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.h b/third_party/WebKit/Source/core/svg/SVGUseElement.h index 778ced4..68144f8 100644 --- a/third_party/WebKit/Source/core/svg/SVGUseElement.h +++ b/third_party/WebKit/Source/core/svg/SVGUseElement.h
@@ -34,8 +34,9 @@ typedef EventSender<SVGUseElement> SVGUseEventSender; class SVGUseElement final : public SVGGraphicsElement, - public SVGURIReference, - public DocumentResourceClient { + public SVGURIReference, + public DocumentResourceClient { + DEFINE_WRAPPERTYPEINFO(); WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGUseElement); public: @@ -97,9 +98,9 @@ void invalidateDependentShadowTrees(); - bool resourceIsStillLoading(); + bool resourceIsStillLoading() const; Document* externalDocument() const; - bool instanceTreeIsLoading(SVGElement*); + bool instanceTreeIsLoading(const SVGElement*); void notifyFinished(Resource*) override; TreeScope* referencedScope() const; void setDocumentResource(ResourcePtr<DocumentResource>);
diff --git a/third_party/WebKit/Source/core/timing/PerformanceBase.cpp b/third_party/WebKit/Source/core/timing/PerformanceBase.cpp index ad653c6..abe2d9f 100644 --- a/third_party/WebKit/Source/core/timing/PerformanceBase.cpp +++ b/third_party/WebKit/Source/core/timing/PerformanceBase.cpp
@@ -424,6 +424,10 @@ double PerformanceBase::now() const { + // Avoid exposing raw platform timestamps. + if (m_timeOrigin == 0.0) + return 0.0; + double nowSeconds = monotonicallyIncreasingTime() - m_timeOrigin; return 1000.0 * clampTimeResolution(nowSeconds); }
diff --git a/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp b/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp index a319b17d..113dacb 100644 --- a/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp +++ b/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp
@@ -42,7 +42,7 @@ static double monotonicTimeToDOMHighResTimeStamp(double timeOrigin, double seconds) { ASSERT(seconds >= 0.0); - if (!seconds) + if (!seconds || !timeOrigin) return 0.0; return PerformanceBase::clampTimeResolution(seconds - timeOrigin) * 1000.0; }
diff --git a/third_party/WebKit/Source/modules/cachestorage/Cache.cpp b/third_party/WebKit/Source/modules/cachestorage/Cache.cpp index 6e39c953..cb21eba 100644 --- a/third_party/WebKit/Source/modules/cachestorage/Cache.cpp +++ b/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
@@ -22,7 +22,7 @@ #include "modules/fetch/Request.h" #include "modules/fetch/Response.h" #include "public/platform/WebPassOwnPtr.h" -#include "public/platform/WebServiceWorkerCache.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/cachestorage/Cache.h b/third_party/WebKit/Source/modules/cachestorage/Cache.h index cc61280..305de33 100644 --- a/third_party/WebKit/Source/modules/cachestorage/Cache.h +++ b/third_party/WebKit/Source/modules/cachestorage/Cache.h
@@ -11,8 +11,8 @@ #include "modules/ModulesExport.h" #include "modules/cachestorage/CacheQueryOptions.h" #include "modules/fetch/GlobalFetch.h" -#include "public/platform/WebServiceWorkerCache.h" -#include "public/platform/WebServiceWorkerCacheError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" #include "wtf/Forward.h" #include "wtf/Noncopyable.h" #include "wtf/OwnPtr.h"
diff --git a/third_party/WebKit/Source/modules/cachestorage/CacheStorage.cpp b/third_party/WebKit/Source/modules/cachestorage/CacheStorage.cpp index 62edb3d..de7723cf 100644 --- a/third_party/WebKit/Source/modules/cachestorage/CacheStorage.cpp +++ b/third_party/WebKit/Source/modules/cachestorage/CacheStorage.cpp
@@ -13,8 +13,8 @@ #include "modules/cachestorage/CacheStorageError.h" #include "modules/fetch/Request.h" #include "modules/fetch/Response.h" -#include "public/platform/WebServiceWorkerCacheError.h" -#include "public/platform/WebServiceWorkerCacheStorage.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/cachestorage/CacheStorage.h b/third_party/WebKit/Source/modules/cachestorage/CacheStorage.h index bb7e2315..baa06c16 100644 --- a/third_party/WebKit/Source/modules/cachestorage/CacheStorage.h +++ b/third_party/WebKit/Source/modules/cachestorage/CacheStorage.h
@@ -11,7 +11,7 @@ #include "modules/cachestorage/Cache.h" #include "modules/cachestorage/CacheQueryOptions.h" #include "modules/fetch/GlobalFetch.h" -#include "public/platform/WebServiceWorkerCacheStorage.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" #include "wtf/Forward.h" #include "wtf/HashMap.h" #include "wtf/Noncopyable.h"
diff --git a/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.cpp b/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.cpp index cbd24f04..28a3e88 100644 --- a/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.cpp +++ b/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.cpp
@@ -8,7 +8,7 @@ #include "core/dom/DOMException.h" #include "core/dom/ExceptionCode.h" #include "modules/cachestorage/Cache.h" -#include "public/platform/WebServiceWorkerCacheError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.h b/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.h index 0352956..2900d6b1 100644 --- a/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.h +++ b/third_party/WebKit/Source/modules/cachestorage/CacheStorageError.h
@@ -5,7 +5,7 @@ #ifndef CacheStorageError_h #define CacheStorageError_h -#include "public/platform/WebServiceWorkerCacheError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" #include "wtf/Allocator.h" #include "wtf/Noncopyable.h"
diff --git a/third_party/WebKit/Source/modules/cachestorage/CacheTest.cpp b/third_party/WebKit/Source/modules/cachestorage/CacheTest.cpp index df3e74c1..663d1a3f 100644 --- a/third_party/WebKit/Source/modules/cachestorage/CacheTest.cpp +++ b/third_party/WebKit/Source/modules/cachestorage/CacheTest.cpp
@@ -19,8 +19,8 @@ #include "modules/fetch/GlobalFetch.h" #include "modules/fetch/Request.h" #include "modules/fetch/Response.h" -#include "public/platform/WebServiceWorkerCache.h" #include "public/platform/WebURLResponse.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" #include "wtf/OwnPtr.h" #include <algorithm>
diff --git a/third_party/WebKit/Source/modules/cachestorage/InspectorCacheStorageAgent.cpp b/third_party/WebKit/Source/modules/cachestorage/InspectorCacheStorageAgent.cpp index 9167c6b..e5a4230 100644 --- a/third_party/WebKit/Source/modules/cachestorage/InspectorCacheStorageAgent.cpp +++ b/third_party/WebKit/Source/modules/cachestorage/InspectorCacheStorageAgent.cpp
@@ -14,14 +14,14 @@ #include "platform/weborigin/SecurityOrigin.h" #include "public/platform/Platform.h" #include "public/platform/WebPassOwnPtr.h" -#include "public/platform/WebServiceWorkerCache.h" -#include "public/platform/WebServiceWorkerCacheError.h" -#include "public/platform/WebServiceWorkerCacheStorage.h" -#include "public/platform/WebServiceWorkerRequest.h" -#include "public/platform/WebServiceWorkerResponse.h" #include "public/platform/WebString.h" #include "public/platform/WebURL.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" #include "wtf/Noncopyable.h" #include "wtf/OwnPtr.h" #include "wtf/PassRefPtr.h"
diff --git a/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp b/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp index 5199ce7..88c6467 100644 --- a/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp +++ b/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp
@@ -13,8 +13,8 @@ #include "modules/fetch/FetchBlobDataConsumerHandle.h" #include "modules/fetch/FetchHeaderList.h" #include "platform/network/ResourceRequest.h" -#include "public/platform/WebServiceWorkerRequest.h" #include "public/platform/WebURLRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/fetch/FetchRequestData.h b/third_party/WebKit/Source/modules/fetch/FetchRequestData.h index 7b1bedb..fd20e4fb 100644 --- a/third_party/WebKit/Source/modules/fetch/FetchRequestData.h +++ b/third_party/WebKit/Source/modules/fetch/FetchRequestData.h
@@ -9,8 +9,8 @@ #include "platform/weborigin/KURL.h" #include "platform/weborigin/Referrer.h" #include "platform/weborigin/ReferrerPolicy.h" -#include "public/platform/WebServiceWorkerRequest.h" #include "public/platform/WebURLRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" #include "wtf/PassOwnPtr.h" #include "wtf/PassRefPtr.h" #include "wtf/text/AtomicString.h"
diff --git a/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp b/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp index 21dd9a8..27ddb46 100644 --- a/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp +++ b/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp
@@ -11,7 +11,7 @@ #include "modules/fetch/DataConsumerHandleUtil.h" #include "modules/fetch/DataConsumerTee.h" #include "modules/fetch/FetchHeaderList.h" -#include "public/platform/WebServiceWorkerResponse.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/fetch/FetchResponseData.h b/third_party/WebKit/Source/modules/fetch/FetchResponseData.h index 700c5a39..54e07510 100644 --- a/third_party/WebKit/Source/modules/fetch/FetchResponseData.h +++ b/third_party/WebKit/Source/modules/fetch/FetchResponseData.h
@@ -8,7 +8,7 @@ #include "modules/ModulesExport.h" #include "platform/heap/Handle.h" #include "platform/weborigin/KURL.h" -#include "public/platform/WebServiceWorkerRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" #include "wtf/PassRefPtr.h" #include "wtf/text/AtomicString.h"
diff --git a/third_party/WebKit/Source/modules/fetch/FetchResponseDataTest.cpp b/third_party/WebKit/Source/modules/fetch/FetchResponseDataTest.cpp index ac87186..707bb27a 100644 --- a/third_party/WebKit/Source/modules/fetch/FetchResponseDataTest.cpp +++ b/third_party/WebKit/Source/modules/fetch/FetchResponseDataTest.cpp
@@ -8,7 +8,7 @@ #include "core/dom/DOMArrayBuffer.h" #include "modules/fetch/FetchHeaderList.h" #include "platform/blob/BlobData.h" -#include "public/platform/WebServiceWorkerResponse.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" #include <gtest/gtest.h>
diff --git a/third_party/WebKit/Source/modules/fetch/Request.cpp b/third_party/WebKit/Source/modules/fetch/Request.cpp index 54d83b5a..6cc792b8 100644 --- a/third_party/WebKit/Source/modules/fetch/Request.cpp +++ b/third_party/WebKit/Source/modules/fetch/Request.cpp
@@ -18,8 +18,8 @@ #include "platform/network/HTTPParsers.h" #include "platform/network/ResourceRequest.h" #include "platform/weborigin/Referrer.h" -#include "public/platform/WebServiceWorkerRequest.h" #include "public/platform/WebURLRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/fetch/RequestTest.cpp b/third_party/WebKit/Source/modules/fetch/RequestTest.cpp index 68e01ac..0300d09 100644 --- a/third_party/WebKit/Source/modules/fetch/RequestTest.cpp +++ b/third_party/WebKit/Source/modules/fetch/RequestTest.cpp
@@ -10,8 +10,8 @@ #include "core/dom/Document.h" #include "core/frame/Frame.h" #include "core/testing/DummyPageHolder.h" -#include "public/platform/WebServiceWorkerRequest.h" #include "public/platform/WebURLRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" #include "wtf/HashMap.h" #include "wtf/text/WTFString.h" #include <gtest/gtest.h>
diff --git a/third_party/WebKit/Source/modules/fetch/Response.cpp b/third_party/WebKit/Source/modules/fetch/Response.cpp index c27c0e2d..a7d2421 100644 --- a/third_party/WebKit/Source/modules/fetch/Response.cpp +++ b/third_party/WebKit/Source/modules/fetch/Response.cpp
@@ -16,7 +16,7 @@ #include "modules/fetch/ResponseInit.h" #include "platform/network/EncodedFormData.h" #include "platform/network/HTTPHeaderMap.h" -#include "public/platform/WebServiceWorkerResponse.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" #include "wtf/RefPtr.h" namespace blink {
diff --git a/third_party/WebKit/Source/modules/fetch/ResponseTest.cpp b/third_party/WebKit/Source/modules/fetch/ResponseTest.cpp index 34214aa..80025e9 100644 --- a/third_party/WebKit/Source/modules/fetch/ResponseTest.cpp +++ b/third_party/WebKit/Source/modules/fetch/ResponseTest.cpp
@@ -17,7 +17,7 @@ #include "modules/fetch/FetchResponseData.h" #include "platform/blob/BlobData.h" #include "platform/testing/UnitTestHelpers.h" -#include "public/platform/WebServiceWorkerResponse.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" #include <gtest/gtest.h> namespace blink {
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.h b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.h index 4049db8a..f200414 100644 --- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.h +++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.h
@@ -34,7 +34,7 @@ #include "core/workers/WorkerGlobalScope.h" #include "modules/ModulesExport.h" #include "platform/heap/Handle.h" -#include "public/platform/WebServiceWorkerRegistration.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRegistration.h" #include "wtf/Assertions.h" #include "wtf/PassRefPtr.h" #include "wtf/RefCounted.h"
diff --git a/third_party/WebKit/Source/platform/exported/WebServiceWorkerProviderClient.cpp b/third_party/WebKit/Source/platform/exported/WebServiceWorkerProviderClient.cpp index 614a5ccc..6d7fcbd 100644 --- a/third_party/WebKit/Source/platform/exported/WebServiceWorkerProviderClient.cpp +++ b/third_party/WebKit/Source/platform/exported/WebServiceWorkerProviderClient.cpp
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "config.h" -#include "public/platform/WebServiceWorkerProviderClient.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerProviderClient.h" // This WebServiceWorkerProviderClient.cpp, which includes only config.h and // WebServiceWorkerProviderClient.h, should be in Source/platform/exported,
diff --git a/third_party/WebKit/Source/platform/exported/WebServiceWorkerRequest.cpp b/third_party/WebKit/Source/platform/exported/WebServiceWorkerRequest.cpp index 88537d4..15fce46 100644 --- a/third_party/WebKit/Source/platform/exported/WebServiceWorkerRequest.cpp +++ b/third_party/WebKit/Source/platform/exported/WebServiceWorkerRequest.cpp
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "config.h" -#include "public/platform/WebServiceWorkerRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" #include "platform/blob/BlobData.h" #include "platform/weborigin/KURL.h"
diff --git a/third_party/WebKit/Source/platform/exported/WebServiceWorkerResponse.cpp b/third_party/WebKit/Source/platform/exported/WebServiceWorkerResponse.cpp index 47902d92..e47d6c7 100644 --- a/third_party/WebKit/Source/platform/exported/WebServiceWorkerResponse.cpp +++ b/third_party/WebKit/Source/platform/exported/WebServiceWorkerResponse.cpp
@@ -3,7 +3,7 @@ // found in the LICENSE file. #include "config.h" -#include "public/platform/WebServiceWorkerResponse.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" #include "platform/blob/BlobData.h" #include "platform/network/HTTPHeaderMap.h"
diff --git a/third_party/WebKit/Source/platform/heap/Heap.h b/third_party/WebKit/Source/platform/heap/Heap.h index 8d436d8..309e02f 100644 --- a/third_party/WebKit/Source/platform/heap/Heap.h +++ b/third_party/WebKit/Source/platform/heap/Heap.h
@@ -118,16 +118,12 @@ static bool willObjectBeLazilySwept(const T* objectPointer) { static_assert(IsGarbageCollectedType<T>::value, "only objects deriving from GarbageCollected can be used."); -#if ENABLE(LAZY_SWEEPING) BasePage* page = pageFromObject(objectPointer); if (page->hasBeenSwept()) return false; ASSERT(page->heap()->threadState()->isSweepingInProgress()); return !Heap::isHeapObjectAlive(const_cast<T*>(objectPointer)); -#else - return false; -#endif } // Push a trace callback on the marking stack. @@ -453,7 +449,7 @@ #define EAGERLY_FINALIZE() typedef int IsEagerlyFinalizedMarker #endif -#if !ENABLE(OILPAN) && ENABLE(LAZY_SWEEPING) +#if !ENABLE(OILPAN) #define EAGERLY_FINALIZE_WILL_BE_REMOVED() EAGERLY_FINALIZE() #else #define EAGERLY_FINALIZE_WILL_BE_REMOVED()
diff --git a/third_party/WebKit/Source/platform/heap/HeapTest.cpp b/third_party/WebKit/Source/platform/heap/HeapTest.cpp index fbb9d6e..cbd70dff 100644 --- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp +++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -1963,7 +1963,6 @@ } #endif -#if ENABLE(LAZY_SWEEPING) TEST(HeapTest, LazySweepingPages) { clearOutOldGarbage(); @@ -2088,7 +2087,6 @@ EXPECT_EQ(100, SimpleFinalizedEagerObject::s_destructorCalls); EXPECT_EQ(100, SimpleFinalizedObjectInstanceOfTemplate::s_destructorCalls); } -#endif TEST(HeapTest, Finalization) {
diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.cpp b/third_party/WebKit/Source/platform/heap/ThreadState.cpp index 52966fa..473cac2 100644 --- a/third_party/WebKit/Source/platform/heap/ThreadState.cpp +++ b/third_party/WebKit/Source/platform/heap/ThreadState.cpp
@@ -826,9 +826,7 @@ if (!isMainThread()) return; -#if ENABLE(LAZY_SWEEPING) Platform::current()->currentThread()->scheduler()->postIdleTask(FROM_HERE, WTF::bind<double>(&ThreadState::performIdleLazySweep, this)); -#endif } void ThreadState::schedulePreciseGC() @@ -1036,9 +1034,7 @@ threadLocalWeakProcessing(); -#if ENABLE(LAZY_SWEEPING) GCState previousGCState = gcState(); -#endif // We have to set the GCState to Sweeping before calling pre-finalizers // to disallow a GC during the pre-finalizers. setGCState(Sweeping); @@ -1052,7 +1048,6 @@ poisonEagerHeap(SetPoison); #endif -#if ENABLE(LAZY_SWEEPING) eagerSweep(); #if defined(ADDRESS_SANITIZER) poisonAllHeaps(); @@ -1064,9 +1059,6 @@ // The default behavior is lazy sweeping. scheduleIdleLazySweep(); } -#else - completeSweep(); -#endif #if ENABLE(GC_PROFILING) snapshotFreeListIfNecessary();
diff --git a/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp b/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp index affe69a..e178e12 100644 --- a/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp +++ b/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp
@@ -71,11 +71,11 @@ #include "public/platform/WebMimeRegistry.h" #include "public/platform/WebRTCPeerConnectionHandler.h" #include "public/platform/WebSecurityOrigin.h" -#include "public/platform/WebServiceWorkerProvider.h" -#include "public/platform/WebServiceWorkerProviderClient.h" #include "public/platform/WebURL.h" #include "public/platform/WebURLError.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerProvider.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerProviderClient.h" #include "public/web/WebAutofillClient.h" #include "public/web/WebContentSettingsClient.h" #include "public/web/WebDOMEvent.h"
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp index 5cd04ed2..0e3d3654 100644 --- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp +++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp
@@ -32,9 +32,9 @@ #include "web/ServiceWorkerGlobalScopeClientImpl.h" #include "modules/fetch/Response.h" -#include "public/platform/WebServiceWorkerResponse.h" #include "public/platform/WebURL.h" -#include "public/web/WebServiceWorkerContextClient.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" +#include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" #include "wtf/PassOwnPtr.h" namespace blink {
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h index 3da1c3b..324bf74 100644 --- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h +++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h
@@ -32,8 +32,8 @@ #define ServiceWorkerGlobalScopeClientImpl_h #include "modules/serviceworkers/ServiceWorkerGlobalScopeClient.h" -#include "public/platform/WebServiceWorkerClientsInfo.h" -#include "public/platform/WebServiceWorkerSkipWaitingCallbacks.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerSkipWaitingCallbacks.h" #include "wtf/OwnPtr.h" namespace blink {
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp index 73d1012..b0eac25 100644 --- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp +++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp
@@ -60,11 +60,11 @@ #include "modules/serviceworkers/WaitUntilObserver.h" #include "platform/RuntimeEnabledFeatures.h" #include "public/platform/WebCrossOriginServiceWorkerClient.h" -#include "public/platform/WebServiceWorkerEventResult.h" -#include "public/platform/WebServiceWorkerRequest.h" #include "public/platform/modules/notifications/WebNotificationData.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerEventResult.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" #include "public/web/WebSerializedScriptValue.h" -#include "public/web/WebServiceWorkerContextClient.h" +#include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" #include "web/WebEmbeddedWorkerImpl.h" #include "wtf/Assertions.h" #include "wtf/Functional.h"
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h index 152e6edf..722bedb 100644 --- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h +++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h
@@ -35,7 +35,7 @@ #include "platform/heap/Handle.h" #include "platform/weborigin/KURL.h" #include "public/platform/WebString.h" -#include "public/web/WebServiceWorkerContextProxy.h" +#include "public/web/modules/serviceworker/WebServiceWorkerContextProxy.h" #include "wtf/Forward.h" #include "wtf/OwnPtr.h"
diff --git a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp index 72067a8..5e5f5469 100644 --- a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp +++ b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
@@ -52,14 +52,14 @@ #include "platform/network/ContentSecurityPolicyParsers.h" #include "platform/network/ContentSecurityPolicyResponseHeaders.h" #include "public/platform/Platform.h" -#include "public/platform/WebServiceWorkerProvider.h" #include "public/platform/WebURLRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerProvider.h" #include "public/web/WebDevToolsAgent.h" -#include "public/web/WebServiceWorkerContextClient.h" -#include "public/web/WebServiceWorkerNetworkProvider.h" #include "public/web/WebSettings.h" #include "public/web/WebView.h" #include "public/web/WebWorkerContentSettingsClientProxy.h" +#include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" +#include "public/web/modules/serviceworker/WebServiceWorkerNetworkProvider.h" #include "web/ServiceWorkerGlobalScopeClientImpl.h" #include "web/ServiceWorkerGlobalScopeProxy.h" #include "web/WebDataSourceImpl.h"
diff --git a/third_party/WebKit/Source/web/WebEmbeddedWorkerImplTest.cpp b/third_party/WebKit/Source/web/WebEmbeddedWorkerImplTest.cpp index 2f39929..12b55f4 100644 --- a/third_party/WebKit/Source/web/WebEmbeddedWorkerImplTest.cpp +++ b/third_party/WebKit/Source/web/WebEmbeddedWorkerImplTest.cpp
@@ -11,8 +11,8 @@ #include "public/platform/WebURLResponse.h" #include "public/platform/WebUnitTestSupport.h" #include "public/web/WebEmbeddedWorkerStartData.h" -#include "public/web/WebServiceWorkerContextClient.h" #include "public/web/WebSettings.h" +#include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" #include <gmock/gmock.h> #include <gtest/gtest.h>
diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp index ab11d30..4f492195 100644 --- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp +++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
@@ -64,10 +64,10 @@ #include "public/platform/WebURLRequest.h" #include "public/web/WebDevToolsAgent.h" #include "public/web/WebFrame.h" -#include "public/web/WebServiceWorkerNetworkProvider.h" #include "public/web/WebSettings.h" #include "public/web/WebView.h" #include "public/web/WebWorkerContentSettingsClientProxy.h" +#include "public/web/modules/serviceworker/WebServiceWorkerNetworkProvider.h" #include "web/LocalFileSystemClient.h" #include "web/WebDataSourceImpl.h" #include "web/WebLocalFrameImpl.h"
diff --git a/third_party/WebKit/Source/wtf/AddressSanitizer.h b/third_party/WebKit/Source/wtf/AddressSanitizer.h index 59ccfc1..aca53f9 100644 --- a/third_party/WebKit/Source/wtf/AddressSanitizer.h +++ b/third_party/WebKit/Source/wtf/AddressSanitizer.h
@@ -34,12 +34,8 @@ // handles all the code without falling back to CL. #if defined(ADDRESS_SANITIZER) && (!OS(WIN) || COMPILER(CLANG)) #define NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) -#if ENABLE(LAZY_SWEEPING) #define NO_LAZY_SWEEP_SANITIZE_ADDRESS NO_SANITIZE_ADDRESS #else -#define NO_LAZY_SWEEP_SANITIZE_ADDRESS -#endif -#else #define NO_SANITIZE_ADDRESS #define NO_LAZY_SWEEP_SANITIZE_ADDRESS #endif
diff --git a/third_party/WebKit/public/platform/WebServiceWorker.h b/third_party/WebKit/public/platform/WebServiceWorker.h deleted file mode 100644 index 205a826..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorker.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/platform/modules/serviceworker/WebServiceWorker.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerCache.h b/third_party/WebKit/public/platform/WebServiceWorkerCache.h deleted file mode 100644 index b1fed2c..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerCache.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerCache.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerCacheError.h b/third_party/WebKit/public/platform/WebServiceWorkerCacheError.h deleted file mode 100644 index 7146ddf..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerCacheError.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerCacheStorage.h b/third_party/WebKit/public/platform/WebServiceWorkerCacheStorage.h deleted file mode 100644 index 1e7fb9d..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerCacheStorage.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerClientQueryOptions.h b/third_party/WebKit/public/platform/WebServiceWorkerClientQueryOptions.h deleted file mode 100644 index 0e11014..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerClientQueryOptions.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2015 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 "public/platform/modules/serviceworker/WebServiceWorkerClientQueryOptions.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerClientType.h b/third_party/WebKit/public/platform/WebServiceWorkerClientType.h deleted file mode 100644 index 870b81c..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerClientType.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2015 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 "public/platform/modules/serviceworker/WebServiceWorkerClientType.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerClientsClaimCallbacks.h b/third_party/WebKit/public/platform/WebServiceWorkerClientsClaimCallbacks.h deleted file mode 100644 index b24a75b..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerClientsClaimCallbacks.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2015 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 "public/platform/modules/serviceworker/WebServiceWorkerClientsClaimCallbacks.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerClientsInfo.h b/third_party/WebKit/public/platform/WebServiceWorkerClientsInfo.h deleted file mode 100644 index 7c7ec6a6..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerClientsInfo.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerError.h b/third_party/WebKit/public/platform/WebServiceWorkerError.h deleted file mode 100644 index a2b0fa8a..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerError.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/platform/modules/serviceworker/WebServiceWorkerError.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerEventResult.h b/third_party/WebKit/public/platform/WebServiceWorkerEventResult.h deleted file mode 100644 index 43e7bee..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerEventResult.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerEventResult.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerProvider.h b/third_party/WebKit/public/platform/WebServiceWorkerProvider.h deleted file mode 100644 index c26c65b..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerProvider.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/platform/modules/serviceworker/WebServiceWorkerProvider.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h b/third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h deleted file mode 100644 index 50f0439..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/platform/modules/serviceworker/WebServiceWorkerProviderClient.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerProxy.h b/third_party/WebKit/public/platform/WebServiceWorkerProxy.h deleted file mode 100644 index 8c678dc1..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerProxy.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerProxy.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerRegistration.h b/third_party/WebKit/public/platform/WebServiceWorkerRegistration.h deleted file mode 100644 index 8854d46..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerRegistration.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerRegistration.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerRegistrationProxy.h b/third_party/WebKit/public/platform/WebServiceWorkerRegistrationProxy.h deleted file mode 100644 index 4e6c7d5..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerRegistrationProxy.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerRegistrationProxy.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerRequest.h b/third_party/WebKit/public/platform/WebServiceWorkerRequest.h deleted file mode 100644 index 630317a3..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerRequest.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerResponse.h b/third_party/WebKit/public/platform/WebServiceWorkerResponse.h deleted file mode 100644 index 15fcee1..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerResponse.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerResponse.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerResponseError.h b/third_party/WebKit/public/platform/WebServiceWorkerResponseError.h deleted file mode 100644 index 17d47abe..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerResponseError.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2015 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 "public/platform/modules/serviceworker/WebServiceWorkerResponseError.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerResponseType.h b/third_party/WebKit/public/platform/WebServiceWorkerResponseType.h deleted file mode 100644 index f287445..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerResponseType.h +++ /dev/null
@@ -1,27 +0,0 @@ -// Copyright 2014 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 WebServiceWorkerResponseType_h -#define WebServiceWorkerResponseType_h - -namespace blink { - -// FIXME: This header is temporarily kept around not to break builds, but -// should be removed once chromium-side change is landed. -// If you make changes in this file please make sure you have the same changes -// in public/platform/modules/serviceworker/WebServiceWorkerResponseType.h -// until then. -enum WebServiceWorkerResponseType { - WebServiceWorkerResponseTypeBasic, - WebServiceWorkerResponseTypeCORS, - WebServiceWorkerResponseTypeDefault, - WebServiceWorkerResponseTypeError, - WebServiceWorkerResponseTypeOpaque, - WebServiceWorkerResponseTypeOpaqueRedirect, - WebServiceWorkerResponseTypeLast = WebServiceWorkerResponseTypeOpaqueRedirect -}; - -} // namespace blink - -#endif // WebServiceWorkerResponseType_h
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerSkipWaitingCallbacks.h b/third_party/WebKit/public/platform/WebServiceWorkerSkipWaitingCallbacks.h deleted file mode 100644 index 4cfb8263..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerSkipWaitingCallbacks.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerSkipWaitingCallbacks.h"
diff --git a/third_party/WebKit/public/platform/WebServiceWorkerState.h b/third_party/WebKit/public/platform/WebServiceWorkerState.h deleted file mode 100644 index ab484f0..0000000 --- a/third_party/WebKit/public/platform/WebServiceWorkerState.h +++ /dev/null
@@ -1,5 +0,0 @@ -// Copyright 2014 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 "public/platform/modules/serviceworker/WebServiceWorkerState.h"
diff --git a/third_party/WebKit/public/platform/WebURLResponse.h b/third_party/WebKit/public/platform/WebURLResponse.h index 79df421..05ea4da4 100644 --- a/third_party/WebKit/public/platform/WebURLResponse.h +++ b/third_party/WebKit/public/platform/WebURLResponse.h
@@ -33,7 +33,7 @@ #include "public/platform/WebCommon.h" #include "public/platform/WebPrivateOwnPtr.h" -#include "public/platform/WebServiceWorkerResponseType.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponseType.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCache.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCache.h index 5417b22..f52005d0 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCache.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCache.h
@@ -7,11 +7,11 @@ #include "public/platform/WebCallbacks.h" #include "public/platform/WebCommon.h" -#include "public/platform/WebServiceWorkerCacheError.h" -#include "public/platform/WebServiceWorkerRequest.h" -#include "public/platform/WebServiceWorkerResponse.h" #include "public/platform/WebString.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h index e970aff..fa7b0ba 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h
@@ -8,10 +8,10 @@ #include "public/platform/WebCallbacks.h" #include "public/platform/WebCommon.h" #include "public/platform/WebPassOwnPtr.h" -#include "public/platform/WebServiceWorkerCache.h" -#include "public/platform/WebServiceWorkerCacheError.h" #include "public/platform/WebString.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientQueryOptions.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientQueryOptions.h index a6eea83..2561b0d 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientQueryOptions.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientQueryOptions.h
@@ -5,7 +5,7 @@ #ifndef WebServiceWorkerClientQueryOptions_h #define WebServiceWorkerClientQueryOptions_h -#include "public/platform/WebServiceWorkerClientType.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerClientType.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h index 53dfa93..6ca5e69 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h
@@ -8,10 +8,10 @@ #include "public/platform/WebCallbacks.h" #include "public/platform/WebPageVisibilityState.h" #include "public/platform/WebPassOwnPtr.h" -#include "public/platform/WebServiceWorkerClientType.h" #include "public/platform/WebURL.h" #include "public/platform/WebURLRequest.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerClientType.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerProvider.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerProvider.h index 095a2ce..e5fa982 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerProvider.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerProvider.h
@@ -33,8 +33,8 @@ #include "public/platform/WebCallbacks.h" #include "public/platform/WebPassOwnPtr.h" -#include "public/platform/WebServiceWorkerRegistration.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerRegistration.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRegistration.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRegistration.h index 1ed9134..d331ab5 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRegistration.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRegistration.h
@@ -6,8 +6,8 @@ #define WebServiceWorkerRegistration_h #include "public/platform/WebCallbacks.h" -#include "public/platform/WebServiceWorkerError.h" #include "public/platform/WebURL.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerError.h" namespace blink {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerResponse.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerResponse.h index 3cd1f91..74bdad6 100644 --- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerResponse.h +++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerResponse.h
@@ -7,11 +7,11 @@ #include "public/platform/WebCommon.h" #include "public/platform/WebPrivatePtr.h" -#include "public/platform/WebServiceWorkerResponseError.h" -#include "public/platform/WebServiceWorkerResponseType.h" #include "public/platform/WebString.h" #include "public/platform/WebURL.h" #include "public/platform/WebVector.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponseError.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerResponseType.h" #if INSIDE_BLINK #include "wtf/Forward.h"
diff --git a/third_party/WebKit/public/web/WebServiceWorkerContextClient.h b/third_party/WebKit/public/web/WebServiceWorkerContextClient.h deleted file mode 100644 index 053087d..0000000 --- a/third_party/WebKit/public/web/WebServiceWorkerContextClient.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h"
diff --git a/third_party/WebKit/public/web/WebServiceWorkerContextProxy.h b/third_party/WebKit/public/web/WebServiceWorkerContextProxy.h deleted file mode 100644 index 40ea9fb8..0000000 --- a/third_party/WebKit/public/web/WebServiceWorkerContextProxy.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/web/modules/serviceworker/WebServiceWorkerContextProxy.h"
diff --git a/third_party/WebKit/public/web/WebServiceWorkerNetworkProvider.h b/third_party/WebKit/public/web/WebServiceWorkerNetworkProvider.h deleted file mode 100644 index 28e84ff..0000000 --- a/third_party/WebKit/public/web/WebServiceWorkerNetworkProvider.h +++ /dev/null
@@ -1,31 +0,0 @@ -/* - * Copyright (C) 2014 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "public/web/modules/serviceworker/WebServiceWorkerNetworkProvider.h"
diff --git a/third_party/WebKit/public/web/modules/serviceworker/WebServiceWorkerContextClient.h b/third_party/WebKit/public/web/modules/serviceworker/WebServiceWorkerContextClient.h index 9e0483c4..8a8a24b 100644 --- a/third_party/WebKit/public/web/modules/serviceworker/WebServiceWorkerContextClient.h +++ b/third_party/WebKit/public/web/modules/serviceworker/WebServiceWorkerContextClient.h
@@ -32,11 +32,11 @@ #define WebServiceWorkerContextClient_h #include "public/platform/WebMessagePortChannel.h" -#include "public/platform/WebServiceWorkerClientsClaimCallbacks.h" -#include "public/platform/WebServiceWorkerClientsInfo.h" -#include "public/platform/WebServiceWorkerEventResult.h" -#include "public/platform/WebServiceWorkerSkipWaitingCallbacks.h" #include "public/platform/WebURL.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerClientsClaimCallbacks.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerEventResult.h" +#include "public/platform/modules/serviceworker/WebServiceWorkerSkipWaitingCallbacks.h" #include <v8.h> namespace blink {
diff --git a/third_party/polymer/v1_0/bower.json b/third_party/polymer/v1_0/bower.json index baa781ee..7d9a8c5 100644 --- a/third_party/polymer/v1_0/bower.json +++ b/third_party/polymer/v1_0/bower.json
@@ -32,6 +32,7 @@ "neon-animation": "PolymerElements/neon-animation#^1.0.0", "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-card": "PolymerElements/paper-card", "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", "paper-dialog": "PolymerElements/paper-dialog#^1.0.0", "paper-dialog-behavior": "PolymerElements/paper-dialog-behavior#^1.0.0",
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/.bower.json b/third_party/polymer/v1_0/components-chromium/paper-card/.bower.json new file mode 100644 index 0000000..f7cdc30 --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/.bower.json
@@ -0,0 +1,47 @@ +{ + "name": "paper-card", + "version": "1.0.4", + "description": "Material design piece of paper with unique related data", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "card" + ], + "main": [ + "paper-card.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-card.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-card", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#^1.1.0", + "paper-material": "PolymerElements/paper-material#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "*", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0" + }, + "_release": "1.0.4", + "_resolution": { + "type": "version", + "tag": "v1.0.4", + "commit": "e33378f75cfa542e791bbf1dc9eb25bf73872e27" + }, + "_source": "git://github.com/PolymerElements/paper-card.git", + "_target": "*", + "_originalSource": "PolymerElements/paper-card" +} \ No newline at end of file
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/.gitignore b/third_party/polymer/v1_0/components-chromium/paper-card/.gitignore new file mode 100644 index 0000000..fbe05fc --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/.gitignore
@@ -0,0 +1 @@ +bower_components/
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/README.md b/third_party/polymer/v1_0/components-chromium/paper-card/README.md new file mode 100644 index 0000000..db0d78b --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/README.md
@@ -0,0 +1,30 @@ +# paper-card + +Material Design: <a href="http://www.google.com/design/spec/components/cards.html">Cards</a> + +`paper-card` is a container with a drop shadow. + +Example: +```html +<paper-card heading="Card Title"> + <div class="card-content">Some content</div> + <div class="card-actions"> + <paper-button>Some action</paper-button> + </div> +</paper-card> +``` + +### Accessibility +By default, the `aria-label` will be set to the value of the `heading` attribute. + +### Styling + +The following custom properties and mixins are available for styling: + +Custom property | Description | Default +----------------|-------------|---------- +`--paper-card-header-color` | The color of the header text | `#000` +`--paper-card-header` | Mixin applied to the card header section | `{}` +`--paper-card-content` | Mixin applied to the card content section| `{}` +`--paper-card-actions` | Mixin applied to the card action section | `{}` +`--paper-card` | Mixin applied to the card | `{}`
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/bower.json b/third_party/polymer/v1_0/components-chromium/paper-card/bower.json new file mode 100644 index 0000000..e91d935 --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/bower.json
@@ -0,0 +1,38 @@ +{ + "name": "paper-card", + "version": "1.0.4", + "description": "Material design piece of paper with unique related data", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "card" + ], + "main": [ + "paper-card.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-card.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-card", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#^1.1.0", + "paper-material": "PolymerElements/paper-material#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "*", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0" + } +}
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/demo/index.html b/third_party/polymer/v1_0/components-chromium/paper-card/demo/index.html new file mode 100644 index 0000000..b5e3fdd --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/demo/index.html
@@ -0,0 +1,188 @@ +<!doctype html> +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--> +<html lang="en"> +<head> + <title>paper-card demo</title> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes"> + + <script src="../../webcomponentsjs/webcomponents-lite.js"></script> + + <link rel="import" href="../paper-card.html"> + <link rel="import" href="../../paper-button/paper-button.html"> + <link rel="import" href="../../paper-icon-button/paper-icon-button.html"> + <link rel="import" href="../../iron-icons/iron-icons.html"> + <link rel="import" href="../../iron-flex-layout/iron-flex-layout.html"> + <link rel="import" href="../../paper-styles/color.html"> + + <link rel="stylesheet" href="../../paper-styles/demo.css"> + + <style is="custom-style"> + body { + background-color: var(--paper-grey-50); + } + + #cards { + @apply(--layout-vertical); + @apply(--center-justified); + max-width: 400px; + margin-left: auto; + margin-right: auto; + } + + paper-card { + width: 100%; + margin-bottom: 16px; + } + + .avatar { + display: inline-block; + height: 64px; + width: 64px; + border-radius: 50%; + background: var(--paper-pink-500); + color: white; + line-height: 64px; + font-size: 30px; + text-align: center; + } + + .fancy .title { + position: absolute; + top: 30px; + left: 100px; + color: var(--paper-indigo-500); + } + + .fancy img { + width: 100%; + } + + .fancy .big { + font-size: 22px; + padding: 8px 0 16px; + color: var(--google-grey-500); + } + + .fancy .medium { + font-size: 16px; + padding-bottom: 8px; + } + + .pink { + --paper-card-header-color: var(--paper-pink-500); + } + </style> + +</head> +<body unresolved> + <div id="cards"> + + <paper-card> + <div class="card-content"> + <div>Cards are a convenient means of displaying content composed of different types of objects. + <br><br> + <b>Hurray!</b> + </div> + </div> + </paper-card> + + <paper-card heading="Some cards only have titles"></paper-card> + + <paper-card id="shadow_demo" heading="Paper Shadows" class="pink" animated-shadow> + <div class="card-content"> + Cards can have different shadows. + </div> + <div class="card-actions"> + <paper-button onclick="decreaseShadow()">Decrease</paper-button> + <paper-button onclick="increaseShadow()">Increase</paper-button> + </div> + </paper-card> + + <paper-card > + <div class="card-content"> + Lorem ipsum dolor sit amet, nec ad conceptam interpretaris, mea ne solet repudiandae. Laudem nostrud ei vim. Sapientem consequuntur usu ad, vel etiam philosophia ex, ad quidam option quo. Sed sale integre pericula ei, rebum adipiscing ius ea. + </div> + <div class="card-actions"> + <paper-icon-button icon="favorite" title="favorite"></paper-icon-button> + <paper-icon-button icon="bookmark" title="bookmark"></paper-icon-button> + <paper-icon-button icon="cloud-upload" title="cloud-upload"></paper-icon-button> + </div> + </paper-card> + + <paper-card heading="Cards can have titles" class="pink"> + <div class="card-content"> + Lorem ipsum dolor sit amet, nec ad conceptam interpretaris, mea ne solet repudiandae. Laudem nostrud ei vim. Sapientem consequuntur usu ad, vel etiam philosophia ex, ad quidam option quo. Sed sale integre pericula ei, rebum adipiscing ius ea. + </div> + <div class="card-actions"> + <paper-button>Nay</paper-button> + <paper-button>Yay!</paper-button> + </div> + </paper-card> + + <paper-card heading="Titles AND images!" class="pink" + image="http://placehold.it/350x150"> + <div class="card-content"> + Lorem ipsum dolor sit amet, nec ad conceptam interpretaris, mea ne solet repudiandae. Laudem nostrud ei vim. Sapientem consequuntur usu ad, vel etiam philosophia ex, ad quidam option quo. Sed sale integre pericula ei, rebum adipiscing ius ea. + </div> + <div class="card-actions"> + <paper-button>No</paper-button> + <paper-button>Yes</paper-button> + </div> + </paper-card> + + <paper-card heading="Actions can be stacked" class="pink"> + <div class="card-content"> + Lorem ipsum dolor sit amet, nec ad conceptam interpretaris, mea ne solet repudiandae. Laudem nostrud ei vim. Sapientem consequuntur usu ad, vel etiam philosophia ex, ad quidam option quo. Sed sale integre pericula ei, rebum adipiscing ius ea. + </div> + <div class="card-actions"> + <paper-button>Action</paper-button> + </div> + <div class="card-actions"> + <paper-button>Moar action!</paper-button> + </div> + </paper-card> + + <paper-card class='fancy'> + <div class="card-content"> + <div class="avatar">:)</div> + <div class="title"> + <div class="medium">Title</div> + <div class="small">subtitle</div> + </div> + </div> + + <!-- take this out of the content class so that it can span the whole card --> + <img src="http://placehold.it/350x150"> + + <div class="card-content"> + <div class="big">Usu eu novum principes, vel quodsi aliquip ea.</div> + <div class="medium">Ut labores minimum atomorum pro. Laudem tibique ut has.</div> + <div class="small">Usu eu novum principes, vel quodsi aliquip ea.</div> + </div> + </paper-card> + </div> + + <script> + function decreaseShadow() { + var card = document.querySelector('#shadow_demo'); + card.elevation = card.elevation > 0 ? card.elevation - 1 : 0; + } + + function increaseShadow() { + var card = document.querySelector('#shadow_demo'); + card.elevation = card.elevation < 5 ? card.elevation + 1 : 5; + } + </script> + +</body> +</html>
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/index.html b/third_party/polymer/v1_0/components-chromium/paper-card/index.html new file mode 100644 index 0000000..fab428a --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/index.html
@@ -0,0 +1,28 @@ +<!doctype html> +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--> +<html> +<head> + + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>paper-card</title> + + <script src="../webcomponentsjs/webcomponents-lite.js"></script> + <link rel="import" href="../iron-component-page/iron-component-page.html"> + +</head> +<body> + +<iron-component-page></iron-component-page> + +</body> +</html>
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/paper-card-extracted.js b/third_party/polymer/v1_0/components-chromium/paper-card/paper-card-extracted.js new file mode 100644 index 0000000..939077c --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/paper-card-extracted.js
@@ -0,0 +1,53 @@ +Polymer({ + + is: 'paper-card', + + properties: { + + /** + * The title of the card. + */ + heading: { + type: String, + value: '', + observer: '_headingChanged' + }, + + /** + * The url of the title image of the card. + */ + image: { + type: String, + value: '' + }, + + /** + * The z-depth of the card, from 0-5. + */ + elevation: { + type: Number, + value: 1 + }, + + /** + * Set this to true to animate the card shadow when setting a new + * `z` value. + */ + animatedShadow: { + type: Boolean, + value: false + } + }, + + _headingChanged: function(heading) { + var label = this.getAttribute('aria-label'); + this.setAttribute('aria-label', heading); + }, + + _computeHeadingClass: function(image) { + var cls = 'title-text'; + if (image) + cls += ' over-image'; + return cls; + } + }); \ No newline at end of file
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/paper-card.html b/third_party/polymer/v1_0/components-chromium/paper-card/paper-card.html new file mode 100644 index 0000000..3d6ccea --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/paper-card.html
@@ -0,0 +1,127 @@ +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--><html><head><link rel="import" href="../polymer/polymer.html"> +<link rel="import" href="../paper-material/paper-material.html"> + +<!-- +Material Design: <a href="http://www.google.com/design/spec/components/cards.html">Cards</a> + +`paper-card` is a container with a drop shadow. + +Example: + + <paper-card heading="Card Title"> + <div class="card-content">Some content</div> + <div class="card-actions"> + <paper-button>Some action</paper-button> + </div> + </paper-card> + +### Accessibility + +By default, the `aria-label` will be set to the value of the `heading` attribute. + +### Styling + +The following custom properties and mixins are available for styling: + +Custom property | Description | Default +----------------|-------------|---------- +`--paper-card-header-color` | The color of the header text | `#000` +`--paper-card-header` | Mixin applied to the card header section | `{}` +`--paper-card-header-text` | Mixin applied to the title in the card header section | `{}` +`--paper-card-header-image` | Mixin applied to the image in the card header section | `{}` +`--paper-card-header-image-text` | Mixin applied to the text overlapping the image in the card header section | `{}` +`--paper-card-content` | Mixin applied to the card content section| `{}` +`--paper-card-actions` | Mixin applied to the card action section | `{}` +`--paper-card` | Mixin applied to the card | `{}` + +@group Paper Elements +@element paper-card +@demo demo/index.html +--> + +</head><body><dom-module id="paper-card"> + <template> + <style> + :host { + display: inline-block; + position: relative; + box-sizing: border-box; + + background: #fff; + border-radius: 2px; + @apply(--paper-card); + } + + paper-material { + border-radius: inherit; + width: 100%; + height: 100%; + } + + /* IE 10 support for HTML5 hidden attr */ + [hidden] { + display: none !important; + } + + .header { + position: relative; + @apply(--paper-card-header); + } + + .header img { + width: 100%; + pointer-events: none; + @apply(--paper-card-header-image); + } + + .header .title-text { + padding: 16px; + font-size: 24px; + font-weight: bold; + color: var(--paper-card-header-color, #000); + @apply(--paper-card-header-text); + } + + .header .title-text.over-image { + position: absolute; + bottom: 0px; + @apply(--paper-card-header-image-text); + } + + :host ::content .card-content { + padding: 16px; + position:relative; + @apply(--paper-card-content); + } + + :host ::content .card-actions { + border-top: 1px solid #e8e8e8; + padding: 5px 16px; + position:relative; + @apply(--paper-card-actions); + } + </style> + + <paper-material animated$="[[animatedShadow]]" elevation="[[elevation]]"> + <div class="header"> + <img hidden$="[[!image]]" src="[[image]]"> + <div hidden$="[[!heading]]" class$="[[_computeHeadingClass(image)]]">[[heading]]</div> + </div> + + <content></content> + + </paper-material> + + </template> + +</dom-module> + +<script src="paper-card-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/test/basic.html b/third_party/polymer/v1_0/components-chromium/paper-card/test/basic.html new file mode 100644 index 0000000..4869b55 --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/test/basic.html
@@ -0,0 +1,57 @@ +<!doctype html> +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--> +<html> +<head> + <meta charset="UTF-8"> + <title>paper-card a11y tests</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> + + <script src="../../webcomponentsjs/webcomponents-lite.js"></script> + <script src="../../web-component-tester/browser.js"></script> + <script src="../../test-fixture/test-fixture-mocha.js"></script> + + <link rel="import" href="../../test-fixture/test-fixture.html"> + <link rel="import" href="../paper-card.html"> + + <style> + paper-card { + width: 400px; + } + </style> + +</head> +<body> + <test-fixture id="basic"> + <template> + <paper-card heading="header"> + <div class="card-content"><p>Sample content</p></div> + </paper-card> + </template> + </test-fixture> + + <script> + suite('a11y', function() { + test('aria-label set on card', function() { + var f = fixture('basic'); + assert.strictEqual(f.getAttribute('aria-label'), f.heading); + }); + + test('aria-label can be updated', function() { + var f = fixture('basic'); + assert.strictEqual(f.getAttribute('aria-label'), f.heading); + f.heading = 'batman'; + assert.strictEqual(f.getAttribute('aria-label'), 'batman'); + }); + }); + </script> + +</body> +</html>
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/test/index.html b/third_party/polymer/v1_0/components-chromium/paper-card/test/index.html new file mode 100644 index 0000000..3f65271 --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/test/index.html
@@ -0,0 +1,25 @@ +<!doctype html> +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--> +<html> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes"> + <title>paper-card tests</title> + <script src="../../web-component-tester/browser.js"></script> +</head> +<body> + <script> + WCT.loadSuites([ + 'basic.html', + ]); + </script> +</body> +</html>
diff --git a/third_party/polymer/v1_0/components-chromium/paper-card/test/paper-card.html b/third_party/polymer/v1_0/components-chromium/paper-card/test/paper-card.html new file mode 100644 index 0000000..3e6234b5 --- /dev/null +++ b/third_party/polymer/v1_0/components-chromium/paper-card/test/paper-card.html
@@ -0,0 +1,91 @@ +<!doctype html> +<!-- +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--> +<html> +<head> + <meta charset="UTF-8"> + <title>paper-card basic tests</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> + + <script src="../../webcomponentsjs/webcomponents.js"></script> + <script src="../../web-component-tester/browser.js"></script> + <script src="../../test-fixture/test-fixture-mocha.js"></script> + + <link href="../../test-fixture/test-fixture.html" rel="import"> + <link href="../../layout/layout.html" rel="import"> + <link href="../paper-card.html" rel="import"> + +</head> +<body> + <test-fixture id="TrivialCard"> + <template> + <paper-card elevation="1"></paper-card> + </template> + </test-fixture> + + <test-fixture id="ProgressiveElevations"> + <template> + <paper-card elevation="1"></paper-card> + <paper-card elevation="2"></paper-card> + <paper-card elevation="3"></paper-card> + <paper-card elevation="4"></paper-card> + <paper-card elevation="5"></paper-card> + </template> + </test-fixture> + + <script> + suite('<paper-card>', function() { + suite('with a non-zero elevation attribute', function() { + var style; + var card; + + setup(function() { + card = fixture('TrivialCard'); + style = window.getComputedStyle(card); + }); + + test('has a shadow', function() { + expect(style.boxShadow).to.be.ok; + expect(style.boxShadow).to.not.be.eql('none'); + }); + + test('loses shadow with elevation value 0', function() { + card.elevation = 0; + expect(style.boxShadow).to.be.eql('none'); + }); + }); + + suite('progressively increasing values of elevation', function() { + var cards; + + setup(function() { + cards = fixture('ProgressiveElevations'); + }); + + test('yield progressively "deeper" cards', function() { + var lastStyle; + var style; + + expect(cards.length).to.be.eql(5); + + cards.forEach(function (card) { + style = window.getComputedStyle(card); + + expect(style.boxShadow).to.be.ok; + expect(style.boxShadow).to.not.be.eql('none'); + expect(style.boxShadow).to.not.be.eql(lastStyle && lastStyle.boxShadow); + + lastStyle = style; + }); + }); + }); + }); + </script> +</body> +</html>
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index 98921fdc..6f5f459 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -407,6 +407,7 @@ }, 'client.v8.fyi': { + 'Linux Debug Builder': 'gn_debug_bot', 'V8 Linux GN': 'gn_release_bot', 'V8 Android GN (dbg)': 'android_gn_debug_bot', },
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 1691485..077d4b4 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -8674,6 +8674,39 @@ </description> </action> +<action name="OfflinePages.FreeUpSpaceDialogButtonClicked"> + <owner>jianli@chromium.org</owner> + <description> + Recorded when "Delete" button is clicked in the Free Up Space + dialog. + </description> +</action> + +<action name="OfflinePages.FreeUpSpaceDialogButtonNotClicked"> + <owner>jianli@chromium.org</owner> + <description> + Recorded when the user leaves the Free Up Space dialog without clicking + "Delete" button. + </description> +</action> + +<action name="OfflinePages.FreeUpSpaceHeaderClicked"> + <owner>jianli@chromium.org</owner> + <description> + Recorded when "Free Up Space" button is clicked in the storage + space promotion section of "Saved Offline" page. + </description> +</action> + +<action name="OfflinePages.FreeUpSpaceHeaderNotClicked"> + <owner>jianli@chromium.org</owner> + <description> + Recorded when the user navigates away without clicking "Free Up + Space" button is clicked in the storage space promotion section of + "Saved Offline" page. + </description> +</action> + <action name="OfflinePages.ReloadButtonClicked"> <owner>jianli@chromium.org</owner> <description> @@ -8706,6 +8739,24 @@ </description> </action> +<action name="OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonClicked"> + <owner>jianli@chromium.org</owner> + <description> + Recorded when "Free Up Space" button is clicked in the in the + snackbar that is shown when the page is/is not saved and storage is almost + full. + </description> +</action> + +<action name="OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonNotClicked"> + <owner>jianli@chromium.org</owner> + <description> + Recorded when the user navigates away without clicking "Free Up + Space" button is clicked in the storage space promotion section of + "Saved Offline" page. + </description> +</action> + <action name="Omnibox.ServerSuggestDelete.Failure"> <owner>Please list the metric's owners. Add more owner tags as needed.</owner> <description>Please enter the description of this user action.</description>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 7a83ec9..229413f1 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -17748,6 +17748,30 @@ </summary> </histogram> +<histogram name="Media.MSE.LateAudioFrames" + units="late frames per million frames"> + <owner>qinmin@chromium.org</owner> + <owner>timav@chromium.org</owner> + <summary> + Relative number of late audio frames wrt total number of audio frames in MSE + playback, multiplied by one million. The audio frame is considered late if + it might cause an underrun, i.e. comes from decoder when audio buffer is + already depleted. + </summary> +</histogram> + +<histogram name="Media.MSE.LateVideoFrames" + units="late frames per million frames"> + <owner>qinmin@chromium.org</owner> + <owner>timav@chromium.org</owner> + <summary> + Relative number of late video frames wrt total number of video frames in MSE + playback, multiplied by one million. The video frame is late if it missed + its presentation time as determined by PTS when it comes from decoder. The + rendering policy (i.e. render or skip) does not affect it. + </summary> +</histogram> + <histogram name="Media.MSE.NumberOfTracks"> <owner>acolwell@chromium.org</owner> <summary> @@ -17767,6 +17791,26 @@ </summary> </histogram> +<histogram name="Media.MSE.PlaybackDuration" units="seconds"> + <owner>qinmin@chromium.org</owner> + <owner>timav@chromium.org</owner> + <summary> + Duration of an uninterrupted MSE playback. This is the time interval between + the playback starts or resumes and the moment when user stops the playback + by pressing pause, initiating a seek etc. Measured in media time in seconds. + </summary> +</histogram> + +<histogram name="Media.MSE.Starvations" units="starvations per million frames"> + <owner>qinmin@chromium.org</owner> + <owner>timav@chromium.org</owner> + <summary> + Relative number of starvations wrt total number of frames in MSE playback, + multiplied by one million. Starvation happens when the player interrupts the + regular playback and asks for more data, conditions are player-specific. + </summary> +</histogram> + <histogram name="Media.MSE.VideoCodec" enum="MSECodec"> <owner>acolwell@chromium.org</owner> <summary>
diff --git a/ui/webui/resources/polymer_resources.grdp b/ui/webui/resources/polymer_resources.grdp index cb70d58..55b14dc 100644 --- a/ui/webui/resources/polymer_resources.grdp +++ b/ui/webui/resources/polymer_resources.grdp
@@ -365,6 +365,12 @@ <structure name="IDR_POLYMER_1_0_PAPER_BUTTON_PAPER_BUTTON_HTML" file="../../../third_party/polymer/v1_0/components-chromium/paper-button/paper-button.html" type="chrome_html" /> + <structure name="IDR_POLYMER_1_0_PAPER_CARD_PAPER_CARD_EXTRACTED_JS" + file="../../../third_party/polymer/v1_0/components-chromium/paper-card/paper-card-extracted.js" + type="chrome_html" /> + <structure name="IDR_POLYMER_1_0_PAPER_CARD_PAPER_CARD_HTML" + file="../../../third_party/polymer/v1_0/components-chromium/paper-card/paper-card.html" + type="chrome_html" /> <structure name="IDR_POLYMER_1_0_PAPER_CHECKBOX_PAPER_CHECKBOX_EXTRACTED_JS" file="../../../third_party/polymer/v1_0/components-chromium/paper-checkbox/paper-checkbox-extracted.js" type="chrome_html" />