diff --git a/DEPS b/DEPS index d6b1086..c25b9b4 100644 --- a/DEPS +++ b/DEPS
@@ -40,7 +40,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '0bd8f36309293720b44af92f113f6ebe96d54779', + 'skia_revision': 'e95941f2c61d8bcb5aaf60968e4391a1c7a0d593', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -96,7 +96,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '9907db54ee404c8a3efb585fa7db4c58e6966ef3', + 'catapult_revision': 'c3f25757340bf0a82c398d19b5e5591cfc25404e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other.
diff --git a/chrome/VERSION b/chrome/VERSION index 81d27e2..e6d2edf 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=58 MINOR=0 -BUILD=2995 +BUILD=2996 PATCH=0
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 9289040..1616a15 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -9347,15 +9347,14 @@ <message name="IDS_ARC_VERSION_LABEL" desc="Label for ARC version"> ARC Version </message> + <message name="IDS_ARC_LABEL" desc="Label for ARC"> + ARC + </message> + <message name="IDS_PLATFORM_LABEL" desc="Label for Platform"> + Platform + </message> </if> <!-- chromeos --> - <message name="IDS_ARC_LABEL" desc="Label for ARC"> - ARC - </message> - <message name="IDS_PLATFORM_LABEL" desc="Label for Platform"> - Platform - </message> - <!-- chrome://settings. Android uses native UI for settings --> <if expr="not is_android"> <if expr="chromeos">
diff --git a/chrome/browser/extensions/favicon_downloader.cc b/chrome/browser/extensions/favicon_downloader.cc index 39ac3dd..fa6f2ad0e 100644 --- a/chrome/browser/extensions/favicon_downloader.cc +++ b/chrome/browser/extensions/favicon_downloader.cc
@@ -6,6 +6,7 @@ #include "base/bind.h" #include "components/favicon/content/content_favicon_driver.h" +#include "content/public/browser/navigation_handle.h" #include "content/public/browser/web_contents.h" #include "content/public/common/favicon_url.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -100,7 +101,7 @@ const GURL& image_url, const std::vector<SkBitmap>& bitmaps, const std::vector<gfx::Size>& original_bitmap_sizes) { - // Request may have been canceled by DidNavigateMainFrame(). + // Request may have been canceled by DidFinishNavigation(). if (in_progress_requests_.erase(id) == 0) return; @@ -112,9 +113,11 @@ } // content::WebContentsObserver overrides: -void FaviconDownloader::DidNavigateMainFrame( - const content::LoadCommittedDetails& details, - const content::FrameNavigateParams& params) { +void FaviconDownloader::DidFinishNavigation( + content::NavigationHandle* navigation_handle) { + if (!navigation_handle->IsInMainFrame() || !navigation_handle->HasCommitted()) + return; + // Clear all pending requests. in_progress_requests_.clear(); favicon_map_.clear();
diff --git a/chrome/browser/extensions/favicon_downloader.h b/chrome/browser/extensions/favicon_downloader.h index 77cf8596..049c2be 100644 --- a/chrome/browser/extensions/favicon_downloader.h +++ b/chrome/browser/extensions/favicon_downloader.h
@@ -71,9 +71,8 @@ const std::vector<gfx::Size>& original_bitmap_sizes); // content::WebContentsObserver overrides: - void DidNavigateMainFrame( - const content::LoadCommittedDetails& details, - const content::FrameNavigateParams& params) override; + void DidFinishNavigation( + content::NavigationHandle* navigation_handle) override; void DidUpdateFaviconURL( const std::vector<content::FaviconURL>& candidates) override;
diff --git a/chrome/browser/ui/libgtkui/gtk_util.cc b/chrome/browser/ui/libgtkui/gtk_util.cc index 543cbda..55bd85f 100644 --- a/chrome/browser/ui/libgtkui/gtk_util.cc +++ b/chrome/browser/ui/libgtkui/gtk_util.cc
@@ -347,14 +347,17 @@ color.blue * 255); } -SkColor GetFgColor(const char* css_selector) { - auto context = GetStyleContextFromCss(css_selector); +SkColor SkColorFromStyleContext(GtkStyleContext* context) { GdkRGBA color; gtk_style_context_get_color(context, gtk_style_context_get_state(context), &color); return GdkRgbaToSkColor(color); } +SkColor GetFgColor(const char* css_selector) { + return SkColorFromStyleContext(GetStyleContextFromCss(css_selector)); +} + GtkCssProvider* GetCssProvider(const char* css) { GtkCssProvider* provider = gtk_css_provider_new(); GError* error = nullptr;
diff --git a/chrome/browser/ui/libgtkui/gtk_util.h b/chrome/browser/ui/libgtkui/gtk_util.h index 4f9269a..91f9520 100644 --- a/chrome/browser/ui/libgtkui/gtk_util.h +++ b/chrome/browser/ui/libgtkui/gtk_util.h
@@ -139,6 +139,8 @@ // must g_object_unref() the returned context. ScopedStyleContext GetStyleContextFromCss(const char* css_selector); +SkColor SkColorFromStyleContext(GtkStyleContext* context); + // Removes all border-type properties on |context| and all of its parents. void RemoveBorders(GtkStyleContext* context);
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk3.cc b/chrome/browser/ui/libgtkui/native_theme_gtk3.cc index 74399f0..a593b14 100644 --- a/chrome/browser/ui/libgtkui/native_theme_gtk3.cc +++ b/chrome/browser/ui/libgtkui/native_theme_gtk3.cc
@@ -20,8 +20,17 @@ namespace { +enum BackgroundRenderMode { + BG_RENDER_NORMAL, + BG_RENDER_NONE, + BG_RENDER_RECURSIVE, +}; + SkBitmap GetWidgetBitmap(const gfx::Size& size, - GtkStyleContext* context) { + GtkStyleContext* context, + BackgroundRenderMode bg_mode, + bool render_frame) { + DCHECK(bg_mode != BG_RENDER_NONE || render_frame); SkBitmap bitmap; bitmap.allocN32Pixels(size.width(), size.height()); bitmap.eraseColor(0); @@ -32,8 +41,18 @@ cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, size.width())); cairo_t* cr = cairo_create(surface); - RenderBackground(size, cr, context); - gtk_render_frame(context, cr, 0, 0, size.width(), size.height()); + switch (bg_mode) { + case BG_RENDER_NORMAL: + gtk_render_background(context, cr, 0, 0, size.width(), size.height()); + break; + case BG_RENDER_RECURSIVE: + RenderBackground(size, cr, context); + break; + case BG_RENDER_NONE: + break; + } + if (render_frame) + gtk_render_frame(context, cr, 0, 0, size.width(), size.height()); cairo_destroy(cr); cairo_surface_destroy(surface); return bitmap; @@ -41,8 +60,12 @@ void PaintWidget(SkCanvas* canvas, const gfx::Rect& rect, - GtkStyleContext* context) { - canvas->drawBitmap(GetWidgetBitmap(rect.size(), context), rect.x(), rect.y()); + GtkStyleContext* context, + BackgroundRenderMode bg_mode, + bool render_frame) { + canvas->drawBitmap( + GetWidgetBitmap(rect.size(), context, bg_mode, render_frame), rect.x(), + rect.y()); } GtkStateFlags StateToStateFlags(NativeThemeGtk3::State state) { @@ -99,7 +122,7 @@ return GetFgColor( "GtkMenu#menu GtkMenuItem#menuitem GtkLabel#label.accelerator"); case ui::NativeTheme::kColorId_MenuSeparatorColor: - // MenuButton borders are used the same way as menu separators in Chrome. + // MenuButton borders are used as vertical menu separators in Chrome. case ui::NativeTheme::kColorId_EnabledMenuButtonBorderColor: case ui::NativeTheme::kColorId_FocusedMenuButtonBorderColor: case ui::NativeTheme::kColorId_HoverMenuButtonBorderColor: @@ -125,7 +148,7 @@ case ui::NativeTheme::kColorId_LinkPressed: if (GtkVersionCheck(3, 12)) return GetFgColor("GtkLabel#label.link:link:hover:active"); - // fallthrough + // fallthrough case ui::NativeTheme::kColorId_LinkEnabled: { if (GtkVersionCheck(3, 12)) { return GetFgColor("GtkLabel#label.link:link"); @@ -368,7 +391,8 @@ SkCanvas* canvas, const gfx::Size& size, const MenuBackgroundExtraParams& menu_background) const { - PaintWidget(canvas, gfx::Rect(size), GetStyleContextFromCss("GtkMenu#menu")); + PaintWidget(canvas, gfx::Rect(size), GetStyleContextFromCss("GtkMenu#menu"), + BG_RENDER_RECURSIVE, false); } void NativeThemeGtk3::PaintMenuItemBackground( @@ -378,7 +402,64 @@ const MenuItemExtraParams& menu_item) const { auto context = GetStyleContextFromCss("GtkMenu#menu GtkMenuItem#menuitem"); gtk_style_context_set_state(context, StateToStateFlags(state)); - PaintWidget(canvas, rect, context); + PaintWidget(canvas, rect, context, BG_RENDER_NORMAL, true); +} + +void NativeThemeGtk3::PaintMenuSeparator( + SkCanvas* canvas, + State state, + const gfx::Rect& rect, + const MenuSeparatorExtraParams& menu_separator) const { + auto separator_offset = [&](int separator_thickness) { + switch (menu_separator.type) { + case ui::LOWER_SEPARATOR: + return rect.height() - separator_thickness; + case ui::UPPER_SEPARATOR: + return 0; + default: + return rect.height() / 2; + } + }; + if (GtkVersionCheck(3, 20)) { + auto context = + GetStyleContextFromCss("GtkMenu#menu GtkSeparator#separator"); + GtkBorder margin, border, padding; + GtkStateFlags state = gtk_style_context_get_state(context); + gtk_style_context_get_margin(context, state, &margin); + gtk_style_context_get_border(context, state, &border); + gtk_style_context_get_padding(context, state, &padding); + int min_height = 0; + gtk_style_context_get(context, state, "min-height", &min_height, NULL); + int w = rect.width() - margin.left - margin.right; + int h = + min_height + padding.top + padding.bottom + border.top + border.bottom; + int x = margin.left; + int y = separator_offset(h); + PaintWidget(canvas, gfx::Rect(x, y, w, h), context, BG_RENDER_NORMAL, true); + } else { + auto context = + GetStyleContextFromCss("GtkMenu#menu GtkMenuItem#menuitem.separator"); + gboolean wide_separators = false; + gint separator_height = 0; + gtk_style_context_get_style(context, "wide-separators", &wide_separators, + "separator-height", &separator_height, nullptr); + // This code was adapted from gtk/gtkmenuitem.c. For some reason, + // padding is used as the margin. + GtkBorder padding; + gtk_style_context_get_padding(context, gtk_style_context_get_state(context), + &padding); + int w = rect.width() - padding.left - padding.right; + int x = rect.x() + padding.left; + int h = wide_separators ? separator_height : 1; + int y = rect.y() + separator_offset(h); + if (wide_separators) { + PaintWidget(canvas, gfx::Rect(x, y, w, h), context, BG_RENDER_NONE, true); + } else { + SkPaint paint; + paint.setColor(SkColorFromStyleContext(context)); + canvas->drawLine(x, y, x + w, y, paint); + } + } } void NativeThemeGtk3::PaintFrameTopArea( @@ -390,12 +471,12 @@ ? "#headerbar.header-bar.titlebar" : "GtkMenuBar#menubar"); RemoveBorders(context); - gtk_style_context_set_state(context, - frame_top_area.is_active - ? GTK_STATE_FLAG_NORMAL - : GTK_STATE_FLAG_BACKDROP); + gtk_style_context_set_state(context, frame_top_area.is_active + ? GTK_STATE_FLAG_NORMAL + : GTK_STATE_FLAG_BACKDROP); - SkBitmap bitmap = GetWidgetBitmap(rect.size(), context); + SkBitmap bitmap = + GetWidgetBitmap(rect.size(), context, BG_RENDER_RECURSIVE, false); if (frame_top_area.incognito) { bitmap = SkBitmapOperations::CreateHSLShiftedBitmap(
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk3.h b/chrome/browser/ui/libgtkui/native_theme_gtk3.h index 1946f72b..77de310e 100644 --- a/chrome/browser/ui/libgtkui/native_theme_gtk3.h +++ b/chrome/browser/ui/libgtkui/native_theme_gtk3.h
@@ -25,6 +25,11 @@ SkCanvas* canvas, const gfx::Size& size, const MenuBackgroundExtraParams& menu_background) const override; + void PaintMenuSeparator( + SkCanvas* canvas, + State state, + const gfx::Rect& rect, + const MenuSeparatorExtraParams& menu_separator) const override; void PaintMenuItemBackground( SkCanvas* canvas, State state,
diff --git a/chrome/browser/ui/webui/version_ui.cc b/chrome/browser/ui/webui/version_ui.cc index 8235a8a6..78fd307 100644 --- a/chrome/browser/ui/webui/version_ui.cc +++ b/chrome/browser/ui/webui/version_ui.cc
@@ -30,7 +30,6 @@ #include "v8/include/v8-version-string.h" #if defined(OS_ANDROID) -#include "base/android/build_info.h" #include "chrome/browser/ui/android/android_about_app_info.h" #else // !defined(OS_ANDROID) #include "chrome/browser/ui/webui/theme_source.h" @@ -56,24 +55,8 @@ version_info::GetVersionNumber()); html_source->AddString(version_ui::kVersionModifier, chrome::GetChannelString()); - html_source->AddLocalizedString(version_ui::kOSName, IDS_VERSION_UI_OS); - html_source->AddLocalizedString(version_ui::kARC, IDS_ARC_LABEL); - html_source->AddLocalizedString(version_ui::kPlatform, IDS_PLATFORM_LABEL); - html_source->AddString(version_ui::kOSType, version_info::GetOSType()); html_source->AddString(version_ui::kJSEngine, "V8"); html_source->AddString(version_ui::kJSVersion, V8_VERSION_STRING); - -#if defined(OS_ANDROID) - html_source->AddString(version_ui::kOSVersion, - AndroidAboutAppInfo::GetOsInfo()); -#else - html_source->AddString(version_ui::kOSVersion, std::string()); - html_source->AddString(version_ui::kFlashPlugin, "Flash"); - // Note that the Flash version is retrieve asynchronously and returned in - // VersionHandler::OnGotPlugins. The area is initially blank. - html_source->AddString(version_ui::kFlashVersion, std::string()); -#endif // defined(OS_ANDROID) - html_source->AddLocalizedString(version_ui::kCompany, IDS_ABOUT_VERSION_COMPANY_NAME); html_source->AddString( @@ -88,12 +71,43 @@ version_info::IsOfficialBuild() ? IDS_VERSION_UI_OFFICIAL : IDS_VERSION_UI_UNOFFICIAL); + html_source->AddLocalizedString(version_ui::kUserAgentName, + IDS_VERSION_UI_USER_AGENT); + html_source->AddString(version_ui::kUserAgent, GetUserAgent()); + html_source->AddLocalizedString(version_ui::kCommandLineName, + IDS_VERSION_UI_COMMAND_LINE); + // Note that the executable path and profile path are retrieved asynchronously + // and returned in VersionHandler::OnGotFilePaths. The area is initially + // blank. + html_source->AddLocalizedString(version_ui::kExecutablePathName, + IDS_VERSION_UI_EXECUTABLE_PATH); + html_source->AddString(version_ui::kExecutablePath, std::string()); + html_source->AddLocalizedString(version_ui::kProfilePathName, + IDS_VERSION_UI_PROFILE_PATH); + html_source->AddString(version_ui::kProfilePath, std::string()); + html_source->AddLocalizedString(version_ui::kVariationsName, + IDS_VERSION_UI_VARIATIONS); #if defined(OS_CHROMEOS) + html_source->AddLocalizedString(version_ui::kARC, IDS_ARC_LABEL); + html_source->AddLocalizedString(version_ui::kPlatform, IDS_PLATFORM_LABEL); html_source->AddLocalizedString(version_ui::kCustomizationId, IDS_VERSION_UI_CUSTOMIZATION_ID); +#else + html_source->AddLocalizedString(version_ui::kOSName, IDS_VERSION_UI_OS); + html_source->AddString(version_ui::kOSType, version_info::GetOSType()); #endif // OS_CHROMEOS +#if defined(OS_ANDROID) + html_source->AddString(version_ui::kOSVersion, + AndroidAboutAppInfo::GetOsInfo()); +#else + html_source->AddString(version_ui::kFlashPlugin, "Flash"); + // Note that the Flash version is retrieve asynchronously and returned in + // VersionHandler::OnGotPlugins. The area is initially blank. + html_source->AddString(version_ui::kFlashVersion, std::string()); +#endif // OS_ANDROID + #if defined(ARCH_CPU_64_BITS) html_source->AddLocalizedString(version_ui::kVersionBitSize, IDS_VERSION_UI_64BIT); @@ -101,11 +115,6 @@ html_source->AddLocalizedString(version_ui::kVersionBitSize, IDS_VERSION_UI_32BIT); #endif - html_source->AddLocalizedString(version_ui::kUserAgentName, - IDS_VERSION_UI_USER_AGENT); - html_source->AddString(version_ui::kUserAgent, GetUserAgent()); - html_source->AddLocalizedString(version_ui::kCommandLineName, - IDS_VERSION_UI_COMMAND_LINE); #if defined(OS_WIN) html_source->AddString( @@ -122,39 +131,25 @@ html_source->AddString(version_ui::kCommandLine, command_line); #endif - // Note that the executable path and profile path are retrieved asynchronously - // and returned in VersionHandler::OnGotFilePaths. The area is initially - // blank. - html_source->AddLocalizedString(version_ui::kExecutablePathName, - IDS_VERSION_UI_EXECUTABLE_PATH); - html_source->AddString(version_ui::kExecutablePath, std::string()); - - html_source->AddLocalizedString(version_ui::kProfilePathName, - IDS_VERSION_UI_PROFILE_PATH); - html_source->AddString(version_ui::kProfilePath, std::string()); - - html_source->AddLocalizedString(version_ui::kVariationsName, - IDS_VERSION_UI_VARIATIONS); - #if defined(OS_WIN) #if defined(__clang__) - html_source->AddString("compiler", "clang"); + html_source->AddString(version_ui::kCompiler, "clang"); #elif defined(_MSC_VER) && _MSC_VER == 1900 #if BUILDFLAG(PGO_BUILD) - html_source->AddString("compiler", "MSVC 2015 (PGO)"); + html_source->AddString(version_ui::kCompiler, "MSVC 2015 (PGO)"); #else - html_source->AddString("compiler", "MSVC 2015"); + html_source->AddString(version_ui::kCompiler, "MSVC 2015"); #endif #elif defined(_MSC_VER) && _MSC_VER == 1910 #if BUILDFLAG(PGO_BUILD) - html_source->AddString("compiler", "MSVC 2017 (PGO)"); + html_source->AddString(version_ui::kCompiler, "MSVC 2017 (PGO)"); #else - html_source->AddString("compiler", "MSVC 2017"); + html_source->AddString(version_ui::kCompiler, "MSVC 2017"); #endif #elif defined(_MSC_VER) #error "Unsupported version of MSVC." #else - html_source->AddString("compiler", "Unknown"); + html_source->AddString(version_ui::kCompiler, "Unknown"); #endif #endif // defined(OS_WIN)
diff --git a/components/version_ui/resources/about_version.html b/components/version_ui/resources/about_version.html index a151b90..6928408d 100644 --- a/components/version_ui/resources/about_version.html +++ b/components/version_ui/resources/about_version.html
@@ -63,7 +63,9 @@ <td class="label" i18n-content="os_name"></td> <td class="version" id="os_type"> <span i18n-content="os_type"></span> - <span id="os_version" i18n-content="os_version"></span> +<if expr="is_android"> + <span i18n-content="os_version"></span> +</if> </td> </tr> </if> @@ -71,7 +73,7 @@ <tr> <td class="label" i18n-content="platform"></td> <td class="version" id="os_type"> - <span id="os_version" i18n-content="os_version"></span> + <span id="os_version"></span> </td> </tr> <tr id="customization_id_holder" hidden> @@ -79,13 +81,13 @@ <td class="version"> <span id="customization_id"></span> </td> -</if> </tr> <tr id="arc_holder"><td class="label" i18n-content="arc_label"></td> <td class="version"> <span id="arc_version"></span> </td> </tr> +</if> <if expr="not is_ios"> <tr><td class="label">JavaScript</td> <td class="version" id="js_engine"> @@ -117,12 +119,6 @@ <td class="label" i18n-content="variations_name"></td> <td class="version" id="variations-list"></td> </tr> -<if expr="is_android"> - <tr id="build-id-section"> - <td class="label" i18n-content="build_id_name"></td> - <td class="version" i18n-content="build_id"></td> - </tr> -</if> <if expr="is_win"> <tr id="compiler-section"> <td class="label">Compiler</td>
diff --git a/components/version_ui/resources/about_version.js b/components/version_ui/resources/about_version.js index 9a987f7..8232edd3 100644 --- a/components/version_ui/resources/about_version.js +++ b/components/version_ui/resources/about_version.js
@@ -63,9 +63,10 @@ /* All the work we do onload. */ function onLoadWork() { chrome.send('requestVersionInfo'); - $('arc_holder').hidden = true; - if (cr.isChromeOS) + if (cr.isChromeOS) { + $('arc_holder').hidden = true; chrome.chromeosInfoPrivate.get(['customizationId'], returnCustomizationId); + } } document.addEventListener('DOMContentLoaded', onLoadWork);
diff --git a/components/version_ui/version_ui_constants.cc b/components/version_ui/version_ui_constants.cc index 5c4e824..d16045de 100644 --- a/components/version_ui/version_ui_constants.cc +++ b/components/version_ui/version_ui_constants.cc
@@ -18,28 +18,47 @@ // Strings. const char kApplicationLabel[] = "application_label"; +#if defined(OS_CHROMEOS) const char kARC[] = "arc_label"; +#endif const char kCL[] = "cl"; const char kCommandLine[] = "command_line"; const char kCommandLineName[] = "command_line_name"; const char kCompany[] = "company"; +#if defined(OS_WIN) +const char kCompiler[] = "compiler"; +#endif const char kCopyright[] = "copyright"; #if defined(OS_CHROMEOS) const char kCustomizationId[] = "customization_id"; #endif +#if !defined(OS_IOS) const char kExecutablePath[] = "executable_path"; const char kExecutablePathName[] = "executable_path_name"; +#endif +#if !defined(OS_ANDROID) && !defined(OS_IOS) const char kFlashPlugin[] = "flash_plugin"; const char kFlashVersion[] = "flash_version"; +#endif +#if !defined(OS_IOS) const char kJSEngine[] = "js_engine"; const char kJSVersion[] = "js_version"; +#endif const char kOfficial[] = "official"; +#if !defined(OS_CHROMEOS) const char kOSName[] = "os_name"; const char kOSType[] = "os_type"; +#endif +#if defined(OS_ANDROID) const char kOSVersion[] = "os_version"; +#endif +#if defined(OS_CHROMEOS) const char kPlatform[] = "platform"; +#endif +#if !defined(OS_IOS) const char kProfilePath[] = "profile_path"; const char kProfilePathName[] = "profile_path_name"; +#endif const char kRevision[] = "revision"; const char kTitle[] = "title"; const char kUserAgent[] = "useragent";
diff --git a/components/version_ui/version_ui_constants.h b/components/version_ui/version_ui_constants.h index 7f0d3e85..88a89288 100644 --- a/components/version_ui/version_ui_constants.h +++ b/components/version_ui/version_ui_constants.h
@@ -5,6 +5,8 @@ #ifndef COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_ #define COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_ +#include "build/build_config.h" + namespace version_ui { // Resource paths. @@ -22,29 +24,47 @@ // Strings. // Must match the constants used in the resource files. extern const char kApplicationLabel[]; +#if defined(OS_CHROMEOS) extern const char kARC[]; -extern const char kBlinkVersion[]; +#endif extern const char kCL[]; extern const char kCommandLine[]; extern const char kCommandLineName[]; extern const char kCompany[]; +#if defined(OS_WIN) +extern const char kCompiler[]; +#endif extern const char kCopyright[]; #if defined(OS_CHROMEOS) extern const char kCustomizationId[]; #endif +#if !defined(OS_IOS) extern const char kExecutablePath[]; extern const char kExecutablePathName[]; +#endif +#if !defined(OS_ANDROID) && !defined(OS_IOS) extern const char kFlashPlugin[]; extern const char kFlashVersion[]; +#endif +#if !defined(OS_IOS) extern const char kJSEngine[]; extern const char kJSVersion[]; +#endif extern const char kOfficial[]; +#if !defined(OS_CHROMEOS) extern const char kOSName[]; extern const char kOSType[]; +#endif +#if defined(OS_ANDROID) extern const char kOSVersion[]; +#endif +#if defined(OS_CHROMEOS) extern const char kPlatform[]; +#endif +#if !defined(OS_IOS) extern const char kProfilePath[]; extern const char kProfilePathName[]; +#endif extern const char kRevision[]; extern const char kTitle[]; extern const char kUserAgent[];
diff --git a/content/browser/media/media_browsertest.cc b/content/browser/media/media_browsertest.cc index 6e7ccc8..fcf69e54 100644 --- a/content/browser/media/media_browsertest.cc +++ b/content/browser/media/media_browsertest.cc
@@ -144,8 +144,7 @@ #if BUILDFLAG(USE_PROPRIETARY_CODECS) // Crashes on Mac http://crbug.com/621857 -// Fails on Android http://crbug.com/682387 -#if defined(OS_MACOSX) || defined(OS_ANDROID) +#if defined(OS_MACOSX) #define MAYBE_VideoBearMp4 DISABLED_VideoBearMp4 #else #define MAYBE_VideoBearMp4 VideoBearMp4
diff --git a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py index 77a2c78..5790a3bc 100644 --- a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
@@ -66,6 +66,34 @@ 'draw-with-integer-texture-base-level.html', ['win', 'nvidia'], bug=679639) + # Win10 / NVIDIA Quadro M2000 failures + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'basic_types_interleaved_lines.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'basic_types_interleaved_triangles.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'basic_types_separate_lines.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'basic_types_separate_triangles.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'random_interleaved_lines.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'random_interleaved_triangles.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'random_separate_lines.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/' + + 'random_separate_triangles.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + self.Fail('deqp/functional/gles3/transformfeedback/interpolation_flat.html', + ['win10', ('nvidia', 0x1430)], bug=680754) + # Win / AMD self.Fail('conformance2/rendering/blitframebuffer-stencil-only.html', ['win', 'amd'], bug=483282) # owner:jmadill
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py index a143953..4fc1674b 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
@@ -143,6 +143,16 @@ self.Fail('conformance/extensions/ext-sRGB.html', ['win', 'nvidia', 'no_passthrough'], bug=679696) + # Win10 / NVIDIA Quadro M2000 / D3D9 failures + self.Fail('conformance/canvas/drawingbuffer-static-canvas-test.html', + ['win10', ('nvidia', 0x1430), 'd3d9'], bug=680754) + self.Fail('conformance/canvas/' + + 'framebuffer-bindings-affected-by-to-data-url.html', + ['win10', ('nvidia', 0x1430), 'd3d9'], bug=680754) + self.Fail('conformance/ogles/GL/cos/cos_001_to_006.html', + ['win10', ('nvidia', 0x1430), 'd3d9'], bug=680754) + + # Win7 / Intel failures self.Fail('conformance/textures/misc/' + 'copy-tex-image-and-sub-image-2d.html',
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index 79abf33..50a4d1b9 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -993,9 +993,6 @@ <message name="IDS_IOS_PLACEHOLDER_FIND_IN_PAGE" desc="The iOS placeholder for searching in the current page [Length: 30em] [iOS only]"> Find in page... </message> - <message name="IDS_IOS_PLATFORM_LABEL" desc="Label for Platform. [Length: unlimited] [iOS only]"> - Platform - </message> <message name="IDS_IOS_POPUPS_ALLOWED" desc="Label for the list of sites that the user has allowed to show pop-ups. [Length: 20em] [iOS only]"> Pop-ups Allowed </message>
diff --git a/ios/chrome/browser/ui/webui/version_ui.mm b/ios/chrome/browser/ui/webui/version_ui.mm index 76a51fd..26aa367 100644 --- a/ios/chrome/browser/ui/webui/version_ui.mm +++ b/ios/chrome/browser/ui/webui/version_ui.mm
@@ -21,7 +21,6 @@ #include "ios/chrome/browser/ui/webui/version_handler.h" #include "ios/chrome/common/channel_info.h" #include "ios/chrome/grit/ios_chromium_strings.h" -#include "ios/chrome/grit/ios_strings.h" #include "ios/web/public/web_client.h" #include "ios/web/public/web_ui_ios_data_source.h" #include "ios/web/public/webui/web_ui_ios.h" @@ -46,10 +45,7 @@ html_source->AddString(version_ui::kVersionModifier, GetChannelString(GetChannel())); html_source->AddLocalizedString(version_ui::kOSName, IDS_VERSION_UI_OS); - html_source->AddLocalizedString(version_ui::kPlatform, - IDS_IOS_PLATFORM_LABEL); html_source->AddString(version_ui::kOSType, version_info::GetOSType()); - html_source->AddString(version_ui::kOSVersion, std::string()); html_source->AddLocalizedString(version_ui::kCompany, IDS_IOS_ABOUT_VERSION_COMPANY_NAME);
diff --git a/media/test/data/player.html b/media/test/data/player.html index a1f46392..7577d861 100644 --- a/media/test/data/player.html +++ b/media/test/data/player.html
@@ -84,7 +84,12 @@ player.controls = true; document.getElementById('player_container').appendChild(player); - player.addEventListener('loadedmetadata', function(e) { + // We use loadeddata instead of loadedmetadata to ensure the decoder has + // completed initialization, even though we don't need to decode anything to + // get the size metadata. This is an unfortunate workaround for an Android + // framework bug (http://crbug.com/682387) where we have to avoid killing + // the GPU process while the decoder is initializing. + player.addEventListener('loadeddata', function(e) { document.title = '' + player.videoWidth + ' ' + player.videoHeight; });
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-continue-exception-order.html b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-continue-exception-order.htm similarity index 92% rename from third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-continue-exception-order.html rename to third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-continue-exception-order.htm index 726addaa..8002476f 100644 --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-continue-exception-order.html +++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-continue-exception-order.htm
@@ -2,9 +2,9 @@ <title>IndexedDB: IDBCursor continue() Exception Ordering</title> <meta charset=utf-8> <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbcursor-continue"> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="resources/testharness-helpers.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support.js"></script> <script> indexeddb_test(
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-delete-exception-order.html b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-delete-exception-order.htm similarity index 91% rename from third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-delete-exception-order.html rename to third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-delete-exception-order.htm index b2d0d5bd..cc2791c 100644 --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-delete-exception-order.html +++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-delete-exception-order.htm
@@ -2,9 +2,9 @@ <title>IndexedDB: IDBCursor delete() Exception Ordering</title> <meta charset=utf-8> <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbcursor-delete"> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="resources/testharness-helpers.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support.js"></script> <script> indexeddb_test(
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-update-exception-order.htm similarity index 93% rename from third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html rename to third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-update-exception-order.htm index cceee010..4e18731f 100644 --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbcursor-update-exception-order.html +++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbcursor-update-exception-order.htm
@@ -2,9 +2,9 @@ <title>IndexedDB: IDBCursor update() Exception Ordering</title> <meta charset=utf-8> <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbcursor-update"> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="resources/testharness-helpers.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support.js"></script> <script> indexeddb_test(
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbdatabase-createObjectStore-exception-order.htm similarity index 77% rename from third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html rename to third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbdatabase-createObjectStore-exception-order.htm index 490019d..50b3adb3 100644 --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-createObjectStore-exception-order.html +++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbdatabase-createObjectStore-exception-order.htm
@@ -2,16 +2,16 @@ <title>IndexedDB: IDBDatabase createObjectStore() Exception Ordering</title> <meta charset=utf-8> <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore"> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="resources/testharness-helpers.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support.js"></script> <script> indexeddb_test( - (t, db, req) => { + (t, db, txn) => { db.createObjectStore('s'); - req.transaction.onabort = () => { + txn.onabort = () => { setTimeout(t.step_func(() => { assert_throws( 'InvalidStateError', () => { db.createObjectStore('s2'); }, @@ -21,20 +21,19 @@ t.done(); }), 0); }; - req.onerror = null; - req.transaction.abort(); + txn.abort(); }, (t, db) => { t.assert_unreached('open should fail'); }, 'IDBDatabase.createObjectStore exception order: ' + - 'InvalidStateError vs. TransactionInactiveError' + 'InvalidStateError vs. TransactionInactiveError', + { upgrade_will_abort: true } ); indexeddb_test( - (t, db, req) => { + (t, db, txn) => { const store = db.createObjectStore('s'); - req.onerror = null; - req.transaction.abort(); + txn.abort(); assert_throws( 'TransactionInactiveError', @@ -46,7 +45,8 @@ }, (t, db) => { t.assert_unreached('open should fail'); }, 'IDBDatabase.createObjectStore exception order: ' + - 'TransactionInactiveError vs. SyntaxError' + 'TransactionInactiveError vs. SyntaxError', + { upgrade_will_abort: true } ); indexeddb_test( @@ -67,8 +67,7 @@ (t, db) => { db.createObjectStore('s'); assert_throws('ConstraintError', () => { - db.createObjectStore('s', {autoIncrement: true, - keyPath: ''}); + db.createObjectStore('s', {autoIncrement: true, keyPath: ''}); }, '"already exists" check (ConstraintError) should precede ' + '"autoIncrement vs. keyPath" check (InvalidAccessError)'); t.done();
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-deleteObjectStore-exception-order.html b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbdatabase-deleteObjectStore-exception-order.htm similarity index 69% rename from third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-deleteObjectStore-exception-order.html rename to third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbdatabase-deleteObjectStore-exception-order.htm index b411393..23a3e1f 100644 --- a/third_party/WebKit/LayoutTests/storage/indexeddb/idbdatabase-deleteObjectStore-exception-order.html +++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbdatabase-deleteObjectStore-exception-order.htm
@@ -2,15 +2,15 @@ <title>IndexedDB: IDBDatabase deleteObjectStore() Exception Ordering</title> <meta charset=utf-8> <link rel="help" href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-deleteobjectstore"> -<script src="../../resources/testharness.js"></script> -<script src="../../resources/testharnessreport.js"></script> -<script src="resources/testharness-helpers.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support.js"></script> <script> indexeddb_test( - (t, db, req) => { + (t, db, txn) => { db.createObjectStore('s'); - req.transaction.onabort = () => { + txn.onabort = () => { setTimeout(t.step_func(() => { assert_throws( 'InvalidStateError', () => { db.deleteObjectStore('s'); }, @@ -19,18 +19,17 @@ t.done(); }), 0); }; - req.onerror = null; - req.transaction.abort(); + txn.abort(); }, (t, db) => { t.assert_unreached('open should fail'); }, 'IDBDatabase.deleteObjectStore exception order: ' + - 'InvalidStateError vs. TransactionInactiveError' + 'InvalidStateError vs. TransactionInactiveError', + { upgrade_will_abort: true } ); indexeddb_test( - (t, db, req) => { - req.onerror = null; - req.transaction.abort(); + (t, db, txn) => { + txn.abort(); assert_throws( 'TransactionInactiveError', () => { db.deleteObjectStore('nope'); }, '"not active" check (TransactionInactiveError) should precede ' + @@ -39,7 +38,8 @@ }, (t, db) => { t.assert_unreached('open should fail'); }, 'IDBDatabase.deleteObjectStore exception order: ' + - 'TransactionInactiveError vs. NotFoundError' + 'TransactionInactiveError vs. NotFoundError', + { upgrade_will_abort: true } ); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/support.js b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/support.js index 81498739..4bfaf72c 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/support.js +++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/support.js
@@ -62,12 +62,14 @@ assert_unreached("unexpected open." + evt + " event"); } - if (e.target.result + "" == "[object IDBDatabase]" && !this.db) { - this.db = e.target.result; + if (e.target.result + '' == '[object IDBDatabase]' && + !this.db) { + this.db = e.target.result; - this.db.onerror = fail(test, "unexpected db.error"); - this.db.onabort = fail(test, "unexpected db.abort"); - this.db.onversionchange = fail(test, "unexpected db.versionchange"); + this.db.onerror = fail(test, 'unexpected db.error'); + this.db.onabort = fail(test, 'unexpected db.abort'); + this.db.onversionchange = + fail(test, 'unexpected db.versionchange'); } }) }) @@ -102,22 +104,27 @@ assert_equals(indexedDB.cmp(actual, expected), 0, description); } -function indexeddb_test(upgrade_func, open_func, description) { - async_test(function(t) { - var dbname = document.location + '-' + t.name; - var del = indexedDB.deleteDatabase(dbname); - del.onerror = t.unreached_func('deleteDatabase should succeed'); - var open = indexedDB.open(dbname, 1); - open.onerror = t.unreached_func('open should succeed'); - open.onupgradeneeded = t.step_func(function() { - var db = open.result; - var tx = open.transaction; - upgrade_func(t, db, tx); - }); - open.onsuccess = t.step_func(function() { - var db = open.result; - if (open_func) - open_func(t, db); - }); - }, description); +function indexeddb_test(upgrade_func, open_func, description, options) { + async_test(function(t) { + var options = Object.assign({upgrade_will_abort: false}, options); + var dbname = document.location + '-' + t.name; + var del = indexedDB.deleteDatabase(dbname); + del.onerror = t.unreached_func('deleteDatabase should succeed'); + var open = indexedDB.open(dbname, 1); + if (!options.upgrade_will_abort) { + open.onsuccess = t.unreached_func('open should not succeed'); + } else { + open.onerror = t.unreached_func('open should succeed'); + } + open.onupgradeneeded = t.step_func(function() { + var db = open.result; + var tx = open.transaction; + upgrade_func(t, db, tx); + }); + open.onsuccess = t.step_func(function() { + var db = open.result; + if (open_func) + open_func(t, db); + }); + }, description); }
diff --git a/third_party/WebKit/LayoutTests/external/wpt/MANIFEST.json b/third_party/WebKit/LayoutTests/external/wpt/MANIFEST.json index a43ba389..4f8c3b8 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/wpt/MANIFEST.json
@@ -15989,11 +15989,6 @@ {} ] ], - "streams/piping/close-propagation-backward-expected.txt": [ - [ - {} - ] - ], "streams/piping/close-propagation-backward.js": [ [ {} @@ -16004,16 +15999,6 @@ {} ] ], - "streams/piping/close-propagation-backward.serviceworker.https-expected.txt": [ - [ - {} - ] - ], - "streams/piping/close-propagation-forward-expected.txt": [ - [ - {} - ] - ], "streams/piping/close-propagation-forward.js": [ [ {} @@ -16024,16 +16009,6 @@ {} ] ], - "streams/piping/close-propagation-forward.serviceworker.https-expected.txt": [ - [ - {} - ] - ], - "streams/piping/error-propagation-backward-expected.txt": [ - [ - {} - ] - ], "streams/piping/error-propagation-backward.js": [ [ {} @@ -16044,16 +16019,6 @@ {} ] ], - "streams/piping/error-propagation-backward.serviceworker.https-expected.txt": [ - [ - {} - ] - ], - "streams/piping/error-propagation-forward-expected.txt": [ - [ - {} - ] - ], "streams/piping/error-propagation-forward.js": [ [ {} @@ -16064,16 +16029,6 @@ {} ] ], - "streams/piping/error-propagation-forward.serviceworker.https-expected.txt": [ - [ - {} - ] - ], - "streams/piping/flow-control-expected.txt": [ - [ - {} - ] - ], "streams/piping/flow-control.js": [ [ {} @@ -16084,16 +16039,6 @@ {} ] ], - "streams/piping/flow-control.serviceworker.https-expected.txt": [ - [ - {} - ] - ], - "streams/piping/general-expected.txt": [ - [ - {} - ] - ], "streams/piping/general.js": [ [ {} @@ -16104,11 +16049,6 @@ {} ] ], - "streams/piping/general.serviceworker.https-expected.txt": [ - [ - {} - ] - ], "streams/piping/multiple-propagation-expected.txt": [ [ {} @@ -16144,6 +16084,11 @@ {} ] ], + "streams/piping/pipe-through.dedicatedworker-expected.txt": [ + [ + {} + ] + ], "streams/piping/pipe-through.js": [ [ {} @@ -16159,6 +16104,11 @@ {} ] ], + "streams/piping/pipe-through.sharedworker-expected.txt": [ + [ + {} + ] + ], "streams/piping/transform-streams-expected.txt": [ [ {} @@ -16314,11 +16264,6 @@ {} ] ], - "streams/readable-streams/pipe-through.serviceworker.https-expected.txt": [ - [ - {} - ] - ], "streams/readable-streams/readable-stream-reader.js": [ [ {} @@ -16349,11 +16294,6 @@ {} ] ], - "streams/readable-streams/templated.serviceworker.https-expected.txt": [ - [ - {} - ] - ], "streams/resources/recording-streams.js": [ [ {} @@ -17912,6 +17852,12 @@ {} ] ], + "IndexedDB/idbcursor-continue-exception-order.htm": [ + [ + "/IndexedDB/idbcursor-continue-exception-order.htm", + {} + ] + ], "IndexedDB/idbcursor-continue.htm": [ [ "/IndexedDB/idbcursor-continue.htm", @@ -17932,6 +17878,12 @@ {} ] ], + "IndexedDB/idbcursor-delete-exception-order.htm": [ + [ + "/IndexedDB/idbcursor-delete-exception-order.htm", + {} + ] + ], "IndexedDB/idbcursor-direction-index-keyrange.htm": [ [ "/IndexedDB/idbcursor-direction-index-keyrange.htm", @@ -17986,6 +17938,12 @@ {} ] ], + "IndexedDB/idbcursor-update-exception-order.htm": [ + [ + "/IndexedDB/idbcursor-update-exception-order.htm", + {} + ] + ], "IndexedDB/idbcursor_advance_index.htm": [ [ "/IndexedDB/idbcursor_advance_index.htm", @@ -18346,6 +18304,18 @@ {} ] ], + "IndexedDB/idbdatabase-createObjectStore-exception-order.htm": [ + [ + "/IndexedDB/idbdatabase-createObjectStore-exception-order.htm", + {} + ] + ], + "IndexedDB/idbdatabase-deleteObjectStore-exception-order.htm": [ + [ + "/IndexedDB/idbdatabase-deleteObjectStore-exception-order.htm", + {} + ] + ], "IndexedDB/idbdatabase_close.htm": [ [ "/IndexedDB/idbdatabase_close.htm", @@ -34602,12 +34572,6 @@ ] }, "visual": { - "html/dom/elements/global-attributes/dir_auto-EN-L-expected.html": [ - [ - "/html/dom/elements/global-attributes/dir_auto-EN-L-expected.html", - {} - ] - ], "html/dom/elements/global-attributes/dir_auto-EN-R-expected.html": [ [ "/html/dom/elements/global-attributes/dir_auto-EN-R-expected.html", @@ -35279,6 +35243,10 @@ "7becf54b03320a3b905c4ebfa476476f22409307", "testharness" ], + "IndexedDB/idbcursor-continue-exception-order.htm": [ + "5c6bd64850880ceb20639325cf3d61127e2b13c8", + "testharness" + ], "IndexedDB/idbcursor-continue.htm": [ "953ae4b03fcfe2be3652df09577df2e3829dd53a", "testharness" @@ -35291,6 +35259,10 @@ "7c2ddb95ce4b7c588ddb2907367a365902eba349", "testharness" ], + "IndexedDB/idbcursor-delete-exception-order.htm": [ + "6bb279530dbdedba84a2d45d58e5d0a81a4d95e5", + "testharness" + ], "IndexedDB/idbcursor-direction-index-keyrange.htm": [ "d87cc37174c74e57880f8883e75a9c033c021e74", "testharness" @@ -35327,6 +35299,10 @@ "0677de106509b9b3f4d1e38780f479d9aaace626", "testharness" ], + "IndexedDB/idbcursor-update-exception-order.htm": [ + "748c1764883cc62e58c1ce7929e91e6ee2941fda", + "testharness" + ], "IndexedDB/idbcursor_advance_index.htm": [ "b6cb5fd53000be9c8d198b08d259a1062a8f9946", "testharness" @@ -35567,6 +35543,14 @@ "7534a0868a5861cfd9f2fef0f3eddf452c0d9366", "testharness" ], + "IndexedDB/idbdatabase-createObjectStore-exception-order.htm": [ + "24d86e0a278a52c759f1a220041838bedd59959e", + "testharness" + ], + "IndexedDB/idbdatabase-deleteObjectStore-exception-order.htm": [ + "0e0ae655c2767b3755490104a28ae26e0d4cd500", + "testharness" + ], "IndexedDB/idbdatabase_close.htm": [ "6b0a32c465f735544b89da588bb043bbfbb66230", "testharness" @@ -36328,7 +36312,7 @@ "support" ], "IndexedDB/support.js": [ - "3f2f3bd905485efe94cf7c406bef4fa20a13ab83", + "0dfe81d16dd3f741deb013fda40faa6df9757334", "support" ], "IndexedDB/transaction-abort-generator-revert.html": [ @@ -42411,10 +42395,6 @@ "3a0bacb8b3d8e66038d12472387dc51304a6052d", "testharness" ], - "html/dom/elements/global-attributes/dir_auto-EN-L-expected.html": [ - "bbec57aca4e319e3a4638a2a008c510439582cf1", - "visual" - ], "html/dom/elements/global-attributes/dir_auto-EN-L-ref.html": [ "bbec57aca4e319e3a4638a2a008c510439582cf1", "support" @@ -49968,7 +49948,7 @@ "support" ], "html/semantics/scripting-1/the-script-element/external-script-windows1250.js": [ - "43e3b65a18328fa95ba89cb4f075d1ab422580fa", + "3ae0d51ae4444e95a21cbe8d9d10822615903859", "support" ], "html/semantics/scripting-1/the-script-element/fetch-src/alpha/base.html": [ @@ -55035,10 +55015,6 @@ "729d86f589af914bf59f046f40e3d98b5f37efc7", "support" ], - "streams/piping/close-propagation-backward-expected.txt": [ - "2c78c276cdbf8f7b60303f7cae9323203f08336a", - "support" - ], "streams/piping/close-propagation-backward.dedicatedworker.html": [ "17e143af0bd875f6097c2314ea9861e4b19ff91a", "testharness" @@ -55055,10 +55031,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/piping/close-propagation-backward.serviceworker.https-expected.txt": [ - "ba6e2b8a2a88f9178fa6e1c1dcffcebc54803040", - "support" - ], "streams/piping/close-propagation-backward.serviceworker.https.html": [ "29ce859faa5a374d86c4f10e2c638061ce378a01", "testharness" @@ -55067,10 +55039,6 @@ "7ef2ba0b429b2032e099f62cf2bc17d606ad1c64", "testharness" ], - "streams/piping/close-propagation-forward-expected.txt": [ - "4ab6fa412936f3290fec500ed4766d2331e86150", - "support" - ], "streams/piping/close-propagation-forward.dedicatedworker.html": [ "d227631adae0611f7920d33343d148f19c13f833", "testharness" @@ -55087,10 +55055,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/piping/close-propagation-forward.serviceworker.https-expected.txt": [ - "e19b7cadf3133b589aea0f812c8a1b9f239fdcd3", - "support" - ], "streams/piping/close-propagation-forward.serviceworker.https.html": [ "759ca4e212311a001d0abae2b2f21d1dca42736b", "testharness" @@ -55099,10 +55063,6 @@ "277a94372fc8359b631b46ea79778ce2ec0e928c", "testharness" ], - "streams/piping/error-propagation-backward-expected.txt": [ - "bbe079c575b2d825134e679e61566da325745fee", - "support" - ], "streams/piping/error-propagation-backward.dedicatedworker.html": [ "2f7ad2bf616e612f8cae9c61264d1ea012be2561", "testharness" @@ -55119,10 +55079,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/piping/error-propagation-backward.serviceworker.https-expected.txt": [ - "945748a9d526697937ab913a7c9b612449aa9604", - "support" - ], "streams/piping/error-propagation-backward.serviceworker.https.html": [ "3502f6514992dab5662a5088c518d3a775863770", "testharness" @@ -55131,10 +55087,6 @@ "464dbfc87804e207057de70b2dcbb0aacf03b92e", "testharness" ], - "streams/piping/error-propagation-forward-expected.txt": [ - "5244bd0323cc4426671f43de90f3f4e8ca0cf0db", - "support" - ], "streams/piping/error-propagation-forward.dedicatedworker.html": [ "a2520ea68491b9e0987a63c9d5653a19ffff440d", "testharness" @@ -55151,10 +55103,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/piping/error-propagation-forward.serviceworker.https-expected.txt": [ - "14492b1c0b191299083792c701971693f981e0a5", - "support" - ], "streams/piping/error-propagation-forward.serviceworker.https.html": [ "44db4461afd113439e349a05a08410ff58655850", "testharness" @@ -55163,10 +55111,6 @@ "c19cba806d0c806452464b7ede268458c65556a9", "testharness" ], - "streams/piping/flow-control-expected.txt": [ - "f87be7d24d09906c86bc5e7ae4847b5b8fc8122c", - "support" - ], "streams/piping/flow-control.dedicatedworker.html": [ "3936fceee569de910a7e3e4d5e3af9e7c4d1e942", "testharness" @@ -55183,10 +55127,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/piping/flow-control.serviceworker.https-expected.txt": [ - "5aabb47c1d495403fa0bac70b75ee617ba8b3214", - "support" - ], "streams/piping/flow-control.serviceworker.https.html": [ "c6962c1f0358867289e1e9b36dac492059f4f9fe", "testharness" @@ -55195,10 +55135,6 @@ "74e67f2ad62720eb3314a1cdec5b4c28ca3ea5f6", "testharness" ], - "streams/piping/general-expected.txt": [ - "9b373b5ed079db8c554da1df08fe91dbdb9e6a4d", - "support" - ], "streams/piping/general.dedicatedworker.html": [ "8583d80450b090c16ed0795170340d040449bbc1", "testharness" @@ -55215,10 +55151,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/piping/general.serviceworker.https-expected.txt": [ - "97eafbd7ab102636b641e34862c62d587a221ea4", - "support" - ], "streams/piping/general.serviceworker.https.html": [ "1792d6c45a5687777291a4dab031a954aa053752", "testharness" @@ -55252,7 +55184,7 @@ "support" ], "streams/piping/multiple-propagation.serviceworker.https-expected.txt": [ - "46ba0a5a3b8864c2be80fe138bfeda70bc60d726", + "943a89576b2c9fe677d61dd3b5b65cde228fa23a", "support" ], "streams/piping/multiple-propagation.serviceworker.https.html": [ @@ -55268,7 +55200,11 @@ "testharness" ], "streams/piping/pipe-through-expected.txt": [ - "7a6f52b7ff44ea026c05f844f0c737e7f91704b0", + "99727d10dfd517ff4345ffd7f781f2cef6363980", + "support" + ], + "streams/piping/pipe-through.dedicatedworker-expected.txt": [ + "99727d10dfd517ff4345ffd7f781f2cef6363980", "support" ], "streams/piping/pipe-through.dedicatedworker.html": [ @@ -55288,13 +55224,17 @@ "support" ], "streams/piping/pipe-through.serviceworker.https-expected.txt": [ - "cff39f6bf90e28753dd1cfa283918f87550450db", + "6c5faa30d98d1f34cb6badf7f8e59a2cf2fb9449", "support" ], "streams/piping/pipe-through.serviceworker.https.html": [ "e6604dc4e7f4404ee9dea5ab237fb4636bf9e85a", "testharness" ], + "streams/piping/pipe-through.sharedworker-expected.txt": [ + "85af76050db0eb713c881b422d70e7d9965c2eef", + "support" + ], "streams/piping/pipe-through.sharedworker.html": [ "8ecb019e754fd4239cb35c27787897efc2dacccb", "testharness" @@ -55544,7 +55484,7 @@ "support" ], "streams/readable-streams/general.serviceworker.https-expected.txt": [ - "5bf1010b9d29e4ccbe6183ac88f3fa3ab57ad908", + "c78457a9f96493462b1849e9dd00f66e52023f54", "support" ], "streams/readable-streams/general.serviceworker.https.html": [ @@ -55575,10 +55515,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/readable-streams/pipe-through.serviceworker.https-expected.txt": [ - "3d8cf26fa4dc94303e587c86459b1f9942aa4dfb", - "support" - ], "streams/readable-streams/pipe-through.serviceworker.https.html": [ "e6604dc4e7f4404ee9dea5ab237fb4636bf9e85a", "testharness" @@ -55651,10 +55587,6 @@ "04408971a1d82a7d3c990774456381313f1584bb", "support" ], - "streams/readable-streams/templated.serviceworker.https-expected.txt": [ - "22c4a140e5f962f55d8d78441ed3157df488e008", - "support" - ], "streams/readable-streams/templated.serviceworker.https.html": [ "82dcb18ef90fb8a957cd2a991cafc598e918e35b", "testharness" @@ -57356,7 +57288,7 @@ "testharness" ], "webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt": [ - "c43f434595ce174a5e0eb86c638ed64e508ff874", + "683342cf65c9907063e1124f98c7c913d3089d83", "support" ], "webrtc/rtcpeerconnection/rtcpeerconnection-idl.html": [
diff --git a/third_party/WebKit/Source/core/dom/ScriptLoader.cpp b/third_party/WebKit/Source/core/dom/ScriptLoader.cpp index e6a6769..16c5e50 100644 --- a/third_party/WebKit/Source/core/dom/ScriptLoader.cpp +++ b/third_party/WebKit/Source/core/dom/ScriptLoader.cpp
@@ -247,10 +247,11 @@ if (!isScriptForEventSupported()) return false; + String encoding; if (!client->charsetAttributeValue().isEmpty()) - m_characterEncoding = client->charsetAttributeValue(); + encoding = client->charsetAttributeValue(); else - m_characterEncoding = elementDocument.characterSet(); + encoding = elementDocument.characterSet(); if (client->hasSourceAttribute()) { FetchRequest::DeferOption defer = FetchRequest::NoDefer; @@ -260,7 +261,7 @@ if (m_documentWriteIntervention == DocumentWriteIntervention::FetchDocWrittenScriptDeferIdle) defer = FetchRequest::IdleLoad; - if (!fetchScript(client->sourceAttributeValue(), defer)) + if (!fetchScript(client->sourceAttributeValue(), encoding, defer)) return false; } @@ -327,6 +328,7 @@ } bool ScriptLoader::fetchScript(const String& sourceUrl, + const String& encoding, FetchRequest::DeferOption defer) { DCHECK(m_element); @@ -345,7 +347,7 @@ if (crossOrigin != CrossOriginAttributeNotSet) request.setCrossOriginAccessControl(elementDocument->getSecurityOrigin(), crossOrigin); - request.setCharset(scriptCharset()); + request.setCharset(encoding); if (ContentSecurityPolicy::isNonceableElement(m_element.get())) request.setContentSecurityPolicyNonce(client()->nonce());
diff --git a/third_party/WebKit/Source/core/dom/ScriptLoader.h b/third_party/WebKit/Source/core/dom/ScriptLoader.h index d44a5ec..3935fe1 100644 --- a/third_party/WebKit/Source/core/dom/ScriptLoader.h +++ b/third_party/WebKit/Source/core/dom/ScriptLoader.h
@@ -68,7 +68,6 @@ const TextPosition& scriptStartPosition = TextPosition::minimumPosition(), LegacyTypeSupport = DisallowLegacyTypeInTypeAttribute); - String scriptCharset() const { return m_characterEncoding; } String scriptContent() const; // Returns false if and only if execution was blocked. bool executeScript(const ScriptSourceCode&); @@ -129,7 +128,9 @@ bool isScriptForEventSupported() const; void logScriptMIMEType(LocalFrame*, ScriptResource*, const String&); - bool fetchScript(const String& sourceUrl, FetchRequest::DeferOption); + bool fetchScript(const String& sourceUrl, + const String& encoding, + FetchRequest::DeferOption); bool doExecuteScript(const ScriptSourceCode&); ScriptLoaderClient* client() const; @@ -140,8 +141,6 @@ Member<Element> m_element; Member<ScriptResource> m_resource; WTF::OrdinalNumber m_startLineNumber; - String m_characterEncoding; - String m_fallbackCharacterEncoding; bool m_parserInserted : 1; bool m_isExternalScript : 1;
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py index 0a809a7..4db22d78 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_importer.py
@@ -388,8 +388,8 @@ def fetch_new_expectations_and_baselines(self): """Adds new expectations and downloads baselines based on try job results, then commits and uploads the change.""" _log.info('Adding test expectations lines to LayoutTests/TestExpectations.') - line_adder = WPTExpectationsUpdater(self.host) - line_adder.run() + expectation_updater = WPTExpectationsUpdater(self.host) + expectation_updater.run(args=[]) message = 'Update test expectations and baselines.' self.check_run(['git', 'commit', '-a', '-m', message]) self.git_cl.run(['upload', '-m', message, '--rietveld'])
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h index 2242fa8..4645165f 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h
@@ -9,6 +9,7 @@ #include "base/observer_list.h" #include "build/build_config.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/base/models/menu_separator_types.h" #include "ui/gfx/native_widget_types.h" #include "ui/native_theme/native_theme_export.h" @@ -56,8 +57,8 @@ kMenuCheckBackground, kMenuPopupArrow, kMenuPopupGutter, - kMenuPopupSeparator, #endif + kMenuPopupSeparator, kMenuItemBackground, kProgressBar, kPushButton, @@ -145,6 +146,11 @@ bool is_selected; }; + struct MenuSeparatorExtraParams { + const gfx::Rect* paint_rect; + MenuSeparatorType type; + }; + struct MenuItemExtraParams { bool is_selected; int corner_radius; @@ -228,6 +234,7 @@ MenuArrowExtraParams menu_arrow; MenuCheckExtraParams menu_check; MenuItemExtraParams menu_item; + MenuSeparatorExtraParams menu_separator; MenuListExtraParams menu_list; MenuBackgroundExtraParams menu_background; ProgressBarExtraParams progress_bar;
diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc index ec5b30a..b9718490 100644 --- a/ui/native_theme/native_theme_base.cc +++ b/ui/native_theme/native_theme_base.cc
@@ -186,6 +186,9 @@ case kMenuPopupBackground: PaintMenuPopupBackground(canvas, rect.size(), extra.menu_background); break; + case kMenuPopupSeparator: + PaintMenuSeparator(canvas, state, rect, extra.menu_separator); + break; case kMenuItemBackground: PaintMenuItemBackground(canvas, state, rect, extra.menu_item); break; @@ -776,6 +779,16 @@ // By default don't draw anything over the normal background. } +void NativeThemeBase::PaintMenuSeparator( + SkCanvas* canvas, + State state, + const gfx::Rect& rect, + const MenuSeparatorExtraParams& menu_separator) const { + SkPaint paint; + paint.setColor(GetSystemColor(ui::NativeTheme::kColorId_MenuSeparatorColor)); + canvas->drawRect(gfx::RectToSkRect(*menu_separator.paint_rect), paint); +} + void NativeThemeBase::PaintSliderTrack(SkCanvas* canvas, State state, const gfx::Rect& rect,
diff --git a/ui/native_theme/native_theme_base.h b/ui/native_theme/native_theme_base.h index fa06cfbc..ca838d49 100644 --- a/ui/native_theme/native_theme_base.h +++ b/ui/native_theme/native_theme_base.h
@@ -104,6 +104,12 @@ const gfx::Rect& rect, const MenuItemExtraParams& menu_item) const; + virtual void PaintMenuSeparator( + SkCanvas* canvas, + State state, + const gfx::Rect& rect, + const MenuSeparatorExtraParams& menu_separator) const; + virtual void PaintSliderTrack( SkCanvas* canvas, State state,
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc index 24eaae3..eea06d3a 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc
@@ -264,7 +264,7 @@ PaintMenuGutter(canvas, rect); return; case kMenuPopupSeparator: - PaintMenuSeparator(canvas, rect); + PaintMenuSeparator(canvas, *extra.menu_separator.paint_rect); return; case kMenuPopupBackground: PaintMenuBackground(canvas, rect); @@ -429,7 +429,7 @@ PaintMenuGutter(hdc, rect); return; case kMenuPopupSeparator: - PaintMenuSeparator(hdc, rect); + PaintMenuSeparator(hdc, *extra.menu_separator.paint_rect); return; case kMenuItemBackground: PaintMenuItemBackground(hdc, state, rect, extra.menu_item); @@ -866,9 +866,8 @@ return S_OK; } -HRESULT NativeThemeWin::PaintMenuSeparator( - HDC hdc, - const gfx::Rect& rect) const { +HRESULT NativeThemeWin::PaintMenuSeparator(HDC hdc, + const gfx::Rect& rect) const { RECT rect_win = rect.ToRECT(); HANDLE handle = GetThemeHandle(MENU);
diff --git a/ui/native_theme/native_theme_win.h b/ui/native_theme/native_theme_win.h index 52b2aebb..ab96c02b 100644 --- a/ui/native_theme/native_theme_win.h +++ b/ui/native_theme/native_theme_win.h
@@ -164,8 +164,7 @@ int state_id, RECT* rect) const; - HRESULT PaintMenuSeparator(HDC hdc, - const gfx::Rect& rect) const; + HRESULT PaintMenuSeparator(HDC hdc, const gfx::Rect& rect) const; HRESULT PaintMenuGutter(HDC hdc, const gfx::Rect& rect) const;
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn index bef106e..214a0be 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn
@@ -226,9 +226,8 @@ "controls/menu/menu_runner_impl_interface.h", "controls/menu/menu_scroll_view_container.cc", "controls/menu/menu_scroll_view_container.h", + "controls/menu/menu_separator.cc", "controls/menu/menu_separator.h", - "controls/menu/menu_separator_views.cc", - "controls/menu/menu_separator_win.cc", "controls/menu/menu_types.h", "controls/menu/native_menu_win.cc", "controls/menu/native_menu_win.h",
diff --git a/ui/views/controls/menu/menu_separator_views.cc b/ui/views/controls/menu/menu_separator.cc similarity index 64% rename from ui/views/controls/menu/menu_separator_views.cc rename to ui/views/controls/menu/menu_separator.cc index 86f794a..d3d532e 100644 --- a/ui/views/controls/menu/menu_separator_views.cc +++ b/ui/views/controls/menu/menu_separator.cc
@@ -10,20 +10,57 @@ #include "ui/native_theme/native_theme.h" #include "ui/views/controls/menu/menu_config.h" +#if defined(OS_WIN) +#include "ui/display/win/dpi.h" +#endif + namespace views { -#if !defined(OS_WIN) void MenuSeparator::OnPaint(gfx::Canvas* canvas) { - canvas->FillRect(GetPaintBounds(), - GetNativeTheme()->GetSystemColor( - ui::NativeTheme::kColorId_MenuSeparatorColor)); -} + if (type_ == ui::SPACING_SEPARATOR) + return; + + const MenuConfig& menu_config = MenuConfig::instance(); + int pos = 0; + int separator_thickness = menu_config.separator_thickness; + switch (type_) { + case ui::LOWER_SEPARATOR: + pos = height() - separator_thickness; + break; + case ui::UPPER_SEPARATOR: + break; + default: + pos = height() / 2; + break; + } + + gfx::Rect paint_rect(0, pos, width(), separator_thickness); + if (menu_config.use_outer_border) + paint_rect.Inset(1, 0); + +#if defined(OS_WIN) + // Hack to get the separator to display correctly on Windows where we may + // have fractional scales. We move the separator 1 pixel down to ensure that + // it falls within the clipping rect which is scaled up. + float device_scale = display::win::GetDPIScale(); + bool is_fractional_scale = + (device_scale - static_cast<int>(device_scale) != 0); + if (is_fractional_scale && paint_rect.y() == 0) + paint_rect.set_y(1); #endif + ui::NativeTheme::ExtraParams params; + params.menu_separator.paint_rect = &paint_rect; + params.menu_separator.type = type_; + GetNativeTheme()->Paint( + canvas->sk_canvas(), ui::NativeTheme::kMenuPopupSeparator, + ui::NativeTheme::kNormal, gfx::Rect(bounds().size()), params); +} + gfx::Size MenuSeparator::GetPreferredSize() const { const MenuConfig& menu_config = MenuConfig::instance(); int height = menu_config.separator_height; - switch(type_) { + switch (type_) { case ui::SPACING_SEPARATOR: height = menu_config.separator_spacing_height; break; @@ -41,27 +78,4 @@ height); } -gfx::Rect MenuSeparator::GetPaintBounds() { - int pos = 0; - const MenuConfig& menu_config = MenuConfig::instance(); - int separator_thickness = menu_config.separator_thickness; - switch (type_) { - case ui::LOWER_SEPARATOR: - pos = height() - separator_thickness; - break; - case ui::SPACING_SEPARATOR: - return gfx::Rect(); - case ui::UPPER_SEPARATOR: - break; - default: - pos = height() / 2; - break; - } - - gfx::Rect paint_rect(0, pos, width(), separator_thickness); - if (menu_config.use_outer_border) - paint_rect.Inset(1, 0); - return paint_rect; -} - } // namespace views
diff --git a/ui/views/controls/menu/menu_separator.h b/ui/views/controls/menu/menu_separator.h index 7e013ff..2eeee1c 100644 --- a/ui/views/controls/menu/menu_separator.h +++ b/ui/views/controls/menu/menu_separator.h
@@ -21,9 +21,6 @@ gfx::Size GetPreferredSize() const override; private: - // Gets the bounds where the separator should be painted. - gfx::Rect GetPaintBounds(); - // The type of the separator. const ui::MenuSeparatorType type_;
diff --git a/ui/views/controls/menu/menu_separator_win.cc b/ui/views/controls/menu/menu_separator_win.cc deleted file mode 100644 index 4fbe20aa..0000000 --- a/ui/views/controls/menu/menu_separator_win.cc +++ /dev/null
@@ -1,39 +0,0 @@ -// Copyright (c) 2012 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 "ui/views/controls/menu/menu_separator.h" - -#include <windows.h> -#include <uxtheme.h> -#include <Vssym32.h> - -#include "ui/display/win/dpi.h" -#include "ui/gfx/canvas.h" -#include "ui/gfx/geometry/rect.h" -#include "ui/native_theme/native_theme.h" -#include "ui/native_theme/native_theme_aura.h" -#include "ui/views/controls/menu/menu_item_view.h" - -namespace views { - -void MenuSeparator::OnPaint(gfx::Canvas* canvas) { - ui::NativeTheme* native_theme = GetNativeTheme(); - gfx::Rect separator_bounds = GetPaintBounds(); - - // Hack to get the separator to display correctly on Windows where we may - // have fractional scales. We move the separator 1 pixel down to ensure that - // it falls within the clipping rect which is scaled up. - float device_scale = display::win::GetDPIScale(); - bool is_fractional_scale = - (device_scale - static_cast<int>(device_scale) != 0); - if (is_fractional_scale && separator_bounds.y() == 0) - separator_bounds.set_y(1); - - ui::NativeTheme::ExtraParams extra; - native_theme->Paint( - canvas->sk_canvas(), ui::NativeTheme::kMenuPopupSeparator, - ui::NativeTheme::kNormal, separator_bounds, extra); -} - -} // namespace views